#include "Behaviors/StateMachine.h"
$nodeclass ComboLock : StateNode {
$nodeclass ReportButton : StateNode : doStart {
size_t button = event->getSourceID() ;
if ( button < RobotInfo::NumButtons )
cout << "Sensed the " << RobotInfo::buttonNames[button] << " button." << endl;
else
cout << "Event had invalid button number: " << button << endl;
}
$setupmachine {
loop: StateNode
loop =B(AdvanceButOffset)=> ReportButton
=B(PlayButOffset)=> ReportButton
=B(AdvanceButOffset)=> ReportButton
=B(AdvanceButOffset)=> ReportButton
=B(PlayButOffset)=> SpeechNode("Unlocked")
loop =B(PlayButOffset)=> ReportButton
=B=> ReportButton
=B=> ReportButton
=B=> ReportButton
=B=> ReportButton =C=> SoundNode("growl.wav")=C=> loop
}
}
REGISTER_BEHAVIOR(ComboLock);
$nodeclass ComboLock : StateNode {
$nodeclass ReportButton : StateNode : doStart {
size_t button = event->getSourceID() ;
if ( button < RobotInfo::NumButtons )
cout << "Sensed the " << RobotInfo::buttonNames[button] << " button." << endl;
else
cout << "Event had invalid button number: " << button << endl;
}
$setupmachine {
loop: StateNode
loop =B(AdvanceButOffset)=> ReportButton
=B(PlayButOffset)=> ReportButton
=B(AdvanceButOffset)=> ReportButton
=B(AdvanceButOffset)=> ReportButton
=B(PlayButOffset)=> SpeechNode("Unlocked")
loop =B(PlayButOffset)=> ReportButton
=B=> ReportButton
=B=> ReportButton
=B=> ReportButton
=B=> ReportButton =C=> SoundNode("growl.wav")=C=> loop
}
}
REGISTER_BEHAVIOR(ComboLock);