/******************************************************************************* * モジュール名称 :アプリケーション01 グローバル変数初期化 * * モジュールラベル :app01_InitVar * * コーリングシーケンス:void app01_InitVar() * * 作成日・作成者 :2015/5/6 Y.K. * *******************************************************************************/ #include "dpu_api.h" #include "dpu_api_proto.h" #include "app_core.h" #include "app_rdn_core.h" // CMD unsigned char app01_Tlm_CmpSet ( unsigned char, unsigned char, unsigned char ); // *********************** // *** Prototype *** // *********************** unsigned char app01_InitVar_MEA1(); unsigned char app01_InitVar_MEA2(); unsigned char app01_InitVar_MIA(); unsigned char app01_InitVar_MSA(); unsigned char app01_InitVar_HEPE(); unsigned char app01_InitVar_HEPI(); unsigned char app01_InitVar_ENA(); unsigned char app01_InitVar_EWO(); unsigned char app01_InitVar_MEF(); unsigned char app01_InitVar_MWE(); // unsigned char app01_ErrClr_MEA1(); unsigned char app01_ErrClr_MEA2(); // unsigned char app01_InitVar_rdn(); unsigned char app01_ErrClr_rdn(); unsigned char app01_InitVar() { int i; // ***************************** // *** Initialization - MATH *** // ***************************** app_math_init_table(); // ********************************************************* // * Global Variables - DATA * // ********************************************************* Guc_OpeMode = // Operation Mode: 0:NRM 1:Cruise (1bit) Guc_Spec_Code = 0; // Dummy Telemetry: DIS /******* DUMMY-TLM *********** Gui_Spec_Code_TI = 0; ******************************/ // Trigger variable Gui_TRG1_Cnt = Gui_TRG2_Cnt = 0; for (i=0; i=Gd_N_MEA1 && i<=Gd_N_SOR) { app_ReleaseBlock( i, 0, 0, -1 ); // ALL - Block clear app_ReleaseBlock( i, 0, 1, -1 ); // ALL - Block clear } } app01_Tlm_CmpSet( 0xFF, 0, 0x11 ); // Guc_TLMm_cmp [i] = 1; TLM-L/M Dump: Arith-0 compression [0:non 1:Arith-0 2:Arith-1 3:User-defined] // Guc_TLMh_cmp [i] = 1; TLM-H Dump: Arith-0 compression for (i=0; i<0x11; i++) Guc_TLMh_enadis [i] = 0; // TLM-H Dump: DIS [0:DIS 1:ENA] // // for (i=0; i<3; i++) { Gi_TLMh_BusyHeadId [i] = 0x1F; Gui_TLMh_TIstart [i] = 0xFFFFFFFF; // [INPUT] TI - Dump Start Gus_TLMh_TIlen [i] = // [INPUT] TI - Dump Length (0x0000: 1 Packet 0x0001: 1 Block) Gui_TLMh_TIdump_start0 [i] = Gui_TLMh_TIdump_end0 [i] = Guc_TLMh_drID [i] = 0; } // 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) Guc_TLMh_ScoreLen = Guc_TLMh_ScoreTh = 0; for (i=0; i<4; i++) { Guc_TLMh_trgTh[i] = Guc_TLMh_trgID[i] = 0; app_ReleaseBlock( Gd_N_EWO, i, 0, -1 ); // EWO - Block clear app_ReleaseBlock( Gd_N_EWO, i, 1, -1 ); // EWO - Block clear } Guc_TLMh_trgID_num = 0; // Trigger target // MD?U_TLM_H_TRG_STRT (B1:SEL-DPU1) (B2:SEL-DPU2) (B3:DR-ID) (B4:TI-PRE) (B5:TI-LEN) Guc_TLMh_storeId = Guc_TLMh_storeId1 = Guc_TLMh_storeId2 = Guc_TLMh_storeDrId = Guc_TLMh_storeDrOvw = Guc_TLMh_storeTimePre = Guc_TLMh_storeTimeLen = 0; // for (i=0; i<6; i++) { Guc_TLMh_DrEmpty[i] = // Empty (0:empty) Guc_TLMh_DrWrite[i] = // DR-STATUS Write (1:write) Gui_TLMh_DrTI [i] = // Start TI of the data Gui_TLMh_DrScore[i] = 0; // SCORE Guc_TLMh_DrOvw [i] = 1; // Ovw (1:Ovw-ENA) } // Triggered Status Gui_TRG_TiStart = // Triggered TI-start Gui_TRG_TiEnd = // TI-end Gui_TRG_ScoreTotal = // TI-scoreTotal Gus_TRG_ScoreTotal = // TI-scoreTotal - HK Guc_TLMh_DrNum = // shake-hand status Gui_TRG_Score = 0; // ---------------------------- // PI Init: each // ---------------------------- // == DPU1 == app01_InitVar_MEA1(); app01_InitVar_MEA2(); app01_InitVar_MIA(); app01_InitVar_MSA(); app01_InitVar_HEPE(); app01_InitVar_HEPI(); app01_InitVar_ENA(); // == DPU2 == app01_InitVar_EWO(); app01_InitVar_MEF(); app01_InitVar_MWE(); #ifdef _APP_RDN_ app01_InitVar_rdn(); #endif // _APP_RDN_ // ************************ // === Initialization === // ************************ app01_BufCollectSet(0xFF, 0); // Buffer Collect DIS [for all NodeID] app01_BufOvwSet (0xFF, 0xFF); // Buffer OvrWrt ENA [for all NodeID / all L/S] app01_BufOvwSet (Gd_N_ENA, 0x00); // Buffer OvrWrt DIS ENA return(0); } // Flag & Counter: clear unsigned char app01_ErrClr() { int i; // *********************************** // *** Common : Application Status *** // *********************************** for (i=0; i<7; i++) { // app_WhoWhere( i, Gd_N_COM, 0xFF ); Gus_hkApp_overflow[i] = Gui_hkApp_counter[i] = Gui_hkApp_load[i] = Gui_hkApp_loadPeak[i] = 0; } for (i=0; i<0x13; i++) Guc_hkApp_loadNID [i] = Guc_hkApp_loadNIDmax [i] = 0; for (i=0; i<0x15; i++) Guc_hkApp_loadNID2[i] = Guc_hkApp_loadNIDmax2[i] = 0; // ************************* // *** Common: Telemetry *** // ************************* for (i=0; i<0x60; i++) { Guc_tlmCount[i] = 0; // TLM Counter Gui_tlmTI [i] = 0; // TLM TI } // ************************* // *** App01(CMD) Status *** // ************************* for (i=0; i<2; i++) { Gt_cmdDMC[i].uc_NumBuf = Gt_cmdDMC[i].uc_GetCount = Gt_cmdDMC[i].uc_GetErr = Gt_cmdDMC[i].uc_ExeCount = Gt_cmdDMC[i].ui_ExeErr = Gt_cmdDMC[i].ui_CntlID = Gt_cmdDMC[i].uc_Ans = Gt_cmdDMC[i].ui_ExeTime = 0; Gt_cmdDMC[i].uc_NID = 0x1F; // non } // **************************** // === PI Error Clear: DPU1 === // **************************** // == DPU1 == app01_ErrClr_MEA1(); app01_ErrClr_MEA2(); // **************************** // === RDN Error Clear // **************************** #ifdef _APP_RDN_ app01_ErrClr_rdn(); #endif // _APP_RDN_ return(0); } /* unsigned char app01_JpegSet() { int i_busyFlag; int i_flag; int i; i_flag = dpu_setCompParam( &Gt_compParam08bit, &i_busyFlag ); if (i_flag) return( -i_flag); // ***ERR=1 :不正なビット精度 compParam.uc_bit が8,12 以外。 // ***ERR=2 :不正な量子化テーブル compParam.us_QTable[][]に0 を設定した。 // ***ERR=3 :不正なDC ハフマンテーブル compParam.us_DCT_num が16 より大きい。 // compParam.us_DCTsize[]が16 より大きい。 // ***ERR=4 :不正なAC ハフマンテーブル compParam.us_ACT_num が256 より大きい。 // compParam.us_ACTsize[]が16 より大きい。 // ***ERR=5 :不正なリスタートインターバル compParam.us_restartInterval が64 の倍数でない。 // ***ERR=6 :不正なマーカ挿入指定 compParam.uc_marker_QT,uc_markerHT,uc_marker_comment が0,1 以外。 // ***ERR=7 :不正なマーカ用DC ハフマンテーブル compParam.uc_markerDCT_Lnum が16 より大きい。 // compParam.uc_markerDCT_Vnum が16 より大きい。 // ***ERR=8 :不正なマーカ用AC ハフマンテーブル compParam.uc_markerACT_Lnum が16 より大きい。 // compParam.uc_markerACT_Vnum が256 より大きい。 // ***ERR=9 :ミドルウェア内の圧縮要求管理バッファがフルのため受け付けられない。 for (i=0; i<10; i++) { if (i_busyFlag != 1) break; dpu_delay(10); } if (i_busyFlag==1) return(11); // ***ERR=11: dpu_setCompParam still BUSY if (i_busyFlag==-4) return(12); // ***ERR=12: dpu_setCompParam H/W error if (i_busyFlag) return(13); // ***ERR=12: dpu_setCompParam unknown return(0); } */