|
|
@ -1,4 +1,4 @@ |
|
|
|
#include "h2o2_sensor_driver.hpp"
|
|
|
|
#include "h2o2_sensor.hpp"
|
|
|
|
|
|
|
|
#include "zsdk/zcanreceiver/zcanreceiver.hpp"
|
|
|
|
using namespace iflytop; |
|
|
@ -11,11 +11,11 @@ static osThreadId H2O2CaptureThreadId; |
|
|
|
* FUNC * |
|
|
|
***********************************************************************************************************************/ |
|
|
|
static void c_onH2O2CaptureThread(void const* argument) { |
|
|
|
H2O2SensorDriver* driver = (H2O2SensorDriver*)argument; |
|
|
|
H2O2Sensor* driver = (H2O2Sensor*)argument; |
|
|
|
driver->onH2O2CaptureThread(); |
|
|
|
} |
|
|
|
|
|
|
|
void H2O2SensorDriver::initialize(UART_HandleTypeDef* huart, ADC_HandleTypeDef* hadc, int32_t adcChannel) { |
|
|
|
void H2O2Sensor::initialize(UART_HandleTypeDef* huart, ADC_HandleTypeDef* hadc, int32_t adcChannel) { |
|
|
|
ZASSERT(huart->Init.BaudRate == 19200); |
|
|
|
ZASSERT(huart->Init.StopBits == UART_STOPBITS_2); |
|
|
|
|
|
|
@ -38,34 +38,34 @@ void H2O2SensorDriver::initialize(UART_HandleTypeDef* huart, ADC_HandleTypeDef* |
|
|
|
H2O2CaptureThreadId = osThreadCreate(osThread(H2O2CaptureThread), this); |
|
|
|
m_isInitialized = true; |
|
|
|
|
|
|
|
BIND_FN(H2O2SensorDriver, this, fn_h2o2_sensor_read_calibration_date); |
|
|
|
BIND_FN(H2O2SensorDriver, this, fn_h2o2_sensor_read_sub_ic_errorcode); |
|
|
|
BIND_FN(H2O2SensorDriver, this, fn_h2o2_sensor_read_sub_ic_reg); |
|
|
|
BIND_FN(H2O2Sensor, this, fn_h2o2_sensor_read_calibration_date); |
|
|
|
BIND_FN(H2O2Sensor, this, fn_h2o2_sensor_read_sub_ic_errorcode); |
|
|
|
BIND_FN(H2O2Sensor, this, fn_h2o2_sensor_read_sub_ic_reg); |
|
|
|
} |
|
|
|
|
|
|
|
/***********************************************************************************************************************
|
|
|
|
* H2O2 * |
|
|
|
***********************************************************************************************************************/ |
|
|
|
|
|
|
|
bool H2O2SensorDriver::h2o2_sensor_is_online() { |
|
|
|
bool H2O2Sensor::h2o2_sensor_is_online() { |
|
|
|
if (m_detectId <= 0) return false; |
|
|
|
int32_t ecode = m_HMP110.read_cache_errorcode(); |
|
|
|
if (ecode == -1) return false; |
|
|
|
return true; |
|
|
|
} |
|
|
|
int32_t H2O2SensorDriver::h2o2_sensor_read_calibration_date(int32_t* year, int32_t* month, int32_t* day) { //
|
|
|
|
int32_t H2O2Sensor::h2o2_sensor_read_calibration_date(int32_t* year, int32_t* month, int32_t* day) { //
|
|
|
|
*year = 1; |
|
|
|
*month = 2; |
|
|
|
*day = 3; |
|
|
|
return 0; |
|
|
|
} |
|
|
|
int32_t H2O2SensorDriver::h2o2_sensor_read_sub_ic_errorcode() { //
|
|
|
|
int32_t H2O2Sensor::h2o2_sensor_read_sub_ic_errorcode() { //
|
|
|
|
return m_HMP110.read_cache_errorcode(); |
|
|
|
} |
|
|
|
int32_t H2O2SensorDriver::h2o2_sensor_read_sub_ic_reg(int32_t add, uint16_t* val, size_t len) { //
|
|
|
|
int32_t H2O2Sensor::h2o2_sensor_read_sub_ic_reg(int32_t add, uint16_t* val, size_t len) { //
|
|
|
|
return m_HMP110.read_reg(add, val, len); |
|
|
|
} |
|
|
|
int32_t H2O2SensorDriver::h2o2_sensor_data(report_h2o2_data_t* readdata) { |
|
|
|
int32_t H2O2Sensor::h2o2_sensor_data(report_h2o2_data_t* readdata) { |
|
|
|
HMP110::hmp110_sensordata_t sensordata; |
|
|
|
int h2o2adcData = 0; |
|
|
|
|
|
|
@ -95,7 +95,7 @@ int32_t H2O2SensorDriver::h2o2_sensor_data(report_h2o2_data_t* readdata) { |
|
|
|
return 0; |
|
|
|
} |
|
|
|
|
|
|
|
void H2O2SensorDriver::onH2O2CaptureThread() { |
|
|
|
void H2O2Sensor::onH2O2CaptureThread() { |
|
|
|
while (1) { |
|
|
|
osDelay(5000); |
|
|
|
m_H2O2Adc.updateAdcValToCache(); |
|
|
@ -104,6 +104,6 @@ void H2O2SensorDriver::onH2O2CaptureThread() { |
|
|
|
static report_h2o2_data_t data; |
|
|
|
memset(&data, 0, sizeof(data)); |
|
|
|
h2o2_sensor_data(&data); |
|
|
|
if (gEnableReportFlag) zcanbus_send_report(kreport_h2o2_sensor_data, (uint8_t*)&data, sizeof(data), 30); |
|
|
|
zcanbus_send_report(kreport_h2o2_sensor_data, (uint8_t*)&data, sizeof(data), 30); |
|
|
|
} |
|
|
|
} |