Пример реализации кода для парсинга ответных команд от GalileoSky для работы на встроенном языке Easy Logic

//KEYCOUNTINT:32;//Разбираем пример ниже
byte ArStr[64] = {'K','E','Y','C','O','U','N','T','I','N','T',':','3','2','2','3','2','3','2','2','3','2',';'};
byte ArNum[10];
unsigned long num;

void setup()//Выполняетсятолько один раз
{
Serial.begin(115200);//Старт сериала
Serial.println("Start OK");//Что старт успешный
}

void loop()//Вечно выполняем
{
  myfun();//Запуск функции
Serial.println();//Дополнительный перход на новую строку
Serial.println("Next");// Некст
delay(3000);//Ждем 3000 мс или 3 секунды
}

void myfun()//достаем все числа после :
{
int q,w,e,r,t;
while(true)
  {
if(ArStr[q] == 0x3A)
    {
      w = q+1;
    }
if(ArStr[q] == 0x3B)
    {
      e = q+1;
    }
if(ArStr[q] == 0x00)
    {
break;
    }
    q++;
  }
//Serial.println(w+1);
//Serial.println(e+1);
//заполняем массив числом в АСКИ 2
for(int i = w; i < e-1; i++)
  {
    ArNum[r] = ArStr[i];
//Serial.println(ArNum[r]);
    r++;
  }
  ArNum[r] = 0x00;
//Вычислим  длину массива
while(true)
  {
if(ArNum[t] != 0x00){//Идем до конца считаем длину массива
      t++;
    }
else
    {
break;//Прерываем цикл
    }
  }
//Serial.println(t);
  num = isstrtolong(ArNum);
Serial.println(num);
}

unsigned long isstrtolong(const char *s)//Функция для преобразования из символов в числа
{
unsigned long i = 0;
while (*s && *s >= 0x30 && *s <= 0x39)
{
i *= 10;
i += *s++ - 0x30;
}
return i;
}

/*
Таблица используемых символов
( - 0x28
: - 0x3A
; - 0x3B
*/
Поиск информации по сайту мониторинга транспорта TREKBERRY
© TREKBERRY 2017-2024, Дмитрий В.М. Все права защищены.
Копирование материала без ссылки на источник запрещено. Информация размещенная на сайте не является публичной офертой. Часть текстов написано нейросетью, может содержать не точности. На сайте может быть реклама и иметь рекламные вставки.