#include "kartReciever.hpp" #include #include #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_; }