UVOT autonomous operations

The SWIFT/UVOT has a requirement for on-board autonomous control of exposures, health and safety. It is anticipated that the optimal form of control may not emerge until after launch and may change during the course of the mission. A flexible and readily re-configurable system is therefore required. Two schemes have been adopted. As well as the more usual approach of tables of experimental configurations, action tables mapping command sequences to key events have been implemented. The command sequences, consisting of a series of command words located in EEPROM, are executed using a stack-based software 'virtual CPU.' Each command word, analogous to hardware CPU assembler instructions, results in the execution of well-checked Ada code fragments. As well as implementing the UVOT commands, the code includes functionality such as delaying a specified time, awaiting action completion, 'subroutine' calls and simple flow control. These permit the construction of complex control sequences. A C-like language is used to describe the required sequences. A translator converts them to the required command word sequence that is then validated on a simulator. Reloading the command sequence or the tables referring to it alters the autonomous behavior of the instrument.