I've turned to state pattern for my netmf project. Something based on this: http://www.dofactory.com/Patterns/PatternState.aspx#_self2
I have a rotary encoder knob that will act differently in each state.
I've been trying to wrap my head around this and can't get anything to work on my end. I'm not sure where and how to inject the interrupt handler into each state and how to invoke the switch of the interrupt handler. Without the State Pattern the code looks something like:
RotaryEncoder RE = new RotaryEncoder(pin1, pin2);//create new instance of knob
RE.OnRotationEvent += OnRotationEventHandler;//subscribe to an event handler.
//do other things
...
...
static void OnRotationEventHandler(uint data1, uint data2, DateTime time)
{
//do something
}
So, what's the right way to code have individual "OnRotationEventHandlers" for each state? Is it part of the context? Part of the abstract base class?
Thanks for the help!
I did some more research and here's the solution I've come up with:
I use "state" and "mode" interchangeably
Context Class:
Concrete State Class that Inherits The State Base class:
Now that I can change state and give each state specific control behavior, where does the actual heavy lifting go?