Громадянам України

Як розрахувати контрольну суму NMEA?

Контрольна сума проста, просто XOR усіх байтів між $ і * (не враховуючи самих розділювачів), записаних у шістнадцятковому форматі. Щоб це працювало, вам потрібно буде використовувати браузер, який підтримує JavaScript і DHTML (більшість сучасних браузерів підтримують).

Крок 1. На стороні відправника

  1. Розділіть вихідні дані на кількість 'm' блоків з 'n' бітами даних у кожному блоці.
  2. Додавання всіх блоків даних «k».
  3. Результат додавання доповнюється доповненням до 1.
  4. Отримані дані відомі як контрольна сума.

Основна контрольна сума Найпростішим типом контрольної суми є скласти всі значення байтів у повідомленні та використовувати найменш значущий байт суми як байт контрольної суми. Сума цих значень байтів дорівнює 0x046A. Байт контрольної суми — це найменш значущий байт суми, яка дорівнює 0x6A (тобто дві крайні праві шістнадцяткові цифри).

Помилки контрольної суми є метод, який використовується для виявлення можливого пошкодження даних. Сигнал надмірної контрольної суми генерується, якщо принаймні 5% речень NMEA за попередні 5 хвилин мали помилки контрольної суми. Також за цей час має бути не менше 10 речень з помилками.

Засіб перевірки контрольної суми ділить цей блок даних на різні субодиниці однакової довжини та додає всі ці субодиниці. Ці субодиниці також містять контрольну суму як одну з субодиниць. Отриманий біт потім доповнюється. Якщо доповнений результат дорівнює нулю, це означає, що дані без помилок.