/******************************************************************************* * * * モジュール名称 :チェックアウトコマンド実行 * * モジュールラベル :checkout_run * * タスク区分 :アプリケーションタスク * * 機能 : * * コーリングシーケンス:void checkout_run(void) * * 引数 :void * * 戻り値 :void * * 使用上の注意 :なし * * エラー処理 :なし * * * * (APP16向けサンプルコードです) * * * *******************************************************************************/ #include "chkout.h" /* チェックアウトアプリ定義 */ void checkout_run(void) { unsigned short us_planCount_size; /* コマンドサイズから算出したCheckOut Plan格納数 */ unsigned short us_planCount_cmd; /* コマンドデータから取得したCheckOut Plan格納数 */ unsigned short us_planCount; /* 最終的なCheckOut Plan格納数 */ unsigned short us_planNo; /* 処理中のPlan番号 */ /* データリセット(テレメトリ関連情報) */ checkout_resetData(); /* コマンドサイズとコマンドデータのPlanCountを比較し、小さい方を採用 */ us_planCount_size = (( Gi_cmdSize / 4 ) - d_CO_PLAN_OFFSET_I ) / d_CO_PLAN_SIZE_I; us_planCount_cmd = Gu_co_cmdBuff[2].us[1]; us_planCount = (us_planCount_cmd <= us_planCount_size ) ? us_planCount_cmd : us_planCount_size; /* PLANCOUNT_MAXを超えたら異常コマンドと判断し、処理しない */ us_planCount = (us_planCount <= d_CO_PLANCOUNT_MAX) ? us_planCount: 0; /* 1 Planずつ読み出し */ for( us_planNo = 1; us_planNo <= us_planCount; us_planNo++ ) { /* CheckOut Plan取得 */ checkout_getPlan( us_planNo ); /* CheckOut処理 */ checkout_procCheckOut(); /* CheckOut結果格納 */ checkout_setResult(); } /* CheckOutテレメトリ出力 */ checkout_putResult(); return; }