|
CTS-SAT-1-OBC-Firmware
|
#include "telecommand_exec/telecommand_parser.h"#include "telecommand_exec/telecommand_definitions.h"#include "telecommand_exec/telecommand_executor.h"#include "telecommand_exec/telecommand_types.h"#include "debug_tools/debug_uart.h"#include "timekeeping/timekeeping.h"#include "log/log.h"#include "transforms/arrays.h"#include "config/configuration.h"#include "littlefs/littlefs_helper.h"#include "comms_drivers/comms_tx.h"#include <stdio.h>#include <stdint.h>#include <string.h>#include <stdbool.h>
Functions | |
| uint8_t | TCMD_add_tcmd_to_agenda (const TCMD_parsed_tcmd_to_execute_t *parsed_tcmd) |
| Adds a telecommand to the agenda (schedule/queue) of telecommands to execute. | |
| uint16_t | TCMD_get_agenda_used_slots_count () |
| Gets the number of used slots in the agenda. | |
| int16_t | TCMD_get_next_tcmd_agenda_slot_to_execute () |
Finds the index into TCMD_agenda (slot_num) of the next telecommand to execute. | |
| static int8_t | TCMD_store_resp_to_file (const char *resp_fname, const char *response_output_buf, uint64_t timestamp_sent, const char args_str_no_parens[], uint8_t tcmd_idx, uint32_t duration_ms, uint8_t return_code) |
| Logs a message to a file. | |
| static uint8_t | TCMD_execute_parsed_telecommand_now (const uint16_t tcmd_idx, const char args_str_no_parens[], const uint64_t timestamp_sent, const char *tcmd_resp_fname, char *response_output_buf, uint16_t response_output_buf_size) |
| Executes a telecommand immediately, based on the minimum info required to execute a telecommand. | |
| 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. | |
| void | TCMD_agenda_delete_all () |
| Deletes all entries from the agenda. | |
| uint8_t | TCMD_agenda_delete_by_tssent (uint64_t tssent) |
Deletes a telecommand from the agenda by its tssent (timestamp sent) field. | |
| uint8_t | TCMD_agenda_fetch () |
| Fetches the active agendas. | |
| uint8_t | TCMD_agenda_delete_by_name (const char *telecommand_name) |
| Deletes all agenda entries with a telecommand name. | |
Variables | |
| uint32_t | TCMD_total_tcmd_queued_count = 0 |
| uint64_t | TCMD_latest_received_tcmd_timestamp_sent = 0 |
| uint16_t | TCMD_timestamp_sent_head = 0 |
| The head of the circular buffer of timestamps of telecommands that have been sent. | |
| uint64_t | TCMD_timestamp_sent_store [TCMD_TIMESTAMP_RECORD_SIZE] = {0} |
| The circular buffer of timestamps of telecommands that have been sent. | |
| TCMD_parsed_tcmd_to_execute_t | TCMD_agenda [TCMD_AGENDA_SIZE] |
| The agenda (schedule queue) of telecommands to execute. | |
| uint8_t | TCMD_agenda_is_valid [TCMD_AGENDA_SIZE] = {0} |
A flag indicating whether a given index in TCMD_agenda is valid (i.e., filled with a not-yet-executed command). | |
| uint8_t TCMD_add_tcmd_to_agenda | ( | const TCMD_parsed_tcmd_to_execute_t * | parsed_tcmd | ) |
Adds a telecommand to the agenda (schedule/queue) of telecommands to execute.
| parsed_tcmd | The parsed telecommand to add to the agenda. |
parsed_tcmd arg into the agenda. 

| void TCMD_agenda_delete_all | ( | ) |
Deletes all entries from the agenda.


| uint8_t TCMD_agenda_delete_by_name | ( | const char * | telecommand_name | ) |
Deletes all agenda entries with a telecommand name.
| telecommand_name | The name of the telecommand in the agenda to delete. (e.g, hello_world) |
LOG_message() before all returns. Argument is case-insensitive. 

| uint8_t TCMD_agenda_delete_by_tssent | ( | uint64_t | tssent | ) |
Deletes a telecommand from the agenda by its tssent (timestamp sent) field.
| tssent | The timestamp_sent value of the telecommand to delete. |
LOG_message() to log the deletion before all returns. 

| uint8_t TCMD_agenda_fetch | ( | ) |
Fetches the active agendas.


|
static |
Executes a telecommand immediately, based on the minimum info required to execute a telecommand.
| tcmd_idx | The index into TCMD_telecommand_definitions for the telecommand to execute. |
| args_str_no_parens | A cstring containing the arguments for the telecommand. Null-terminated. |
| timestamp_sent | The value of the @tssent field when the telecommand was received. |
| response_output_buf | A buffer to store the response from the telecommand. |
| response_output_buf_size | The size of the response_output_buf. |
tcmd_idx is out of bounds, otherwise the error code from the telecommand function. 

| 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.
| 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. |


| uint16_t TCMD_get_agenda_used_slots_count | ( | ) |
Gets the number of used slots in the agenda.

| int16_t TCMD_get_next_tcmd_agenda_slot_to_execute | ( | ) |
Finds the index into TCMD_agenda (slot_num) of the next telecommand to execute.
TCMD_agenda of the next telecommand to execute, or -1 if none are available/ready. 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. 

|
static |
Logs a message to a file.
| resp_fname | The name of the file to log to. |
| response_output_buf | The message to log. |


| TCMD_parsed_tcmd_to_execute_t TCMD_agenda[TCMD_AGENDA_SIZE] |
The agenda (schedule queue) of telecommands to execute.
| uint8_t TCMD_agenda_is_valid[TCMD_AGENDA_SIZE] = {0} |
A flag indicating whether a given index in TCMD_agenda is valid (i.e., filled with a not-yet-executed command).
| uint64_t TCMD_latest_received_tcmd_timestamp_sent = 0 |
| uint16_t TCMD_timestamp_sent_head = 0 |
The head of the circular buffer of timestamps of telecommands that have been sent.
| uint64_t TCMD_timestamp_sent_store[TCMD_TIMESTAMP_RECORD_SIZE] = {0} |
The circular buffer of timestamps of telecommands that have been sent.
| uint32_t TCMD_total_tcmd_queued_count = 0 |