This is an old revision of the document!
GRB scripting
Scripting informations are stored in table grb_script. Here is sample output:
stars= SELECT * FROM grb_script; camera_name | grb_script_end | grb_script_script -------------+----------------+------------------- C5 | 600 | F 2 E 20 C5 | | F 2 E 60 F 4 E 60 C4 | 600 | E 30 C4 | | E 60 C6 | 600 | F 2 E 20 C6 | | F 2 E 60 F 4 E 60 C7 | 600 | F 2 E 20 C7 | | F 2 E 60 F 4 E 60
- camera_name hold name of camera. It must reference to cameras table. Usually you will encounter only single camera in the system, which will be called C0.
- grb_script_end is time after GRB when this script will NOT be used. If it's NULL, this is default script. 600 in this field means that script will be used up to 600 seconds (10 minutes) after GRB trigger. After this time, script with bigger number in grb_script_end, or grb_script_end left NULL, will be used
- grb_script_script is script to be executed. Plese refer to man rts2.script for details.
If you would like to modify this table, the easiest approach is to use pg-dump
user@host:~$ pg_dump -t grb_script stars > grb_script user@host:~$ editor grb_script
edit grb_script so it contains only lines similar to the example bellow:
COPY grb_script (camera_name, grb_script_end, grb_script_script) FROM stdin; C5 600 F 2 E 20 C5 \N F 2 E 60 F 4 E 60 C4 600 E 30 C4 \N E 60 C6 600 F 2 E 20 C6 \N F 2 E 60 F 4 E 60 C7 600 F 2 E 20 C7 \N F 2 E 60 F 4 E 60 \.
Please bear in mid that there MUST be tabulator between entries (after C5 and 600 in the example above). Edit those lines, particularly scripts, add new lines, and send the file back to psql
user@host:~$ psql stars < grb_script
Updating by using psql
The following is added by someone learning the system and is not official: Since the grb_script table in the stars database is properly set to have the constrain of being UNIQUE, if the method described above is attempted for updating the script psql will refuse to add it again and will output among other things:
ERROR: relation "grb_script" already exists
This can be circumvented by simply using psql to edit the table.
user@host:~$ psql stars stars=> UPDATE grb_script SET grb_script_script = 'filter=0 E 30' WHERE grb_script_end = '600' and camera_name="C5"; stars=> INSERT INTO grb_script VALUES ('C5', '300', 'filter=0 EMON=off filter=C E 30'); stars=> UPDATE grb_script SET grb_script_script = 'filter=0 E 180' WHERE grb_script_end IS NULL and camera_name="C5";
Note that:
- The first command will update what camera C5 will do until 10 minutes
- The second command will insert the previously undefined behaviour for C5 that will happen until 300 seconds
- And the third will update that which will be done after all other defined behaviours. Note that for this case the column is not search by a literal expression like '\N' but by the condition “IS NULL”