From 49ae4cb41aa61800a32ef714ab6f09eca2aa6d96 Mon Sep 17 00:00:00 2001 From: Kevin Matz Date: Fri, 28 May 2021 14:15:56 -0400 Subject: [PATCH] return Arduino platform ESP arch support to tree --- wiflash_esp32/src/lib/libESTA | 2 +- wiflash_esp32/src/sacn-receiver-esp.cpp | 70 ------------------------- wiflash_esp32/src/sacn-receiver-esp.h | 66 ----------------------- wiflash_esp32/wiflash_esp32.ino | 2 +- 4 files changed, 2 insertions(+), 138 deletions(-) delete mode 100644 wiflash_esp32/src/sacn-receiver-esp.cpp delete mode 100644 wiflash_esp32/src/sacn-receiver-esp.h diff --git a/wiflash_esp32/src/lib/libESTA b/wiflash_esp32/src/lib/libESTA index 8bb08d7..76eca2a 160000 --- a/wiflash_esp32/src/lib/libESTA +++ b/wiflash_esp32/src/lib/libESTA @@ -1 +1 @@ -Subproject commit 8bb08d728d67c11ce9dde9ec7d6575f69070adcb +Subproject commit 76eca2aebfcc9c0bd6552d1133334c5046497cd0 diff --git a/wiflash_esp32/src/sacn-receiver-esp.cpp b/wiflash_esp32/src/sacn-receiver-esp.cpp deleted file mode 100644 index 4e2e3a6..0000000 --- a/wiflash_esp32/src/sacn-receiver-esp.cpp +++ /dev/null @@ -1,70 +0,0 @@ -/* - receiver-esp.cpp - - Copyright (c) 2020 Kevin Matz (kevin.matz@gmail.com) - - Permission is hereby granted, free of charge, to any person obtaining a copy - of this software and associated documentation files (the "Software"), to deal - in the Software without restriction, including without limitation the rights - to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. -*/ - -#include "sacn-receiver-esp.h" - -// ESP logging module -#include -#include -static const char* TAG = "EspReceiver"; - -namespace SACN { - -EspReceiver::EspReceiver(UUID::uuid cid) - : Receiver(cid) -{ - udp.onPacket(std::bind(&EspReceiver::UdpStreamHandler, this, - std::placeholders::_1)); -} - -void EspReceiver::subscribe(const uint16_t num) { - if (universe(num)) // already subscribed - return; - ESP_LOGI(TAG, "Subscribing to universe # %d", num); - Receiver::subscribe(num); - // listen multicast; works for unicast too - udp.listenMulticast(IPv4MulticastAddress(num), - ACN_SDT_MULTICAST_PORT); -} - -void EspReceiver::unsubscribe(const uint16_t num) { - if (!universe(num)) // not subscribed - return; - ESP_LOGI(TAG, "Unubscribing from universe # %d", num); - Receiver::unsubscribe(num); - // AsyncUDP has no way to unsubscribe IGMP? -} - -void EspReceiver::UdpStreamHandler(AsyncUDPPacket udp_packet) { - // Expecting IANA registered Session Data Transport traffic - if (!udp_packet.localPort() == ACN_SDT_MULTICAST_PORT) - return; - - // wrap a PDU io stream around the AsyncUDPPacket data buffer - PDU::Stream stream(new PDU::pdu_stream(udp_packet.data(), - udp_packet.available())); - Appliance::UdpStreamHandler(stream); -} - -} // SACN diff --git a/wiflash_esp32/src/sacn-receiver-esp.h b/wiflash_esp32/src/sacn-receiver-esp.h deleted file mode 100644 index 93cf840..0000000 --- a/wiflash_esp32/src/sacn-receiver-esp.h +++ /dev/null @@ -1,66 +0,0 @@ -/* - receiver-esp.h - - Copyright (c) 2020 Kevin Matz (kevin.matz@gmail.com) - - Permission is hereby granted, free of charge, to any person obtaining a copy - of this software and associated documentation files (the "Software"), to deal - in the Software without restriction, including without limitation the rights - to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. -*/ -#pragma once - -#include -#include -#include -#include -#include "lib/libESTA/sacn/receiver.h" -#include "lib/libESTA/dmx/universe.h" - - -/* - Arduino specification additions to the sACN library -*/ -namespace SACN { - // 9.3.1 Allocation of IPv4 Multicast Addresses - // Multicast addresses are from the IPv4 Local Scope. - inline IPAddress IPv4MulticastAddress(uint16_t universe) { - return IPAddress(239, 255, (universe >> 8), (universe & 0xff)); - }; - - // 9.3.2 Allocation of IPv6 Multicast Addresses - inline IPv6Address IPv6MulticastAddress(uint16_t universe) { - IPv6Address address; - address.fromString("ff18::83:00:" + - String(universe >> 8, HEX) + ":" + - String(universe & 0xff, HEX)); - return address; - }; - -class EspReceiver - : public SACN::Receiver -{ - public: - EspReceiver(UUID::uuid = UUID::uuid()); - virtual void subscribe(const uint16_t universe = 1); - virtual void unsubscribe(const uint16_t); - - private: - AsyncUDP udp; // AsyncUDP - void UdpStreamHandler(AsyncUDPPacket); // UDP packet parser callback -}; - -} // SACN diff --git a/wiflash_esp32/wiflash_esp32.ino b/wiflash_esp32/wiflash_esp32.ino index 9992c16..3cb6137 100644 --- a/wiflash_esp32/wiflash_esp32.ino +++ b/wiflash_esp32/wiflash_esp32.ino @@ -35,7 +35,7 @@ #include "src/wiflash_configure.h" #include "src/wiflash_status.h" #include "src/wiflash_pins.h" -#include "src/sacn-receiver-esp.h" +#include "src/lib/libESTA/platform/arduino/esp/sacn-receiver.h" #include "src/lib/fixture/EspStrobe.h" #include "src/lib/fixture/EspRgbStrip.h" #include "src/lib/fixture/EspRgbaStrip.h"