Skip to main content

Module Payload Queue

Introduction

The module expects to be powered continuously. It is designed to minimise current draw by maximising time in the sleep state. The uninterrupted power is important for maintaining the internal time and schedule of satellite passes and using that information to transmit at the correct times.

info

The illustrations are not yet compatible with dark mode. Please use light mode.

Queueing and sending messages

The Astronode S message transmit queue has 8 slots available for messages. Each message can contain 1-160 bytes payload and optional geolocation data, see Uplink message.

The queue works in a First-In-First-Out (FIFO) manner:

img

With the Payload Enqueue Request command PLD_ER, a new message is stored on top of the queue:

img

With every other Payload Enqueue Request, a new message is stored on top of the queue, shifting older messages:

img

When all 8 slots contain a message, and the Payload Enqueue Request is called again, the new message will not be stored, and the Astronode S returns a BUFFER_FULL error :

img

On next contact with a satellite, messages are sent to the satellite by sending the oldest message first:

img

When loosing contact with the satellite, a message may have been sent partially only. The remaining parts of the message (fragments) stay in the queue until the next satellite contact:

img

Deleting queued messages

With the Dequeue Request command PLD_DR, the oldest message will be removed from the queue and deleted:

img

With the Free command PLD_FR, the entire queue will be cleared, and all contained messages deleted:

img

The Astronode S command receive queue has a single slot for either an 8byte or a 40byte command:

img

Once a command queued in the Astrocast Data Management is forwarded to the satellites, the Astronode S will receive the command the next time it transmits a message to a satellite. The command is then available in the queue and the Command Available Bit set to 1 in the Event Register. The Bit can be checked with the Event Register Read Command EVT_RR. The Command Read Request CMD_RR will then return the received command:

img

caution

As long as a device is not sending any message, it will not receive any command.

If the first command has not been cleared yet on receiving a second one, the first one will be discarded, and the second command placed in the queue:

img

note

Reading the Event Register and reading queued commands before sending messages can help avoid losing incoming commands

To clear the command queue, use the Command Clear Request command CMD_CR. The command will be removed from the queue and deleted:

img

Uplink payloads are acknowledged.

In the satellite context, acknowledgement confirms that the messages have been received by the satellite. There may be an addition delay in transmission from the satellite to the ground station, so once the acknowledgement is available on the module, there may be a delay in receiving it in the Astrocast portal.

In the Wi-Fi context, acknowledgement confirms that the message has been received by the Astrocast backend and should be available almost immediately in the Astrocast portal.

The event pin is used to notify the asset of a pending notification (acknowledgement available or module reset).

When an acknowledgement is available on the module, the module will set the event pin high. The asset may detect this and query which message has been acknowledged. Once the asset has queried the acknowledgement and confirmed it, the message life cycle on the module is complete and it is deleted.

It is also possible to set the module not to indicate acknowledgements. In this case, as soon as the ack is received by the module, the message is deleted.

Acknowledgments may be presented to the asset out of order. i.e. An older message may be acknowledged before a newer one, even though the asset would attempt to send the newer message first.