* - 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>
101 lines
2.5 KiB
C++
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);
|
|
}
|
|
}
|