*
* main.c
*
- *
* Copyright 2013-2014 Nathael Pajani <nathael.pajani@ed3l.fr>
*
- *
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
****************************************************************************/
-/* this protocol handler is designed to run on a host replacing the DTPlug,
- * but should be easy to use as a source for the protocol handling code for
- * the DTPlug itself.
- */
-
#include <stdint.h>
#include <stdlib.h>
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 */