GPRS shield Arduino
Jeg mangler hjælp til at parse en hjemmeside.Jeg har en kode som jeg ikke hel forstår, men den virker :-)
Serial1.println("AT+HTTPREAD"); //"AT+HTTPREAD=0,200" Reads 200 bytes from byte 0
do{
while(Serial1.available()==0);
}while(Serial1.read()!=':');
data_size=0;
while(Serial1.available()==0);
aux=Serial1.read();
do{
data_size*=10;
data_size+=(aux-0x30);
while(Serial1.available()==0);
aux=Serial1.read();
}while(aux!='\r');
do{
while(Serial1.available()==0);
}while(Serial1.read()!='\n');
for(x=0;x<=data_size;x++){
while(Serial1.available()==0);
data[x]=Serial1.read();
}
Serial.print(data); //Shows data
Den læser hele siden, jeg ønsker kun det det som står mellem <body> og <\body>
Her er en anden kode som jeg har fundet, den læser tegnene og når strengen ender på <text> slettes det som er læst og der gemmes kun det indtil <
if (client.available()) {
// read incoming bytes:
char inChar = client.read();
// add incoming byte to end of line:
currentLine += inChar;
// if you get a newline, clear the line:
if (inChar == '\n') {
currentLine = "";
}
// if the current line ends with <text>, it will
// be followed by the tweet:
if ( currentLine.endsWith("<text>")) {
// tweet is beginning. Clear the tweet string:
readingTweet = true;
tweet = "";
}
// if you're currently reading the bytes of a tweet,
// add them to the tweet String:
if (readingTweet) {
if (inChar != '<') {
tweet += inChar;
}
else {
// if you got a "<" character,
// you've reached the end of the tweet:
readingTweet = false;
Serial.println(tweet);
Er der en som kan kombinere det for mig, eller er der en smartere måde.