3#include "../../proto/transcoder.h"
4#include "../communication.h"
10 WiFiCommand* output) {
31 Esp32Command cmd = Esp32Command_init_default;
35 memcpy(output, &cmd.command.wifi_command,
sizeof(WiFiCommand));
42 WiFiCommand wifi_cmd = WiFiCommand_init_zero;
43 wifi_cmd.type = WiFiCommand_Type_CONNECT;
44 strncpy(wifi_cmd.ssid,
ssid,
sizeof(wifi_cmd.ssid));
45 strncpy(wifi_cmd.passwd, passwd,
sizeof(wifi_cmd.passwd));
47 WiFiCommand resp = WiFiCommand_init_zero;
57 WiFiCommand wifi_cmd = WiFiCommand_init_zero;
58 wifi_cmd.type = WiFiCommand_Type_DISCONNECT;
60 WiFiCommand resp = WiFiCommand_init_zero;
70 WiFiCommand wifi_cmd = WiFiCommand_init_zero;
71 wifi_cmd.type = WiFiCommand_Type_CHECK_WIFI;
73 WiFiCommand resp = WiFiCommand_init_zero;
81 WiFiCommand wifi_cmd = WiFiCommand_init_zero;
82 wifi_cmd.type = WiFiCommand_Type_NTP_SYNC;
84 WiFiCommand resp = WiFiCommand_init_zero;
94 WiFiCommand wifi_cmd = WiFiCommand_init_zero;
95 wifi_cmd.type = WiFiCommand_Type_TIME;
97 WiFiCommand resp = WiFiCommand_init_zero;
105 WiFiCommand wifi_cmd = WiFiCommand_init_zero;
106 wifi_cmd.type = WiFiCommand_Type_CHECK_API;
107 strncpy(wifi_cmd.url, url,
sizeof(wifi_cmd.url));
109 WiFiCommand resp = WiFiCommand_init_zero;
119 WiFiCommand wifi_cmd = WiFiCommand_init_zero;
120 wifi_cmd.type = WiFiCommand_Type_POST;
126 WiFiCommand resp = WiFiCommand_init_zero;
136 WiFiCommand wifi_cmd = WiFiCommand_init_zero;
137 wifi_cmd.type = WiFiCommand_Type_CHECK;
140 WiFiCommand resp = WiFiCommand_init_zero;
147 http_resp.
size = resp.resp.size;
148 if (http_resp.
size > 0) {
149 memcpy(http_resp.
bytes, resp.resp.bytes, http_resp.
size);
157 WiFiCommand wifi_cmd = WiFiCommand_init_zero;
158 wifi_cmd.type = WiFiCommand_Type_HOST;
160 strncpy(wifi_cmd.ssid,
ssid,
sizeof(wifi_cmd.ssid));
161 strncpy(wifi_cmd.passwd, passwd,
sizeof(wifi_cmd.passwd));
163 WiFiCommand resp = WiFiCommand_init_zero;
174 WiFiCommand wifi_cmd = WiFiCommand_init_zero;
175 wifi_cmd.type = WiFiCommand_Type_STOP_HOST;
177 WiFiCommand resp = WiFiCommand_init_zero;
187 WiFiCommand wifi_cmd = WiFiCommand_init_zero;
188 wifi_cmd.type = WiFiCommand_Type_HOST_INFO;
190 WiFiCommand resp = WiFiCommand_init_zero;
195 strcpy(
ssid, resp.ssid);
199 strcpy(ip, resp.url);
203 strcpy(mac, resp.mac);
206 if (clients != NULL) {
207 *clients = resp.clients;
Buffer * ControllerTx(void)
Get reference to transmit buffer.
Buffer * ControllerRx(void)
Get reference to receive buffer.
ControllerStatus ControllerTransaction(void)
Send message and receive response from esp32.
bool ControllerWiFiHost(const char *ssid, const char *passwd)
Sets the esp32 as a WiFi access point.
void ControllerWiFiHostInfo(char *ssid, char *ip, char *mac, uint8_t *clients)
Gets information about the current access point.
bool ControllerWiFiConnect(const char *ssid, const char *passwd)
Initialize WiFi settings on the esp32.
ControllerWiFiStatus ControllerWiFiCheckWiFi(void)
Checks the current status of WiFi.
bool ControllerWiFiCheckApi(const char *url)
Queries the API endpoint to check if it is reachable.
bool ControllerWiFiDisconnect(void)
Disconnects from the WiFi network.
bool ControllerWiFiNtpSync(void)
Triggers a NTP sync with the server.
ControllerWiFiStatus
WiFi status.
uint32_t ControllerWiFiTime(void)
Get the current time from the NTP server.
bool ControllerWiFiPost(const uint8_t *data, size_t data_len)
Post data to the configured endpoint.
bool ControllerWiFiStopHost(void)
Stops the esp32 from acting as a WiFi access point.
ControllerWiFiResponse ControllerWiFiCheckRequest(void)
Checks the status of the most recent HTTP request.
size_t EncodeWiFiCommand(const WiFiCommand *wifi_cmd, uint8_t *buffer, size_t size)
Encodes a WiFiCommand.
Esp32Command DecodeEsp32Command(const uint8_t *data, const size_t len)
Decodes an Esp32Command message.
ControllerStatus WiFiCommandTransaction(const WiFiCommand *input, WiFiCommand *output)