Compare commits

..

No commits in common. "3370954edd81b0a52e4add8ed42e78cda57ae7bf" and "626f6fa8722d22bf42fc5a36f3035839e813fdef" have entirely different histories.

4 changed files with 16 additions and 17 deletions

View File

@ -11,4 +11,4 @@ runs:
- name: Install libs needed for native build - name: Install libs needed for native build
shell: bash shell: bash
run: | run: |
sudo apt-get install -y libbluetooth-dev libgpiod-dev libyaml-cpp-dev openssl libssl-dev libulfius-dev liborcania-dev libusb-1.0-0-dev libi2c-dev libuv1-dev sudo apt-get install -y libbluetooth-dev libgpiod-dev libyaml-cpp-dev openssl libssl-dev libulfius-dev liborcania-dev libusb-1.0-0-dev libi2c-dev

View File

@ -1,6 +1,6 @@
; The Portduino based 'native' environment. Currently supported on Linux targets with real LoRa hardware (or simulated). ; The Portduino based 'native' environment. Currently supported on Linux targets with real LoRa hardware (or simulated).
[portduino_base] [portduino_base]
platform = https://github.com/meshtastic/platform-native.git#df71ed0040e9aad767a002829330965b78fc452a platform = https://github.com/meshtastic/platform-native.git#9f4f73c25502c435a821f36b5b1046e590153df2
framework = arduino framework = arduino
build_src_filter = build_src_filter =

View File

@ -823,8 +823,7 @@ 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 // FIXME: portduino does not ever call onNetworkConnected so call it here because I don't know what happen if I call onNetworkConnected there
// onNetworkConnected there
udpThread->start(); udpThread->start();
#endif #endif
#endif #endif

View File

@ -22,13 +22,13 @@ 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)) {
#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);