有时读取连续输入数据太大而无法保存,但我们无论如何都需要在里面搜索某些单词。
现在我们累积所有数据,然后才查找特定单词。
我想这样做while reading, without saving the data
,所以要改进这个:
boolean waitFor(char *target, long timeout)
{
unsigned long tm=millis();
while( 1 )
{
if( millis() - tm >= timeout )
return 0;
char wifiContent[50]={0};
int readWifiIndex=0;
while( wifiSerial.available() )
{
if(readWifiIndex<50)
{
wifiContent[readWifiIndex]=(char)wifiSerial.read();
readWifiIndex++;
delay(1);
}
}
//**check of specific words
if( strstr(wifiContent,target) )
return 1;
}
}
答案 0 :(得分:-1)
对于任何需要它的人来说,这是一个更优雅的解决方案,它不那么沉重,节省了大量资源。
此函数搜索给定的单词,并且也有超时。效果很好。
boolean waitFor(char *target, long timeout)
{
unsigned long tm=millis();
while( 1 )
{
if( millis() - tm >= timeout )
return 0;
int readWifiIndex=0;
while( Serial.available() )
{
char cr=(char)Serial.read();
delay(1);
if(target[readWifiIndex] ==cr)
{
readWifiIndex++;
if( strlen(target) ==readWifiIndex )
return 1;
}
else
readWifiIndex=0;
}