CubeADCS firmware serves as the controller for ADCS control program (ACP) and bootloader. The functions developed in this repository are created based on the CubeADCS firmware manual. The functionalities can be categorized into 3 groups: Common, Bootloader, and ACP where each contain functions that could be telecommands, telemetries, or config messages. Please note that, in some cases, mainly telemetries, a more general functions were developed to prevent redundancy. To match the functions with their respective TC/TM in the manual, use the IDs in the header, the equipment handler API, or the comments.
To validate the functions without hardware, using Ceedling, I/O functionalities (in uart_i2c.c) have been mocked by CMOCK. So the frame that we anticipate is transceived through -currently I2C and UART- communications, has been given to test the logic of the code.
After installing ceedling:
- Set
#define MOCKED
in adcs_io.c - Select communication protocol, in adcs_handler.c:
#define USE_UART
for UART or#define USE_I2C
for I2c. cd
into ex2_adcs_software and run :
ceedling test:adcs_handler // if testing UART
ceedling test:adcs_handler_i2c // if testing I2C
NOTE: uart_i2c.c is implemented but not tested. It may need further modification when hardware testing is done.