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

Add a mock Astelco DIMM controller to ts_dimm and update the simulation mode to use it.

    XMLWordPrintable

    Details

    • Type: Story
    • Status: Done
    • Resolution: Done
    • Fix Version/s: None
    • Component/s: None
    • Labels:

      Description

      The current simulation mode of ts_dimm simply publishes random data. Add a simulator for the Astelco DIMM and change the simulation mode to talk to that.

      This ticket includes time to learn how the DIMM works and some code cleanup.

        Attachments

          Issue Links

            Activity

            Hide
            rowen Russell Owen added a comment - - edited

            Other changes:

            • Simplify the doc layout and add some content, including Astelco communication manuals.
            • Simplify AstelcoDIMM command handling:
            • Calling run_command creates and manages the AstelcoCommand object and (by default) waits for the command to finish.
            • SET and GET all variables in a single command.
            • AstelcoDIMM logging improvements: log all writes and reads (at debug level) and clean up other logging.

            Note: I have retained SimDIMM for now. But I hope that once we have a simulated mode for the SOAR DIMM (DM-35865) that we will consider getting rid of it.

            Pull requests:

            I hope we can test this before merging it.

            Show
            rowen Russell Owen added a comment - - edited Other changes: Simplify the doc layout and add some content, including Astelco communication manuals. Simplify AstelcoDIMM command handling: Calling run_command creates and manages the AstelcoCommand object and (by default) waits for the command to finish. SET and GET all variables in a single command. AstelcoDIMM logging improvements: log all writes and reads (at debug level) and clean up other logging. Note: I have retained SimDIMM for now. But I hope that once we have a simulated mode for the SOAR DIMM ( DM-35865 ) that we will consider getting rid of it. Pull requests: https://github.com/lsst-ts/ts_dimm/pull/26 https://github.com/lsst-ts/ts_xml/pull/609 I hope we can test this before merging it.
            Hide
            rowen Russell Owen added a comment -

            We (Wouter, Brian, Tiago and I) tested the new code 2022-08-29. We needed to make a few updates to the requirements and conda recipe, and also work around occasional invalid values for AMEBA.MODE (sometimes it is reported as "LOCKEDBY 21474836481" – perhaps always once just after setting it to 1). We also saw some insane values reported for declination (several thousand) all clustered in a short period of time.

            Here is a log excerpt from Brian that shows the invalid AMEBA.MODE value:

            2022-08-29 23:09:55.536 I => [4] 7316833 COMMAND OK
            2022-08-29 23:09:55.536 I => [4] 7316833 DATA INLINE AMEBA.MODE=0
            2022-08-29 23:09:55.536 I => [4] 7316833 DATA INLINE SCOPE.RA=1.2919444444444443
            2022-08-29 23:09:55.536 I => [4] 7316833 DATA INLINE SCOPE.DEC=22.848333333333333
            2022-08-29 23:09:55.536 I => [4] 7316833 DATA INLINE SCOPE.ALT=32.72083333333334
            2022-08-29 23:09:55.536 I => [4] 7316833 DATA INLINE SCOPE.AZ=62.37583333333333
            2022-08-29 23:09:55.536 I => [4] 7316833 COMMAND COMPLETE
            2022-08-29 23:09:55.536 I <= [5] 1 set ameba.mode=1
            2022-08-29 23:09:55.537 I => [5] 1 COMMAND OK
            2022-08-29 23:09:55.537 I <= [4] 7316834 GET AMEBA.MODE;SCOPE.RA;SCOPE.DEC;SCOPE.ALT;SCOPE.AZ
            2022-08-29 23:09:55.537 I => [4] 7316834 COMMAND OK
            2022-08-29 23:09:55.538 I => [4] 7316834 DATA INLINE AMEBA.MODE=LOCKEDBY 21474836481
            2022-08-29 23:09:55.538 I => [4] 7316834 DATA INLINE SCOPE.RA=1.2919444444444443
            2022-08-29 23:09:55.538 I => [4] 7316834 DATA INLINE SCOPE.DEC=22.848333333333333
            2022-08-29 23:09:55.538 I => [4] 7316834 DATA INLINE SCOPE.ALT=32.72083333333334
            2022-08-29 23:09:55.538 I => [4] 7316834 DATA INLINE SCOPE.AZ=62.37583333333333
            2022-08-29 23:09:55.538 I => [4] 7316834 COMMAND COMPLETE
            2022-08-29 23:09:55.732 I <= [4] 7316835 GET DIMM.TIMESTAMP
            2022-08-29 23:09:55.732 I => [4] 7316835 COMMAND OK
            2022-08-29 23:09:55.732 I => [4] 7316835 DATA INLINE DIMM.TIMESTAMP=NULL
            2022-08-29 23:09:55.732 I => [4] 7316835 COMMAND COMPLETE
            

            Show
            rowen Russell Owen added a comment - We (Wouter, Brian, Tiago and I) tested the new code 2022-08-29. We needed to make a few updates to the requirements and conda recipe, and also work around occasional invalid values for AMEBA.MODE (sometimes it is reported as "LOCKEDBY 21474836481" – perhaps always once just after setting it to 1). We also saw some insane values reported for declination (several thousand) all clustered in a short period of time. Here is a log excerpt from Brian that shows the invalid AMEBA.MODE value: 2022-08-29 23:09:55.536 I => [4] 7316833 COMMAND OK 2022-08-29 23:09:55.536 I => [4] 7316833 DATA INLINE AMEBA.MODE=0 2022-08-29 23:09:55.536 I => [4] 7316833 DATA INLINE SCOPE.RA=1.2919444444444443 2022-08-29 23:09:55.536 I => [4] 7316833 DATA INLINE SCOPE.DEC=22.848333333333333 2022-08-29 23:09:55.536 I => [4] 7316833 DATA INLINE SCOPE.ALT=32.72083333333334 2022-08-29 23:09:55.536 I => [4] 7316833 DATA INLINE SCOPE.AZ=62.37583333333333 2022-08-29 23:09:55.536 I => [4] 7316833 COMMAND COMPLETE 2022-08-29 23:09:55.536 I <= [5] 1 set ameba.mode=1 2022-08-29 23:09:55.537 I => [5] 1 COMMAND OK 2022-08-29 23:09:55.537 I <= [4] 7316834 GET AMEBA.MODE;SCOPE.RA;SCOPE.DEC;SCOPE.ALT;SCOPE.AZ 2022-08-29 23:09:55.537 I => [4] 7316834 COMMAND OK 2022-08-29 23:09:55.538 I => [4] 7316834 DATA INLINE AMEBA.MODE=LOCKEDBY 21474836481 2022-08-29 23:09:55.538 I => [4] 7316834 DATA INLINE SCOPE.RA=1.2919444444444443 2022-08-29 23:09:55.538 I => [4] 7316834 DATA INLINE SCOPE.DEC=22.848333333333333 2022-08-29 23:09:55.538 I => [4] 7316834 DATA INLINE SCOPE.ALT=32.72083333333334 2022-08-29 23:09:55.538 I => [4] 7316834 DATA INLINE SCOPE.AZ=62.37583333333333 2022-08-29 23:09:55.538 I => [4] 7316834 COMMAND COMPLETE 2022-08-29 23:09:55.732 I <= [4] 7316835 GET DIMM.TIMESTAMP 2022-08-29 23:09:55.732 I => [4] 7316835 COMMAND OK 2022-08-29 23:09:55.732 I => [4] 7316835 DATA INLINE DIMM.TIMESTAMP=NULL 2022-08-29 23:09:55.732 I => [4] 7316835 COMMAND COMPLETE
            Hide
            rowen Russell Owen added a comment -

            Reviewed on github

            Show
            rowen Russell Owen added a comment - Reviewed on github

              People

              Assignee:
              rowen Russell Owen
              Reporter:
              rowen Russell Owen
              Reviewers:
              Tiago Ribeiro
              Watchers:
              Brian Stalder, Dave Mills, Russell Owen, Tiago Ribeiro, Wouter van Reeven
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved:

                  Jenkins

                  No builds found.