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]= isRelative and [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, Query the cdh.scheduling.TimeAction.entryListPacked parameter.

  • Take note of the TM (i.e. the number of TimeAction rows) returned from use in later steps.

TC Details

MCS Operation

Query

Action/Param Name

cdh.scheduling.TimeAction.entryListPacked

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.

  • Set the cdh.scheduling.TimeAction.entryListPacked parameter with…

    • First Row = Last Row = (number of rows from Step B.1), and

    • Resize 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

Set

Action/Param Name

cdh.scheduling.TimeAction.entryListPacked

Data Expected with TC

First Row , Last Row , entryListPacked , resize = TRUE

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)

First Row = Last Row = (rows from Step B.1), entryListPacked = see Step A.2.

TM Details

Data Expected from TC

No ( + ACK )


B.3.

  • Get the following parameters with First 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.entryTime

    • cdh.scheduling.TimeAction.entryId

    • cdh.scheduling.TimeAction.entryIsRelative

    • cdh.scheduling.TimeAction.entryOneShot

    • cdh.scheduling.TimeAction.entryRepeatDelay

    • cdh.scheduling.TimeAction.entryRepeatCount

    • cdh.scheduling.TimeAction.entryParamRowList

    • cdh.scheduling.TimeAction.entryIdIsAction


B.4.

  • Also, Get the following parameters with First Row = Last Row = (number of rows from Step B.1).

  • In each case, confirm that 0 is returned before proceeding:

    • cdh.scheduling.TimeAction.entryEnabled

    • cdh.scheduling.TimeAction.entryExpired

    • cdh.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, Invoke the cdh.scheduling.TimeAction.restartRelativeEntries action with the action argument = number of rows from Step B.1.

TC Details

MCS Operation

Invoke

Action/Param Name

cdh.scheduling.TimeAction.restartRelativeEntries

Data Expected with TC

rows

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, Set the cdh.scheduling.TimeAction.entryEnabled parameter with First row = Last row = (number of rows from Step B.1) to 1.

TC Details

MCS Operation

Set

Action/Param Name

cdh.scheduling.TimeAction.entryEnabled

Data Expected with TC

First Row, Last Row, entryEnabled

Data Size

2 bytes, 2 bytes, boolean

Data Info

The first and last rows/indexes of the parameter to set + the desired entryEnabled to set

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 Set in the previous step with a Get (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, Set the cdh.scheduling.TimeAction.entryEnabled parameter with First row = Last row = (number of rows from Step B.1) to 0.

TC Details

MCS Operation

Set

Action/Param Name

cdh.scheduling.TimeAction.entryEnabled

Data Expected with TC

First Row, Last Row, entryEnabled

Data Size

2 bytes, 2 bytes, boolean

Data Info

The first and last rows/indexes of the parameter to set + the desired entryEnabled to set

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 Set in the previous step with a Get (i.e. confirm the value was set successfully).


END OF PROCEDURE