From e44813dddbf5ba063d29ae1e40862e7a7cbb6f43 Mon Sep 17 00:00:00 2001 From: Trygve Laugstøl Date: Fri, 20 Feb 2015 22:56:22 +0100 Subject: Reorganizing the source code: o Moving main to apps/ o Moving the library sources to ble/ o Creating cmake files for each piece. --- apps/soil-moisture.h | 118 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 118 insertions(+) create mode 100644 apps/soil-moisture.h (limited to 'apps/soil-moisture.h') diff --git a/apps/soil-moisture.h b/apps/soil-moisture.h new file mode 100644 index 0000000..4f19de1 --- /dev/null +++ b/apps/soil-moisture.h @@ -0,0 +1,118 @@ +#ifndef SOIL_MOISTURE_H +#define SOIL_MOISTURE_H + +#define SENSOR_NAME_LEN 10 + +enum sm_cmd_code { + 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_SET_UPDATE_INTERVAL = 7, + SM_CMD_FAIL = 255, +}; + +struct sm_get_sensor_count_req { +} __attribute__((packed)); + +struct sm_get_sensor_count_res { + uint8_t count; +} __attribute__((packed)); + +struct sm_get_value_req { + uint8_t sensor; +} __attribute__((packed)); + +struct sm_get_value_res { + uint16_t value; +} __attribute__((packed)); + +struct sm_set_warning_value_req { + uint8_t sensor; + uint16_t warning_value; +} __attribute__((packed)); + +struct sm_set_warning_value_res { +} __attribute__((packed)); + +struct sm_get_warning_value_req { + uint8_t sensor; +} __attribute__((packed)); + +struct sm_get_warning_value_res { + uint16_t warning_value; +} __attribute__((packed)); + +struct sm_set_sensor_name_req { + uint8_t sensor; + uint8_t length; + uint8_t name[SENSOR_NAME_LEN]; +} __attribute__((packed)); + +struct sm_set_sensor_name_res { +} __attribute__((packed)); + +struct sm_get_sensor_name_req { + uint8_t sensor; +} __attribute__((packed)); + +struct sm_get_sensor_name_res { + uint8_t length; + uint8_t name[SENSOR_NAME_LEN]; +} __attribute__((packed)); + +struct sm_set_update_interval_req { + uint8_t sensor; + uint8_t interval_in_seconds; +} __attribute__((packed)); + +struct sm_set_update_interval_res { +} __attribute__((packed)); + +struct sm_req { + uint8_t code; + union { + 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; + struct sm_set_update_interval_req set_update_interval; + } __attribute__((packed)); +} __attribute__((packed)); + +// len + code +#define SM_RES_HEADER_SIZE 1 + +struct sm_res { + // header + uint8_t code; + + // body + union { + 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; + struct sm_set_update_interval_res set_update_interval; + } __attribute__((packed)); +} __attribute__((packed)); + +#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