EIR-OPS-013: Storage Channel Operations


Objective

To perform different operations related to the on-board storage channels.


Introduction

This procedure will guide the Operator through the different parameters and actions that can be used to work with the on-board storage channels.


Procedure

This procedure has the following sub-procedures:

Important

These sub-procedures have been grouped together in this procedure as they are all related to the on-board storage channels. However, each of the sub-procedures are standalone procedures that can be carried individually to achieve the objectives/assess the settings stated in the sub-procedure titles.

Note

A communication window is required for each of these sub-procedures.


A. Determine the No. of Rows in a Channel

A.1.

  • Prior to the pass, establish which storage channel ID you wish to perform this operation for.

  • This channel ID will be referred to as ‘ChID’ for the remainder of this section.

Tip

The ROW Google Sheet provides information on channel IDs for different data types.


Important

You are about to send the first TC of this procedure - Have you completed the EIR-OPS-003: 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 required before the pass starts!


A.2.

  • To determine how many rows of data are currently in a storage channel, Query the core.Storage.channelContent parameter with the Parameter index in block = ChID (dec).

TC Details

MCS Operation

Query

Action/Param Name

core.Storage.channelContent

Data Expected with TC

Yes

Data Size

4 bytes

Data Info

Parameter index in block

Allowed Value(s)

1 - 88 (dec)

Expected Value(s)

ChID (dec).

TM Details

Data Expected from TC

Number of rows in ChID ( + ACK )

Data Size

4 bytes

Data Info

Number of rows in the channel

Allowed Value(s)

0 - 65535 (dec)


A.3.

  • As an alternative approach or to verify the TM from the previous step, Get the core.Storage.numRows parameter with First row = Last row = ChID (dec).

TC Details

MCS Operation

Get

Action/Param Name

core.Storage.numRows

Data Expected with TC

Yes

Data Size

4 bytes, 4 bytes

Data Info

First row , Last row

Allowed Value(s)

1 - 88 (dec), 1 - 88 (dec)

Expected Value(s)

ChID (dec), ChID (dec)

TM Details

Data Expected from TC

Number of rows in ChID ( + ACK )

Data Size

4 bytes

Data Info

Number of rows in the channel

Allowed Value(s)

0 - 65535 (dec)



B. Determine if a Channel is Full

B.1.

  • Prior to the pass, establish which storage channel ID you wish to perform this operation for.

  • This channel ID will be referred to as ‘ChID’ for the remainder of this section.

Tip

The ROW Google Sheet provides information on channel IDs for different data types.


B.2.

  • To determine whether a channel is full, Get the parameter core.Storage.isFull with First row = Last row = ChID (dec).

  • If 0 is returned, that storage channel is not currently full.

  • Else, the channel is full.

TC Details

MCS Operation

Get

Action/Param Name

core.Storage.isFull

Data Expected with TC

Yes

Data Size

4 bytes, 4 bytes

Data Info

First row , Last row

Allowed Value(s)

1 - 88 (dec), 1 - 88 (dec)

Expected Value(s)

ChID (dec), ChID (dec)

TM Details

Data Expected from TC

isFull ( + ACK )

Data Size

Boolean

Data Info

1 = Full, 0 = Not Full

Allowed Value(s)

0 - 1

Note

For a full storage channel, if the channel is circular then any data written to the channel will result in the oldest data being erased from the channel. However, if the channel is linear, any attempt to write data to the channel will fail. This is explained in more detail in Section 3.4 Storage Channels & Downlink Logic .


B.3.

  • Different operations can be performed once a channel is full.

  • Depending on the desired outcome, the data stored in the channel can be downlinked and/or the channel can be ‘wiped’ of data as per Section C. Wipe a Storage Channel .



C. Wipe a Storage Channel

C.1.

  • Prior to the pass, establish which storage channel ID you wish to perform this operation for.

  • This channel ID will be referred to as ‘ChID’ for the remainder of this section.

Tip

The ROW Google Sheet provides information on channel IDs for different data types.


C.2.

  • To erase/wipe the contents of a storage channel, Invoke the action core.Storage.wipe with the action argument = ChID (dec).

Caution

This action will permanently erase the data in the defined storage channel. Therefore, ensure that the data in the channel is first downlinked following the procedure EIR-OPS-011: Downlink Data From Storage if the data is of importance prior to carrying out this TC.

TC Details

MCS Operation

Invoke

Action/Param Name

core.Storage.wipe

Data Expected with TC

Yes

Data Size

4 bytes

Data Info

The ID of the channel to wipe

Allowed Value(s)

1 - 88 (dec)

Expected Value(s)

ChID (dec)

TM Details

Data Expected from TC

No ( + ACK )


C.3.



E. Assign a Logger to a Channel

E.1.

  • Before assigning a logger to a storage channel, a channel that is not currently in use must be found. To do this, Get the parameter core.Storage.isClaimed with First row = 1 and Last row = 88 (i.e. the number of channels configured in the OBSW).

TC Details

MCS Operation

Get

Action/Param Name

core.Storage.isClaimed

Data Expected with TC

Yes

Data Size

4 bytes, 4 bytes

Data Info

First row , Last row

Allowed Value(s)

1-88 (dec), 1-88 (dec)

Expected Value(s)

1 (dec), 88 (dec)

TM Details

Data Expected from TC

isClaimed ( + ACK )

Data Size

List of booleans

Data Info

0 if channel not claimed

Allowed Value(s)

0-1 for each row of the parameter


E.2.

  • For each row/channel, core.Storage.isClaimed returns a boolean.

  • If 0 is returned, a channel is not claimed and can be used to uplink data to.

  • Therefore, from the TM returned in Step E.1, select an unclaimed channel, where core.Storage.isClaimed = 0, for use in the next steps.

  • This channel ID will be referred to as ‘ChID’ for the remainder of this section.


E.3.

  • Once ChID is identified, the Operator must also confirm that there is no existing data in that channel. To do this, Query the core.Storage.channelContent parameter with the Parameter index in block = ChID (dec).

  • If 0 (rows) is returned, proceed to the next step.

  • Else, there is data in the channel. Consult with the Software Engineer to determine how to proceed. Alternatively, return to Step E.1. to identify another unclaimed channel.

TC Details

MCS Operation

Query

Action/Param Name

core.Storage.channelContent

Data Expected with TC

Yes

Data Size

4 bytes

Data Info

Parameter index in block

Allowed Value(s)

1 - 88 (dec)

Expected Value(s)

ChID (dec).

TM Details

Data Expected from TC

Number of rows in the channel ( + ACK )

Data Size

4 bytes

Data Info

Number of rows in the channel

Allowed Value(s)

0 - 65535 (dec)


E.4.

  • To assign the desired Logger to ChID, Set the Logger’s cdh.logging.XXXXLogger.channelId parameter to ChID (dec), where XXXX = ADCS , HK , TED , etc.

TC Details

MCS Operation

Set

Action/Param Name

cdh.logging.XXXXLogger.channelId

Data Expected with TC

Yes

Data Size

2 bytes

Data Info

Channel ID the logger will write to

Allowed Value(s)

1-88 (dec)

Expected Value(s)

ChID (dec)

TM Details

Data Expected from TC

No ( + ACK )


E.5.

  • Confirm the Set in the previous step with a Get (i.e. confirm the value was set successfully).


E.6.

  • If the Operator wishes to enable this Logger, Set the Logger’s cdh.logging.XXXXLogger.enabled parameter to 1.

TC Details

MCS Operation

Set

Action/Param Name

cdh.logging.XXXXLogger.enabled

Data Expected with TC

Yes

Data Size

Boolean

Data Info

Enable (1) or disable (0) logging

Allowed Value(s)

0-1

Expected Value(s)

1

TM Details

Data Expected from TC

No ( + ACK )


E.7.

  • Confirm the Set in the previous step with a Get (i.e. confirm the value was set successfully).

Note

It can take up to ~1 minute for a logger to enable/disable.


END OF PROCEDURE