|
|
@ -11,12 +11,13 @@ using namespace iflytop; |
|
|
|
***********************************************************************************************************************/ |
|
|
|
|
|
|
|
static osThreadId H2O2CaptureThreadId; |
|
|
|
static osThreadId AdcCaptureThreadId; |
|
|
|
static osThreadId AlarmLightThreadId; |
|
|
|
|
|
|
|
/***********************************************************************************************************************
|
|
|
|
* FUNC * |
|
|
|
***********************************************************************************************************************/ |
|
|
|
static void c_onH2O2CaptureThread(void const* argument) { Hardware::ins().onH2O2CaptureThread(); } |
|
|
|
static void c_onAlarmLightThread(void const* argument) { Hardware::ins().onAlarmLightThread(); } |
|
|
|
|
|
|
|
int32_t Hardware::readSwitchGroup() { |
|
|
|
int32_t id = 0; |
|
|
@ -33,6 +34,8 @@ void Hardware::setAlarmLight(bool r, bool g, bool y) { |
|
|
|
m_alarmLightY.write(y); |
|
|
|
} |
|
|
|
|
|
|
|
void Hardware::setAlarmLight(light_state_t state) { m_alarmLightState = state; } |
|
|
|
|
|
|
|
void Hardware::init() { |
|
|
|
m_alarmLightR.initAsOutput(PD7, kxs_gpio_nopull, true, false); |
|
|
|
m_alarmLightG.initAsOutput(PD9, kxs_gpio_nopull, true, false); |
|
|
@ -48,6 +51,7 @@ void Hardware::init() { |
|
|
|
|
|
|
|
ZLOGI(TAG, "switch group:%d id_from_machine %d", readSwitchGroup(), id_from_machine.read()); |
|
|
|
|
|
|
|
setAlarmLight(kdisconnected); |
|
|
|
/**
|
|
|
|
* @brief 探测HMP110 |
|
|
|
*/ |
|
|
@ -92,6 +96,9 @@ void Hardware::init() { |
|
|
|
|
|
|
|
osThreadDef(H2O2CaptureThread, c_onH2O2CaptureThread, osPriorityNormal, 0, 1024); |
|
|
|
H2O2CaptureThreadId = osThreadCreate(osThread(H2O2CaptureThread), NULL); |
|
|
|
|
|
|
|
osThreadDef(AlarmLightThread, c_onAlarmLightThread, osPriorityNormal, 0, 1024); |
|
|
|
AlarmLightThreadId = osThreadCreate(osThread(AlarmLightThread), NULL); |
|
|
|
} |
|
|
|
|
|
|
|
/***********************************************************************************************************************
|
|
|
@ -207,4 +214,19 @@ void Hardware::onH2O2CaptureThread() { |
|
|
|
} |
|
|
|
#endif
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
void Hardware::onAlarmLightThread() { |
|
|
|
while (1) { |
|
|
|
osDelay(100); |
|
|
|
if (m_alarmLightState == kdisconnected) { |
|
|
|
static bool state; |
|
|
|
setAlarmLight(false, state, false); |
|
|
|
state = !state; |
|
|
|
} else if (m_alarmLightState == kconnected) { |
|
|
|
setAlarmLight(true, true, false); |
|
|
|
} else if (m_alarmLightState == kerror) { |
|
|
|
setAlarmLight(true, false, false); |
|
|
|
} |
|
|
|
} |
|
|
|
} |