- Dimma upp eller ner, tills man trycker ON eller OFF (state DIMMING)
- Stänga av (state OFF)
- Låta det lysa med den nivå man hade när man slutade dimma (state ON)
Det enda man man behöver göra i huvudloopen är då att kolla på vilket state man har och göra något av detta.
Kommandon från fjärren är inte direktkopplade till staten, men sätter state.
Så här tolkade jag det som står, men kan förstås vara missuppfattat.
Om det kommer kommando ON:
- Börja dimma om state var OFF eller ON, dvs sätt state DIMMING
- Sluta dimma om state var DIMMING, dvs sätt state ON
Om det kommer kommando OFF:
- Sätt state OFF
Kanske blev det förvirrat för att ett av staten är ON och det förväxlas med vad man trycker på fjärren. Men kalla det något annat då typ, PAUSE. Staten blir då OFF (släckt), DIMMING (dimma upp/ner) och PAUSE (gör inget speciellt, dvs låt det lysa som det gjorde innan man slutade dimma)
Alltså:
enum dimmerStates {
OFF,
DIMMING,
PAUSE
};
dimmerStates dimmerState = OFF;