Thank you for the helpful review. Here are my comments.
[rotator_csc.py]
1) I have attempted to clarify.
2) Great suggestion. I have changed this to:
index : `SalIndex` or `int`
|
SAL index; see `SalIndex` for the allowed values.
|
3) and 4) Rejecting a command does not change the state of the CSC.
For example the CSC rejects the clearError command if the current state is not FAULT,
but if the CSC was Enabled it remains Enabled.
5) Agreed.
[mock_controller.py]
1) You are absolutely right. I made the same change here.
2) I am not sure I understand your question, but I hope this will help:
base_angle0 is an argument for SimpleHexapod.make_zigzag_model, which is a way to construct a SimpleHexapod. It specifies the "clocking" of the zigzag arrangement of actuators. It is not saved anywhere so there is no opportunity for a user to even try to change to change it later.
Once the mock controller builds a SimpleHexapod it cannot be changed.
By the way I reluctant to call it a "pivot", since the pivot point refers to something else (that the user can change).
[utils.py]
1) I prefer to use math for scalar math and numpy for arrays and other sequences. I think it makes the intent of the code clearer.
2) OK. I will clarify for all three functions. For example:
def rot_about_y(xyzpos, ang):
|
"""Rotate a 3-d position about the y axis.
|
|
Positive rotation is from from z to x (the usual right-hand rule).
|
[test_simple_hexapod.py]
1) numpy offers nice functions for testing if one sequence is similar to another and unittest does not.
I am not sure what the asyncio test framework has to do with this, so I may have misunderstood your question. If so, please ask again.
2) (Another case of using math for scalars.)
Pull request: https://github.com/lsst-ts/ts_hexapod/pull/3
Note that the changes to ts_xml and ts_idl are on tickets/
DM-21694and ts_xml has been merged to develop.I had tickets/
DM-21778branches for those packages but have since deleted them.