diff --git a/client/client/lib/espnow/src/ESPNow.cpp b/client/client/lib/espnow/src/ESPNow.cpp index 7c411f535cd6611380536224692b3fabdfdea1e9..8bfd7bf970f5efa6d9e9dc1e80d47ee84dc2c8c3 100644 --- a/client/client/lib/espnow/src/ESPNow.cpp +++ b/client/client/lib/espnow/src/ESPNow.cpp @@ -63,3 +63,29 @@ esp_err_t espnow_setup() return ESP_OK; } + +esp_err_t espnow_send_message(Message message){ + Serial.println("sending Message"); + esp_err_t success; + ClientDataPackage* dataP = message.get_client_data_package(); + uint8_t recipient; + get_host_mac(&recipient); + + success = esp_now_send(&recipient, (uint8_t *) dataP, sizeof(ClientDataPackage)); + // if(success != ESP_OK){ + // if(!ram_cache_is_full()){ + // ram_cache_push(*data); + // } + // } + + for (int i = 0; i < dataP->amountData; i++) { + Serial.println(dataP->values[i]); + } + + Serial.println((String) "time sent: " + dataP->timestamp); + Serial.println((String) "Send status: " + success); + Serial.println(); + Serial.println("done"); + Serial.flush(); + return success; +} diff --git a/client/client/lib/espnow/src/ESPNow.hpp b/client/client/lib/espnow/src/ESPNow.hpp index 1230290fca05d93f3c98bbd7c3374f364f5868bb..0d0d72c3443cf0f672247189f04f572b348a3eff 100644 --- a/client/client/lib/espnow/src/ESPNow.hpp +++ b/client/client/lib/espnow/src/ESPNow.hpp @@ -16,6 +16,7 @@ typedef struct config { } config; esp_err_t espnow_setup(); +esp_err_t espnow_send_message(Message message); bool is_host_defined(); void get_host_mac(uint8_t *destination); void on_data_sent(const uint8_t *mac_addr, esp_now_send_status_t status); diff --git a/client/client/lib/espnow/src/Message.cpp b/client/client/lib/espnow/src/Message.cpp index ce9dd254d0b57b9a24e68c677865149d90f6ed2d..22edc8f2114b3891eed446ebedd7b3a72a57ee00 100644 --- a/client/client/lib/espnow/src/Message.cpp +++ b/client/client/lib/espnow/src/Message.cpp @@ -9,31 +9,13 @@ void Message::add_data(float value, int identifier) } } -esp_err_t Message::send() -{ - Serial.println("sending Message"); - esp_err_t success; - success = esp_now_send(recipient, (uint8_t *)&data, sizeof(data)); - // if(success != ESP_OK){ - // if(!ram_cache_is_full()){ - // ram_cache_push(*data); - // } - // } - for (int i = 0; i < data.amountData; i++) { - Serial.println(data.values[i]); - } - Serial.println((String) "time sent: " + data.timestamp); - Serial.println((String) "Send status: " + success); - Serial.println(); - Serial.println("done"); - Serial.flush(); - return success; +ClientDataPackage* Message ::get_client_data_package(){ + return &data; } Message ::Message() { // check for existing host mac address, use broadcast otherwise - get_host_mac(recipient); data.amountData = 0; data.timestamp = esptime::rtc.getMillis(); // I am assuming we are not sending data from Unix Epoch @@ -43,5 +25,4 @@ Message ::Message(ClientDataPackage old_data) { data = old_data; // memcpy(&data, &old_data, sizeof(data)); - get_host_mac(recipient); } \ No newline at end of file diff --git a/client/client/lib/espnow/src/Message.hpp b/client/client/lib/espnow/src/Message.hpp index ee00f7fd7365a15c25a32d9ad81b575fb5edde3b..fe0a8f5633f238bbb48a1a8c5ec7434117806a90 100644 --- a/client/client/lib/espnow/src/Message.hpp +++ b/client/client/lib/espnow/src/Message.hpp @@ -1,7 +1,6 @@ #pragma once #include "ClientDataPackage.hpp" -#include "ESPNow.hpp" #include "Time.hpp" #include <Arduino.h> #include <ESP32Time.h> @@ -14,9 +13,8 @@ class Message { Message(); Message(ClientDataPackage old_data); void add_data(float value, int identifier); - esp_err_t send(); + ClientDataPackage* get_client_data_package(); private: ClientDataPackage data; - uint8_t recipient[6]; }; \ No newline at end of file