Trunkadunk

This commit is contained in:
Ben Meadors 2025-03-20 06:53:24 -05:00
parent b07f9224af
commit b2a2eb2d2e
2 changed files with 14 additions and 13 deletions

View File

@ -823,7 +823,8 @@ void setup()
LOG_DEBUG("Start multicast thread"); LOG_DEBUG("Start multicast thread");
udpThread = new UdpMulticastThread(); udpThread = new UdpMulticastThread();
#ifdef ARCH_PORTDUINO #ifdef ARCH_PORTDUINO
// FIXME: portduino does not ever call onNetworkConnected so call it here because I don't know what happen if I call onNetworkConnected there // FIXME: portduino does not ever call onNetworkConnected so call it here because I don't know what happen if I call
// onNetworkConnected there
udpThread->start(); udpThread->start();
#endif #endif
#endif #endif

View File

@ -23,12 +23,12 @@ class UdpMulticastThread : public concurrency::OSThread
void start() void start()
{ {
if (udp.listenMulticast(udpIpAddress, UDP_MULTICAST_DEFAUL_PORT, 64)) { if (udp.listenMulticast(udpIpAddress, UDP_MULTICAST_DEFAUL_PORT, 64)) {
#if !defined(ARCH_PORTDUINO) #if !defined(ARCH_PORTDUINO)
// FIXME(PORTDUINO): arduino lacks IPAddress::toString() // FIXME(PORTDUINO): arduino lacks IPAddress::toString()
LOG_DEBUG("UDP Listening on IP: %s", WiFi.localIP().toString().c_str()); LOG_DEBUG("UDP Listening on IP: %s", WiFi.localIP().toString().c_str());
#else #else
LOG_DEBUG("UDP Listening"); LOG_DEBUG("UDP Listening");
#endif #endif
udp.onPacket([this](AsyncUDPPacket packet) { onReceive(packet); }); udp.onPacket([this](AsyncUDPPacket packet) { onReceive(packet); });
} else { } else {
LOG_DEBUG("Failed to listen on UDP"); LOG_DEBUG("Failed to listen on UDP");
@ -38,10 +38,10 @@ class UdpMulticastThread : public concurrency::OSThread
void onReceive(AsyncUDPPacket packet) void onReceive(AsyncUDPPacket packet)
{ {
size_t packetLength = packet.length(); size_t packetLength = packet.length();
#ifndef ARCH_PORTDUINO #ifndef ARCH_PORTDUINO
// FIXME(PORTDUINO): arduino lacks IPAddress::toString() // FIXME(PORTDUINO): arduino lacks IPAddress::toString()
LOG_DEBUG("UDP broadcast from: %s, len=%u", packet.remoteIP().toString().c_str(), packetLength); LOG_DEBUG("UDP broadcast from: %s, len=%u", packet.remoteIP().toString().c_str(), packetLength);
#endif #endif
meshtastic_MeshPacket mp; meshtastic_MeshPacket mp;
LOG_DEBUG("Decoding MeshPacket from UDP len=%u", packetLength); LOG_DEBUG("Decoding MeshPacket from UDP len=%u", packetLength);
bool isPacketDecoded = pb_decode_from_bytes(packet.data(), packetLength, &meshtastic_MeshPacket_msg, &mp); bool isPacketDecoded = pb_decode_from_bytes(packet.data(), packetLength, &meshtastic_MeshPacket_msg, &mp);
@ -59,11 +59,11 @@ class UdpMulticastThread : public concurrency::OSThread
if (!mp || !udp) { if (!mp || !udp) {
return false; return false;
} }
#if !defined(ARCH_PORTDUINO) #if !defined(ARCH_PORTDUINO)
if (WiFi.status() != WL_CONNECTED) { if (WiFi.status() != WL_CONNECTED) {
return false; return false;
} }
#endif #endif
LOG_DEBUG("Broadcasting packet over UDP (id=%u)", mp->id); LOG_DEBUG("Broadcasting packet over UDP (id=%u)", mp->id);
uint8_t buffer[meshtastic_MeshPacket_size]; uint8_t buffer[meshtastic_MeshPacket_size];
size_t encodedLength = pb_encode_to_bytes(buffer, sizeof(buffer), &meshtastic_MeshPacket_msg, mp); size_t encodedLength = pb_encode_to_bytes(buffer, sizeof(buffer), &meshtastic_MeshPacket_msg, mp);