Hallo,
ich habe einen Sketch erstellt, der immer dann den Druck einer Leertaste an den Rechner übergibt, wenn ein beliebiger UDP-Befehl reinkommt.
Wie müsste ich diesen Sketch umbauen, so dass immer das erste Zeichen eines eingehenden UDP-Befehls per “Tastaturbefehl” an den Rechner gesendet werden würde?
Gruß Chris
#include <SPI.h> // needed for Arduino versions later than 0018
#include <Ethernet2.h>
#include <EthernetUdp2.h> // UDP library from: bjoern@cs.stanford.edu 12/30/2008
// Enter a MAC address and IP address for your controller below.
// The IP address will be dependent on your local network:
byte mac[] = {
0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED
};
IPAddress ip(192, 168, 2, 31);
int packetSize;
unsigned int localPort = 8888; // local port to listen on
// buffers for receiving and sending data
char packetBuffer[UDP_TX_PACKET_MAX_SIZE]; //buffer to hold incoming packet,
// An EthernetUDP instance to let us send and receive packets over UDP
EthernetUDP Udp;
const byte led = 13;
void setup()
{
Ethernet.begin(mac, ip);
Udp.begin(localPort);
Keyboard.begin();
pinMode(led, OUTPUT);
}
void loop()
{
// if there's data available, read a packet
packetSize = Udp.parsePacket();
if (packetSize)
{
Keyboard.press(' '); // Das erste Byte auslesen und nur dieses als Tastaturbefehl ausgeben
delay(100); // Kurz warten
Keyboard.releaseAll(); // Taste loslassen
}
delay(10);
ledOut();
}
void ledOut()
{
static unsigned long lastTime = 0;
if (packetSize) lastTime = millis(); // Sobald ein UDP-Befehl eingegangen ist..
if(millis() - lastTime < 1000) digitalWrite(led, HIGH);
else digitalWrite(led, LOW);
}