added tone request gateway before actually swithcing the pin
This commit is contained in:
@@ -0,0 +1,194 @@
|
||||
/*
|
||||
* MyWifiClient.cpp
|
||||
*
|
||||
* Created on: 24.09.2020
|
||||
* Author: flori
|
||||
*/
|
||||
|
||||
#include "main.h"
|
||||
#include "Base32.h"
|
||||
#include "Seconds.h"
|
||||
#include "Version.h"
|
||||
|
||||
#include "MyWifiClient.h"
|
||||
|
||||
Base32 base32;
|
||||
|
||||
|
||||
#if 1
|
||||
#define MonitorPrint(...) Serial.print(__VA_ARGS__)
|
||||
#define MonitorPrintln(...) Serial.println(__VA_ARGS__)
|
||||
#else
|
||||
#define MonitorPrint(...)
|
||||
#define MonitorPrintln(...)
|
||||
#endif
|
||||
|
||||
|
||||
MyWifiClient myWifiClient;
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
MyWifiClient::MyWifiClient()
|
||||
{
|
||||
state = IDLE;
|
||||
bSend = false;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
MyWifiClient::~MyWifiClient()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
bool MyWifiClient::canSend(void)
|
||||
{
|
||||
return state == IDLE && bSend == false;
|
||||
}
|
||||
|
||||
|
||||
/* converts dat to base32 and triggers GET request */
|
||||
void MyWifiClient::send(uint8_t *dat, uint16_t len)
|
||||
{
|
||||
strcpy( wifibufMsg , "GET /genericData.php?project=fensterpiepser&dataname=fenster&data=");
|
||||
size_t pos = strlen(wifibufMsg);
|
||||
(void) base32.toBase32(dat, len, &wifibufMsg[pos], true);
|
||||
strcat( wifibufMsg, " HTTP/1.1\r\nHost: fly-with-cats.com\r\nAccept: */*\r\n\r\n");
|
||||
|
||||
bSend = true;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
void MyWifiClient::onSetup(void)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
void MyWifiClient::onLoop(void)
|
||||
{
|
||||
static substate_t substate = ENTRY;
|
||||
static state_t prevState = IDLE;
|
||||
|
||||
if (prevState != state)
|
||||
{
|
||||
substate = ENTRY;
|
||||
prevState = state;
|
||||
switch(state)
|
||||
{
|
||||
case IDLE:
|
||||
MonitorPrintln("IDLE");
|
||||
break;
|
||||
case WAIT_CONNECT:
|
||||
MonitorPrintln("WAIT_CONNECT");
|
||||
break;
|
||||
case WAIT_RECEIVE:
|
||||
MonitorPrintln("WAIT_RECEIVE");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
switch (state)
|
||||
{
|
||||
case IDLE:
|
||||
switch (substate)
|
||||
{
|
||||
static uint32_t tConnectWifiEndSeconds;
|
||||
case ENTRY:
|
||||
tConnectWifiEndSeconds = Seconds::Get() + 60;
|
||||
substate = CYCLIC;
|
||||
break;
|
||||
|
||||
case CYCLIC:
|
||||
if (WiFi.isConnected())
|
||||
{
|
||||
tConnectWifiEndSeconds = Seconds::Get() + 60;
|
||||
if (bSend)
|
||||
{
|
||||
bSend = false;
|
||||
state = WAIT_CONNECT;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (Seconds::Get() > tConnectWifiEndSeconds)
|
||||
{
|
||||
Serial.println("RESET (Wifi)");
|
||||
ESP.restart();
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case WAIT_CONNECT:
|
||||
switch (substate)
|
||||
{
|
||||
static uint32_t tConnectEndSeconds;
|
||||
case ENTRY:
|
||||
/* Connect to Server */
|
||||
this->connect("fly-with-cats.com", 8887, 100);
|
||||
tConnectEndSeconds = Seconds::Get() + 5;
|
||||
substate = CYCLIC;
|
||||
break;
|
||||
|
||||
case CYCLIC:
|
||||
if (this->connected())
|
||||
{
|
||||
/* send HTTP request */
|
||||
this->print(wifibufMsg);
|
||||
MonitorPrint(wifibufMsg);
|
||||
state = WAIT_RECEIVE;
|
||||
}
|
||||
else if (Seconds::Get() > tConnectEndSeconds)
|
||||
{
|
||||
state = IDLE;
|
||||
}
|
||||
break;
|
||||
|
||||
}
|
||||
break;
|
||||
|
||||
case WAIT_RECEIVE:
|
||||
switch (substate)
|
||||
{
|
||||
static uint32_t tReceiveEndSeconds;
|
||||
|
||||
case ENTRY:
|
||||
tReceiveEndSeconds = Seconds::Get() + 5;
|
||||
substate = CYCLIC;
|
||||
break;
|
||||
|
||||
case CYCLIC:
|
||||
if (this->available())
|
||||
{
|
||||
int sizeRec = this->read(wifibufRx, WIFI_BUF_SIZE_RX);
|
||||
wifibufRx[sizeRec] = 0;
|
||||
//MonitorPrintln((char*)wifibufRx);
|
||||
state = IDLE;
|
||||
}
|
||||
else if (Seconds::Get() >= tReceiveEndSeconds)
|
||||
{
|
||||
this->stop();
|
||||
state = IDLE;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user