diff --git a/wiflash_esp32/sacn.cpp b/wiflash_esp32/sacn.cpp index 377191b..4467a10 100644 --- a/wiflash_esp32/sacn.cpp +++ b/wiflash_esp32/sacn.cpp @@ -17,7 +17,6 @@ */ #include -#include #include "sacn.h" // E1.17 ACN Packet Identifier diff --git a/wiflash_esp32/strobe_esp32.cpp b/wiflash_esp32/strobe_esp32.cpp index bc68f55..a39157e 100644 --- a/wiflash_esp32/strobe_esp32.cpp +++ b/wiflash_esp32/strobe_esp32.cpp @@ -51,20 +51,16 @@ uint32_t dr_to_micros(uint8_t dmx) { /* Constructor */ -Strobe::Strobe(e131_listen_t type, uint16_t universe, uint16_t address) { - m_type = type; +Strobe::Strobe(uint16_t universe, uint16_t address) { m_universe = universe; m_address = address; - m_e131 = new ESPAsyncE131(1); - m_e131->onPacket(std::bind(&Strobe::recvData, this, - std::placeholders::_1)); } /* call durring setup() */ bool Strobe::begin(uint8_t pin, uint8_t pwm) { - bool success = false; + bool success = true; // set state m_pwm = pwm; m_state = STROBE_INACTIVE; @@ -75,14 +71,6 @@ bool Strobe::begin(uint8_t pin, uint8_t pwm) { ledcSetup(m_pwm, 2400, 15); // 2.4KHz PWM, 15 bit resolutio ledcWrite(m_pwm, m_level); // LED to 0% - // start sACN - if (!m_e131->begin(m_type, m_universe)) { - Serial.println("Failed to start E1.31"); - } else { - Serial.println("Listening for sACN"); - success = true; - } - return success; } diff --git a/wiflash_esp32/strobe_esp32.h b/wiflash_esp32/strobe_esp32.h index b119bb3..3ca6a52 100644 --- a/wiflash_esp32/strobe_esp32.h +++ b/wiflash_esp32/strobe_esp32.h @@ -41,16 +41,17 @@ typedef enum { class Strobe { public: - Strobe(e131_listen_t type, uint16_t universe = 1, uint16_t address = 1); + Strobe(uint16_t universe = 1, uint16_t address = 1); bool begin(uint8_t pin, uint8_t pwm); // call in setup() void update(void *args = NULL); // update task const uint8_t profile = 4; // DMX profile length + + void recvData(e131_packet_t *packet); // data recieved callback private: - e131_listen_t m_type; // IP Unicast/Multicast uint16_t m_universe; // sACN universe uint16_t m_address; // DMX address @@ -63,10 +64,6 @@ class Strobe { uint8_t m_pwm; // LEDc PWM channel uint32_t m_time; // micros() of current cycle start - - ESPAsyncE131 *m_e131; // ESPAsyncE131 instance - - void recvData(e131_packet_t *packet); // data recieved callback inline void setLevel(uint16_t level) __attribute__((always_inline)); }; diff --git a/wiflash_esp32/wiflash_esp32.ino b/wiflash_esp32/wiflash_esp32.ino index ca7b296..2626bd8 100644 --- a/wiflash_esp32/wiflash_esp32.ino +++ b/wiflash_esp32/wiflash_esp32.ino @@ -61,7 +61,10 @@ const String released_value = "99.2"; // ----------------------------------- // Configure E1.31 sACN // ----------------------------------- -Strobe strobe(E131_UNICAST, 1, 001); // (uni|multi)cast, sACN Universe, Address +const e131_listen_t sACN_mode = E131_UNICAST; // (uni|multi)cast +const uint16_t strobe_universe = 1; +const uint16_t strobe_address = 501; + /* DMX Value * | chan | Command | range | range | * |------+-----------+-------+------------| @@ -86,11 +89,14 @@ const int led = LED_BUILTIN; // IO13 * Change nothing else unless you're really sure. */ +//// device objects +Strobe *strobe = new Strobe(strobe_universe, strobe_address); +ESPAsyncE131 *e131 = new ESPAsyncE131(); + //// Global button variables bool pressed = false; // track button state uint32_t change_time; // time of button press (ms) - /* * Arduino powerup */ @@ -113,12 +119,22 @@ void setup() { Serial.println("STA Failed to configure"); } + +//// start sACN + if (!e131->begin(sACN_mode, strobe_universe)) { + Serial.println("Failed to start E1.31"); + } else { + e131->onPacket(std::bind(&Strobe::recvData, strobe, + std::placeholders::_1)); + Serial.println("Listening for sACN"); + } + //// start fixtures hardware: // button pinMode(button, INPUT_PULLUP); // led_trigPres_trigPress _trigPress _trigPress _trigPress s - if (!strobe.begin(led, 0)) { + if (!strobe->begin(led, 0)) { Serial.println("Strobe failed to configure."); } } @@ -134,7 +150,7 @@ void loop() { return; } - strobe.update(); + strobe->update(); // Be a remote trigger //