Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

This confluence page is a summary of what is expected at this point. On day 3 we will have 30 minutes to catch up and then we will follow to the next steps of the development of our fist component!

Configure Visual Studio Code

Visual Studio Code will help a lot to work in parallel, and for this reason, it is a very useful tool for this workshop. For the ones having trouble to share and join sessions due to the connection hanging when trying to sign in, Mario prepared the following instructions. The short trick is the following:

  • For all that have issues with VSCode LiveShare sign-in:
    • To fix it you need to press CTRL + P, write "> Live Share: Disable VSCode Account authentication", select from auto-complete and press enter. After that, go to the bottom-left corner to the "Live Share" button and do again the sign-in process
    • Consider that depending on your combination of host and guest OS, you may need to use something from:
      • Ctrl+Shift+P, Cmd+Shift+P, F1 or Fn+F1
  • Mario was kind enough to prepare a small document with more detailed instructions

Summary

Preparing your environment

...

This will give you an environment to tweak later on for testing your component's interaction with other components.

Checking the testing environment

You can test everything is alright in the following way:

Code Block
languagebash
> export ACS_CDB=~/Repos/awv/jTelescope/test
> acsStart


> acsStartContainer -py pySimContainer


> objexp

Alternatively, you can use the ACS Command Center GUI, but make sure you define the ACS_CDB path correctly there.

While using objexp, retrieve some component(s) and check some of their methods. You should get random values for the methods you interact with.

Starting developing your component

The initial development of the components should have started, although no serious development was expected for the first day session. Basically the expectations were to have the files in place and maybe an initial prototype of the classes.

I will assume for this example that we have pyDatabase, jTelescope and cppInstrument modules, to show the file structure for each programming language:

Python

The following documents were provided to use as assistance:

The expectation for day 2 were to have just the files:

Code Block
languagebash
> cd ~/Repos/awv/pyDatabase/src
> mkdir ws
> touch ws/db.py

And the Makefile configuration:

Code Block
titleMakefile
...
PY_PACKAGES = ws
...

Java

The following documents were provided to use as assistance:

The expectation for day 2 were to have just the files:

Code Block
languagebash
> cd ~/Repos/awv/jTelescope/src
> mkdir -p workshop/telescope
> touch workshop/telescope/TelescopeImpl.java
> cp ~/Repos/awv/ICD/src/acsws/TELESCOPE_MODULE/TelescopeImpl/TelescopeComponentHelper.java.tpl workshop/telescope/TelescopeComponentHelper.java

Modify the helper class slightly:

Code Block
languagejava
<-- package acsws.TELESCOPE_MODULE.TelescopeImpl;
--> package workshop.telescope;
...
<--- import acsws.TELESCOPE_MODULE.TelescopeImpl.TelescopeImpl;
--> import workshop.telescope.TelescopeImpl;

And the Makefile configuration:

Code Block
titleMakefile
...
JARFILES = jTelescope
jTelescope_DIRS = workshop/telescope
...

C++

The following documents were provided to use as assistance:

The expectation for day 2 were to have just the files:

Code Block
languagebash
> cd ~/Repos/awv/cppInstrument/src
> touch ../include/InstrumentImpl.h
> touch InstrumentImpl.cpp


And the Makefile configuration:

Code Block
titleMakefile
...
INCLUDES = InstrumentImpl.h
...
LIBRARIES = cppInstrumentImpl
cppInstrumentImpl_OBJECTS = InstrumentImpl
cppInstrumentImpl_LIBS = InstrumentStubs
...