diff --git a/microcontroller/e131/main.ino b/microcontroller/e131/main.ino new file mode 100644 index 0000000..a28c3c9 --- /dev/null +++ b/microcontroller/e131/main.ino @@ -0,0 +1,96 @@ +/* +* E131_Test.ino - Simple sketch to listen for E1.31 data on an ESP32 +* and print some statistics. +* +* Project: ESPAsyncE131 - Asynchronous E.131 (sACN) library for Arduino ESP8266 and ESP32 +* Copyright (c) 2019 Shelby Merrick +* http://www.forkineye.com +* +* This program is provided free for you to use in any way that you wish, +* subject to the laws and regulations where you are using it. Due diligence +* is strongly suggested before using this code. Please give credit where due. +* +* The Author makes no warranty of any kind, express or implied, with regard +* to this program or the documentation contained in this document. The +* Author shall not be liable in any event for incidental or consequential +* damages in connection with, or arising out of, the furnishing, performance +* or use of these programs. +* +*/ + +#include + +#define UNIVERSE 1 // First DMX Universe to listen for +#define UNIVERSE_COUNT 1 // Total number of Universes to listen for, starting at UNIVERSE + +const char ssid[] = "dmx"; // Replace with your SSID +const char passphrase[] = "DGqnu6p8ut6H2QQQ2LQH"; // Replace with your WPA2 passphrase + +unsigned long packets_processed = 0; +unsigned long last_update; + +void on_packet(e131_packet_t *packet, IPAddress address) +{ + /* + Serial.printf("Universe %u / %u Channels | CH1: %u\n", + htons(packet->universe), + htons(packet->property_value_count) - 1, + packet->property_values[1]); + */ + + packets_processed += 1; +} + +// ESPAsyncE131 instance with callback +ESPAsyncE131 e131(on_packet); + +void setup() +{ + Serial.begin(500000); + delay(10); + + // Make sure you're in station mode + WiFi.mode(WIFI_STA); + + Serial.println(""); + Serial.print(F("Connecting to ")); + Serial.print(ssid); + + if (passphrase != NULL) + WiFi.begin(ssid, passphrase); + else + WiFi.begin(ssid); + + while (WiFi.status() != WL_CONNECTED) + { + delay(500); + Serial.print("."); + } + + Serial.println(""); + Serial.print(F("Connected with IP: ")); + Serial.println(WiFi.localIP()); + + // Choose one to begin listening for E1.31 data + //if (e131.begin(E131_UNICAST)) // Listen via Unicast + if (e131.begin(E131_MULTICAST, UNIVERSE, UNIVERSE_COUNT)) // Listen via Multicast + Serial.println(F("Listening for data...")); + else + Serial.println(F("*** e131.begin failed ***")); + + last_update = millis(); +} + +void loop() +{ + unsigned long now = millis(); + + if (now - last_update > 1000) + { + last_update = now; + Serial.printf( + "%lu %u packets processed.\n", + now, + packets_processed); + } +} \ No newline at end of file