aboutsummaryrefslogtreecommitdiff
path: root/app.h
diff options
context:
space:
mode:
authorTrygve Laugstøl <trygvis@inamo.no>2015-01-04 21:02:45 +0100
committerTrygve Laugstøl <trygvis@inamo.no>2015-01-04 21:02:45 +0100
commit2f50ae8864aa2ba9e5807432eb878552389a9cb2 (patch)
treed4d028587942f109f10fcead918d9682a70f9bad /app.h
parent7c0e1f7ffb750813a788940fdd55e9800c2f701d (diff)
downloadtrygvisio_soil_moisture-2f50ae8864aa2ba9e5807432eb878552389a9cb2.tar.gz
trygvisio_soil_moisture-2f50ae8864aa2ba9e5807432eb878552389a9cb2.tar.bz2
trygvisio_soil_moisture-2f50ae8864aa2ba9e5807432eb878552389a9cb2.tar.xz
trygvisio_soil_moisture-2f50ae8864aa2ba9e5807432eb878552389a9cb2.zip
o Reworking the code after implementing much more on the Android app.
Diffstat (limited to 'app.h')
-rw-r--r--app.h90
1 files changed, 70 insertions, 20 deletions
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 <stdint.h>
+#include <Arduino.h>
+
+#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