Files
snapclient/components/improv_wifi/improv_wrapper.cpp
CarlosDerSeher a619587c03 Improv wifi (#85)
* - add wifi credential reset
  o press reset button (nRESET pin) 3 times
    but wait about 1s between button presses
    the button press counter is reset 5s after boot
* add wifi provisioning service through improv wifi (fix #75)

Signed-off-by: Karl Osterseher <karli_o@gmx.at>
2024-06-12 16:12:21 +02:00

101 lines
2.5 KiB
C++

/*
* improv_wrapper.cpp
*
* Created on: Apr 28, 2024
* Author: karl
*/
#include "improv_wrapper.h"
ImprovWiFi *c = NULL;
extern "C" void improv_wifi_create(void) {
if (c != NULL) {
delete c;
}
c = new ImprovWiFi();
}
extern "C" void improv_wifi_destroy(void) {
if (c != NULL) {
delete c;
c = NULL;
}
}
extern "C" int improv_wifi_handle_serial(const uint8_t *data, size_t length) {
if (c != NULL) {
c->handleSerial(data, length);
return 0;
}
return -1;
}
extern "C" void improv_wifi_set_device_info(uint8_t chipFamily,
const char *firmwareName,
const char *firmwareVersion,
const char *deviceName,
const char *deviceUrl) {
if (c != NULL) {
c->setDeviceInfo((ImprovTypes::ChipFamily)chipFamily, firmwareName,
firmwareVersion, deviceName, deviceUrl);
}
}
extern "C" void improv_wifi_serialWrite(void *serWriteCb) {
ImprovWiFi::SerialWrite *cb = (ImprovWiFi::SerialWrite *)serWriteCb;
if (c != NULL) {
c->serialWrite(cb);
}
}
extern "C" void improv_wifi_onImprovError(void *onImprovErrorCb) {
ImprovWiFi::OnImprovError *cb = (ImprovWiFi::OnImprovError *)onImprovErrorCb;
if (c != NULL) {
c->onImprovError(cb);
}
}
extern "C" void improv_wifi_onImprovConnected(void *onImprovConnectedCb) {
ImprovWiFi::OnImprovConnected *cb =
(ImprovWiFi::OnImprovConnected *)onImprovConnectedCb;
if (c != NULL) {
c->onImprovConnected(cb);
}
}
extern "C" void improv_wifi_setCustomConnectWiFi(void *setCustomConnectWiFiCb) {
ImprovWiFi::CustomConnectWiFi *cb =
(ImprovWiFi::CustomConnectWiFi *)setCustomConnectWiFiCb;
if (c != NULL) {
c->setCustomConnectWiFi(cb);
}
}
extern "C" void improv_wifi_setCustomScanWiFi(void *setCustomScanWiFiCb) {
ImprovWiFi::CustomScanWiFi *cb =
(ImprovWiFi::CustomScanWiFi *)setCustomScanWiFiCb;
if (c != NULL) {
c->setCustomScanWiFi(cb);
}
}
extern "C" void improv_wifi_setCustomIsConnected(void *setCustomIsConnected) {
ImprovWiFi::CustomIsConnected *cb =
(ImprovWiFi::CustomIsConnected *)setCustomIsConnected;
if (c != NULL) {
c->setCustomisConnected(cb);
}
}
extern "C" void improv_wifi_setCustomGetLocalIpCallback(
void *getLocalIpCallback) {
ImprovWiFi::CustomGetLocalIpCallback *cb =
(ImprovWiFi::CustomGetLocalIpCallback *)getLocalIpCallback;
if (c != NULL) {
c->setCustomGetLocalIpCallback(cb);
}
}