ユーザ定義イベント処理関数
ユーザ定義イベント処理関数は、TWENET からコールバックとして呼び出される形でイベント処理を行う目的でユーザが独自に定義する関数です。関数と呼んでいますが、ステート(状態遷移)マシンとして振るいます。
登録
ユーザ定義イベント処理関数は ToCoNet_Event_Register_State_Machine() により最大2つまで登録します。
E_EVENT_START_UPイベントを受け取るにはユーザ定義イベント処理関数の登録が必要です。
伝達されるイベント
伝達されるイベントは以下の3イベントです。これ以外のイベントは ToCoNet_Event_Process() 関数により関数のコールバック呼び出しとして伝達されます。
E_EVENT_START_UP : 始動時
E_EVENT_TICK_TIMER : 4ms 周期(デフォルト)
E_EVENT_TICK_SECOND : 1秒周期
以下のコードは送信完了をユーザ定義イベント処理関数 vProcessEvCore に伝達する例です。
ToCoNet_Event_Process() を用いずに vProcessEvCore() を呼び出すことは避けるべきです。フロー図に示した状態遷移が行われず、また、ユーザ定義イベント処理関数の管理構造体に含まれる情報に矛盾が発生します。
割り込みハンドラから呼び出してはいけません。
状態遷移について
ユーザ定義イベント処理関数のステートマシンは、E_STATE_IDLE_ _(0) から開始します。
ユーザ定義イベント処理関数が呼び出される際に、ToCoNet_Event_SetState() 関数を呼び出すことで状態遷移を宣言します。状態遷移を宣言したのちユーザ定義イベント処理関数を脱出すると、E_EVENT_NEW_STATE イベントをパラメータにもう一度関数が呼び出されます。状態遷移が続く限りこの処理は連続します(フロー図)。
スリープ(RAM保持)前に ToCoNet_Event_vKeepStateOnRamHoldSleep() を呼び出しておくことで直前の状態を保持でき、スリープ復帰後に E_EVENT_START_UP イベントを受け取ることができます。
最終更新