/******************************************************************************* * * * モジュール名称 :チェックアウト処理関連定義 * * モジュールラベル :checkout.h * * タスク区分 :チェックアウトアプリ * * * *******************************************************************************/ #include "dpu_api.h" /* MiddleWare API定義 */ /* ------ define定義 ------ */ /* 全般 */ #define d_CO_NODE_DPU1 0x03 #define d_CO_NODE_DPU2 0x04 #define d_CO_CHKOUT_START 0x01 #define d_CO_CHKOUT_EXIT 0x0F #define d_CO_SIZEOF_CMDBUFF_I 67 /* コマンドデータ格納領域サイズ */ #define d_CO_SIZEOF_TLMBUFF_I 62 /* テレメトリデータ格納領域サイズ */ /* DMC TM Packet化け対策 */ /* CheckOut Cmd関連 */ #define d_CO_PLAN_OFFSET_I 3 /* CheckOut Plan No.1開始アドレスまでのオフセット */ #define d_CO_PLAN_SIZE_I 4 /* 1 CheckOut Planあたりのデータサイズ */ #define d_CO_PLANCOUNT_MAX 15 /* Plan個数最大値 */ #define d_CO_SIZEOF_READSIZE_PER_CHK_B 2048 /* 1回あたりのメモリデータ取得サイズ */ #define d_CO_SIZEOF_READSIZE_PER_CHK_I 512 /* 1回あたりのメモリデータ取得サイズ */ #define d_CO_SIZEOF_WRITESIZE_PER_CHK_B d_CO_SIZEOF_READSIZE_PER_CHK_B /* 1回あたりのメモリデータ書込サイズ */ #define d_CO_SIZEOF_WRITESIZE_PER_CHK_I d_CO_SIZEOF_READSIZE_PER_CHK_I /* 1回あたりのメモリデータ書込サイズ */ /* CheckOut Tlm関連 */ #define d_CO_NO_ERROR 0 /* エラーなし */ #define d_CO_SUM_ERROR -1 /* サム値不一致 */ #define d_CO_NODEID_ILLIGAL -2 /* NodeID異常値 */ #define d_CO_RDN_OFF -3 /* 冗長OFF */ #define d_CO_ROM_READ_ERROR -4 /* ROM読込エラー */ #define d_CO_RDN_WRITE_ERROR -5 /* 冗長書込エラー */ #define d_CO_RDN_READ_ERROR -6 /* 冗長読込エラー */ #define d_CO_GEN_ERROR -7 /* その他エラー */ #define d_CO_CHKOUT_TLM_APID_DPU1 0x0619 #define d_CO_CHKOUT_TLM_APID_DPU2 0x0621 #define d_CO_CHKOUT_TLM_CATEGORY 0x29 #define d_CO_CHKOUT_TLM_PKTID 0x80 #define d_CO_CHKOUT_RESULT_OFFSET_B 4 /* CheckOut Result No.1開始アドレスまでのオフセット */ #define d_CO_CHKOUT_RESULT_SIZE_B 16 /* 1 CheckOut Resultあたりのデータサイズ */ #define d_CO_CHKOUT_RESULT_SIZE_I 4 /* 1 CheckOut Resultあたりのデータサイズ */ /* ------ 共用体定義 ------ */ typedef union { unsigned int ui; unsigned short us[2]; unsigned char uc[4]; }APP_U_CHKOUT_BUFF; /* ------ 構造体定義 ------ */ /* CheckOut Plan */ typedef struct { unsigned char uc_nodeID; /* チェック対象のNodeID */ unsigned char uc_writeValue; /* 書き込み値 */ unsigned int ui_readSize; /* 一回あたりのリードサイズ */ unsigned int ui_startAddr; /* 読出し開始アドレス */ unsigned int ui_endAddr; /* 読出し最終アドレス */ unsigned int ui_sumValue; /* サム値の期待値 */ } APP_T_CHKOUT_PLAN; /* CheckOut Result */ typedef struct { unsigned char uc_nodeID; /* チェック対象のNodeID */ unsigned char uc_resultCode; /* 書き込み値 */ unsigned char uc_apiReturn; /* 書き込み値 */ unsigned int ui_startAddr; /* 読出し開始アドレス */ unsigned int ui_endAddr; /* 読出し最終アドレス */ unsigned int ui_sumValue; /* サム値の計算結果 */ } APP_T_CHKOUT_RESULT; /* グローバル変数定義 */ extern APP_U_CHKOUT_BUFF Gu_co_cmdBuff[d_CO_SIZEOF_CMDBUFF_I]; /* コマンドデータ格納領域 */ extern int Gi_cmdSize; /* コマンドパケットサイズ */ extern APP_U_CHKOUT_BUFF Gu_co_tlmDataBuff[d_CO_SIZEOF_TLMBUFF_I]; /* テレメトリデータ格納領域 */ extern APP_T_CHKOUT_PLAN Gt_co_chkOutPlan; extern APP_T_CHKOUT_RESULT Gt_co_chkOutResult; extern unsigned int Gui_co_readData[d_CO_SIZEOF_READSIZE_PER_CHK_I]; /* メモリデータ格納領域 */ extern unsigned int Gui_co_writeData[d_CO_SIZEOF_WRITESIZE_PER_CHK_I]; /* 書き込みデータ格納領域 */ extern M_T_CCSDS_HDR_INFO Gt_co_chkoutTlmInfo; /* テレメ情報 */ /* 関数プロトタイプ宣言 */ void checkout_init( void ); int checkout_cmdProc( void ); void checkout_fin( void ); int checkout_getCmd( void ); int checkout_putTlm( M_T_CCSDS_HDR_INFO *tp_tlmInfo, int i_size, unsigned char *ucp_buff, int *ip_busyFlag ); int checkout_putRdn( unsigned int *uip_buffer, unsigned int ui_addr, unsigned int ui_size ); int checkout_getRdn( unsigned int ui_addr, unsigned int ui_size, unsigned int *uip_buffer ); int checkout_getRom( unsigned int ui_addr, unsigned int ui_size, unsigned int *uip_buffer ); void checkout_startWDT( void ); void checkout_resetWDT( void ); void checkout_stopWDT( void ); void checkout_run(void); void checkout_resetData( void ); void checkout_procCheckOut(void); void checkout_getPlan(unsigned short us_planNo); int checkout_getMemData(unsigned int ui_addr, int *i_apiResult); unsigned int checkout_calcSum( void ); void checkout_setResult( void ); void checkout_putResult( void );