EIR-OPS-037: Set-Up a TimeAction
Objective
To set-up some TimeAction functionality.
Introduction
Using this procedure, the Operator will set-up a TimeAction. TimeActions can be set-up to invoke actions or set parameters at specific times, where the invoke/set time can be absolute, based on the current on-board time (OBT), or relative from the time at which the TimeAction is enabled.
A number of TimeActions are set-up by default in the on-board software. These TimeActions are referred to in a number of places throughout this manual (e.g. in EIR-OPS-008: ADCS Mode Change and EIR-OPS-009: Enable TC Authentication ) and are also listed in the below table.
Default Failsafe TimeAction Entries |
|
0 |
TimeAction to put the ADCS into standby mode/state after 30 minutes |
1 |
TimeAction to disable authentication of TCs after 15 minutes |
2 |
TimeAction to enable conv. encoding of TMs after after 15 minutes |
Default Primary TimeAction Entries |
|
0 |
TimeAction to mark the current image as stable after |
1 |
TimeAction to put the ADCS into standby mode/state after 30 minutes |
2 |
TimeAction to disable authentication of TCs after 15 minutes |
3 |
TimeAction to enable conv. encoding of TMs after after 15 minutes |
4 |
TimeAction to enablehe defined CriticalMonitor check after after 15 minutes |
This procedure, however, provides the Operator with instructions to set-up a NEW TimeAction via TCs.
Warning
The TimeAction component does not have a persisted configuration. Therefore, if a new TimeAction entry is set-up via TCs, it will be lost following an OBC reboot as the component’s default settings are loaded following boot.
Both the primary and failsafe images are equipped with TimeAction functionality, that can be accessed via the cdh.scheduling.TimeAction path.
Procedure
This procedure contains the following sub-procedures:
Note
Communication with the spacecraft is required for Sections B - D of this procedure.
A. Gathering the Required Inputs
Tip
TimeActions have been set up on multiple occasions throughout mission testing. See Section D of this Pass Plan for good examples of gathering the necessary data for TimeAction set ups that put GMOD into Idle Mode on entry to the SAA, and Experiment Mode on exit from the SAA.
A.1.
The Operator will first need to establish the following information:
The time of the TimeAction, in seconds (4 bytes) - this can either be absolute time, based on the current spacecraft OBT, or some relative time from when this TimeAction is eventually enabled. If an absolute time is going to be used, ensure the time is in the future w.r.t. the spacecraft’s OBT!
The ID of the action/parameter to be invoked/set (2 bytes) - this can be determined using the SCDB associated with the software image.
The row of the parameter to be set (2 bytes) - 0 if the parameter has no rows, or if an action is to be invoked.
The TimeAction repeat count (1 byte) - the amount of times the entry should be repeated. If 0, the entry will expire after the first execution. A non-zero value will cause the entry to repeat it’s execution after delaying by the
entryRepeatDelay(see the next bullet). As such, the repeat delay must be non-zero.The repeat delay, in seconds (4 bytes) - see the previous bullet.
The action argument length (1 byte) - the length of the argument required as an input to the action. 0 if no action argument is required or if a parameter is to be set.
The action argument (variable) - the argument required as an input to the action. These bytes are not set/not used if no action argument is required or if a parameter is to be set (i.e. if the action argument length = 0)
Whether the TimeAction should be ‘one shot’ or not (1 bit) -
oneShot: 0 = entry won’t disable after execution; 1 = entry is a one-shot and so will disable after execution.Whether the TimeAction time provided above is absolute or relative (1 bit) -
isRelative: 0 = time is absolute; 1 = time is relative.Whether the TimeAction is invoking an action or not (1 bit) -
isAction: 0 = entry is a parameter; 1 = entry is an action.
A.2.
The Operator should then use the above information as inputs to the following hexadecimal format:
B1B2B3B4 B5B6 B7B8 B9 B10B11B12B13 B14 B15 BX-Y, where:B1-B4 = 4-byte time.
B5-B6 = 2-byte action/parameter ID.
B7-B8 = 2-byte parameter row.
B9 = repeat count.
B10-B13 = repeat delay time.
B14 = 1-byte flag, where [LSB 3]=
oneShot, [LSB 4]=isRelativeand [LSB 5]=isAction. All other bits in this byte should be set as 0.B15 = 1-byte action argument length.
BX-Y = action argument if B15 > 0.
B. Setting Up the TimeAction Entry
Important
You are about to send the first TC of this procedure - Have you completed the ‘Start a Communication Pass’ procedure? A Communication Pass must be started prior to carrying out the operations planned for the pass. Don’t forget to open and set up the parameters/actions that will be used during the pass in MCS before the pass begins!
B.1.
To establish how many TimeActions are already configured on-board,
Querythecdh.scheduling.TimeAction.entryListPackedparameter.Take note of the TM (i.e. the number of TimeAction rows) returned from use in later steps.
TC Details |
|
MCS Operation |
|
Action/Param Name |
|
Data Expected with TC |
No |
TM Details |
|
Data Expected from TC |
TimeAction rows with data ( + ACK ) |
Data Size |
2 bytes; 11 bytes |
Data Info |
Number/rows of TimeActions already configured |
Allowed Value(s) |
0 - 512 (dec) |
B.2.
Setthecdh.scheduling.TimeAction.entryListPackedparameter with…First Row=Last Row= (number of rows from Step B.1), andResize ticked
… to the hexadecimal data format created in Section A (removing any spaces between the bytes!).
Warning
A NACK may be returned from the above TC. In this case, the Operator should proceed to the next step to verify that the TimeAction set-up has been successful so that this NACK can be ignored.
TC Details |
|
MCS Operation |
|
Action/Param Name |
|
Data Expected with TC |
|
Data Size |
4 bytes , 4 bytes , 15-19 bytes , 1 bit |
Data Info |
The first and last rows of the parameter/array to set + the new TimeAction data |
Allowed Value(s) |
0 - 511, 0 - 511 (dec), see Step A.2 |
Expected Value(s) |
|
TM Details |
|
Data Expected from TC |
No ( + ACK ) |
B.3.
Getthe following parameters withFirst Row=Last Row= (number of rows from Step B.1).In each case, confirm the TM returned matches that defined in Section A before proceeding:
cdh.scheduling.TimeAction.entryTimecdh.scheduling.TimeAction.entryIdcdh.scheduling.TimeAction.entryIsRelativecdh.scheduling.TimeAction.entryOneShotcdh.scheduling.TimeAction.entryRepeatDelaycdh.scheduling.TimeAction.entryRepeatCountcdh.scheduling.TimeAction.entryParamRowListcdh.scheduling.TimeAction.entryIdIsAction
B.4.
Also,
Getthe following parameters withFirst Row=Last Row= (number of rows from Step B.1).In each case, confirm that 0 is returned before proceeding:
cdh.scheduling.TimeAction.entryEnabledcdh.scheduling.TimeAction.entryExpiredcdh.scheduling.TimeAction.entryExecuted
C. Enabling the TimeAction Entry
Important
Only follow this section of the procedure if the Operator wishes to enable the TimeAction.
C.1.
If the TimeAction is configured to trigger at an absolute OBT rather than a relative time, skip ahead to Step C.2.
Else,
Invokethecdh.scheduling.TimeAction.restartRelativeEntriesaction with the action argument = number of rows from Step B.1.
TC Details |
|
MCS Operation |
|
Action/Param Name |
|
Data Expected with TC |
|
Data Size |
1 byte |
Data Info |
The index of the relative entry to restart |
Allowed Value(s) |
0 - 255 (dec) |
Expected Value(s) |
Number of rows from Step B.1. |
TM Details |
|
Data Expected from TC |
No ( + ACK ) |
C.2.
To enable the TimeAction,
Setthecdh.scheduling.TimeAction.entryEnabledparameter withFirst row=Last row= (number of rows from Step B.1) to 1.
TC Details |
|
MCS Operation |
|
Action/Param Name |
|
Data Expected with TC |
|
Data Size |
2 bytes, 2 bytes, boolean |
Data Info |
The first and last rows/indexes of the parameter to set + the desired |
Allowed Value(s) |
0 - 511, 0 - 511, 0 - 1 (dec) |
Expected Value(s) |
Number of rows from Step B.1, Number of rows from Step B.1, 1 |
TM Details |
|
Data Expected from TC |
No ( + ACK ) |
C.3.
Confirm the
Setin the previous step with aGet(i.e. confirm the value was set successfully).
D. Disabling the TimeAction Entry
Important
Only follow this section of the procedure if the Operator wishes to disable the TimeAction.
Note
It is only useful to follow the below steps if the TimeAction entry is still enabled (i.e. if the current OBT < the absolute OBT defined for the entry, or if the relative time since enabling the entry has not yet elapsed).
D.1.
To enable the TimeAction,
Setthecdh.scheduling.TimeAction.entryEnabledparameter withFirst row=Last row= (number of rows from Step B.1) to 0.
TC Details |
|
MCS Operation |
|
Action/Param Name |
|
Data Expected with TC |
|
Data Size |
2 bytes, 2 bytes, boolean |
Data Info |
The first and last rows/indexes of the parameter to set + the desired |
Allowed Value(s) |
0 - 511, 0 - 511, 0 - 1 (dec) |
Expected Value(s) |
Number of rows from Step B.1, Number of rows from Step B.1, 0 |
TM Details |
|
Data Expected from TC |
No ( + ACK ) |
D.2.
Confirm the
Setin the previous step with aGet(i.e. confirm the value was set successfully).
END OF PROCEDURE