Upload files to "eth_tcp_receiver"
This commit is contained in:
parent
2df4f31675
commit
32f20eaa73
73
eth_tcp_receiver/eth_tcp_receiver.ino
Normal file
73
eth_tcp_receiver/eth_tcp_receiver.ino
Normal file
@ -0,0 +1,73 @@
|
||||
#include <NativeEthernet.h>
|
||||
#include <NativeEthernetServer.h>
|
||||
|
||||
byte mac[] = { 0x04, 0xE9, 0xE5, 0x10, 0x00, 0x02 };
|
||||
IPAddress ip(192, 168, 1, 101);
|
||||
const int localPort = 8888;
|
||||
|
||||
EthernetServer server(localPort);
|
||||
EthernetClient client;
|
||||
#define package_size 1024
|
||||
char packetBuffer[package_size];
|
||||
unsigned long prev_time = micros();
|
||||
unsigned long prev1_time = micros();
|
||||
bool pack_avail = false; // Make sure this is defined
|
||||
|
||||
|
||||
void setup() {
|
||||
Serial.begin(921600);
|
||||
//while (!Serial);
|
||||
|
||||
Serial.println("Initializing Ethernet...");
|
||||
Ethernet.begin(mac, ip);
|
||||
|
||||
if (Ethernet.hardwareStatus() == EthernetNoHardware) {
|
||||
Serial.println("Ethernet hardware not found!");
|
||||
while (true);
|
||||
}
|
||||
|
||||
if (Ethernet.linkStatus() == LinkOFF) {
|
||||
Serial.println("Ethernet cable not connected!");
|
||||
}
|
||||
|
||||
server.begin();
|
||||
Serial.println("TCP Server Ready. Waiting for connections...");
|
||||
}
|
||||
|
||||
void loop() {
|
||||
if (!client || !client.connected()) {
|
||||
client = server.available();
|
||||
if (client) {
|
||||
Serial.println("Client connected!");
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
int bytesReceived = 0;
|
||||
|
||||
if (client.available()) {
|
||||
int byteRead = client.read(packetBuffer + bytesReceived, package_size - bytesReceived);
|
||||
if (byteRead > 0) {
|
||||
bytesReceived += byteRead;
|
||||
}
|
||||
|
||||
// Check for "PACKAGE AVAILABLE" only in the first 25 bytes
|
||||
if (bytesReceived < 25) {
|
||||
if (strstr(packetBuffer, "P_A")) {
|
||||
pack_avail = true;
|
||||
}
|
||||
}
|
||||
|
||||
// If package is available, read the full package_size
|
||||
if (pack_avail & bytesReceived == package_size) {
|
||||
uint16_t MHz = (package_size * 8) / (micros() - prev_time);
|
||||
Serial.printf("%d MHz\n", MHz);
|
||||
prev_time = micros(); // Update prev_time here
|
||||
|
||||
printf("%d,%d,%d,%d,%d\n", packetBuffer[255], packetBuffer[511], packetBuffer[767], packetBuffer[1023], packetBuffer[0]);
|
||||
|
||||
bytesReceived = 0; // Reset for the next packet
|
||||
pack_avail = false; // Reset pack_avail after reading full package
|
||||
}
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user