我的Arduino有以下法典,它不断检查使用Wifly图书馆从TCP上空发送的序列指挥。
What the following code does is split a string like the following when sent over serial:
{power,tv}
因此,它确定了这些特性:
char command[32];
char value[32];
然后使用<代码>端Command(command, Value);,根据以下文件所列特性实施。
Keep in mind this works just fine using the Wifly library.
void loop() {
Client client = server.available();
if (client) {
boolean start_data = false;
boolean next = false;
char command[32];
char value[32];
int index = 0;
while (client.connected()) {
if (client.available()) {
char c = client.read();
Serial.print(c);
if (c == } ) {
break;
}
if(start_data == true) {
if(c != , ) {
if(next)
value[index] = c;
else
command[index] = c;
index++;
} else {
next = true;
command[index] = ;
index = 0;
}
}
if (c == { ) {
start_data = true;
}
}
}
value[index] = ;
client.flush();
client.stop();
sendCommand(command,value);
}
}
不用使用WiFi I ve购买了一些Xbee模块。 它们基本上允许你寄出序列号。 唯一的问题是,我不敢肯定如何处理在座标上没有<条码>但(客户:联系()条码>。 我没有使用<条码>,而是使用<条码>(Serial. Available()>的想法,这种思维将奏效,但出于某种原因,它并没有设定<条码>>> 值/代码>。
我收到<条码>command ,但我没有打上<条码>。
我也不清楚上述诉讼是否是我之后做什么的最佳方式,我知道,它只是以下列方式做功劳。
这里是我的新行程,其原因有:只有回归代码
void loop() {
// if there are bytes waiting on the serial port
if (Serial.available()) {
boolean start_data = false;
boolean next = false;
char command[32];
char value[32];
int index = 0;
while (Serial.available()) {
char c = Serial.read();
Serial.print(c);
if (c == } ) {
break;
}
if(start_data == true) {
if(c != , ) {
if(next)
value[index] = c;
else
command[index] = c;
index++;
} else {
next = true;
command[index] = ;
index = 0;
}
}
if (c == { ) {
start_data = true;
}
}
value[index] = ;
sendCommand(command,value);
}
}
如果以下人员与新 lo合,我会非常高兴!
void sendCommand(char *command, char *value) {
// do something wonderful with command and value!
}