Arduino + Enc28j60

Тема в разделе "Arduino & Shields", создана пользователем ArduinoKid, 11 май 2018.

  1. ArduinoKid

    ArduinoKid Нуб

    Доброго времени суток, решил сделать бегущую строку, управляемую через веб-сайт на ардуино(сервер) и сетевом модуле Enc28j60. То есть пользователь заходит на сайт, пишет сообщение и его выдает на экран. Столкнулся с такой проблемой: Get-запрос не парсится до нужной мне информации, поэтому прошу помощи, может кто знает как по-другому получить это сообщение с сайта? Заранее большое спасибо.
    P.S. использую библиотеку EtherCard.h
     
  2. b707

    b707 Гуру

    что значит "запрос не парсится"? Может, вы просто не умеете?
    Покажите код, как пробовали
     
  3. ArduinoKid

    ArduinoKid Нуб

    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;
    }
     
  4. b707

    b707 Гуру

    это все замечательно, но хорошо бы увидеть рабочий скетч, который компилируется, а не обрывки.
    Кроме того, обязательно нужны примеры входных данных и что этот ваш код должен выдавать и что выдает сейчас