Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

EthernetUDP has no member #56

Closed
ryhiliti opened this issue May 15, 2020 · 6 comments
Closed

EthernetUDP has no member #56

ryhiliti opened this issue May 15, 2020 · 6 comments

Comments

@ryhiliti
Copy link

I am relatively new to all this arduino stuff, so forgive me if I'm missing something super simple here.
I am unable to upload my sketch to my arduino, because when I compile, I get the following error: 'using Artnet = class arduino::artnet::Manager<EthernetUDP> {aka class arduino::artnet::Manager<EthernetUDP>}' has no member named 'setBroadcast'
I have also included an image of what exactly is highlighted.

Thanks.

Screen Shot 2020-05-14 at 11 18 36 PM

@natcl
Copy link
Owner

natcl commented May 15, 2020

I will have a look thanks !

@natcl
Copy link
Owner

natcl commented May 15, 2020

Can you post your full sketch ?

@ryhiliti
Copy link
Author

Yes. Apart from a couple variables that I changed it is the same as the "ArtnetNeoPixel" example.

`/*
This example will receive multiple universes via Artnet and control a strip of ws2811 leds via
Adafruit's NeoPixel library: https://github.com/adafruit/Adafruit_NeoPixel
This example may be copied under the terms of the MIT license, see the LICENSE file for details
*/

#include <Artnet.h>
#include <Ethernet.h>
#include <EthernetUdp.h>
#include <SPI.h>
#include <Adafruit_NeoPixel.h>

// Neopixel settings
const int numLeds = 300; // change for your setup
const int channelsPerLed = 3;
const int numberOfChannels = numLeds * channelsPerLed; // Total number of channels you want to receive (1 led = 3 channels)
const byte dataPin = 2;
Adafruit_NeoPixel leds = Adafruit_NeoPixel(numLeds, dataPin, NEO_GRB + NEO_KHZ800);

// Artnet settings
Artnet artnet;
const int startUniverse = 0; // CHANGE FOR YOUR SETUP most software this is 1, some software send out artnet first universe as 0.

// Check if we got all universes
const int maxUniverses = numberOfChannels / 512 + ((numberOfChannels % 512) ? 1 : 0);
bool universesReceived[maxUniverses];
bool sendFrame = 1;
int previousDataLength = 0;

// Change ip and mac address for your setup
byte ip[] = {192, 168, 1, 199};
byte mac[] = {0x04, 0xE9, 0xE5, 0x00, 0x69, 0xEC};
byte broadcast[] = {10, 0, 1, 255};
void setup()
{
//Serial.begin(115200);
artnet.begin(mac, ip);
leds.begin();
artnet.setBroadcast(broadcast);
initTest();

// this will be called for each packet received
artnet.setArtDmxCallback(onDmxFrame);
}

void loop()
{
// we call the read function inside the loop
artnet.read();
}

void onDmxFrame(uint16_t universe, uint16_t length, uint8_t sequence, uint8_t* data, IPAddress remoteIP)
{
sendFrame = 1;
// set brightness of the whole strip
if (universe == 15)
{
leds.setBrightness(data[0]);
leds.show();
}

// Store which universe has got in
if ((universe - startUniverse) < maxUniverses)
universesReceived[universe - startUniverse] = 1;

for (int i = 0 ; i < maxUniverses ; i++)
{
if (universesReceived[i] == 0)
{
//Serial.println("Broke");
sendFrame = 0;
break;
}
}

// read universe and put into the right part of the display buffer
for (int i = 0; i < length / channelsPerLed; i++)
{
int led = i + (universe - startUniverse) * (previousDataLength / channelsPerLed);
if (led < numLeds) {
if (channelsPerLed == 4)
leds.setPixelColor(led, data[i * channelsPerLed], data[i * channelsPerLed + 1], data[i * channelsPerLed + 2], data[i * channelsPerLed + 3]);
if (channelsPerLed == 3)
leds.setPixelColor(led, data[i * channelsPerLed], data[i * channelsPerLed + 1], data[i * channelsPerLed + 2]);
}
}
previousDataLength = length;

if (sendFrame)
{
leds.show();
// Reset universeReceived to 0
memset(universesReceived, 0, maxUniverses);
}
}

void initTest()
{
for (int i = 0 ; i < numLeds ; i++)
leds.setPixelColor(i, 127, 0, 0);
leds.show();
delay(500);
for (int i = 0 ; i < numLeds ; i++)
leds.setPixelColor(i, 0, 127, 0);
leds.show();
delay(500);
for (int i = 0 ; i < numLeds ; i++)
leds.setPixelColor(i, 0, 0, 127);
leds.show();
delay(500);
for (int i = 0 ; i < numLeds ; i++)
leds.setPixelColor(i, 0, 0, 0);
leds.show();
}`

@natcl
Copy link
Owner

natcl commented May 15, 2020

If check the error message it seems to come from another Artnet library. Is it possible you installed another library at some point? Seems like there is a conflict.

@ryhiliti
Copy link
Author

Haha, yup that was it. I moved all my libraries except for the ones necessary for this sketch to a different folder, and now its all good. I'm still trying to figure which one caused it though.

Thanks for your great, and fast support. I really appreciate it.

@natcl
Copy link
Owner

natcl commented May 15, 2020

No problem glad it worked!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants