/******************************************************************************* * * * モジュール名称 :冗長側ミッションIF情報取得 * * モジュールラベル :rap_sv_getRdnMisIfStatus * * タスク区分 :冗長ライブラリ * * 機能 :指定したミッション機器に対応する、冗長側DPUの * * ミッションI/Fブロックの情報を取得する * * * * コーリングシーケンス:int rap_sv_getRdnMisIfStatus( nodeID, misIfStatus ) * * 引数 :int nodeID :ミッション機器ID * * M_T_RDN_MIS_IF_STATUS misIfStatus: * * ミッションI/Fステータス情報* * 戻り値 :処理結果 ( <0 :異常 , 0:正常) * * 0 :正常終了 * * -1 :自DPU側ミッション機器 * * -2 :上記以外 * * 使用上の注意 :なし * * エラー処理 :なし * * * *******************************************************************************/ #include "dpu_api.h" #include "dpu_api_proto.h" #include "rap_api.h" #include "rap_define.h" /* define定義 */ #include "rap_variable.h" /* グローバル変数宣言 */ #include "rap_func.h" /* 関数プロトタイプ宣言 */ #include "app_rdn_core.h" int rap_sv_getRdnMisIfStatus( int nodeID, M_T_RDN_MIS_IF_STATUS *misIfStatus ) { char c_msChannel; unsigned short us_msIfReg[16]; int i_result; int i_ret = 0; /* 戻り値 */ c_msChannel = Gc_CHID[ nodeID ]; if( c_msChannel < 0 || c_msChannel >= RA_d_MISSION_NUM ) { // ---comment out:110615 --- rap_cmm_putDbgTlm( c_msChannel ); i_ret = -1; }else{ i_result = rap_dr_getRdnMisIfRegister( c_msChannel, 0, 32, (unsigned char *)us_msIfReg ); if( i_result < 0 ) { // ---comment out:110615 --- rap_cmm_putDbgTlm( i_result ); i_ret = -2; }else{ misIfStatus->us_singleSendCtl = us_msIfReg[ 0]; misIfStatus->us_multiSendCtl = us_msIfReg[ 1]; misIfStatus->us_multiSendSet = us_msIfReg[ 2]; misIfStatus->us_recvStatus = us_msIfReg[ 3]; misIfStatus->us_readRply0Cnt = us_msIfReg[ 4]; misIfStatus->ui_readRply0Addr = ((unsigned int)us_msIfReg[ 5] << 16) | ((unsigned int)us_msIfReg[ 6] ); misIfStatus->us_readRply1Cnt = us_msIfReg[ 7]; misIfStatus->ui_readRply1Addr = ((unsigned int)us_msIfReg[ 8] << 16) | ((unsigned int)us_msIfReg[ 9] ); misIfStatus->us_writeRplyCnt = us_msIfReg[10]; misIfStatus->us_writeCmdCnt = us_msIfReg[11]; misIfStatus->us_lowerLimit = us_msIfReg[12]; misIfStatus->us_upperLimit = us_msIfReg[13]; misIfStatus->us_recvBuffEdac = us_msIfReg[14]; } } return i_ret; }