aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app.cpp69
-rw-r--r--trygvisio_soil_moisture.ino3
2 files changed, 20 insertions, 52 deletions
diff --git a/app.cpp b/app.cpp
index 2d84700..5e45c6e 100644
--- a/app.cpp
+++ b/app.cpp
@@ -52,17 +52,10 @@ static boolean connected;
static boolean blink;
static unsigned long last_blink;
-#if PERSISTENT_CONFIGURATION_SUPPORT == 1
-static boolean setup_settings();
-static boolean load_settings();
-static void store_settings();
-static void set_default_settings();
-#endif
+static void setup_settings();
void sm_setup() {
-#if PERSISTENT_CONFIGURATION_SUPPORT == 1
setup_settings();
-#endif
for (int i = 0; i < SENSOR_COUNT; i++) {
struct sm_sensor s = sensors[i];
@@ -73,6 +66,8 @@ void sm_setup() {
}
pinMode(LED_PIN, OUTPUT);
+
+ Serial.println("sm_setup: done");
}
void sm_on_connect() {
@@ -93,27 +88,25 @@ void sm_on_disconnect() {
}
#if PERSISTENT_CONFIGURATION_SUPPORT == 1
-static int store_string(int index, uint8_t len, char* chars) {
+static int store_string(int index, uint8_t len, char *chars) {
EEPROM.write(index++, len);
for (int i = 0; i < len; i++) {
EEPROM.write(index++, chars[i]);
}
- return index + 1 + len;
+ return 1 + len;
}
-static int load_string(int index, uint8_t max_length, uint8_t& length, char* chars) {
- uint8_t stored_len = EEPROM.read(index++);
+static int load_string(int index, const uint8_t max_length, uint8_t& length, char *chars) {
+ length = EEPROM.read(index++);
- uint8_t len = min(stored_len, max_length);
- for (int i = 0; i < stored_len; i++) {
+ uint8_t len = min(length, max_length);
+ for (int i = 0; i < len; i++) {
chars[i] = EEPROM.read(index++);
}
- length = len;
-
- return stored_len;
+ return 1 + len;
}
static void set_default_settings() {
@@ -124,8 +117,8 @@ static void set_default_settings() {
for (int i = 0; i < SENSOR_COUNT; i++) {
sensors[i].warning_value = 700;
- int idx = 8;
- strcpy(sensors[i].name, "123456 #");
+ int idx = 9;
+ strcpy(sensors[i].name, "Sensor #");
sensors[i].name[idx++] = '0' + i;
sensors[i].name_length = idx;
}
@@ -148,7 +141,6 @@ static boolean load_settings() {
s.warning_value = EEPROM.read(index++);
s.warning_value += EEPROM.read(index++) << 8;
- s.name_length = EEPROM.read(index++);
index += load_string(index, SENSOR_NAME_LEN, s.name_length, s.name);
}
@@ -171,41 +163,16 @@ static void store_settings() {
}
static void setup_settings() {
- /*
- for (int i = 0; i < 3; i++) {
- for (int j = 0; j < 16; j++) {
- uint8_t value = EEPROM.read(i * 16 + j);
- Serial.print(value, HEX);
- Serial.print(" ");
- Serial.print((char)value);
- Serial.print(" ");
- }
- Serial.println();
- }
-
- for (int i = 0; i < SENSOR_COUNT; i++) {
- struct sm_sensor s = sensors[i];
-
- Serial.print("name len=");
- Serial.print(s.name_length, DEC);
- Serial.print(": ->");
- Serial.write((const uint8_t*) s.name, s.name_length);
- Serial.print("<-");
- Serial.println();
- }
-*/
-// set_default_settings();
-/*
if (!load_settings()) {
- Serial.println("setting default settings");
+ Serial.println("Setting default settings");
set_default_settings();
- Serial.println("saving settings");
+ Serial.println("Saving settings");
store_settings();
} else {
Serial.println("Settings loaded");
}
-*/
+
for (int i = 0; i < SENSOR_COUNT; i++) {
Serial.print("XX: i=");
Serial.print(i, DEC);
@@ -219,9 +186,11 @@ static void setup_settings() {
Serial.print("<-");
Serial.println();
}
- /**/
- Serial.println("done");
+
+ Serial.println("setup_settings: done");
}
+#else
+static void setup_settings() {}
#endif // PERSISTENT_CONFIGURATION_SUPPORT
void sm_loop() {
diff --git a/trygvisio_soil_moisture.ino b/trygvisio_soil_moisture.ino
index d357d77..f824106 100644
--- a/trygvisio_soil_moisture.ino
+++ b/trygvisio_soil_moisture.ino
@@ -62,6 +62,7 @@ void setup() {
#endif // WAIT_FOR_SERIAL_BEFORE_STARING
setup_rf();
+ sm_setup();
}
static void setup_rf() {
@@ -103,8 +104,6 @@ static void setup_rf() {
// The second parameter is for turning debug printing on for the ACI Commands and Events so they be printed on the Serial
lib_aci_init(&aci_state, false);
Serial.println(F("lib_aci_init done"));
-
- sm_setup();
}
static boolean rf_started = false;