YEAH!
This commit is contained in:
70
src/hmi.cpp
70
src/hmi.cpp
@ -33,20 +33,20 @@ public:
|
|||||||
break;
|
break;
|
||||||
case STATE_BUTTON_RELEASED:
|
case STATE_BUTTON_RELEASED:
|
||||||
duration = getMillis() - m_timestamp;
|
duration = getMillis() - m_timestamp;
|
||||||
// {
|
{
|
||||||
// uint16_t d1 = (uint16_t) (duration & 0x0000ffff);
|
uint16_t d1 = (uint16_t) (duration & 0x0000ffff);
|
||||||
// uint16_t d2 = (uint16_t) ((duration & 0xffff0000) >> 16);
|
uint16_t d2 = (uint16_t) ((duration & 0xffff0000) >> 16);
|
||||||
// debugWrite(d1);
|
debugWrite(d1);
|
||||||
// debugWrite(d2);
|
debugWrite(d2);
|
||||||
// }
|
}
|
||||||
if ((duration >= LOWER_SHORT_TIME) && (duration <= UPPER_SHORT_TIME)) {
|
if ((duration >= LOWER_SHORT_TIME) && (duration <= UPPER_SHORT_TIME)) {
|
||||||
// debugWrite(0x003);
|
debugWrite(0x003);
|
||||||
m_state = STATE_SHORT;
|
m_state = STATE_SHORT;
|
||||||
} else if (duration > UPPER_SHORT_TIME) {
|
} else if (duration > UPPER_SHORT_TIME) {
|
||||||
// debugWrite(0x004);
|
debugWrite(0x004);
|
||||||
m_state = STATE_LONG;
|
m_state = STATE_LONG;
|
||||||
} else {
|
} else {
|
||||||
// debugWrite(0x005);
|
debugWrite(0x005);
|
||||||
m_state = STATE_IDLE;
|
m_state = STATE_IDLE;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -67,7 +67,7 @@ public:
|
|||||||
};
|
};
|
||||||
private:
|
private:
|
||||||
static const uint32_t LOWER_SHORT_TIME = 100;
|
static const uint32_t LOWER_SHORT_TIME = 100;
|
||||||
static const uint32_t UPPER_SHORT_TIME = 300;
|
static const uint32_t UPPER_SHORT_TIME = 500;
|
||||||
enum e_state { STATE_IDLE, STATE_BUTTON_PRESSED, STATE_BUTTON_RELEASED, STATE_SHORT, STATE_LONG };
|
enum e_state { STATE_IDLE, STATE_BUTTON_PRESSED, STATE_BUTTON_RELEASED, STATE_SHORT, STATE_LONG };
|
||||||
e_state m_state;
|
e_state m_state;
|
||||||
uint32_t m_timestamp;
|
uint32_t m_timestamp;
|
||||||
@ -127,10 +127,11 @@ public:
|
|||||||
break;
|
break;
|
||||||
case STATE_START:
|
case STATE_START:
|
||||||
set(true);
|
set(true);
|
||||||
|
m_startTime = getMillis();
|
||||||
m_state = STATE_ON;
|
m_state = STATE_ON;
|
||||||
break;
|
break;
|
||||||
case STATE_ON:
|
case STATE_ON:
|
||||||
if (m_timeout == 0) {
|
if (getMillis() > m_timeout + m_startTime) {
|
||||||
m_state = STATE_OFF;
|
m_state = STATE_OFF;
|
||||||
}
|
}
|
||||||
m_timeout--;
|
m_timeout--;
|
||||||
@ -146,10 +147,11 @@ public:
|
|||||||
}
|
}
|
||||||
private:
|
private:
|
||||||
static const uint32_t LED_WAIT_TIME_SHORT = 500;
|
static const uint32_t LED_WAIT_TIME_SHORT = 500;
|
||||||
static const uint32_t LED_WAIT_TIME_LONG = 1000;
|
static const uint32_t LED_WAIT_TIME_LONG = 5000;
|
||||||
enum e_state { STATE_IDLE, STATE_START, STATE_ON, STATE_OFF };
|
enum e_state { STATE_IDLE, STATE_START, STATE_ON, STATE_OFF };
|
||||||
e_state m_state;
|
e_state m_state;
|
||||||
uint32_t m_timeout;
|
uint32_t m_timeout;
|
||||||
|
uint32_t m_startTime;
|
||||||
};
|
};
|
||||||
class Led1 : public Led {
|
class Led1 : public Led {
|
||||||
public:
|
public:
|
||||||
@ -200,46 +202,48 @@ void hmiInit() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void hmiExec() {
|
void hmiExec() {
|
||||||
if (intensitySwitch.get() == SwitchPort::SWITCH_SHORT) {
|
SwitchPort::e_switchResult switchResult = intensitySwitch.get();
|
||||||
|
if (switchResult == SwitchPort::SWITCH_SHORT) {
|
||||||
if (engineIncPwmValue()) {
|
if (engineIncPwmValue()) {
|
||||||
ledGreen.start(Led::FLASH_SHORT);
|
|
||||||
} else {
|
|
||||||
ledGreen.start(Led::FLASH_LONG);
|
ledGreen.start(Led::FLASH_LONG);
|
||||||
|
} else {
|
||||||
|
ledGreen.start(Led::FLASH_SHORT);
|
||||||
}
|
}
|
||||||
} else if (intensitySwitch.get() == SwitchPort::SWITCH_LONG) {
|
} else if (switchResult == SwitchPort::SWITCH_LONG) {
|
||||||
if (engineDecPwmValue()) {
|
if (engineDecPwmValue()) {
|
||||||
ledRed.start(Led::FLASH_SHORT);
|
|
||||||
} else {
|
|
||||||
ledRed.start(Led::FLASH_LONG);
|
ledRed.start(Led::FLASH_LONG);
|
||||||
|
} else {
|
||||||
|
ledRed.start(Led::FLASH_SHORT);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
switchResult = onTimeSwitch.get();
|
||||||
if (onTimeSwitch.get() == SwitchPort::SWITCH_SHORT) {
|
if (switchResult == SwitchPort::SWITCH_SHORT) {
|
||||||
if (engineIncOnTime()) {
|
if (engineIncOnTime()) {
|
||||||
ledGreen.start(Led::FLASH_SHORT);
|
|
||||||
} else {
|
|
||||||
ledGreen.start(Led::FLASH_LONG);
|
ledGreen.start(Led::FLASH_LONG);
|
||||||
}
|
|
||||||
} else if (onTimeSwitch.get() == SwitchPort::SWITCH_LONG) {
|
|
||||||
if (engineDecOnTime()) {
|
|
||||||
ledRed.start(Led::FLASH_SHORT);
|
|
||||||
} else {
|
} else {
|
||||||
|
ledGreen.start(Led::FLASH_SHORT);
|
||||||
|
}
|
||||||
|
} else if (switchResult == SwitchPort::SWITCH_LONG) {
|
||||||
|
if (engineDecOnTime()) {
|
||||||
ledRed.start(Led::FLASH_LONG);
|
ledRed.start(Led::FLASH_LONG);
|
||||||
|
} else {
|
||||||
|
ledRed.start(Led::FLASH_SHORT);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (offTimeSwitch.get() == SwitchPort::SWITCH_SHORT) {
|
switchResult = offTimeSwitch.get();
|
||||||
|
if (switchResult == SwitchPort::SWITCH_SHORT) {
|
||||||
if (engineIncOffTime()) {
|
if (engineIncOffTime()) {
|
||||||
ledGreen.start(Led::FLASH_SHORT);
|
|
||||||
} else {
|
|
||||||
ledGreen.start(Led::FLASH_LONG);
|
ledGreen.start(Led::FLASH_LONG);
|
||||||
}
|
|
||||||
} else if (onTimeSwitch.get() == SwitchPort::SWITCH_LONG) {
|
|
||||||
if (engineDecOffTime()) {
|
|
||||||
ledRed.start(Led::FLASH_SHORT);
|
|
||||||
} else {
|
} else {
|
||||||
|
ledGreen.start(Led::FLASH_SHORT);
|
||||||
|
}
|
||||||
|
} else if (switchResult == SwitchPort::SWITCH_LONG) {
|
||||||
|
if (engineDecOffTime()) {
|
||||||
ledRed.start(Led::FLASH_LONG);
|
ledRed.start(Led::FLASH_LONG);
|
||||||
|
} else {
|
||||||
|
ledRed.start(Led::FLASH_SHORT);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user