You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

60 lines
1.6 KiB
Arduino

#ifdef __AVR__
#warning THIS EXAMPLE MAY USE TOO MUCH MEMORY FOR AVR. WE RECOMMEND TO USE SENDER OR RECEIVER ONLY.
#endif
6 years ago
#include <Artnet.h>
// Ethernet stuff
4 years ago
const IPAddress ip(192, 168, 0, 201);
6 years ago
uint8_t mac[] = {0x01, 0x23, 0x45, 0x67, 0x89, 0xAB};
Artnet artnet;
4 years ago
const String target_ip = "192.168.0.200";
uint32_t universe = 1;
6 years ago
const uint16_t size = 512;
uint8_t data[size];
uint8_t value = 0;
void setup() {
6 years ago
Serial.begin(115200);
4 years ago
delay(2000);
6 years ago
Ethernet.begin(mac, ip);
4 years ago
artnet.begin(target_ip);
6 years ago
Serial.println("set subscriber");
// if Artnet packet comes to this universe, this function is called
artnet.subscribe(universe, [](const uint8_t* data, const uint16_t size) {
6 years ago
Serial.print("artnet data (universe : ");
Serial.print(universe);
4 years ago
Serial.print(", size = ");
Serial.print(size);
Serial.print(") :");
for (size_t i = 0; i < size; ++i) {
Serial.print(data[i]);
Serial.print(",");
6 years ago
}
Serial.println();
});
// if Artnet packet comes, this function is called to every universe
artnet.subscribe([&](const uint32_t univ, const uint8_t* data, const uint16_t size) {
Serial.print("ArtNet data has come to universe: ");
Serial.println(univ);
});
6 years ago
Serial.println("start");
}
void loop() {
artnet.parse(); // check if artnet packet has come and execute callback
6 years ago
4 years ago
value = (millis() / 4) % 256;
6 years ago
memset(data, value, size);
artnet.set(universe, data, size);
artnet.streaming(); // automatically send set data in 40fps
6 years ago
}