Go to the source code of this file.
◆ TCMD_AGENDA_SIZE
| #define TCMD_AGENDA_SIZE 750 |
◆ TCMD_TIMESTAMP_RECORD_SIZE
| #define TCMD_TIMESTAMP_RECORD_SIZE 750 |
Max number of tssent timestamp values that can be stored at a time (for unique telecommand tssent validation).
◆ TCMD_agenda_entry_state_enum_t
| Enumerator |
|---|
| TCMD_AGENDA_ENTRY_INVALID | |
| TCMD_AGENDA_ENTRY_VALID_AND_PENDING | |
| TCMD_AGENDA_ENTRY_EXECUTING | |
◆ TCMD_add_tcmd_to_agenda()
Adds a telecommand to the agenda (schedule/queue) of telecommands to execute.
- Parameters
-
| parsed_tcmd | The parsed telecommand to add to the agenda. |
- Returns
- 0 on success, 1 if the agenda is full.
- Note
- Performs a deep copy of the parsed_tcmd arg into the agenda.
◆ TCMD_execute_telecommand_in_agenda()
| uint8_t TCMD_execute_telecommand_in_agenda |
( |
const uint16_t | tcmd_agenda_slot_num, |
|
|
char * | response_output_buf, |
|
|
uint16_t | response_output_buf_size ) |
Executes a telecommand from the agenda immediately.
- Parameters
-
| tcmd_agenda_slot_num | The index into TCMD_agenda for the telecommand to execute. |
| response_output_buf | A buffer to store the response from the telecommand. |
| response_output_buf_size | The size of the response_output_buf. |
- Returns
- 0 on success, 253/254 if an error occurs in the callers, otherwise the error code from the telecommand function.
◆ TCMD_get_agenda_used_slots_count()
| uint16_t TCMD_get_agenda_used_slots_count |
( |
| ) |
|
Gets the number of used slots in the agenda (how many valid and pending telecommands).
- Returns
- The number of currently-filled slots in the agenda.
- Note
- This function is mostly intended for "system stats" telecommands and logging.
◆ TCMD_get_next_tcmd_agenda_slot_to_execute()
| int16_t TCMD_get_next_tcmd_agenda_slot_to_execute |
( |
| ) |
|
Finds the index into TCMD_agenda (slot_num) of the next telecommand to execute.
- Returns
- The index into TCMD_agenda of the next telecommand to execute, or -1 if none are available/ready.
- Note
- This function will return the slot_num which has the lowest timestamp_to_execute value. If multiple slots have the same timestamp_to_execute, the lowest slot_num will be returned. Thus, based on the insertion order, during tsexec ties, telecommands will be executed in the order they were added to the agenda (received). Edge case: When wrapping around the circular buffer (at 750 telecommands), it is not perfectly guaranteed that tsexec ties will run in the order they were inserted.
◆ TCMD_log_pending_agenda_entries()
| uint8_t TCMD_log_pending_agenda_entries |
( |
| ) |
|
Fetches the active agendas and logs each as a JSONL entry.
- Returns
- 0 on success, 1 if there are no active agendas.
◆ TCMD_agenda
The agenda (schedule queue) of telecommands to execute.
◆ TCMD_agenda_is_valid
◆ TCMD_agenda_last_used_slot
| uint16_t TCMD_agenda_last_used_slot |
|
extern |
Index into TCMD_agenda and TCMD_agenda_is_valid of the last used slot.
The next telecommand to entered into the agenda will fill this slot, or will go into the first free slot after this one.
◆ TCMD_latest_received_tcmd_timestamp_sent
| uint64_t TCMD_latest_received_tcmd_timestamp_sent |
|
extern |
◆ TCMD_total_tcmd_queued_count
| uint32_t TCMD_total_tcmd_queued_count |
|
extern |