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 MOCKEDin adcs_io.c - Select communication protocol, in adcs_handler.c:
#define USE_UARTfor UART or#define USE_I2Cfor I2c. cdinto 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.