@@ -79,72 +79,68 @@ void ToggleSwitch::loop()
79
79
{
80
80
if (toggled () && m_debounceTimer.check ())
81
81
{
82
- Serial. println ( " toggled " ) ;
82
+ m_toggle = true ;
83
83
m_debounceTimer.start ();
84
84
}
85
- // else
86
- // {
87
- // if (m_toggle && m_debounceTimer.check())
88
- // {
89
- // Serial.println("debouncetimer");
90
- // m_toggle = false;
91
-
92
- // if (!m_singleToggle)
93
- // {
94
- // m_singleToggle = true;
95
- // m_overTimer.start();
96
- // }
97
- // else if (m_singleToggle && !m_doubleToggle)
98
- // {
99
- // m_doubleToggle = true;
100
- // m_overTimer.start();
101
- // }
102
- // else if (m_singleToggle && m_doubleToggle && !m_tripleToggle)
103
- // {
104
- // m_tripleToggle = true;
105
- // m_overTimer.start();
106
- // }
107
- // else if (m_singleToggle && m_doubleToggle && m_tripleToggle && !m_quadrupleToggle)
108
- // {
109
- // m_quadrupleToggle = true;
110
- // m_overTimer.start();
111
- // }
112
- // else
113
- // {
114
- // // Unknown number of toggles
115
- // }
116
- // }
117
-
118
- // if (m_overTimer.check())
119
- // {
120
- // Serial.println("overtimer");
121
- // if (m_singleToggle && m_doubleToggle && m_tripleToggle && m_quadrupleToggle)
122
- // {
123
- // m_quadrupleToggleCallback();
124
- // }
125
- // else if (m_singleToggle && m_doubleToggle && m_tripleToggle && !m_quadrupleToggle)
126
- // {
127
- // m_tripleToggleCallback();
128
- // }
129
- // else if (m_singleToggle && m_doubleToggle && !m_tripleToggle && !m_quadrupleToggle)
130
- // {
131
- // m_doubleToggleCallback();
132
- // }
133
- // else if (m_singleToggle && !m_doubleToggle && !m_tripleToggle && !m_quadrupleToggle)
134
- // {
135
- // m_singleToggleCallback();
136
- // }
137
- // else
138
- // {
139
- // // Unknown number of toggles
140
- // }
141
-
142
- // m_singleToggle = false;
143
- // m_doubleToggle = false;
144
- // m_tripleToggle = false;
145
- // m_quadrupleToggle = false;
146
- // }
147
- // }
85
+
86
+ if (m_toggle)
87
+ {
88
+ m_toggle = false ;
89
+
90
+ if (!m_singleToggle)
91
+ {
92
+ m_singleToggle = true ;
93
+ m_overTimer.start ();
94
+ }
95
+ else if (m_singleToggle && !m_doubleToggle)
96
+ {
97
+ m_doubleToggle = true ;
98
+ m_overTimer.start ();
99
+ }
100
+ else if (m_singleToggle && m_doubleToggle && !m_tripleToggle)
101
+ {
102
+ m_tripleToggle = true ;
103
+ m_overTimer.start ();
104
+ }
105
+ else if (m_singleToggle && m_doubleToggle && m_tripleToggle && !m_quadrupleToggle)
106
+ {
107
+ m_quadrupleToggle = true ;
108
+ m_overTimer.start ();
109
+ }
110
+ else
111
+ {
112
+ // Unknown number of toggles
113
+ }
114
+ }
115
+
116
+ if (m_overTimer.check ())
117
+ {
118
+ if (m_singleToggle && m_doubleToggle && m_tripleToggle && m_quadrupleToggle)
119
+ {
120
+ m_quadrupleToggleCallback ();
121
+ }
122
+ else if (m_singleToggle && m_doubleToggle && m_tripleToggle && !m_quadrupleToggle)
123
+ {
124
+ m_tripleToggleCallback ();
125
+ }
126
+ else if (m_singleToggle && m_doubleToggle && !m_tripleToggle && !m_quadrupleToggle)
127
+ {
128
+ m_doubleToggleCallback ();
129
+ }
130
+ else if (m_singleToggle && !m_doubleToggle && !m_tripleToggle && !m_quadrupleToggle)
131
+ {
132
+ m_singleToggleCallback ();
133
+ }
134
+ else
135
+ {
136
+ // Unknown number of toggles
137
+ }
138
+
139
+ m_singleToggle = false ;
140
+ m_doubleToggle = false ;
141
+ m_tripleToggle = false ;
142
+ m_quadrupleToggle = false ;
143
+ }
148
144
}
149
145
150
146
void ToggleSwitch::setSingleToggleCallback (void (*callback)())
0 commit comments