/******************************************************************************* * モジュール名称 :Application Header * * モジュールラベル :app_core.h * * タスク区分 :MDP-コア部 ヘッダ * * 機能 :define/Struct/Variable/Prototype * * 使用上の注意 :特になし * * 作成日・作成者 :2018/05/21 Y.K. * *******************************************************************************/ #ifndef _APP_CORE_H_ #define _APP_CORE_H_ // #define _APP_RDN_ // ****RDN**** // #define _APP_DMY_ // ****DMY**** // ------ VER-NO ------ #ifndef _APP_RDN_ #define Gd_Ver 0x2 #endif #ifdef _APP_RDN_ #define Gd_Ver 0xA #endif // ---------------------------- #include #include // ---------------------------- #include "dpu_api.h" #include "app_common.h" // ---------------------------- // ********************************************************* // * DEFINITIONS * // ********************************************************* // ----------------------------------------- // Communication // ----------------------------------------- // *** HK TLM : APID Cmd/Tlm(1bit) TlmID(2bits) NodeID(5bits) Ext(3bits) #define Gd_APIDhk_DPU1 0x619 // 01(Tlm) 10(HK) 03(MDP-DPU1) 000 0110 0001 1001 #define Gd_APIDhk_DPU2 0x621 // 04(MDP-DPU2) #define Gd_APIDhk_MEA1 0x628 // 05(MPPE-MEA1) #define Gd_APIDhk_MEA2 0x630 // 06(MPPE-MEA2) #define Gd_APIDhk_MIA 0x638 // 07(MPPE-MIA) #define Gd_APIDhk_MSA 0x640 // 08(MPPE-MSA) #define Gd_APIDhk_HEPE 0x648 // 09(MPPE-HEPe) #define Gd_APIDhk_HEPI 0x650 // 0A(MPPE-HEPi) #define Gd_APIDhk_ENA 0x658 // 0B(MPPE-ENA) #define Gd_APIDhk_MGFO 0x660 // 0C(MGF-o) #define Gd_APIDhk_MGFI 0x668 // 0D(MGF-i) #define Gd_APIDhk_MDM 0x670 // 0E(MDM) #define Gd_APIDhk_MSAS 0x678 // 0F(MSASI) #define Gd_APIDhk_EWO 0x680 // 10(PWI-EWO) #define Gd_APIDhk_SOR 0x690 // 12(PWI-SORBET) #define Gd_APIDhk_MEF 0x698 // 13(PWI-MEFISTO) #define Gd_APIDhk_MWE 0x6A0 // 14(MAST/WPT-E) // *** TLM : APID Cmd/Tlm(1bit) TlmID(2bits) NodeID(5bits) Ext(3bits) #define Gd_APID_DPU1 0x519 // 01(Tlm) 01(TLM) 03(MDP-DPU1) 000 0110 0001 1001 #define Gd_APID_DPU2 0x521 // 04(MDP-DPU2) #define Gd_APID_MEA1 0x528 // 05(MPPE-MEA1) #define Gd_APID_MEA2 0x530 // 06(MPPE-MEA2) #define Gd_APID_MIA 0x538 // 07(MPPE-MIA) #define Gd_APID_MSA 0x540 // 08(MPPE-MSA) #define Gd_APID_HEPE 0x548 // 09(MPPE-HEPe) #define Gd_APID_HEPI 0x550 // 0A(MPPE-HEPi) #define Gd_APID_ENA 0x558 // 0B(MPPE-ENA) #define Gd_APID_MGFO 0x560 // 0C(MGF-o) #define Gd_APID_MGFI 0x568 // 0D(MGF-i) #define Gd_APID_MDM 0x570 // 0E(MDM) #define Gd_APID_MSAS 0x578 // 0F(MSASI) #define Gd_APID_EWO 0x580 // 10(PWI-EWO) #define Gd_APID_SOR 0x590 // 12(PWI-SORBET) // *** HK: Category ID #define Gd_CAThk_DPU1 32 #define Gd_CAThk_DPU2 32 #define Gd_CAThk_MEA1 33 #define Gd_CAThk_MEA2 33 #define Gd_CAThk_MIA 33 #define Gd_CAThk_MSA 33 #define Gd_CAThk_HEPE 34 #define Gd_CAThk_HEPI 34 #define Gd_CAThk_ENA 35 #define Gd_CAThk_MGFO 36 #define Gd_CAThk_MGFI 36 // #define Gd_CAThk_MDM 37 #define Gd_CAThk_MSAS 38 #define Gd_CAThk_EWO 39 #define Gd_CAThk_SOR 39 #define Gd_CAThk_MEF 40 // 39 #define Gd_CAThk_MWE 40 // *** OneShot-HK: Category ID #define Gd_CATos_MDP 41 #define Gd_CATos 42 // *** Mission TLM: Category ID // norm #define Gd_CAT_ENA 44 #define Gd_CAT_MDM 45 #define Gd_CATa_MSAS 46 // L #define Gd_CATb_MSAS 47 // M // // L #define Gd_CATl_DPU1 50 // 0x32 #define Gd_CATl_DPU2 50 #define Gd_CATl_MEA1 51 #define Gd_CATl_MEA2 51 #define Gd_CATl_MIA 51 #define Gd_CATl_MSA 51 #define Gd_CATl_HEPE 52 #define Gd_CATl_HEPI 52 #define Gd_CATl_MGFO 53 #define Gd_CATl_MGFI 54 #define Gd_CATl_EWOE 55 #define Gd_CATl_EWOB 56 #define Gd_CATl_EFD 57 #define Gd_CATl_AM2P 58 #define Gd_CATl_SOR 59 // // M #define Gd_CATm_DPU1 60 // 0x3C #define Gd_CATm_DPU2 60 #define Gd_CATm_MEA1 61 #define Gd_CATm_MEA2 61 #define Gd_CATm_MIA 61 #define Gd_CATm_MSA 61 #define Gd_CATm_HEPE 62 #define Gd_CATm_HEPI 62 #define Gd_CATm_MGFO 63 #define Gd_CATm_MGFI 64 #define Gd_CATm_EWOE 65 #define Gd_CATm_EWOB 66 #define Gd_CATm_EFD 67 #define Gd_CATm_AM2P 68 #define Gd_CATm_SOR 69 // // H (0:70 1:80 2:90 3:100 4:110 5:120) #define Gd_CATh_DPU1 70 // [0], [1]-[5] 0x46 0x50 0x5A 0x64 0x6E 0x78 #define Gd_CATh_DPU2 70 // [0], [1]-[5] 0x46 #define Gd_CATh_MEA1 71 // [0], [1]-[5] #define Gd_CATh_MEA2 71 // [0], [1]-[5] #define Gd_CATh_MIA 71 // [0], [1]-[5] #define Gd_CATh_MSA 71 // [0], [1]-[5] #define Gd_CATh_HEPE 72 // [0], [1]-[5] #define Gd_CATh_HEPI 72 // [0], [1]-[5] #define Gd_CATh_MGFO 73 // [0], [1]-[5] #define Gd_CATh_MGFI 74 // [0], [1]-[5] #define Gd_CATh_EWOE 75 // [0], [1]-[5] #define Gd_CATh_EWOB 76 // [0], [1]-[5] #define Gd_CATh_EFD 77 // [0], [1]-[5] // #define Gd_CATh_AM2P 78 // [0] // *** comment out *** // ********************************************************* // * VARIABLES - DEFINITIONS * // ********************************************************* extern int Gi_SizeBlk [0x13]; // (no in DPU-HK) extern unsigned short Gus_SizePac [0x13]; // (no in DPU-HK) // extern unsigned short Gus_pacApid [0x13]; // (no in DPU-HK) extern unsigned char Guc_pacCatL [0x13]; // (no in DPU-HK) extern unsigned char Guc_pacCatM [0x13]; // (no in DPU-HK) extern unsigned char Guc_pacCatH [0x11]; // (no in DPU-HK) extern unsigned char Guc_pacCatHk [0x15]; // (no in DPU-HK) extern unsigned char Guc_pacCatOs [0x15]; // (no in DPU-HK) extern unsigned short Gus_pacApidHk[0x15]; // (no in DPU-HK) extern unsigned char Guc_CatType [96]; // Category Type: 32-127 // ********************************************************* // * VARIABLES - PARAMETERS * // ********************************************************* // ---------------------------- // Operation Status // ---------------------------- extern unsigned char Guc_dpuNo; // 0:DPU1 1:DPU2 (1bit) extern unsigned char Guc_dpuRdn; // 0:norm 1:RedundancyInit 2:RedundancyStart (2bit) extern unsigned char Guc_WDTena; // 0:DIS 1:ENA (1bit) // ---------------------------- // DMA // ---------------------------- extern volatile int Gi_dmaBusyTask; // (NodeId (b7-3) + Block/Packet(b2) + DataId (b0-1)) extern volatile int G2i_dmaBusy; // (no in DPU-HK) 0:norm 1:Busy (1bit) extern volatile int G3i_dmaBusy; // (no in DPU-HK) 0:norm 1:Busy (1bit) extern volatile int G13i_dmaBusy; // (no in DPU-HK) 0:norm 1:Busy (1bit) extern volatile int G4i_dmaBusy; // (no in DPU-HK) 0:norm 1:Busy (1bit) extern volatile int G14i_dmaBusy; // (no in DPU-HK) 0:norm 1:Busy (1bit) extern volatile int G5i_dmaBusy; // (no in DPU-HK) 0:norm 1:Busy (1bit) extern volatile int Gi_shareStatus; // extern int Gi_shareBusy; // 0:norm 1:Busy (1bit) // ---------------------------- // Telemetry & Cmd // ---------------------------- extern unsigned char Guc_tlmCount[0x60]; // TLM Counter CAT-ID 0x20-0x7F [欠番:43,48,49,79,88-89,98-99,108-109,118-119] extern unsigned int Gui_tlmTI [0x60]; // TLM TI CAT-ID 0x20-0x7F [欠番:43,48,49,79,88-89,98-99,108-109,118-119] extern volatile int Gi_tlmBusyTask; // TLM busy (3B: 0x*00=DR-ID 0x0**=HeadID) /* extern int G2i_tlmBusy; // (no in DPU-HK) 0:norm 1:Busy (1bit) extern int G3i_tlmBusy; // (no in DPU-HK) 0:norm 1:Busy (1bit) extern int G13i_tlmBusy; // (no in DPU-HK) 0:norm 1:Busy (1bit) extern int G4i_tlmBusy; // (no in DPU-HK) 0:norm 1:Busy (1bit) extern int G14i_tlmBusy; // (no in DPU-HK) 0:norm 1:Busy (1bit) extern int G5i_tlmBusy; // (no in DPU-HK) 0:norm 1:Busy (1bit) */ // extern volatile int Gi_cmdBusy; // (no in DPU-HK) 0:norm 1:Busy (1bit) // ---------------------------- // Application Status // ---------------------------- extern unsigned int Gui_hkApp_counter [7]; // counter (1B) extern unsigned short Gus_hkApp_overflow[7]; // overflow (1B) extern unsigned int Gui_hkApp_time [7]; // TI (LSB:31.25ms) (4B) extern unsigned int Gui_hkApp_load [7]; // (1B[8sec,LSB=31.25ms], APP04:1B[32min,LSB=8sec] APP05:2B[145h,LSB=8sec]) extern unsigned int Gui_hkApp_loadPeak[7]; // (1B[8sec,LSB=31.25ms], APP04:1B[32min,LSB=8sec] APP05:2B[145h,LSB=8sec]) extern unsigned char Guc_hkApp_loadNID [0x13]; // extern unsigned char Guc_hkApp_loadNIDmax [0x13]; // extern unsigned char Guc_hkApp_loadNID2 [0x15]; // extern unsigned char Guc_hkApp_loadNIDmax2[0x15]; // extern unsigned char Guc_hkApp_who [7]; // who is? (0x00-0x17) extern unsigned char Guc_hkApp_where [7]; // where is? (0x00-0xFF) // extern unsigned int Gui_hkApp_load2 [2]; // ***TMP: 0-APP03 1-APP13*** (1B[8sec,LSB=31.25ms], APP04:1B[32min,LSB=8sec] APP05:2B[145h,LSB=8sec]) extern unsigned char Guc_hkApp_who2 [2]; // ***TMP: 0-APP03 1-APP13*** who is? (0x00-0x17) // extern unsigned char Guc_hkApp_ID[15]; // ********************************************************* // * Global Variables - STATUS * // ********************************************************* // ---------------------------- // <<<< APP01 >>>> // ---------------------------- // CMD Buffer #define Gd_CMDBUFF_SIZE 266 // CMD-Buffer : size ****Changed for FM (100804)**** #define Gd_CMDBUFF_NO 0x20 // CMD-Buffer : number ****Changed (130516: by MSASI) **** typedef struct { unsigned char uc_buff[Gd_CMDBUFF_NO][Gd_CMDBUFF_SIZE]; // CMD-Buffer (266B) int i_size [Gd_CMDBUFF_NO]; // (no in DPU-HK) CMD Size } CMD_BUFF; extern CMD_BUFF Gt_cmdBuff; typedef struct { unsigned char uc_NumBuf; // Stored CMD Num (5bit < d_CMDBUFF_NO = 0x0F) unsigned char uc_GetCount; // Get Counter (1B: 00-FF) unsigned char uc_GetErr; // Get Error (2bit b1:Size-Overflow b2:Buff-Overflow) unsigned char uc_ExeCount; // Exe Counter (1B: 00-FF) unsigned int ui_ExeErr; // Exe Error (2bit+2B b1:Size-Short b2:Non-NodeID FFFF*:each task error) // unsigned char uc_NID; // Node-ID (1B: <0x15) unsigned int ui_CntlID; // Cntl-ID (2B) // unsigned char uc_Ans; // CMD Answer (1B 00-FF) unsigned int ui_ExeTime; // Exec TI (4B LSB:31.25msec) } CMD_DMC; extern CMD_DMC Gt_cmdDMC[2]; // MSASI: Mission Data Collect --- OFF Counter extern volatile unsigned char Guc_MSAS_BufClct; // MSASI: Collect Spin length (1B: 00-FF[17min]) // Dummy TLM extern volatile unsigned char Guc_Spec_Code; // 0-F (0: OFF 1:HK 2:OneShot 4:L/M 8:H) #ifdef _APP_DMY_ extern volatile unsigned int Gui_Spec_Code_TI; // DUMMY: TI-start #endif // _APP_DMY_ // DPU1-2 communication ENA/DIS //extern volatile int Gi_DpuCom_Ena; // DPU-Communication: 1:ENA 0:DIS // ---------------------------- // <<<< APP02 >>>> - HK (start) // ---------------------------- extern unsigned char Guc_HK_repEna; // HK Rep ENA/DIS (1bit) extern unsigned char Guc_HK_repInt [0x15]; // HK Interval (1B) extern unsigned char Guc_HK_OneShot[0x15]; // HK OneShot ENA/DIS (1bit) extern unsigned char Guc_dpuHkMode; // HK Mode CHK/NML (1bit) extern unsigned char Guc_dpuSunMode; // (no in DPU-HK) SunPulse-mode // ---------------------------- // <<<< APP03/04 >>>> - Mission TLM L/M (start) // ---------------------------- extern unsigned char Guc_TLMm_enadis; // TLM-LM Dump: ENA/DIS (1bit) // ---------------------------- // <<<< APP05 >>>> - Mission TLM H (start) // ---------------------------- // TLMH-dump setting extern unsigned char Guc_TLMh_enadis [0x11]; // TLM-H Dump: ENA/DIS (1bit) //extern unsigned char Guc_TLMh_enadis0[2]; // DUMP PI 1B // extern int Gi_TLMh_BusyHeadId [3]; // HeadID extern unsigned char Guc_TLMh_drID [3]; // DR ID [0:CAL etc 1-5:Sync Trigger] extern unsigned int Gui_TLMh_TIstart [3]; // TI - Dump Start (FFFF: from OLDEST 0000: from LATEST) extern unsigned short Gus_TLMh_TIlen [3]; // TI - Dump Length (0000:1-packet 0001:1-block) extern unsigned int Gui_TLMh_TIdump_start0[3]; // TI start 3B extern unsigned int Gui_TLMh_TIdump_end0 [3]; // TI end 3B // // Trigger setting CMD: // MD?U_TLM_H_TRG_SET (B1:Score-LEN) (B2:Score-th) (B3-4:Para-1) (B5-6:Para-2) (B7-8:Para-3) (B9-10:Para-4) extern unsigned char Guc_TLMh_ScoreLen; // (B1:Score-LEN) extern unsigned char Guc_TLMh_ScoreTh; // (B2:Score-th) extern unsigned char Guc_TLMh_trgTh[4]; // (B3-4:Para-1) (B5-6:Para-2) (B7-8:Para-3) (B9-10:Para-4) extern unsigned char Guc_TLMh_trgID[4]; // (B3-4:Para-1) (B5-6:Para-2) (B7-8:Para-3) (B9-10:Para-4) extern unsigned char Guc_TLMh_trgID_num; // Trigger target // MD?U_TLM_H_TRG_STRT (B1:SEL-DPU1) (B2:SEL-DPU2) (B3:DR-ID) (B4:TI-PRE) (B5:TI-LEN) extern unsigned char Guc_TLMh_DrNum; // ****CMD to another DPU**** extern unsigned short Gus_TLMh_TIstart; // ****CMD to another DPU**** extern unsigned short Gus_TLMh_TIlength; // ****CMD to another DPU**** extern unsigned char Guc_TLMh_storeId; // ****CMD to another DPU**** // extern unsigned char Guc_TLMh_storeId1; // (B1:SEL-DPU1) extern unsigned char Guc_TLMh_storeId2; // (B2:SEL-DPU2) extern unsigned char Guc_TLMh_storeDrId; // (B3:DR-ID) extern unsigned char Guc_TLMh_storeDrOvw; // (B3:DR-ID) extern unsigned char Guc_TLMh_storeTimePre; // (B4:TI-PRE) extern unsigned char Guc_TLMh_storeTimeLen; // (B5:TI-LEN) // DR Trigger Status extern unsigned char Guc_TLMh_DrEmpty[6]; // Empty (0:empty) extern unsigned char Guc_TLMh_DrOvw [6]; // Ovw (1:Ovw-ENA) extern unsigned char Guc_TLMh_DrWrite[6]; // DR-STATUS Write (1:write) extern unsigned int Gui_TLMh_DrTI [6]; // Start TI of the data extern unsigned int Gui_TLMh_DrScore[6]; // SCORE // Trigger Status extern unsigned int Gui_TRG_TiStart; // Triggered TI-start extern unsigned int Gui_TRG_TiEnd; // TI-end extern unsigned int Gui_TRG_ScoreTotal; // TI-scoreTotal extern unsigned short Gus_TRG_ScoreTotal; // TI-scoreTotal - HK extern unsigned int Gui_TRG_Score; // TI-score extern unsigned int Gui_TRG_TiLAST; // ---------------------------------------- // * Global Variables - JPEG Table // ---------------------------------------- // extern M_T_COMP_PARAM Gt_compParam08bit; // --- // ********************************************************* // * VARIABLES - WORK AREA * // ********************************************************* // ------------------ // --- TLM buffer --- // ------------------ extern unsigned char G2uc_tlm [Gd_dataPacLen]; // For CORE only extern unsigned char G3uc_tlm [Gd_dataPacLen]; // For CORE only extern unsigned char G13uc_tlm [Gd_dataPacLen]; // For CORE only extern unsigned char G4uc_tlm [Gd_dataPacLen]; // For CORE only extern unsigned char G14uc_tlm [Gd_dataPacLen]; // For CORE only extern unsigned char G5uc_tlm [Gd_dataPacLen]; // For CORE only // ------------------------- // --- Compression: MATH --- // ------------------------- typedef struct { short totals [258]; // 00000204 unsigned int counts [256]; // 00000400 unsigned char scaled_counts[256]; // 00000100 unsigned short low_count; unsigned short high_count; unsigned short scale; unsigned short code; unsigned short low; unsigned short high; int underflow_bits; // unsigned char mask; int rack; int out_size; } MATH; extern MATH G2t_math; extern MATH G3t_math; extern MATH G4t_math; extern MATH G13t_math; extern MATH G14t_math; extern MATH G5t_math; // -------------------------- // --- Compression: Arith --- // -------------------------- #define d_comp_MAXIMUM_SCALE 16383 // Maximum allowed frequency count #define d_comp_END_OF_STREAM 256 // The EOF symbol extern short G3s_arithTotals[ d_comp_END_OF_STREAM ][ d_comp_END_OF_STREAM + 2 ]; extern short G5s_arithTotals[ d_comp_END_OF_STREAM ][ d_comp_END_OF_STREAM + 2 ]; extern int G3i_arithBusy; // 0:norm 1:Busy (1bit) extern int G5i_arithBusy; // 0:norm 1:Busy (1bit) // ------------------------- // --- Compression: JPEG --- // ------------------------- /* extern unsigned short G2us_tlm [Gd_dataPacLen]; // For CORE only extern unsigned short G3us_tlm [Gd_dataPacLen]; // For CORE only extern unsigned short G13us_tlm [Gd_dataPacLen]; // For CORE only extern unsigned short G4us_tlm [Gd_dataPacLen]; // For CORE only extern unsigned short G14us_tlm [Gd_dataPacLen]; // For CORE only extern unsigned short G5us_tlm [Gd_dataPacLen]; // For CORE only */ // ********************************************************* // * 共有関数 [in app_core.c] * // ********************************************************* extern void app_TRG_reset ( unsigned char, int ); extern void app_TRG1_ScoreCalc ( void ); extern void app_TRG2_ScoreCalc ( void ); extern int app_TRG_ScoreAnalysis ( void ); extern int app_TRG_ScoreDumpStart( void ); extern void app_TRG_ScoreDumpStart_another( unsigned char, unsigned char, unsigned short, unsigned short); extern void app_TRG_cntl ( unsigned char, unsigned char, unsigned char, unsigned short, unsigned short ); // extern void app_START ( unsigned char, unsigned int * ); extern void app_END ( unsigned char, unsigned int * ); extern unsigned int app_MONITOR ( unsigned char, unsigned char, unsigned int, unsigned int * ); // ********************************************************* // * 共有関数 [in app_common_comp.c] * // ********************************************************* // =========================================================================== // app_CompMath **** 算術符号圧縮 0th order **** // app_ArithMath **** 算術符号圧縮 1st order **** // [Input/Output] unsigned char uc_data [0x1000 max] Input Data --> Output Data // [return] int Data size >0: compressed // 0: non-compressed (larger than input) // -1: non-compressed (error) // =========================================================================== extern int app_CompMath ( unsigned char *, unsigned char *, int, MATH * ); extern int app_CompArith ( unsigned char *, unsigned char *, int, short G3s_comp_totals[ d_comp_END_OF_STREAM ][ d_comp_END_OF_STREAM + 2 ] ); // ---------------- // app01 // ---------------- extern unsigned char app01_TlmH_Dump( unsigned char, unsigned char, unsigned char, unsigned short, unsigned short ); extern unsigned char app01_JpegSet ( void ); #endif /* _DPU_API_CORE_H_ */