
Repository for CDMS code
Dependencies: SimpleDMA mbed-rtos mbed eeprom
Fork of COM_MNG_TMTC_SIMPLE by
Diff: FMS_functions.h
- Revision:
- 207:28a07943dded
- Parent:
- 206:fba4aeebf004
- Child:
- 208:d14b1c783736
--- a/FMS_functions.h Thu Jun 30 14:00:33 2016 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,187 +0,0 @@ -#include "CDMS_HK.h" - -uint8_t ACK_CODE; - -void CDMS_standby_prcs(); -void CDMS_run_prcs(); -void CDMS_rst_pwr(); -void CDMS_swch_pwr_on(); -void CDMS_swch_pwr_off(); -void CDMS_rst_hk_counter(); -void CDMS_rd_rtc(); -void CDMS_mng_rtc(); -void CDMS_rd_sd_hk(); - -extern uint8_t PL_STANDBY_STATE; -extern bool STANDBY_PL; -extern uint8_t CDMS_HK_STANDBY_STATE; -extern bool STANDBY_CDMS_HK; - -extern bool SD_RD_ERROR; - -extern uint8_t BAE_STATUS; -extern uint8_t PL_STATUS; -extern uint8_t SD_STATUS; - -// These are defined in CDMS_HK.h Please check -#define DEVICE_ENABLED 0x00; -#define DEVICE_POWERED 0x01; -#define DEVICE_OC_FAULT 0x02; -#define DEVICE_DISABLED 0x03; -DigitalOut SD_SW_EN_DS (PIN97); -DigitalOut BAE_SW_EN_DS (PIN47); - - -void CDMS_standby_prcs() // FID = 0x40 -{ - if(PL_STANDBY_STATE = 0x00) - STANDBY_PL = 0; - if(PL_STANDBY_STATE = 0x01) - STANDBY_PL = 1; - if(CDMS_HK_STANDBY_STATE = 0x00) - STANDBY_CDMS_HK = 0; - if(CDMS_HK_STANDBY_STATE = 0x01) - STANDBY_CDMS_HK = 1; - if(RCV_SC_STANDBY_STATE = 0x00) - RCV_SC = 0; - if(RCV_SC_STANDBY_STATE = 0x01) - RCV_SC = 1; - ACK_CODE = 0xC0; - // Generate the TM -} - -void CDMS_run_prcs() // FID = 0x0_ -{ - -} - -void CDMS_rst_pwr(uint8_t FID) // FID = 0x3_ -{ - switch(FID){ - case 0x31 : //power reset SD - SD_SW_EN_DS = 0; //switching OFF - wait_ms(10); - SD_SW_EN_DS = 1; //switching ON - ACK_CODE = 0xA0; - // Generate TM - } -} - -void CDMS_swch_pwr_on(uint8_t FID) // FID = 0x1_ -{ - if(FID = 0x14) - { - PL_STATUS = DEVICE_ENABLED; - ACK_CODE = 0xA0; - // Generate TM - } - else if(FID = 0x13) - { - BAE_STATUS = DEVICE_POWERED; - BAE_SW_EN_DS = 1; //Power ON BAE - ACK_CODE = 0xA0; - // Generate TM - } - else if(FID = 0x11) - { - SD_STATUS = DEVICE_POWERED; - SD_SW_EN_DS = 1; //Power ON SD - FCTN_CDMS_SD_INIT(); - ACK_CODE = 0xA0; - // Generate TM - } - else - { - ACK_CODE = 0x02; - // Generate TM - } -} - -void CDMS_swch_pwr_off(uint8_t FID) // FID = 0x2_ -{ - if(FID = 0x24) - { - PL_SW_EN_DS = 0; //switching OFF PL - PL_STATUS = DEVICE_DISABLED; - ACK_CODE = 0xA0; - // Generate TM - } - else if(FID = 0x23) - { - BAE_SW_EN_DS = 0; //Switching OFF BAE - BAE_STATUS = DEVICE_DISABLED; - ACK_CODE = 0xA0; - // Generate TM - } - else if(FID = 0x21) - { - SD_SW_EN_DS = 0; //Switching OFF SD - SD_STATUS = DEVICE_DISABLED; - FCTN_CDMS_SD_INIT(); - ACK_CODE = 0xA0; - // Generate TM - } - else - { - ACK_CODE = 0x02; - // Generate TM - } -} - -void CDMS_rst_hk_counter() // FID = 0x41 -{ - -} - -void CDMS_rd_rtc() // FID = 0xF1 -{ - uint8_t time = FCTN_CDMS_RD_RTC(); - // Check if time is read properly - if( /*if error in reading*/ ) - { - ACK_CODE = 0x88; - // Generate TM - } - else if( /*if Time is read properly*/ ) - { - ACK_CODE = 0xA0; - // Generate TM - } -} - -void CDMS_mng_rtc(uint64_t time) -{ - -} - -void CDMS_rd_sd_hk() -{ - uint8_t sd_statusbits[64]; - uint8_t *p; - int i; - if(SD_SW_EN_DS != DEVICE_POWERED) - { - ACK_CODE = 0x89; - SD_RD_ERROR = 1; - //Generate TM - } - else - { - p = disk_read_statusbits(); - if(p != NULL) - { - for(i = 0; i<64; i++) - sd_statusbits[i] = *(p + i); - SD_RD_ERROR = 0; - ACK_CODE = 0xA0; - // Generate TM - } - else - { - ACK_CODE = 0x89; - SD_RD_ERROR = 1; - //Generate TM - } - } -} -