From 31995151dd3e3d3068ae7b8d24715c75b187536f Mon Sep 17 00:00:00 2001 From: Moritz Perschke <moritz.perschke@uibk.ac.at> Date: Thu, 8 Sep 2022 14:04:01 +0200 Subject: [PATCH] moved message sending from Message class to espnow --- client/client/lib/espnow/src/ESPNow.cpp | 26 ++++++++++++++++++++++++ client/client/lib/espnow/src/ESPNow.hpp | 1 + client/client/lib/espnow/src/Message.cpp | 23 ++------------------- client/client/lib/espnow/src/Message.hpp | 4 +--- 4 files changed, 30 insertions(+), 24 deletions(-) diff --git a/client/client/lib/espnow/src/ESPNow.cpp b/client/client/lib/espnow/src/ESPNow.cpp index 7c411f5..8bfd7bf 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 1230290..0d0d72c 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 ce9dd25..22edc8f 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 ee00f7f..fe0a8f5 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 -- GitLab