/******************************************************************************* * モジュール名称 :APP02 - HK in RDN mode * * モジュールラベル :app02_Rdn_Hk * * タスク区分 :called from APP02 (Rdn) * * コーリングシーケンス:void app02_Rdn_Hk( void ) * * 戻り値 :void * * 使用上の注意 :なし * * エラー処理 :なし * * 作成日・作成者 :2017/7/13 Y.K. * ********************************************************************************/ #include "dpu_api.h" #include "dpu_api_proto.h" #include "app_core.h" #include "app_rdn_core.h" #ifdef _APP_RDN_ // ********************** // *** HK-read in RDN *** // ********************** void app02_Rdn_MwHk() { unsigned char uc_tmp; int i_flag; M_T_TIME_INFO t_timeInfo; // unsigned int ui_currentTime; :衛星時刻(1LSB=1.953ms) // unsigned int ui_currentTime2; :衛星時刻(1LSB=31.25ms) // unsigned int ui_sunpulseTime; :SUNPULSE 受信時刻(1LSB=1.953ms) // --------------- // ---- MW HK ---- // --------------- // ---------HW status-------- Guc_rdn_MwHK[0] = 0x4F; // !ok! 0 7 4 DPU_HW_STATE1 ハードウェア状態1 4:DPU_RESET" // !ok! 3 0 DPU_HW_STATE2 ハードウェア状態2 F:CPU-OFF/DMC-BUS" // Guc_rdn_MwHK[1] = 0x00; // !ok! 1 7 2 DPU_HW_ERR ハードウェアエラー 0:Non-Err // !ok! 1 0 DPU_HW_FLAG ハードウェアフラグ 0:OFF // Guc_rdn_MwHK[2] = 0x00; // !ok! 2 7 0 DPU_CMD_CODE ハードウェアコマンドコード 0x00 // Guc_rdn_MwHK[3] = 0x00; // !ok! 3 7 0 0x00 // Guc_rdn_MwHK[4] = 0x00; // !ok! 4 7 4 DPU_HWCMD_CNT コマンド受信回数(HW) 0x00 // !ok! 3 0 DPU_CMD_CNT コマンド受信回数(全) COUNTER!!! Guc_rdn_MwHK[5] = ((1-Guc_dpuNo) << 7) // !ok! 5 7 4 DPU_HW_STS ハードウェアモニタ情報 bit7:0:DPU-2/1:DPU-1 + 0x30; // Guc_rdn_MwHK[6] = 0x00; // !ok! 6 7 0 DPU_HW_REJ ハードコマンドリジェクトコード // Guc_rdn_MwHK[7] = 0x00; // !ok! 7 7 0 PME_IPD_STS // ---------MW status-------- i_flag = dpu_getTime( &t_timeInfo ); memcpy( &Guc_rdn_MwHK[ 8], &(t_timeInfo.ui_currentTime ), 4); // !ok! 8-11 7 0 SAT_TIME 衛星時刻 1LSB=1.953ms memcpy( &Guc_rdn_MwHK[12], &(t_timeInfo.ui_sunpulseTime), 4); // !ok! 12-15 7 0 SUNPLSE_TIME SUNPULSE受信時刻 1LSB=1.953ms if ( Guc_dpuRdn==2 ) Guc_rdn_MwHK[16] = 0x02; // 16 7 0 DPU_SW_STATE 動作ステータス SW-STATUS:0x02(OBS) or 0x00(INIT) else Guc_rdn_MwHK[16] = 0x00; // Guc_rdn_MwHK[17] = 0; [--> app_C_common (app_HkRead)] // 17 7 0 TASK_STAT_AP01-08 // Guc_rdn_MwHK[18] = 0; [--> app_C_common (app_HkRead)] // 18 7 0 TASK_STAT_AP09-16 // Guc_rdn_MwHK[19] = 0; [--> app02_CR_Hk (app02_Rdn_PiHk)] // 19 6 - RDN_MODE 冗長機能ON/OFF 1:ON (fixed) // 3 - LOAD_DUMP_DIS メモリロード許可/禁止 0:Enable/1:Disable (by app01) // 0 - RDN_LINK_STAT 冗長リンクステータス 0:UnLink/1:Link (by usual HK) // Guc_rdn_MwHK[20] [--> app02_CR_Hk (app02_Rdn_PiHk)] // 20 7 - MS7_LINK_STAT MSリンクステータス // ---- CMD ---- // Guc_rdn_MwHK[21-24] [--> app01_CR_cmd (app01_CmdRdn)] // 21-24 SW_CMD_CODE ソフトCmd Channel-IDから4byte // Guc_rdn_MwHK[25] [--> app01_CR_cmd (app01_CmdRdn)] // 25 7 0 SW_CMD_CNT ソフトCmd受信回数 回 // Guc_rdn_MwHK[26] [--> app01_CR_cmd (app01_CmdRdn)] // 26 7 0 SW_CMD_REJ_CNT ソフトCmdRejct回数 回 // Guc_rdn_MwHK[27] [--> app01_CR_cmd (app01_CmdRdn)] // 27 7 0 SW_CMD_REJ_CODE ソフトCmdRejctコード // ---- Mission Data ---- if (Guc_dpuNo) Guc_rdn_MwHK[28] = ( Guc_rdn_missionClct[Gd_N_MGFO] << 7) + // 28 7 - MS0_DAT_CLCT MGF-O N/A ( Guc_rdn_missionClct[Gd_N_MEA1] << 6) + // 6 - MS1_DAT_CLCT MEA-1 SORBET ( Guc_rdn_missionClct[Gd_N_MEA2] << 5) + // 5 - MS2_DAT_CLCT MEA-2 N/A ( Guc_rdn_missionClct[Gd_N_ENA ] << 4) + // 4 - MS3_DAT_CLCT ENA EWO-E ( Guc_rdn_missionClct[Gd_N_MIA ] << 3) + // 3 - MS4_DAT_CLCT MIA N/A ( Guc_rdn_missionClct[Gd_N_MSA ] << 2) + // 2 - MS5_DAT_CLCT MSA MGF-I ( Guc_rdn_missionClct[Gd_N_HEPE] << 1) + // 1 - MS6_DAT_CLCT HEP-ELE MSASI ( Guc_rdn_missionClct[Gd_N_HEPI]); // 0 - MS7_DAT_CLCT HEP-ION MDM else Guc_rdn_MwHK[28] = ( Guc_rdn_missionClct[Gd_N_SOR ] << 6) + // 6 - MS1_DAT_CLCT MEA-1 SORBET ( Guc_rdn_missionClct[Gd_N_EWO ] << 4) + // 4 - MS3_DAT_CLCT ENA EWO-E ( Guc_rdn_missionClct[Gd_N_MGFI] << 2) + // 2 - MS5_DAT_CLCT MSA MGF-I ( Guc_rdn_missionClct[Gd_N_MSAS] << 1) + // 1 - MS6_DAT_CLCT HEP-ELE MSASI ( Guc_rdn_missionClct[Gd_N_MDM ]); // 0 - MS7_DAT_CLCT HEP-ION MDM Guc_rdn_MwHK[29] = 0xFF; // 29 7 - MS0_BUFF_SEL "Long/Short選択 All-Short:0xFF // ---- MEM-LOAD/DUMP ---- Guc_rdn_MwHK[30] = Guc_RDN_MemLoad_NID; // 30 7 - MEMLOAD_BUSY メモリロードフラグ 0:STOP/1:RUN // 6 0 MEMLOAD_NODE ロード機器 NodeID Guc_rdn_MwHK[31] = Guc_RDN_MemDump_NID; // 31 7 - MEMDUMP_BUSY メモリダンプフラグ 0:STOP/1:RUN // 6 0 MEMDUMP_NODE ダンプ機器 NodeID // ---- Error ---- // Guc_rdn_MwHK[32] = 0x00; // 32 7 0 UNEXPECT_ERR_CNT 軽微エラー回数 回(Max.64) // Guc_rdn_MwHK[33] = 0x00; // 33 7 0 UNEXPECT_ERR_CODE 軽微エラーコード 別途定義 // Guc_rdn_MwHK[34] = 0x00; // // Guc_rdn_MwHK[35] = 0x00; // 35 7 - Errors // Guc_rdn_MwHK[36] = 0x00; // 36 7 - MS0_LINK_ERR "Mission-IF 非LINK検出 uc_tmp = app_uc2bit(Guc_rdn_MwHK[20], 7, 0x1, 0) + app_uc2bit(Guc_rdn_MwHK[20], 6, 0x1, 1) + app_uc2bit(Guc_rdn_MwHK[20], 5, 0x1, 2) + app_uc2bit(Guc_rdn_MwHK[20], 4, 0x1, 3) + app_uc2bit(Guc_rdn_MwHK[20], 3, 0x1, 4) + app_uc2bit(Guc_rdn_MwHK[20], 2, 0x1, 5) + app_uc2bit(Guc_rdn_MwHK[20], 1, 0x1, 6) + app_uc2bit(Guc_rdn_MwHK[20], 0, 0x1, 7); Guc_rdn_MwHK[36] |= (~ uc_tmp); // Guc_rdn_MwHK[37] = 0x00; // 37 7 - MS0_SGL_CMD_ERR "Mission-IF 非定期コマンド送信エラー // ---> DEF?????????? // Guc_rdn_MwHK[38] = 0x00; // 38 7 - MS0_MTI_CMD_ERR "Mission-IF 定期コマンド送信エラー // ---> DEF?????????? /// Guc_rdn_MwHK[39] = 0x00; // 39 7 - Errors // ************************** // ***NEW*** ** OUTPUT ****** // ************************** if (( Guc_dpuNo == 0 ) && ( app15_status() > 0 )) { app15_putRDNHK( &(Guc_rdn_MwHK[8]), &(Guc_rdn_PiHK[0][0]) ); } else { dpu_putRdnHK ( &(Guc_rdn_MwHK[8]) ); // rap_sv_putRdnHKTelemetry( &(Guc_rdn_MwHK[8]) ); } } #endif // _APP_RDN_