Ich habe Arduino + Ethenet Schild. Ich möchte die IP dynamisch ändern, abhängig davon, dass es am Eingangsport kommen wird.Wie konvertiert man String in Byte []?
Das Hauptproblem ist - Eingabezeichenfolge hat einen String-Typ und Ethernet.begin
Methode akzeptiert ein Byte-Array. Im Allgemeinen kann ich nicht verstehen, wie man diese Schnur richtig konvertiert. Versucht, ein Fahrrad (Krücke) durch Bewegen der Zeichenfolge in der Char-Array und dann in der Byte-Array zu machen. Es hat nicht geklappt. Wie konvertiere String in Byte []?
#include <SPI.h>
#include <Ethernet.h>
String readString;
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; //physical mac address
byte myserver[] = { 208, 104, 2, 86 }; // zoomkat web page server IP address
EthernetClient client;
void initEthernetConfig(byte ip[])
{
Ethernet.begin(mac, ip);
Serial.begin(9600);
Serial.println("Better client test 12/01/11"); // so I can keep track of what is loaded
Serial.println("Send an e in serial monitor to test"); // what to do to test
}
void setup(){
byte ip[] = { 10, 28, 33, 4 };
// initEthernetConfig(ip);
}
void loop(){
// check for serial input
while (Serial.available()) {
char c = Serial.read(); //gets one byte from serial buffer
readString += c; //makes the String readString
delay(2); //slow looping to allow buffer to fill with next character
}
if (readString.length() >0) {
byte inArray[4];
char * tokens;
int i = 0;
tokens = strtok(readString, ".");
while (tokens != NULL) {
inArray[i] = atoi(tokens);
tokens = strtok(NULL, ".");
i++;
}
initEthernetConfig(inArray);
}
}
was ist der Punkt von 'inArray' es wird nicht verwendet? Wie wäre es mit Casting auf ein Byte 'inArray [i ++] = (Byte) atoi (Token);' –