You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I am experiencing an issue with my Ethernet shield where when I send individual characters of t, e, s, t the last t always returns a value of 1 from udp.read. Then the program hangs for a little bit and then a I can start sending data again.
Now, when I send the text string test, in my char buffer, I instead get tess on the output.
Here is my simple code that I am using to run the program:
#include <EthernetUdp.h>
#define Ethernet_CS_PIN 00
#define MAX_BUFFER_SIZE 30
// Global variables for the Ethernet portion
/// @brief A byte array to store the mac address of the controller
byte mac[] = {0x00, 0xBA, 0xDA, 0xDF, 0xAC, 0x02};
/// @brief The Port for communication
unsigned int localPort = 8888;
/// @brief The instance of the UDP object that is used for communication
EthernetUDP udp;
/// @brief the IP Address
IPAddress ip(192, 168, 1, 178);
char packetBuffer[MAX_BUFFER_SIZE];
bool ethernetHardwareConnected = false;
void setup() {
/* Needed to turn on the level translators*/
pinMode(2, OUTPUT);
digitalWrite(2, HIGH);
Serial.begin(115200);
while(!Serial);
Ethernet.init(Ethernet_CS_PIN);
Ethernet.begin(mac, ip);
if (Ethernet.hardwareStatus() == EthernetNoHardware)
Serial.println(F("Ethernet Hardware not connected"));
else if (Ethernet.hardwareStatus() == EthernetW5100)
{
Serial.println(F("Ethernet connected"));
udp.begin(localPort);
ethernetHardwareConnected = true;
}
}
void loop() {
if(ethernetHardwareConnected){
int packetSize = udp.parsePacket();
if (packetSize)
{
Serial.println("Ethernet Command in the loop:");
while(udp.available()){
Serial.println("UDP BYtes:");
Serial.println(udp.read());
}
//String test = udp.readString();
//udp.read(packetBuffer, MAX_BUFFER_SIZE);
//int bytesRead = udp.readBytes(packetBuffer, MAX_BUFFER_SIZE - 1);
//packetBuffer[bytesRead] = '\0';
//Serial.println(test);
// Reset the buffer to 0
memset(packetBuffer, 0, MAX_BUFFER_SIZE * sizeof(char));
}
}
}
The text was updated successfully, but these errors were encountered:
I am experiencing an issue with my Ethernet shield where when I send individual characters of t, e, s, t the last t always returns a value of 1 from udp.read. Then the program hangs for a little bit and then a I can start sending data again.
Now, when I send the text string test, in my char buffer, I instead get tess on the output.
Here is my simple code that I am using to run the program:
The text was updated successfully, but these errors were encountered: