mirror of
https://github.com/airgradienthq/arduino.git
synced 2025-07-16 10:12:09 +02:00
Merge branch 'develop' into hotfix/print-log-wrong-format
This commit is contained in:
@ -68,7 +68,6 @@ static LocalServer localServer(Serial, openMetrics, measurements, configuration,
|
|||||||
wifiConnector);
|
wifiConnector);
|
||||||
static MqttClient mqttClient(Serial);
|
static MqttClient mqttClient(Serial);
|
||||||
|
|
||||||
static int pmFailCount = 0;
|
|
||||||
static int getCO2FailCount = 0;
|
static int getCO2FailCount = 0;
|
||||||
static AgFirmwareMode fwMode = FW_MODE_I_BASIC_40PS;
|
static AgFirmwareMode fwMode = FW_MODE_I_BASIC_40PS;
|
||||||
|
|
||||||
@ -514,15 +513,20 @@ static void updatePm(void) {
|
|||||||
Serial.printf("PM2.5 ug/m3: %d\r\n", measurements.pm25_1);
|
Serial.printf("PM2.5 ug/m3: %d\r\n", measurements.pm25_1);
|
||||||
Serial.printf("PM10 ug/m3: %d\r\n", measurements.pm10_1);
|
Serial.printf("PM10 ug/m3: %d\r\n", measurements.pm10_1);
|
||||||
Serial.printf("PM0.3 Count: %d\r\n", measurements.pm03PCount_1);
|
Serial.printf("PM0.3 Count: %d\r\n", measurements.pm03PCount_1);
|
||||||
pmFailCount = 0;
|
ag.pms5003.resetFailCount();
|
||||||
} else {
|
} else {
|
||||||
pmFailCount++;
|
ag.pms5003.updateFailCount();
|
||||||
Serial.printf("PMS read failed: %d\r\n", pmFailCount);
|
Serial.printf("PMS read failed %d times\r\n", ag.pms5003.getFailCount());
|
||||||
if (pmFailCount >= 3) {
|
if (ag.pms5003.getFailCount() >= PMS_FAIL_COUNT_SET_INVALID) {
|
||||||
measurements.pm01_1 = utils::getInvalidPMS();
|
measurements.pm01_1 = utils::getInvalidPmValue();
|
||||||
measurements.pm25_1 = utils::getInvalidPMS();
|
measurements.pm25_1 = utils::getInvalidPmValue();
|
||||||
measurements.pm10_1 = utils::getInvalidPMS();
|
measurements.pm10_1 = utils::getInvalidPmValue();
|
||||||
measurements.pm03PCount_1 = utils::getInvalidPMS();
|
measurements.pm03PCount_1 = utils::getInvalidPmValue();
|
||||||
|
}
|
||||||
|
|
||||||
|
if(ag.pms5003.getFailCount() >= ag.pms5003.getFailCountMax()) {
|
||||||
|
Serial.printf("PMS failure count reach to max set %d, restarting...", ag.pms5003.getFailCountMax());
|
||||||
|
ESP.restart();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -67,10 +67,10 @@ String OpenMetrics::getPayload(void) {
|
|||||||
|
|
||||||
float _temp = utils::getInvalidTemperature();
|
float _temp = utils::getInvalidTemperature();
|
||||||
float _hum = utils::getInvalidHumidity();
|
float _hum = utils::getInvalidHumidity();
|
||||||
int pm01 = utils::getInvalidPMS();
|
int pm01 = utils::getInvalidPmValue();
|
||||||
int pm25 = utils::getInvalidPMS();
|
int pm25 = utils::getInvalidPmValue();
|
||||||
int pm10 = utils::getInvalidPMS();
|
int pm10 = utils::getInvalidPmValue();
|
||||||
int pm03PCount = utils::getInvalidPMS();
|
int pm03PCount = utils::getInvalidPmValue();
|
||||||
int atmpCompensated = utils::getInvalidTemperature();
|
int atmpCompensated = utils::getInvalidTemperature();
|
||||||
int ahumCompensated = utils::getInvalidHumidity();
|
int ahumCompensated = utils::getInvalidHumidity();
|
||||||
|
|
||||||
|
@ -68,7 +68,6 @@ static LocalServer localServer(Serial, openMetrics, measurements, configuration,
|
|||||||
wifiConnector);
|
wifiConnector);
|
||||||
static MqttClient mqttClient(Serial);
|
static MqttClient mqttClient(Serial);
|
||||||
|
|
||||||
static int pmFailCount = 0;
|
|
||||||
static int getCO2FailCount = 0;
|
static int getCO2FailCount = 0;
|
||||||
static AgFirmwareMode fwMode = FW_MODE_I_33PS;
|
static AgFirmwareMode fwMode = FW_MODE_I_33PS;
|
||||||
|
|
||||||
@ -566,15 +565,20 @@ static void updatePm(void) {
|
|||||||
Serial.printf("PM2.5 ug/m3: %d\r\n", measurements.pm25_1);
|
Serial.printf("PM2.5 ug/m3: %d\r\n", measurements.pm25_1);
|
||||||
Serial.printf("PM10 ug/m3: %d\r\n", measurements.pm10_1);
|
Serial.printf("PM10 ug/m3: %d\r\n", measurements.pm10_1);
|
||||||
Serial.printf("PM0.3 Count: %d\r\n", measurements.pm03PCount_1);
|
Serial.printf("PM0.3 Count: %d\r\n", measurements.pm03PCount_1);
|
||||||
pmFailCount = 0;
|
ag.pms5003.resetFailCount();
|
||||||
} else {
|
} else {
|
||||||
pmFailCount++;
|
ag.pms5003.updateFailCount();
|
||||||
Serial.printf("PMS read failed: %d\r\n", pmFailCount);
|
Serial.printf("PMS read failed %d times\r\n", ag.pms5003.getFailCount());
|
||||||
if (pmFailCount >= 3) {
|
if (ag.pms5003.getFailCount() >= PMS_FAIL_COUNT_SET_INVALID) {
|
||||||
measurements.pm01_1 = utils::getInvalidPMS();
|
measurements.pm01_1 = utils::getInvalidPmValue();
|
||||||
measurements.pm25_1 = utils::getInvalidPMS();
|
measurements.pm25_1 = utils::getInvalidPmValue();
|
||||||
measurements.pm10_1 = utils::getInvalidPMS();
|
measurements.pm10_1 = utils::getInvalidPmValue();
|
||||||
measurements.pm03PCount_1 = utils::getInvalidPMS();
|
measurements.pm03PCount_1 = utils::getInvalidPmValue();
|
||||||
|
}
|
||||||
|
|
||||||
|
if(ag.pms5003.getFailCount() >= ag.pms5003.getFailCountMax()) {
|
||||||
|
Serial.printf("PMS failure count reach to max set %d, restarting...", ag.pms5003.getFailCountMax());
|
||||||
|
ESP.restart();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -67,10 +67,10 @@ String OpenMetrics::getPayload(void) {
|
|||||||
|
|
||||||
float _temp = utils::getInvalidTemperature();
|
float _temp = utils::getInvalidTemperature();
|
||||||
float _hum = utils::getInvalidHumidity();
|
float _hum = utils::getInvalidHumidity();
|
||||||
int pm01 = utils::getInvalidPMS();
|
int pm01 = utils::getInvalidPmValue();
|
||||||
int pm25 = utils::getInvalidPMS();
|
int pm25 = utils::getInvalidPmValue();
|
||||||
int pm10 = utils::getInvalidPMS();
|
int pm10 = utils::getInvalidPmValue();
|
||||||
int pm03PCount = utils::getInvalidPMS();
|
int pm03PCount = utils::getInvalidPmValue();
|
||||||
int atmpCompensated = utils::getInvalidTemperature();
|
int atmpCompensated = utils::getInvalidTemperature();
|
||||||
int ahumCompensated = utils::getInvalidHumidity();
|
int ahumCompensated = utils::getInvalidHumidity();
|
||||||
|
|
||||||
|
@ -68,7 +68,6 @@ static LocalServer localServer(Serial, openMetrics, measurements, configuration,
|
|||||||
wifiConnector);
|
wifiConnector);
|
||||||
static MqttClient mqttClient(Serial);
|
static MqttClient mqttClient(Serial);
|
||||||
|
|
||||||
static int pmFailCount = 0;
|
|
||||||
static uint32_t factoryBtnPressTime = 0;
|
static uint32_t factoryBtnPressTime = 0;
|
||||||
static int getCO2FailCount = 0;
|
static int getCO2FailCount = 0;
|
||||||
static AgFirmwareMode fwMode = FW_MODE_I_42PS;
|
static AgFirmwareMode fwMode = FW_MODE_I_42PS;
|
||||||
@ -609,15 +608,20 @@ static void updatePm(void) {
|
|||||||
Serial.printf("PM2.5 ug/m3: %d\r\n", measurements.pm25_1);
|
Serial.printf("PM2.5 ug/m3: %d\r\n", measurements.pm25_1);
|
||||||
Serial.printf("PM10 ug/m3: %d\r\n", measurements.pm10_1);
|
Serial.printf("PM10 ug/m3: %d\r\n", measurements.pm10_1);
|
||||||
Serial.printf("PM0.3 Count: %d\r\n", measurements.pm03PCount_1);
|
Serial.printf("PM0.3 Count: %d\r\n", measurements.pm03PCount_1);
|
||||||
pmFailCount = 0;
|
ag.pms5003.resetFailCount();
|
||||||
} else {
|
} else {
|
||||||
pmFailCount++;
|
ag.pms5003.updateFailCount();
|
||||||
Serial.printf("PMS read failed: %d\r\n", pmFailCount);
|
Serial.printf("PMS read failed %d times\r\n", ag.pms5003.getFailCount());
|
||||||
if (pmFailCount >= 3) {
|
if (ag.pms5003.getFailCount() >= PMS_FAIL_COUNT_SET_INVALID) {
|
||||||
measurements.pm01_1 = utils::getInvalidPMS();
|
measurements.pm01_1 = utils::getInvalidPmValue();
|
||||||
measurements.pm25_1 = utils::getInvalidPMS();
|
measurements.pm25_1 = utils::getInvalidPmValue();
|
||||||
measurements.pm10_1 = utils::getInvalidPMS();
|
measurements.pm10_1 = utils::getInvalidPmValue();
|
||||||
measurements.pm03PCount_1 = utils::getInvalidPMS();
|
measurements.pm03PCount_1 = utils::getInvalidPmValue();
|
||||||
|
}
|
||||||
|
|
||||||
|
if(ag.pms5003.getFailCount() >= ag.pms5003.getFailCountMax()) {
|
||||||
|
Serial.printf("PMS failure count reach to max set %d, restarting...", ag.pms5003.getFailCountMax());
|
||||||
|
ESP.restart();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -67,10 +67,10 @@ String OpenMetrics::getPayload(void) {
|
|||||||
|
|
||||||
float _temp = utils::getInvalidTemperature();
|
float _temp = utils::getInvalidTemperature();
|
||||||
float _hum = utils::getInvalidHumidity();
|
float _hum = utils::getInvalidHumidity();
|
||||||
int pm01 = utils::getInvalidPMS();
|
int pm01 = utils::getInvalidPmValue();
|
||||||
int pm25 = utils::getInvalidPMS();
|
int pm25 = utils::getInvalidPmValue();
|
||||||
int pm10 = utils::getInvalidPMS();
|
int pm10 = utils::getInvalidPmValue();
|
||||||
int pm03PCount = utils::getInvalidPMS();
|
int pm03PCount = utils::getInvalidPmValue();
|
||||||
int atmpCompensated = utils::getInvalidTemperature();
|
int atmpCompensated = utils::getInvalidTemperature();
|
||||||
int ahumCompensated = utils::getInvalidHumidity();
|
int ahumCompensated = utils::getInvalidHumidity();
|
||||||
|
|
||||||
|
@ -88,7 +88,6 @@ static OtaHandler otaHandler;
|
|||||||
static LocalServer localServer(Serial, openMetrics, measurements, configuration,
|
static LocalServer localServer(Serial, openMetrics, measurements, configuration,
|
||||||
wifiConnector);
|
wifiConnector);
|
||||||
|
|
||||||
static int pmFailCount = 0;
|
|
||||||
static uint32_t factoryBtnPressTime = 0;
|
static uint32_t factoryBtnPressTime = 0;
|
||||||
static int getCO2FailCount = 0;
|
static int getCO2FailCount = 0;
|
||||||
static AgFirmwareMode fwMode = FW_MODE_I_9PSL;
|
static AgFirmwareMode fwMode = FW_MODE_I_9PSL;
|
||||||
@ -1006,6 +1005,7 @@ static void updateTvoc(void) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void updatePm(void) {
|
static void updatePm(void) {
|
||||||
|
bool restart = false;
|
||||||
if (ag->isOne()) {
|
if (ag->isOne()) {
|
||||||
if (ag->pms5003.isFailed() == false) {
|
if (ag->pms5003.isFailed() == false) {
|
||||||
measurements.pm01_1 = ag->pms5003.getPm01Ae();
|
measurements.pm01_1 = ag->pms5003.getPm01Ae();
|
||||||
@ -1018,15 +1018,19 @@ static void updatePm(void) {
|
|||||||
Serial.printf("PM2.5 ug/m3: %d\r\n", measurements.pm25_1);
|
Serial.printf("PM2.5 ug/m3: %d\r\n", measurements.pm25_1);
|
||||||
Serial.printf("PM10 ug/m3: %d\r\n", measurements.pm10_1);
|
Serial.printf("PM10 ug/m3: %d\r\n", measurements.pm10_1);
|
||||||
Serial.printf("PM0.3 Count: %d\r\n", measurements.pm03PCount_1);
|
Serial.printf("PM0.3 Count: %d\r\n", measurements.pm03PCount_1);
|
||||||
pmFailCount = 0;
|
ag->pms5003.resetFailCount();
|
||||||
} else {
|
} else {
|
||||||
pmFailCount++;
|
ag->pms5003.updateFailCount();
|
||||||
Serial.printf("PMS read failed: %d\r\n", pmFailCount);
|
Serial.printf("PMS read faile %d times\r\n", ag->pms5003.getFailCount());
|
||||||
if (pmFailCount >= 3) {
|
if (ag->pms5003.getFailCount() >= PMS_FAIL_COUNT_SET_INVALID) {
|
||||||
measurements.pm01_1 = utils::getInvalidPMS();
|
measurements.pm01_1 = utils::getInvalidPmValue();
|
||||||
measurements.pm25_1 = utils::getInvalidPMS();
|
measurements.pm25_1 = utils::getInvalidPmValue();
|
||||||
measurements.pm10_1 = utils::getInvalidPMS();
|
measurements.pm10_1 = utils::getInvalidPmValue();
|
||||||
measurements.pm03PCount_1 = utils::getInvalidPMS();
|
measurements.pm03PCount_1 = utils::getInvalidPmValue();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ag->pms5003.getFailCount() >= ag->pms5003.getFailCountMax()) {
|
||||||
|
restart = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@ -1053,13 +1057,26 @@ static void updatePm(void) {
|
|||||||
ag->pms5003t_1.temperatureCompensated(measurements.temp_1));
|
ag->pms5003t_1.temperatureCompensated(measurements.temp_1));
|
||||||
Serial.printf("[1] Relative Humidity compensated: %0.2f\r\n",
|
Serial.printf("[1] Relative Humidity compensated: %0.2f\r\n",
|
||||||
ag->pms5003t_1.humidityCompensated(measurements.hum_1));
|
ag->pms5003t_1.humidityCompensated(measurements.hum_1));
|
||||||
|
|
||||||
|
ag->pms5003t_1.resetFailCount();
|
||||||
} else {
|
} else {
|
||||||
measurements.pm01_1 = utils::getInvalidPMS();
|
if (configuration.hasSensorPMS1) {
|
||||||
measurements.pm25_1 = utils::getInvalidPMS();
|
ag->pms5003t_1.updateFailCount();
|
||||||
measurements.pm10_1 = utils::getInvalidPMS();
|
Serial.printf("[1] PMS read failed %d times\r\n", ag->pms5003t_1.getFailCount());
|
||||||
measurements.pm03PCount_1 = utils::getInvalidPMS();
|
|
||||||
measurements.temp_1 = utils::getInvalidTemperature();
|
if (ag->pms5003t_1.getFailCount() >= PMS_FAIL_COUNT_SET_INVALID) {
|
||||||
measurements.hum_1 = utils::getInvalidHumidity();
|
measurements.pm01_1 = utils::getInvalidPmValue();
|
||||||
|
measurements.pm25_1 = utils::getInvalidPmValue();
|
||||||
|
measurements.pm10_1 = utils::getInvalidPmValue();
|
||||||
|
measurements.pm03PCount_1 = utils::getInvalidPmValue();
|
||||||
|
measurements.temp_1 = utils::getInvalidTemperature();
|
||||||
|
measurements.hum_1 = utils::getInvalidHumidity();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ag->pms5003t_1.getFailCount() >= ag->pms5003t_1.getFailCountMax()) {
|
||||||
|
restart = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (configuration.hasSensorPMS2 && (ag->pms5003t_2.isFailed() == false)) {
|
if (configuration.hasSensorPMS2 && (ag->pms5003t_2.isFailed() == false)) {
|
||||||
@ -1083,13 +1100,26 @@ static void updatePm(void) {
|
|||||||
ag->pms5003t_1.temperatureCompensated(measurements.temp_2));
|
ag->pms5003t_1.temperatureCompensated(measurements.temp_2));
|
||||||
Serial.printf("[2] Relative Humidity compensated: %0.2f\r\n",
|
Serial.printf("[2] Relative Humidity compensated: %0.2f\r\n",
|
||||||
ag->pms5003t_1.humidityCompensated(measurements.hum_2));
|
ag->pms5003t_1.humidityCompensated(measurements.hum_2));
|
||||||
|
|
||||||
|
ag->pms5003t_2.resetFailCount();
|
||||||
} else {
|
} else {
|
||||||
measurements.pm01_2 = utils::getInvalidPMS();
|
if (configuration.hasSensorPMS2) {
|
||||||
measurements.pm25_2 = utils::getInvalidPMS();
|
ag->pms5003t_2.updateFailCount();
|
||||||
measurements.pm10_2 = utils::getInvalidPMS();
|
Serial.printf("[2] PMS read failed %d times\r\n", ag->pms5003t_2.getFailCount());
|
||||||
measurements.pm03PCount_2 = utils::getInvalidPMS();
|
|
||||||
measurements.temp_2 = utils::getInvalidTemperature();
|
if (ag->pms5003t_2.getFailCount() >= PMS_FAIL_COUNT_SET_INVALID) {
|
||||||
measurements.hum_2 = utils::getInvalidHumidity();
|
measurements.pm01_2 = utils::getInvalidPmValue();
|
||||||
|
measurements.pm25_2 = utils::getInvalidPmValue();
|
||||||
|
measurements.pm10_2 = utils::getInvalidPmValue();
|
||||||
|
measurements.pm03PCount_2 = utils::getInvalidPmValue();
|
||||||
|
measurements.temp_2 = utils::getInvalidTemperature();
|
||||||
|
measurements.hum_2 = utils::getInvalidHumidity();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ag->pms5003t_2.getFailCount() >= ag->pms5003t_2.getFailCountMax()) {
|
||||||
|
restart = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (configuration.hasSensorPMS1 && configuration.hasSensorPMS2 &&
|
if (configuration.hasSensorPMS1 && configuration.hasSensorPMS2 &&
|
||||||
@ -1189,6 +1219,11 @@ static void updatePm(void) {
|
|||||||
ag->sgp41.setCompensationTemperatureHumidity(temp, hum);
|
ag->sgp41.setCompensationTemperatureHumidity(temp, hum);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (restart) {
|
||||||
|
Serial.printf("PMS failure count reach to max set %d, restarting...", ag->pms5003.getFailCountMax());
|
||||||
|
ESP.restart();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void sendDataToServer(void) {
|
static void sendDataToServer(void) {
|
||||||
|
@ -67,10 +67,10 @@ String OpenMetrics::getPayload(void) {
|
|||||||
|
|
||||||
float _temp = utils::getInvalidTemperature();
|
float _temp = utils::getInvalidTemperature();
|
||||||
float _hum = utils::getInvalidHumidity();
|
float _hum = utils::getInvalidHumidity();
|
||||||
int pm01 = utils::getInvalidPMS();
|
int pm01 = utils::getInvalidPmValue();
|
||||||
int pm25 = utils::getInvalidPMS();
|
int pm25 = utils::getInvalidPmValue();
|
||||||
int pm10 = utils::getInvalidPMS();
|
int pm10 = utils::getInvalidPmValue();
|
||||||
int pm03PCount = utils::getInvalidPMS();
|
int pm03PCount = utils::getInvalidPmValue();
|
||||||
int atmpCompensated = utils::getInvalidTemperature();
|
int atmpCompensated = utils::getInvalidTemperature();
|
||||||
int ahumCompensated = utils::getInvalidHumidity();
|
int ahumCompensated = utils::getInvalidHumidity();
|
||||||
if (config.hasSensorPMS1 && config.hasSensorPMS2) {
|
if (config.hasSensorPMS1 && config.hasSensorPMS2) {
|
||||||
|
@ -82,7 +82,7 @@ float utils::getInvalidHumidity(void) { return INVALID_HUMIDITY; }
|
|||||||
|
|
||||||
int utils::getInvalidCO2(void) { return INVALID_CO2; }
|
int utils::getInvalidCO2(void) { return INVALID_CO2; }
|
||||||
|
|
||||||
int utils::getInvalidPMS(void) { return INVALID_PMS; }
|
int utils::getInvalidPmValue(void) { return INVALID_PMS; }
|
||||||
|
|
||||||
int utils::getInvalidNOx(void) { return INVALID_NOX; }
|
int utils::getInvalidNOx(void) { return INVALID_NOX; }
|
||||||
|
|
||||||
|
@ -21,7 +21,7 @@ public:
|
|||||||
static float getInvalidTemperature(void);
|
static float getInvalidTemperature(void);
|
||||||
static float getInvalidHumidity(void);
|
static float getInvalidHumidity(void);
|
||||||
static int getInvalidCO2(void);
|
static int getInvalidCO2(void);
|
||||||
static int getInvalidPMS(void);
|
static int getInvalidPmValue(void);
|
||||||
static int getInvalidNOx(void);
|
static int getInvalidNOx(void);
|
||||||
static int getInvalidVOC(void);
|
static int getInvalidVOC(void);
|
||||||
};
|
};
|
||||||
|
@ -12,6 +12,7 @@ bool PMSBase::begin(Stream *stream) {
|
|||||||
this->stream = stream;
|
this->stream = stream;
|
||||||
|
|
||||||
failed = true;
|
failed = true;
|
||||||
|
failCount = 0;
|
||||||
lastRead = 0; // To read buffer on handle without wait after 1.5sec
|
lastRead = 0; // To read buffer on handle without wait after 1.5sec
|
||||||
|
|
||||||
this->stream->flush();
|
this->stream->flush();
|
||||||
@ -147,6 +148,27 @@ void PMSBase::handle() {
|
|||||||
*/
|
*/
|
||||||
bool PMSBase::isFailed(void) { return failed; }
|
bool PMSBase::isFailed(void) { return failed; }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Increate number of fail
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
void PMSBase::updateFailCount(void) {
|
||||||
|
if (failCount < failCountMax) {
|
||||||
|
failCount++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void PMSBase::resetFailCount(void) { failCount = 0; }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Get number of fail
|
||||||
|
*
|
||||||
|
* @return int
|
||||||
|
*/
|
||||||
|
int PMSBase::getFailCount(void) { return failCount; }
|
||||||
|
|
||||||
|
int PMSBase::getFailCountMax(void) { return failCountMax; }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Read PMS 0.1 ug/m3 with CF = 1 PM estimates
|
* @brief Read PMS 0.1 ug/m3 with CF = 1 PM estimates
|
||||||
*
|
*
|
||||||
|
@ -3,11 +3,17 @@
|
|||||||
|
|
||||||
#include <Arduino.h>
|
#include <Arduino.h>
|
||||||
|
|
||||||
|
#define PMS_FAIL_COUNT_SET_INVALID 3
|
||||||
|
|
||||||
class PMSBase {
|
class PMSBase {
|
||||||
public:
|
public:
|
||||||
bool begin(Stream *stream);
|
bool begin(Stream *stream);
|
||||||
void handle();
|
void handle();
|
||||||
bool isFailed(void);
|
bool isFailed(void);
|
||||||
|
void updateFailCount(void);
|
||||||
|
void resetFailCount(void);
|
||||||
|
int getFailCount(void);
|
||||||
|
int getFailCountMax(void);
|
||||||
uint16_t getRaw0_1(void);
|
uint16_t getRaw0_1(void);
|
||||||
uint16_t getRaw2_5(void);
|
uint16_t getRaw2_5(void);
|
||||||
uint16_t getRaw10(void);
|
uint16_t getRaw10(void);
|
||||||
@ -36,6 +42,8 @@ private:
|
|||||||
int packageIndex;
|
int packageIndex;
|
||||||
bool failed = false;
|
bool failed = false;
|
||||||
uint32_t lastRead;
|
uint32_t lastRead;
|
||||||
|
const int failCountMax = 10;
|
||||||
|
int failCount = 0;
|
||||||
|
|
||||||
int16_t toI16(char *buf);
|
int16_t toI16(char *buf);
|
||||||
uint16_t toU16(char* buf);
|
uint16_t toU16(char* buf);
|
||||||
|
@ -175,3 +175,25 @@ void PMS5003::handle(void) { pms.handle(); }
|
|||||||
* @return false Communication timeout or sensor has removed
|
* @return false Communication timeout or sensor has removed
|
||||||
*/
|
*/
|
||||||
bool PMS5003::isFailed(void) { return pms.isFailed(); }
|
bool PMS5003::isFailed(void) { return pms.isFailed(); }
|
||||||
|
|
||||||
|
void PMS5003::updateFailCount(void) {
|
||||||
|
pms.updateFailCount();
|
||||||
|
}
|
||||||
|
|
||||||
|
void PMS5003::resetFailCount(void) {
|
||||||
|
pms.resetFailCount();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Get number of fail count
|
||||||
|
*
|
||||||
|
* @return int
|
||||||
|
*/
|
||||||
|
int PMS5003::getFailCount(void) { return pms.getFailCount(); }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Get number of fail count max
|
||||||
|
*
|
||||||
|
* @return int
|
||||||
|
*/
|
||||||
|
int PMS5003::getFailCountMax(void) { return pms.getFailCountMax(); }
|
||||||
|
@ -19,6 +19,10 @@ public:
|
|||||||
void end(void);
|
void end(void);
|
||||||
void handle(void);
|
void handle(void);
|
||||||
bool isFailed(void);
|
bool isFailed(void);
|
||||||
|
void updateFailCount(void);
|
||||||
|
void resetFailCount(void);
|
||||||
|
int getFailCount(void);
|
||||||
|
int getFailCountMax(void);
|
||||||
int getPm01Ae(void);
|
int getPm01Ae(void);
|
||||||
int getPm25Ae(void);
|
int getPm25Ae(void);
|
||||||
int getPm10Ae(void);
|
int getPm10Ae(void);
|
||||||
|
@ -216,3 +216,24 @@ void PMS5003T::handle(void) { pms.handle(); }
|
|||||||
*/
|
*/
|
||||||
bool PMS5003T::isFailed(void) { return pms.isFailed(); }
|
bool PMS5003T::isFailed(void) { return pms.isFailed(); }
|
||||||
|
|
||||||
|
void PMS5003T::updateFailCount(void) {
|
||||||
|
pms.updateFailCount();
|
||||||
|
}
|
||||||
|
|
||||||
|
void PMS5003T::resetFailCount(void) {
|
||||||
|
pms.resetFailCount();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Get fail count
|
||||||
|
*
|
||||||
|
* @return int
|
||||||
|
*/
|
||||||
|
int PMS5003T::getFailCount(void) { return pms.getFailCount(); }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Get fail count max
|
||||||
|
*
|
||||||
|
* @return int
|
||||||
|
*/
|
||||||
|
int PMS5003T::getFailCountMax(void) { return pms.getFailCountMax(); }
|
||||||
|
@ -22,6 +22,10 @@ public:
|
|||||||
|
|
||||||
void handle(void);
|
void handle(void);
|
||||||
bool isFailed(void);
|
bool isFailed(void);
|
||||||
|
void updateFailCount(void);
|
||||||
|
void resetFailCount(void);
|
||||||
|
int getFailCount(void);
|
||||||
|
int getFailCountMax(void);
|
||||||
int getPm01Ae(void);
|
int getPm01Ae(void);
|
||||||
int getPm25Ae(void);
|
int getPm25Ae(void);
|
||||||
int getPm10Ae(void);
|
int getPm10Ae(void);
|
||||||
|
Reference in New Issue
Block a user