BeginStateMachine
OnMsg(MSG_PrintError)
setState(STATE_Down);
State(STATE_Initialize)
OnEnter
if (paper_count <= 10)
setState(STATE_PaperLow);
else if (paper_count <= 0)
setState(STATE_PaperOut);
else
setState(STATE_Ready);
State(STATE_Ready)
OnEnter
// let device know
OnMsg(MSG_Print)
// print
setState(STATE_Print);
State(STATE_Print)
OnEnter
// let device know
// start printing
OnUpdate
// loop till printing is done
// maybe communicate with device to get progress
if (printing is done)
{
// decrement paper count
if (paper_count <= 10)
setState(STATE_PaperLow);
else if (paper_count <= 0)
setState(STATE_PaperOut);
}
OnExit
// do clean up for/with device
State(STATE_PaperLow)
OnEnter
// let device know
OnMsg(MSG_Print)
// print
setState(STATE_Print);
State(STATE_PaperOut)
OnEnter
// let device know
OnMsg(MSG_Print)
// return error message
setState(STATE_Down);
State(STATE_Down)
OnEnter
// let device know
OnMsg(MSG_Print)
// return error message
EndStateMachine
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment