43 lines
1.1 KiB
C++
43 lines
1.1 KiB
C++
#ifndef ML307_SSL_TRANSPORT_H
|
|
#define ML307_SSL_TRANSPORT_H
|
|
|
|
#include <freertos/FreeRTOS.h>
|
|
#include <freertos/task.h>
|
|
#include <freertos/queue.h>
|
|
#include <freertos/event_groups.h>
|
|
#include "transport.h"
|
|
#include "ml307_at_modem.h"
|
|
|
|
#include <mutex>
|
|
#include <string>
|
|
|
|
#define ML307_SSL_TRANSPORT_CONNECTED BIT0
|
|
#define ML307_SSL_TRANSPORT_DISCONNECTED BIT1
|
|
#define ML307_SSL_TRANSPORT_ERROR BIT2
|
|
#define ML307_SSL_TRANSPORT_RECEIVE BIT3
|
|
#define ML307_SSL_TRANSPORT_SEND_COMPLETE BIT4
|
|
#define ML307_SSL_TRANSPORT_INITIALIZED BIT5
|
|
|
|
#define SSL_CONNECT_TIMEOUT_MS 10000
|
|
|
|
class Ml307SslTransport : public Transport {
|
|
public:
|
|
Ml307SslTransport(Ml307AtModem& modem, int tcp_id);
|
|
~Ml307SslTransport();
|
|
|
|
bool Connect(const char* host, int port) override;
|
|
void Disconnect() override;
|
|
int Send(const char* data, size_t length) override;
|
|
int Receive(char* buffer, size_t bufferSize) override;
|
|
|
|
private:
|
|
std::mutex mutex_;
|
|
Ml307AtModem& modem_;
|
|
EventGroupHandle_t event_group_handle_;
|
|
int tcp_id_ = 0;
|
|
std::string rx_buffer_;
|
|
std::list<CommandResponseCallback>::iterator command_callback_it_;
|
|
};
|
|
|
|
#endif // ML307_SSL_TRANSPORT_H
|