#ifndef _app_macrocmd_h_ #define _app_macrocmd_h_ #define d_MacroCmd_MAXCMDLEN 0x20 // コマンド長の最大値 // 関数呼び出し時の動作指示 #define d_MacroCmd_CONT_INIT 0x20 // 初期化 #define d_MacroCmd_CONT_RESET 0x21 // 初期化 #define d_MacroCmd_CONT_EXEC 0x22 // 実行要求 // ステータス #define d_MacroCmd_IDLE 0x10 // マクロコマンド処理は行われていない。 #define d_MacroCmd_SEQEND 0x11 // マクロコマンドの実行シーケンスが終了した。 #define d_MacroCmd_WAIT 0x12 // 次のコマンドを実行するまでの wait 中。 #define d_MacroCmd_EXEC 0x13 // コマンド実行が本関数によって実行された。 #define d_MacroCmd_EXECREQ 0x14 // 呼び出し側へのコマンド実行要求。 // コマンドタイプ #define d_MacroCmd_CmdType_SENSOR 0x0 // センサーへのコマンド (コマンド) #define d_MacroCmd_CmdType_MDPAPP 0x1 // MDP アプリケーションへ渡すコマンド // 関数戻り値 #define d_MacroCmd_RtnVal_NORMAL 1 // 正常 #define d_MacroCmd_RtnVal_SEQEND 2 // マクロコマンドの実行終了 #define d_MacroCmd_RtnVal_UNDEFACT -1 // 動作指示が未定義 (実行中断) #define d_MacroCmd_RtnVal_ILLEGAL_MACROID -2 // マクロコマンド ID 異常 (実行中断) #define d_MacroCmd_RtnVal_CMD_TOOLONG -3 // コマンド長が長すぎる (実行中断) struct _s_MacroCmd_param { unsigned short us_macroID; // 選択するマクロコマンド ID unsigned char *puc_macrotbl; // マクロコマンドテーブル unsigned short us_totalnum_macro; // マクロコマンドテーブル内に指定してあるマクロコマンド数 unsigned short us_size_macrotbl; char c_status; // ステータス unsigned char uc_cmd[d_MacroCmd_MAXCMDLEN]; // コマンド内容 struct { unsigned char *puc_topadr; unsigned short us_totalnum_cmd; struct { int i_num; unsigned char *puc_adr; unsigned char uc_rtnval; // コマンド実行時の返り値 unsigned char uc_type; unsigned char uc_size; unsigned short us_waitctr; unsigned short us_waitctr_target; } cmdcur; } selectmacro; }; int app_macrocmd_cont(unsigned char uc_nodeId, struct _s_MacroCmd_param *psmcp, unsigned char uc_cont); #endif /*_app_macrocmd_h_ */