This repo contains subsystem specific sequencer scripts.
sequencer-scripts | esw | csw |
---|---|---|
v0.4.0 | v0.4.0 | v4.0.1 |
v0.4.0-RC1 | v0.4.0-RC1 | v4.0.1-RC1 |
v0.3.0 | v0.3.0 | v4.0.0 |
v0.3.0-RC2 | v0.3.0-RC2 | v4.0.0-RC2 |
v0.3.0-RC1 | v0.3.0-RC1 | v4.0.0-RC1 |
v0.3.0-M1 | v0.3.0-M1 | v4.0.0-M1 |
v0.2.0 | v0.2.1 | v3.0.1 |
v0.2.0-RC1 | v0.2.0-RC1 | v3.0.0-RC1 |
v0.2.0-M1 | v0.2.0-M1 | v3.0.0-M1 |
v0.1.0 | v0.1.0 | v2.0.0 |
v0.1.0-RC3 | v0.1.0-RC3 | v2.0.0-RC3 |
v0.1.0-RC2 | v0.1.0-RC2 | v2.0.0-RC2 |
v0.1.0-RC1 | v0.1.0-RC1 | v2.0.0-RC1 |
sequencer-scripts
repo is restricted and limited people have admin access to make changes to master and merge pull requests.
Script writers should follow steps mentioned below to add/update scripts
-
Fork
sequencer-scripts
repo- One can fork it to their personal repository and keep working on that fork
- Or fork it under your own organization
-
Add new scripts into
scripts
directory under specificsubsystem
. If your subsystem doesn't exist, create a directory with the name of your subsystem in thescripts
directory, e.g.scripts/wfos
. Also add an observing mode mapping configuration file to provide a mapping from observing modes to scripts in your new directory named your subsystem with the.conf
extension, e.g.scripts/wfos/wfos.conf
. Then, include the new configuration file in thescripts/application.conf
, for example, if you have newly createdscripts/wfos/wfos.conf
, then add lineinclude "wfos/wfos.conf"
inscripts/application.conf
file -
Add an entry for each observing mode into the subsystem-specific observing mode mapping configuration. It should include a
scriptClass
property pointing to script file where script logic resides, for example,scripts { iris { IRIS_darknight { scriptClass = iris.Darknight } } }
Note: the same script class can be used for multiple observing modes.
-
Once all the changes are completed in a forked repo, then you can submit a pull request to upstream which is
tmtsoftware/sequencer-scripts
repo in this case -
Admins of
sequencer-scripts
repo will then review changes and merge it tomaster
The CSW services need to be running before starting the components.
This is done by starting the csw-services
If you are not building csw from the sources, you can run csw-services
as follows:
- Install
coursier
using steps described here and add TMT channel. - Run
cs install csw-services
. This will create an executable file namedcsw-services
in the default installation directory. - Run
csw-services --help
to get more information. - Run
csw-services start
to start all the csw services, for example, Location, Config, Alarm, AAS service etc
-
Run
sbt
command at root level of this repo -
Within the
sbt
shell, run following command which will read scripts.Subsystem.Observing_Mode.scriptClass configuration and start that script.run sequencer -s <Subsystem> -m <Observing_Mode>
Please note that configuration for IRIS (subsystem) and IRIS_darknight (observing mode) should be there in config file.
For example, following command will start IRIS IRIS_darknight script i.e. Darknight.kts script Confiuration for this exist in iris.conf file under iris scripts folder.
run sequencer -s IRIS -m IRIS_darknight
-
At this stage, your
Sequencer
will be started with providedscript
and waiting forSequence
to be received for execution
Once you have started Sequencer
with appropriate script
, next step would be to submit a Sequence
to the Sequencer
for execution.
Use esw-shell to do this and more which has detailed documentation on how to submit sequence to sequencer.