Details
-
Type:
Story
-
Status: Done
-
Resolution: Done
-
Fix Version/s: None
-
Component/s: ts_main_telescope
-
Labels:
-
Story Points:3
-
Epic Link:
-
Sprint:TSSW Sprint - Nov 22 - Dec 06, TSSW Sprint - Dec 06 - Dec 20, TSSW Sprint - Dec 20 - Jan 03
-
Team:Telescope and Site
-
Urgent?:No
Description
Acknowledge the SAL command from Hexapod PXI. This will let the CSC know the status of SAL command.
Note. This update will need the CSC to use the SyncPattern = 0x5555 instead of 0xB4B4 or 0x6666 to identify the command comes from the DDS instead of GUI. Only the DDS command will get the command acknowledgement.
Attachments
Issue Links
- is triggering
-
DM-32653 Refactor the commanding.c in Hexapod Low-Level Controller
- Done
-
DM-32693 Update MT hexapod and rotator CSCs to read command ack messages
- Done
-
DM-33062 Update the Sync Pattern in Hexapod CSC
- Done
-
DM-33067 Test the New Version of Hexapod Code on Summit
- Done
- relates to
-
DM-23849 Acknowledge the SAL Command from Rotator PXI
- Done
-
DM-32789 Update the Hexapod EUI to Read the Command Status
- Done
This would be wonderful. It would make the CSC more reliable, since it would not have to guess.
In my experience there are two basic ways to handle this:
1) Asynchronous commands:
Slow commands, such as point to point moves, are not done until the move finishes, fails, or is aborted. In this model you need to support multiple commands running at the same time (e.g. so a user can stop a point-to-point move) and commands need a client-assigned identifier, such as an integer sequence number (private_seqNum in SAL) that is echoed in command status replies. I suggest the following command status replies:
This matches SAL pretty closely, but has no ACK, since I don't think we need it here. Any command should quickly receive one of these status replies.
2) Synchronous commands:
Make all commands run quickly, and only allow one command to run at a time.
In that model, slow commands such as point-to-point moves are reported as done when the command starts, and the client has to use other information to figure out when such commands finish. If you do that then I think you do not need the client to specify a command sequence number and you only need "succeeded", "failed" replies.