6#ifndef wifidumbdisplay_h
7#define wifidumbdisplay_h
12#include "dumbdisplay.h"
18#define LOG_DDWIFI_STATUS
32 server(serverPort, tProtMode::TCP_MODE, tBlockingMode::NON_BLOCKING_MODE) {
34 this->password = passphrase;
35 this->port = serverPort;
40 const char* getWhat() {
55 int count = client.available();
58 Serial.print(
"- available: ");
59 Serial.println(count);
65 char ch = client.read();
67 Serial.print(
"- read:[");
73 void print(
const String &s) {
74#ifdef WRITE_BYTE_BY_BYTES
75 for (
size_t i = 0; i < s.length(); i++) {
90 void print(
const char *p) {
91#ifdef WRITE_BYTE_BY_BYTES
101 Serial.print(
"* print: [");
114 void write(uint8_t b) {
115#ifdef WRITE_BYTE_BY_BYTES
117 size_t count = client.write(b);
127 void write(
const uint8_t *buf,
size_t size) {
128#ifdef WRITE_BYTE_BY_BYTES
129 for (
size_t i = 0; i < size; i++) {
134 Serial.print(
"*** write ");
136 Serial.print(
" ... ");
137 size_t written = client.write(buf, size);
138 Serial.println(written);
140 client.write(buf, size);
147 bool preConnect(
bool firstCall) {
149 if (!Serial) Serial.begin(DD_SERIAL_BAUD);
163 if (firstCall && !client.connected()) {
164 connectionState =
'0';
167 return connectionState ==
'C';
169 if (firstCall && !client.connected()) {
170 Serial.println(
"setup WIFI");
172 WiFi.begin(ssid, password);
173 connectionState =
' ';
177 return connectionState ==
'C';
181 if (client.connected()) {
182 Serial.println(
"stop client for new setup");
191 Serial.println(
"setup WIFI");
192 WiFi.begin(ssid, password);
193 connectionState =
' ';
198 return connectionState ==
'C';
207 WiFi.begin(ssid, password);
208 connectionState =
' ';
214 return connectionState ==
'C';
222 void validConnection() {
223#ifdef LOG_DDWIFI_STATUS
224 Serial.println(
" ... validate ...");
228 bool canConnectPassive() {
231 bool canUseBuffer() {
306 void checkConnection() {
307 if (connectionState ==
'0' || connectionState ==
'C') {
308 if (connectionState ==
'0' || WiFi.status() != WL_CONNECTED) {
309 if (connectionState ==
'C') {
310 Serial.println(
"lost WiFi ... try bind WiFi again ...");
314 Serial.println(
"setup WIFI");
315 WiFi.begin(ssid, password);
316 connectionState =
' ';
318 }
else if (!client.connected()) {
320 Serial.println(
"lost connection ... try bind again ...");
321 connectionState =
'W';
327 if (connectionState ==
' ') {
328 uint8_t status = WiFi.status();
329 if (status == WL_CONNECTED) {
330 Serial.print(
"binded WIFI ");
331 Serial.println(ssid);
333 connectionState =
'W';
336 long diff = millis() - stateMillis;
337 if (stateMillis == 0 || diff > 1000) {
338 Serial.print(
"binding WIFI ");
340#ifdef LOG_DDWIFI_STATUS
341 Serial.print(
" ... ");
342 Serial.print(status);
344 Serial.println(
" ...");
345 stateMillis = millis();
349 uint8_t status = WiFi.status();
350 if (status != WL_CONNECTED) {
351 connectionState =
' ';
354 long diff = millis() - stateMillis;
356 IPAddress localIP = WiFi.localIP();
358#ifdef LOG_DDWIFI_STATUS
359 Serial.print(
"via WIFI ... ");
360 Serial.print(WiFi.status());
361 Serial.print(
" ... ");
363 Serial.print(
"listening on ");
364 Serial.print(localIP);
367 Serial.println(
" ...");
375 stateMillis = millis();
377 WiFiClient cli = server.available();
385 if (cli && cli.connected()) {
390 connectionState =
'C';
392 Serial.println(
"client connected");
404 char connectionState;
Definition: amb82wifidumbdisplay.h:24