From 2f50ae8864aa2ba9e5807432eb878552389a9cb2 Mon Sep 17 00:00:00 2001 From: Trygve Laugstøl Date: Sun, 4 Jan 2015 21:02:45 +0100 Subject: o Reworking the code after implementing much more on the Android app. --- app.h | 90 ++++++++++++++++++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 70 insertions(+), 20 deletions(-) (limited to 'app.h') diff --git a/app.h b/app.h index af3c39a..e13478e 100644 --- a/app.h +++ b/app.h @@ -2,12 +2,18 @@ #define APP_H #include +#include + +#define SENSOR_NAME_LEN 10 enum sm_cmd_code { - SM_CMD_GET_SENSOR_COUNT = 1, - SM_CMD_SET_SENSOR_THRESHOLD = 2, - SM_CMD_GET_SENSOR_LEVEL = 3, - SM_CMD_FAIL = 255, + SM_CMD_GET_SENSOR_COUNT = 1, + SM_CMD_GET_VALUE = 2, + SM_CMD_SET_WARNING_VALUE = 3, + SM_CMD_GET_WARNING_VALUE = 4, + SM_CMD_SET_SENSOR_NAME = 5, + SM_CMD_GET_SENSOR_NAME = 6, + SM_CMD_FAIL = 255, }; struct sm_get_sensor_count_req { @@ -17,50 +23,94 @@ struct sm_get_sensor_count_res { uint8_t count; }; -struct sm_set_sensor_threshold_req { +struct sm_get_value_req { + uint8_t sensor; +}; + +struct sm_get_value_res { + uint8_t value; +}; + +struct sm_set_warning_value_req { uint8_t sensor; - uint8_t threshold; + uint16_t warning_value; }; -struct sm_set_sensor_threshold_res { +struct sm_set_warning_value_res { }; -struct sm_get_sensor_level_req { +struct sm_get_warning_value_req { uint8_t sensor; }; -struct sm_get_sensor_level_res { +struct sm_get_warning_value_res { + uint16_t warning_value; +}; + +struct sm_set_sensor_name_req { uint8_t sensor; - uint8_t level; + uint8_t length; + uint8_t name[SENSOR_NAME_LEN]; +}; + +struct sm_set_sensor_name_res { +}; + +struct sm_get_sensor_name_req { + uint8_t sensor; +}; + +struct sm_get_sensor_name_res { + uint8_t length; + uint8_t name[SENSOR_NAME_LEN]; }; struct sm_req { uint8_t code; union { - struct sm_get_sensor_count_req get_sensor_count; - struct sm_get_sensor_level_req get_sensor_level; - struct sm_set_sensor_threshold_req set_sensor_threshold; + struct sm_get_sensor_count_req get_sensor_count; + struct sm_get_value_req get_value; + struct sm_set_warning_value_req set_warning_value; + struct sm_get_warning_value_req get_warning_value; + struct sm_set_sensor_name_req set_sensor_name; + struct sm_get_sensor_name_req get_sensor_name; }; }; +// len + code +#define SM_RES_HEADER_SIZE 1 + struct sm_res { - uint8_t len; + // header uint8_t code; + + // body union { - struct sm_get_sensor_count_res get_sensor_count; - struct sm_get_sensor_level_res get_sensor_level; - struct sm_set_sensor_threshold_res set_sensor_threshold; + struct sm_get_sensor_count_res get_sensor_count; + struct sm_get_value_res get_value; + struct sm_set_warning_value_res set_warning_value; + struct sm_get_warning_value_res get_warning_value; + struct sm_set_sensor_name_res set_sensor_name; + struct sm_get_sensor_name_res get_sensor_name; }; }; void on_loop(); -bool tx_soil_moisture(struct sm_res *res); -void notify_soil_moisture(struct sm_res *res); +//boolean tx_soil_moisture(struct sm_res& res); +void notify_soil_moisture(const struct sm_res& res, uint8_t body_len); void notify_battery_level(uint8_t value); -void on_soil_moisture(uint8_t *data, uint8_t len); +void on_soil_moisture_ctrl(uint8_t *data, uint8_t len); + +#ifndef SM_DEBUG +#define SM_DEBUG 1 +#endif +#if SM_DEBUG == 1 +void write_req(struct sm_req const& req); +void write_res(struct sm_res const& res); #endif +#endif -- cgit v1.2.3