struct sensor_info info;
/* Valid packet received, parse data */
parse_packet(&info);
+ if (debug == 2) {
+ printf("Packet from sensor %d\n", info.addr);
+ }
if (info.seqnum == last_seq_num[info.addr]) {
/* Ignore duplicated packet */
+ if (debug == 2) {
+ printf("Dup packet from sensor %d (seq: %d)\n", info.addr, info.seqnum);
+ }
break;
}
/* Check data validity */
if ((info.raw_humidity < 1000) || (info.raw_humidity > 4000)) {
+ if (debug == 2) {
+ printf("Invalid raw soil humidity [1000 .. 4000] : %d\n", info.raw_humidity);
+ }
break;
}
if ((info.pressure < 800) || (info.pressure > 1200)) {
+ if (debug == 2) {
+ printf("Invalid pressure [800 .. 1200] : %d\n", info.pressure);
+ }
break;
}
if ((info.comp_temp < -400) || (info.comp_temp > 1000)) {
+ if (debug == 2) {
+ printf("Invalid temperature [-400 .. 1000] : %d\n", info.comp_temp);
+ }
break;
}
if (info.humidity > 1000) {
+ if (debug == 2) {
+ printf("Invalid air rel humidity [0 .. 1000] : %d\n", info.humidity);
+ }
break;
}
/* New device ? store address */
if ((info.addr < NB_ADDRESS) && (addr_list[info.addr] == 0)) {
addr_list[info.addr] = info.addr;
+ if (debug == 2) {
+ printf("New device detected : %d\n", info.addr);
+ }
}
/* Store data to log file */