GPS МОДУЛЬ ДАННЫХ - решение? - PullRequest
       9

GPS МОДУЛЬ ДАННЫХ - решение?

0 голосов
/ 28 сентября 2018

Вот данные, которые мы получаем от модуля GNSS:

enter image description here

#include <stdio.h>
#include <stdlib.h>

//$GPGLL,,,,,,V,N*64
//$GaabL,,,,,,V,N*5D
char Received[] = { "Odetnij to jak mozesz$GaabL,,,,,,V,N*5D" };

int main(void)
{
    int i = 0;

    int b;
    int c;
    int super_atoi;
    int wynik;
    int xor = 0;

    while (Received[i] != '$')
    {
        printf("%c", Received[i]);
        i++;
    }
    i++;
    printf("%c\n ");
    while (Received[i] != '*')
    {
        printf("%c", Received[i]);
        xor ^= Received[i];
        i++;
    }

    printf("\n XOR      = %d", xor);
    printf("\n XOR w hex    = %#02x  ", xor);
    printf("\n XOR w dec    = %d ", xor);

    if (Received[i] == '*')
    {
        i++;
        b = Received[i];
        printf("\n 1 znak w kodzie za * =  %c", b);
        i++;
        c = Received[i];
        printf("\n 2 znak w kodzie za * =  %c", c);
    }
    char a[3] = { b, c };
    super_atoi = atoi(a);
    super_atoi = strtol(a, NULL, 16);
    printf("\n ATOI      = %s  ", a, super_atoi);

    if (xor == super_atoi)
    {
        printf("%c\n ");
        printf("\n WORKING!");
    }
    else
    {
        printf("%c\n ");
        printf("\n not working");
    }
    return 0;
}

Чтобы подсчитать сумму проверок каждого из нас, мы должны xorchar между "$" и "*".Моя программа для этого:

DEMO

В основном мы проверяем каждый символ, если его "$", затем xor элементы, пока мы не получим *.Однако у меня небольшая проблема ... Мне нужно проверить каждую строку данных - пакет передачи NEO-7 из [280] + символов каждый определенный период времени, который включает в себя 11 "$: и 11 *. Есть два способао проверке всего, что я могу придумать:

  1. Проверка каждого байта (символа), начало отсчета при появлении «$», завершение при появлении *, сравнение результатов с 2 элементами после «*».
  2. (больше подходит для моей программы) Получите массив [35] из модуля GPS, создайте отдельный массив, в который я включу то, что осталось от предыдущей проверки, поместите следующий пакет данных, поступающий от GPS, повторите. Не могли бы выподскажите пожалуйста что лучше? также как создавать эти решения?
...