Currently there is six variations of (IPv4) UDPSocket.cpp.
- FMClients, NXDNClients, P25Clients, YSFClients(YSFParrot)
use ::fprintf() for logging
- YSFClients(YSFReflector)
use LogError() and LogInfo() for logging
special open(string &bindaddr) function
- YSFClients(YSFGateway), DAPNETGateway
use LogError() and LogInfo() for logging
- P25Clients, DMRGateway
use LogError() for logging
no LogInfo("Opening UDP port on") message
- NXDNClients
use LogError() for logging
no LogInfo("Opening UDP port on") message
add #include <ifaddrs.h>
- MMDVMHost
use LogError() for logging
no LogInfo("Opening UDP port on") message
no assert(!address.empty()) at constructor
to avoid explosion, commonized them.
switch ::fprintf()/LogError by #define HAVE_LOG_H
always display LogInfo("Opening UDP port on") message
delete #include <ifaddrs.h>, this is not needed
no assert(!address.empty()) at constructor
and to support YSFReflector, add multiple socket support.
default is #define UDP_SOCKET_MAX 1 so normally this feature is disabled.
added these functions.
CUDPSocket() (constructor without any parameters)
open(index, af, addr, port)
close(index)
CUDPSocket() means CUDPSocket(address = "", port = 0)
index selects socket, address and port is defined at open.
to have compatibility for old codes, these function works as
CUDPSocket(addr, port) store addr and port to index #0
CUDPSocket(port) store addr = "" and port to index #0
open() open with addr and port of index #0, AF_UNSPEC
open(af) open with addr and port of index #0, specified af
close() close *all* sockets
read/write operation is for all opened sockets.
HobbyTronics TFT Shield has discontinued, here is a replacement TFT module
that can be controlled from UART.
Different from TFT Shield, it cannot display figures that stored in
micro SD card. So appearance is simplified like OLED.
Surenoo module sometimes ignores display commands (in busy stuation?),
this driver buffers display status and refresh at clockInt().