3#if defined(ARDUINO_ARCH_ESP32) || defined(ARDUINO_ARCH_RP2040) || defined(ARDUINO_RASPBERRY_PI_PICO_2W) || defined(ARDUINO_ARCH_ESP8266)
4#if __has_include("BindUserConfig.h")
5#include "BindUserConfig.h"
7#ifndef BIND_DISABLE_WIFI
11#if defined(ARDUINO_ARCH_ESP32) || defined(ARDUINO_ARCH_RP2040) || defined(ARDUINO_RASPBERRY_PI_PICO_2W)
15#elif defined(ARDUINO_ARCH_ESP8266)
18#include <BindUtil/BindAsyncUDP.h>
21#define UDP_DEBUG_MSG 0
27class UDPStream :
public Stream
30 bool sendPackets =
false;
31 static uint8_t discoveryMsg[];
32 static uint8_t connectMsg[];
33 static uint8_t stopMsg[];
34 static uint8_t bindHeartbeat[];
35 static uint16_t bindPort;
36 IPAddress canvasIP = IPAddress(0, 0, 0, 0);
37 void handleUDP(UDPStream& udpStream, AsyncUDPPacket& packet);
40 uint32_t lastHeartbeat = 0;
43 UDPStream() : canvasIP(IPAddress(0, 0, 0, 0)), sendPackets(false), _bind(nullptr) {}
44 bool begin(
const char* bindname,
Bind &bind);
45 bool begin(
Bind &bind,
const char* bindname);
46 size_t write(
const uint8_t *buffer,
size_t size)
override;
47 int available()
override {
return 0; }
48 int read()
override {
return 0; }
49 int peek()
override {
return 0; }
50 void flush()
override {}
51 size_t write(uint8_t)
override {
return 0; }
The Bind class provides a framework for creating interactive applications with BindCanvas.
Definition Bind.h:62