Uploaded image for project: 'Data Management'
  1. Data Management
  2. DM-23692

Write low-level communications code for MTMount controller

    XMLWordPrintable

    Details

    • Story Points:
      4
    • Sprint:
      TSSW Sprint - Mar 2 - Mar 16
    • Team:
      Telescope and Site
    • Urgent?:
      No

      Description

      Write the low-level communications code for the MTMount CSC:

      • command and reply classes
      • tests for same
      • a commander that will send a few commands (star with the camera cable wrap commands) and report all replies
      • a trivial mock responder, so I can exercise the commander

        Attachments

          Issue Links

            Activity

            Hide
            rowen Russell Owen added a comment -

            I split this work off of DM-23118 (and rebased that so it is just a few commits from this branch).

            Contents:

            • FieldInfo classes: these describe each field of a low-level message and handle type-checking, serializing and deserializing the value for that field.
            • BaseMessage: the base class for all low-level commands and replies.
            • Command and Reply classes, all subclasses of BaseMessage. There is one class per command that the code supports (more to come) and one per type of reply (a complete set).
            • ClientServerPair: a class that has a client and a socket. All OperationManager TCP/IP communication (between that and the EUI, HHD and PXI) uses this kind of pair.
            • Communicator: a subclass of ClientServerPair that handles serializing and deserializing commands and replies.
            • bin/tcs_commander.py: a script to send commands to the OperationManager and report replies. At present this only supports the mirror cover commands, but more commands can trivially be added.

            Pull request: https://github.com/lsst-ts/ts_MTMount/pull/2

            Show
            rowen Russell Owen added a comment - I split this work off of DM-23118 (and rebased that so it is just a few commits from this branch). Contents: FieldInfo classes: these describe each field of a low-level message and handle type-checking, serializing and deserializing the value for that field. BaseMessage: the base class for all low-level commands and replies. Command and Reply classes, all subclasses of BaseMessage. There is one class per command that the code supports (more to come) and one per type of reply (a complete set). ClientServerPair: a class that has a client and a socket. All OperationManager TCP/IP communication (between that and the EUI, HHD and PXI) uses this kind of pair. Communicator: a subclass of ClientServerPair that handles serializing and deserializing commands and replies. bin/tcs_commander.py: a script to send commands to the OperationManager and report replies. At present this only supports the mirror cover commands, but more commands can trivially be added. Pull request: https://github.com/lsst-ts/ts_MTMount/pull/2
            Hide
            aheyer Andrew Heyer [X] (Inactive) added a comment -

            Was able to run the commands listed in the instructions and build the documentation. Added some notes.

            Show
            aheyer Andrew Heyer [X] (Inactive) added a comment - Was able to run the commands listed in the instructions and build the documentation. Added some notes.
            Hide
            rowen Russell Owen added a comment -

            Merged to develop

            Show
            rowen Russell Owen added a comment - Merged to develop

              People

              Assignee:
              rowen Russell Owen
              Reporter:
              rowen Russell Owen
              Reviewers:
              Andrew Heyer [X] (Inactive)
              Watchers:
              Andrew Heyer [X] (Inactive), Russell Owen
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved:

                  Jenkins

                  No builds found.