Files
tracktime_beacon/main/kartReciever.cpp
Michal Courson b1e155d08b initial
2025-08-28 21:39:35 -04:00

44 lines
1.1 KiB
C++

#include "kartReciever.hpp"
#include <esp_now.h>
#include <esp_wifi.h>
#include "WiFi.h"
kartReceiver kart_receiver;
static kart_msg rcv_msg;
static void (*onReceiveCallback)(kart_msg *message) = nullptr;
static void OnDataRecv(const esp_now_recv_info_t *esp_now_info, const uint8_t *data, int data_len) {
// todo rssi filtering
memcpy(&rcv_msg, data, sizeof(kart_msg));
// Serial.print("Bytes received: ");
// Serial.println(data_len);
if (onReceiveCallback) {
onReceiveCallback(&rcv_msg);
}
}
void kartReceiver::init() {
}
bool kartReceiver::begin() {
WiFi.disconnect();
WiFi.mode(WIFI_STA);
if (esp_now_init() != ESP_OK) {
Serial.println("Error initializing ESP-NOW");
return false;
}
esp_now_register_recv_cb(OnDataRecv);
run_status = true;
return true;
}
void kartReceiver::end() {
esp_now_deinit();
run_status = false;
}
bool kartReceiver::isBegin() {
return run_status;
}
void kartReceiver::registerCallback(void (*onReceiveCallback_)(kart_msg *message)) {
onReceiveCallback = onReceiveCallback_;
}