aboutsummaryrefslogtreecommitdiff
path: root/apps/soil-moisture.h
diff options
context:
space:
mode:
authorTrygve Laugstøl <trygvis@inamo.no>2015-02-20 22:56:22 +0100
committerTrygve Laugstøl <trygvis@inamo.no>2015-02-20 22:56:22 +0100
commite44813dddbf5ba063d29ae1e40862e7a7cbb6f43 (patch)
tree67009d481b8b106af6937a5f386fe4e2e15b1fcc /apps/soil-moisture.h
parentb6f080193d71334e8afea95ae26afbc03c27fac3 (diff)
downloadble-toys-e44813dddbf5ba063d29ae1e40862e7a7cbb6f43.tar.gz
ble-toys-e44813dddbf5ba063d29ae1e40862e7a7cbb6f43.tar.bz2
ble-toys-e44813dddbf5ba063d29ae1e40862e7a7cbb6f43.tar.xz
ble-toys-e44813dddbf5ba063d29ae1e40862e7a7cbb6f43.zip
Reorganizing the source code:
o Moving main to apps/ o Moving the library sources to ble/ o Creating cmake files for each piece.
Diffstat (limited to 'apps/soil-moisture.h')
-rw-r--r--apps/soil-moisture.h118
1 files changed, 118 insertions, 0 deletions
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