/******************************************************************************* * * * モジュール名称 :チェックアウトプラン取得 * * モジュールラベル :checkout_getPlan * * タスク区分 :アプリケーションタスク * * 機能 : * * コーリングシーケンス:void checkout_getPlan(unsigned short us_planNo) * * 引数 :unsigned short us_planNo CheckOutPlan番号 * * 戻り値 :void * * 使用上の注意 :CheckOutPlan番号は1〜15の範囲で指定すること * * エラー処理 :なし * * * * (APP16向けサンプルコードです) * * * *******************************************************************************/ #include "chkout.h" /* チェックアウトアプリ定義 */ void checkout_getPlan(unsigned short us_planNo) { unsigned int i; int i_cmdBuffIndex = 0; APP_U_CHKOUT_BUFF *up_cmdPtr; unsigned char *ucp_wdataPtr; /* Plan番号に対応するCheckOut Plan Noの先頭アドレスを取得 */ i_cmdBuffIndex = d_CO_PLAN_OFFSET_I + ( d_CO_PLAN_SIZE_I * ( us_planNo - 1 ) ); up_cmdPtr = &Gu_co_cmdBuff[ i_cmdBuffIndex ]; /* CheckOut Plan取得 */ Gt_co_chkOutPlan.uc_nodeID = up_cmdPtr->uc[0]; Gt_co_chkOutPlan.uc_writeValue = up_cmdPtr->uc[1]; Gt_co_chkOutPlan.ui_readSize = d_CO_SIZEOF_READSIZE_PER_CHK_B; up_cmdPtr++; Gt_co_chkOutPlan.ui_startAddr = up_cmdPtr->ui - ( up_cmdPtr->ui % Gt_co_chkOutPlan.ui_readSize); /* 読み出し単位の端数切捨て */ up_cmdPtr++; Gt_co_chkOutPlan.ui_endAddr = up_cmdPtr->ui - ( up_cmdPtr->ui % Gt_co_chkOutPlan.ui_readSize ) + ( Gt_co_chkOutPlan.ui_readSize - 1 ); /* 読み出し単位のバウンダリの最後に補正 */ up_cmdPtr++; Gt_co_chkOutPlan.ui_sumValue = up_cmdPtr->ui; up_cmdPtr++; /* 書込みデータ初期化 */ ucp_wdataPtr = (unsigned char *)Gui_co_writeData; for( i = 0; i < Gt_co_chkOutPlan.ui_readSize; i++ ) { *ucp_wdataPtr = Gt_co_chkOutPlan.uc_writeValue; ucp_wdataPtr++; } return; }