/******************************************************************************* * * * モジュール名称 :冗長ミッションデータ収集コマンド送信 * * モジュールラベル :rap_sv_sendRdnMissionCollect * * タスク区分 :冗長ライブラリ * * 機能 :ミッション機器に対してミッションデータ収集の定期 * * コマンドを送信する。 * * * * コーリングシーケンス:int rap_sv_sendRdnMissionCollect( nodeID, recvAddr ) * * 引数 :int nodeID :ミッション機器ID * * unsigned int recvAddr :ミッションデータ受信領域 * * (0x08100000〜0x17FFFFFF、16 バイト単位指定)* * 戻り値 :処理結果 ( <0 :異常 , 0:正常) * * 0 :正常終了 * * -1 :自DPU側ミッション機器またはEWO * * -2 :recvAddrが範囲外 * * -3 :上記以外 * * 使用上の注意 :なし * * エラー処理 :なし * * * *******************************************************************************/ #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" #define RMAP_PKT_SIZE_MAX RA_d_MTICMD_MAX_SIZE int rap_sv_sendRdnMissionCollect( int nodeID, unsigned int recvAddr ) { char c_msChannel; /* ミッションチャネル(0-7) */ char c_dpuIndex; /* 冗長DPUインデックス */ int i_result; /* コマンド送信結果 */ /* 処理開始 */ /* 引数チェック */ c_msChannel = Gc_CHID[ nodeID ]; c_dpuIndex = rap_cmm_getRdnDpuIndex(); if( c_msChannel < 0 || c_msChannel >= RA_d_MISSION_NUM ) { // ---comment out:110615 --- rap_cmm_putDbgTlm( c_msChannel ); return -1; } if( c_dpuIndex == 0 ) { if( nodeID >= RA_d_NODE_MGF_I ) { return -1; } }else{ if( nodeID < RA_d_NODE_MGF_I || nodeID == RA_d_NODE_EWO_E || nodeID == RA_d_NODE_EWO_B ) { return -1; } } i_result = rap_dr_sendRdnMultiCmd( c_msChannel, (unsigned char *)RA_Gus_misClctCmd[(int)c_msChannel], RMAP_PKT_SIZE_MAX, //機器により異なるのでSND Bufferサイズ送信 RA_Gt_missionInfo[(int)c_dpuIndex][(int)c_msChannel].uc_number, RA_Gt_missionInfo[(int)c_dpuIndex][(int)c_msChannel].uc_interval, recvAddr); if ( i_result==0 ) return 0; if ( i_result==-5 || i_result==-6 ) return -2; else return -3; }