The Astronomical Scheduler Daemon must send out commands, verify that they are received, and wait for them to finish. One of the main difficulties is the configurable nature of the system. For debugging purposes, the operator is not required to run one or more of the camera, mount, or clamshell. Therefore, a non-response from one of these daemons should not be assumed as a system failure.
When astrod sends a command, for example a MOVE comand for schierd, it fills a command structure and copies it to shared memory. At this point rotsed copies the command to a location in shared memory where schierd can receive it. Upon receipt of the command, schierd sets the system status MOVE bit ``high.'' Now astrod knows the command has been received, and waits for schierd to reset the MOVE bit.
Unfortunately, if astrod does not wait long enough to see the MOVE bit set, it can assume the mount is not running, and can follow up with a PICTURE command. This results in a streaky image taking partially while the mount is still in motion. At the moment, astrod is set up with a min_wait configuration option. This is the minimum amount of time astrod will wait to see if a command is received. Currently set to 2 seconds, the optimal value depends on processor speed and total system load.