2024-10-29 00:22:29 +08:00
|
|
|
#ifndef ML307_BOARD_H
|
|
|
|
|
#define ML307_BOARD_H
|
|
|
|
|
|
2025-07-17 20:18:21 +08:00
|
|
|
#include <memory>
|
|
|
|
|
#include <at_modem.h>
|
2024-11-05 20:15:00 +08:00
|
|
|
#include "board.h"
|
2025-07-17 20:18:21 +08:00
|
|
|
|
2024-10-29 00:22:29 +08:00
|
|
|
|
|
|
|
|
class Ml307Board : public Board {
|
|
|
|
|
protected:
|
2025-07-17 20:18:21 +08:00
|
|
|
std::unique_ptr<AtModem> modem_;
|
|
|
|
|
gpio_num_t tx_pin_;
|
|
|
|
|
gpio_num_t rx_pin_;
|
|
|
|
|
gpio_num_t dtr_pin_;
|
2025-12-09 09:24:56 +08:00
|
|
|
NetworkEventCallback network_event_callback_;
|
2025-07-17 20:18:21 +08:00
|
|
|
|
2024-11-03 05:54:15 +08:00
|
|
|
virtual std::string GetBoardJson() override;
|
2024-10-29 00:22:29 +08:00
|
|
|
|
2025-12-09 09:24:56 +08:00
|
|
|
// Internal helper to trigger network event callback
|
|
|
|
|
void OnNetworkEvent(NetworkEvent event, const std::string& data = "");
|
|
|
|
|
|
|
|
|
|
// Network initialization task (runs in FreeRTOS task)
|
|
|
|
|
static void NetworkTaskEntry(void* arg);
|
|
|
|
|
void NetworkTask();
|
|
|
|
|
|
2024-10-29 00:22:29 +08:00
|
|
|
public:
|
2025-07-17 20:18:21 +08:00
|
|
|
Ml307Board(gpio_num_t tx_pin, gpio_num_t rx_pin, gpio_num_t dtr_pin = GPIO_NUM_NC);
|
2025-02-04 14:24:51 +08:00
|
|
|
virtual std::string GetBoardType() override;
|
2024-11-01 14:26:02 +08:00
|
|
|
virtual void StartNetwork() override;
|
2025-12-09 09:24:56 +08:00
|
|
|
virtual void SetNetworkEventCallback(NetworkEventCallback callback) override;
|
2025-07-17 20:18:21 +08:00
|
|
|
virtual NetworkInterface* GetNetwork() override;
|
2024-11-18 06:17:39 +08:00
|
|
|
virtual const char* GetNetworkStateIcon() override;
|
2025-12-09 09:24:56 +08:00
|
|
|
virtual void SetPowerSaveLevel(PowerSaveLevel level) override;
|
2025-05-07 02:33:38 +08:00
|
|
|
virtual AudioCodec* GetAudioCodec() override { return nullptr; }
|
2025-05-22 19:19:36 +08:00
|
|
|
virtual std::string GetDeviceStatusJson() override;
|
2024-10-29 00:22:29 +08:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
#endif // ML307_BOARD_H
|