Big Mouth Billy Bass automation library
action.hpp
- Committer:
- bikeNomad
- Date:
- 2013-06-18
- Revision:
- 2:eaba75af0f0d
- Parent:
- 0:84aaade0de8f
- Child:
- 4:f009306756b3
File content as of revision 2:eaba75af0f0d:
#ifndef __included_action_hpp #define __included_action_hpp #include "billybass.hpp" // 0.000000\t5.646050\thead // 0.064498\t1.069177\ttail // 0.357219\t0.580481\tmouth #define MAX_ACTION_LINE_LENGTH 30 struct Action { Action(float _time = -1.0, bool _state = false, DigitalOut *_out = 0, char const *_outName = 0) : actionTime(_time), desiredState(_state) , output(_out), outputName(_outName) { } bool operator < (Action const &other) const { return actionTime < other.actionTime; } bool isValid() const { return actionTime >= 0.0 && output != 0; } void act() { output->write(desiredState ? 1 : 0); } bool actIfPast(float _now) { if (_now >= actionTime) { act(); return true; } else return false; } float actionTime; bool desiredState; DigitalOut *output; char const *outputName; }; #endif