Доброго времени суток, решил сделать бегущую строку, управляемую через веб-сайт на ардуино(сервер) и сетевом модуле Enc28j60. То есть пользователь заходит на сайт, пишет сообщение и его выдает на экран. Столкнулся с такой проблемой: Get-запрос не парсится до нужной мне информации, поэтому прошу помощи, может кто знает как по-другому получить это сообщение с сайта? Заранее большое спасибо. P.S. использую библиотеку EtherCard.h
1-й вариант: Код (C++): void parsing(char* inputStr){ byte parsedParams=0; char* buffer=strtok(inputString,"?"); if(buffer!=NULL){ for(buffer=strtok(NULL,"="); buffer!=NULL; buffer=strtok(NULL,"=") ) { data[parsedParams]=buffer; parsedParams++; } } 2-й вариант, не совсем парсинг Код (C++): if (strstr((char *)Ethernet::buffer + pos, "?infotext") != 0){ data = strstr((char *)Ethernet::buffer + pos, "?infotext"); c = strstr(data, "Accept"); int i, n = 0; for (i = 0; n != -1; i++){ n = posit(data, c, i); } int e; for ( e = 0; e < n; e++) { lcd.print(data[e]); } } int posit(char *s, char *c, int n) { int i, j; int lenC, lenS; for (lenC = 0; c[lenC]; lenC++); for (lenS = 0; s[lenS]; lenS++); for (i = 0; i <= lenS - lenC; i++) { for (j = 0; s[i + j] == c[j]; j++); if (j - lenC == 1 && i == lenS - lenC && !(n - 1)) return i; if (j == lenC) if (n - 1) n--; else return i; } return -1; }
это все замечательно, но хорошо бы увидеть рабочий скетч, который компилируется, а не обрывки. Кроме того, обязательно нужны примеры входных данных и что этот ваш код должен выдавать и что выдает сейчас