From a05e8c34b775a5ba82506552c029ac95fc91407d Mon Sep 17 00:00:00 2001
From: Moritz Perschke <moritz.perschke@uibk.ac.at>
Date: Wed, 7 Sep 2022 16:36:07 +0200
Subject: [PATCH] host-> client response functionality added

---
 client/client/lib/espnow/src/ESPNow.cpp  |  6 +++-
 client/client/lib/espnow/src/Message.cpp |  2 +-
 client/client/src/main.cpp               |  4 +++
 host/fipy/main.py                        | 44 ++++--------------------
 4 files changed, 16 insertions(+), 40 deletions(-)

diff --git a/client/client/lib/espnow/src/ESPNow.cpp b/client/client/lib/espnow/src/ESPNow.cpp
index e529306..7c411f5 100644
--- a/client/client/lib/espnow/src/ESPNow.cpp
+++ b/client/client/lib/espnow/src/ESPNow.cpp
@@ -31,11 +31,15 @@ void on_data_recv(const uint8_t *mac, const uint8_t *incomingData, int len)
 	if (!preferences.isKey("host")) {
 		preferences.putBytes("host", new_config.host, sizeof(new_config.host));
 		Serial.println("host mac saved to flash");
-	} // host change shouldn't be an issue
+	} else{
+		Serial.println("host mac already exists");
+	}// host change shouldn't be an issue
 	preferences.end();
 	// sync time
 	esptime::rtc.setTime(
 	    new_config.time_millis); // see https://www.esp32.com/viewtopic.php?t=9965, maybe this needs an offset
+	Serial.println("Saved Time: " + (String) new_config.time_millis);
+	Serial.flush();
 }
 
 esp_err_t espnow_setup()
diff --git a/client/client/lib/espnow/src/Message.cpp b/client/client/lib/espnow/src/Message.cpp
index c4bfb3f..ce9dd25 100644
--- a/client/client/lib/espnow/src/Message.cpp
+++ b/client/client/lib/espnow/src/Message.cpp
@@ -25,8 +25,8 @@ esp_err_t Message::send()
 	Serial.println((String) "time sent: " + data.timestamp);
 	Serial.println((String) "Send status: " + success);
 	Serial.println();
-	Serial.flush();
 	Serial.println("done");
+	Serial.flush();
 	return success;
 }
 
diff --git a/client/client/src/main.cpp b/client/client/src/main.cpp
index 9c4ff79..2dbc066 100644
--- a/client/client/src/main.cpp
+++ b/client/client/src/main.cpp
@@ -2,6 +2,7 @@
 #include "ram_caching.hpp"
 #include <Arduino.h>
 #include <ArduinoJson.h>
+#include "Time.hpp"
 
 void setup()
 {
@@ -41,5 +42,8 @@ void loop()
 	//   resend_message->send();
 	//   delete resend_message;
 	// }
+	Serial.println("Current Time: " + (String) esptime::rtc.getMillis());
+	Serial.println("delaying...");
+	Serial.flush();
 	delay(5000);
 }
\ No newline at end of file
diff --git a/host/fipy/main.py b/host/fipy/main.py
index 1735bdb..2725784 100644
--- a/host/fipy/main.py
+++ b/host/fipy/main.py
@@ -1,39 +1,12 @@
 # main.py -- put your code here!
 from network import WLAN
-from network import ESPNOW
+from pycom import rgbled
+# from network import ESPNOW
 import binascii
 import struct
 from time import sleep
 from lib.server_transfer import DataTransferWiFi
-
-
-def bytes_to_data(msg):
-    # turn bytes from message into 22-tuple of integers(identifiers), floats(values), integer(amount) and long(timestamp)
-    data = struct.unpack("<10i10fil", bytes(msg))
-    amountData = data[20]
-    timestamp = data[21]
-    identifiers = data[0:amountData]
-    values = data[10 : (10 + amountData)]
-    return {
-        "amountData": amountData,
-        "timestamp": timestamp,
-        "data": dict(zip(identifiers, values)),
-    }
-
-
-def espnow_recv(result):
-    mac, peer, msg = result
-
-    data = bytes_to_data(msg)
-    try:
-        print(data["amountData"])
-        print(data["timestamp"])
-        print(data["data"])
-        print(str(binascii.hexlify(mac), "ascii"))
-
-    except Exception as error:
-        print(error)
-
+from lib.espnow import Forte_ESPNOW
 
 # data = DataTransferWiFi()
 # data.connect("Z", "AbsoluteSandwich")
@@ -41,15 +14,10 @@ def espnow_recv(result):
 #     "airSensors,sensor_id=TLM0201 temperature=73.97038159354763,humidity=35.23103248356096,co=0.4844531056779361 1661175680\nairSensors,sensor_id=TLM0202 temperature=75.30007505999716,humidity=35.65192991869171,co=0.5141876544505826 1661175680\nairSensors,sensor_id=TLM0202 temperature=75.30007505999756,humidity=35.65192991869171,co=0.5141876544505826 1661175680"
 # )
 # data.disconnect()
-
+#
+espnow = Forte_ESPNOW()
 w = WLAN()
-
-ESPNOW.init()
-p = ESPNOW.add_peer("58cf79043c84")
-
-ESPNOW.on_recv(espnow_recv)
-
 while True:
-    print("...")
+    rgbled(0x007f00)
     sleep(5)
     pass
-- 
GitLab