Skip to content
Snippets Groups Projects
Commit 31995151 authored by Moritz Perschke's avatar Moritz Perschke
Browse files

moved message sending from Message class to espnow

parent 20668ea6
No related branches found
No related tags found
4 merge requests!39Merge Develop into Main,!19development into master,!17Inital Host, initial Client,!5fipy host broadcasts its mac + timestamp on start, main function of client...
......@@ -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;
}
......@@ -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);
......
......@@ -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
#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
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment