Add some comms checks

This commit is contained in:
Theo Arends 2021-08-31 17:00:45 +02:00
parent 1affb8f20c
commit f77690dd9a
1 changed files with 7 additions and 0 deletions

View File

@ -50,6 +50,12 @@ bool VindriktningReadData(void) {
if (!VindriktningSerial->available()) { if (!VindriktningSerial->available()) {
return false; return false;
} }
while ((VindriktningSerial->peek() != 0x16) && VindriktningSerial->available()) {
VindriktningSerial->read();
}
if (VindriktningSerial->available() < VINDRIKTNING_DATASET_SIZE) {
return false;
}
uint8_t buffer[VINDRIKTNING_DATASET_SIZE]; uint8_t buffer[VINDRIKTNING_DATASET_SIZE];
VindriktningSerial->readBytes(buffer, VINDRIKTNING_DATASET_SIZE); VindriktningSerial->readBytes(buffer, VINDRIKTNING_DATASET_SIZE);
@ -67,6 +73,7 @@ bool VindriktningReadData(void) {
} }
// sample data: // sample data:
// 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
// 16 11 0b 00 00 00 0c 00 00 03 cb 00 00 00 0c 01 00 00 00 e7 // 16 11 0b 00 00 00 0c 00 00 03 cb 00 00 00 0c 01 00 00 00 e7
// |pm2_5| |pm1_0| |pm10 | | CRC | // |pm2_5| |pm1_0| |pm10 | | CRC |
Vindriktning.pm2_5 = (buffer[5] << 8) | buffer[6]; Vindriktning.pm2_5 = (buffer[5] << 8) | buffer[6];