ユーザ定義イベント処理関数
void cbAppColdStart(bool_t bInit) {
if (bInit == FALSE) {
...
} else {
...
ToCoNet_Event_Register_State_Machine(vProcessEvCore);
}
}
void vProcessEvCore(
tsEvent *pEv,
teEvent eEvent,
uint32 u32evarg) {
// check boot seq
if (eEvent == E_EVENT_START_UP) {
if (u32evarg & EVARG_START_UP_WAKEUP_RAMHOLD_MASK) {
// woke from NORMAL SLEEP (RAMHOLD)
}
if (u32evarg & EVARG_START_UP_WAKEUP_MASK) {
// woke from DEEP SLEEP
} else {
// COLD boot
}
}
switch (pEv->eState) {
case E_STATE_IDLE:
; // some task
ToCoNet_Event_SetState(pEv, E_STATE_APP_NORMAL);
break;
case E_STATE_APP_NORMAL:
; // some task (e.g. send s Tx packet)
if (cond) {
ToCoNet_Event_SetState(pEv, E_STATE_APP_WAIT_TX);
}
break;
case E_STATE_APP_WAIT_TX:
; // some task (e.g. wait until Tx finishes)
if (cond) {
ToCoNet_Event_SetState(pEv, E_STATE_APP_NORMAL);
}
break;
}
}登録
伝達されるイベント
状態遷移について
最終更新