EPO: Extended Prediction Orbit - Эфемериды (ephemeris), данные для прогноза орбит.

Наличие данных EPO, позволяет приемнику быстро находить спутники. Т.к. процесс приема EPO данных с самих спутников GNSS идет с довольно низкой скоростью (около 50 бит/сек - порядка 12 минут).

Работа с EPO данными поддерживаются частью через PMTK расширения, частью через бинарный протокол.

PMTK

$PMTK250, настройки коммуникационного порта. Пример: $PMTK250,1,3,9600*14

$PMTK251, скорость порта. Пример: $PMTK251,38400*27

$PMTK253, режим выходного порта. Пример: $PMTK253,1*2B


$PMTK741, предварительная установка позиции и UTC (для поиска спутников по EPO). Пример: $PMTK741,24.772816,121.022636,160,2016,01,01,12,00,00*17

$PMTK127*36 стирание данных (EPO) из внутренней памяти.

$PMTK607*33 запрос - сохраняемой информации по EPO.

$PMTK707, ответ - информация по хранимому EPO. Пример: $PMTK707,28,1680,259200,1681,237600,1680,345600,1680,345600*19

...

Бинарный

Все многобайтные параметры передаются младшим байтом вперед. Макс. длинна 256 байт. Завершаются 0x0D, 0x0A, перед этим один байт CRC (по XOR, без преамбулы). Вместо '$PMTK', преамбула 0x04 0x24. потом длинна (всего пакета вместе с преамбулой и завершением). Функционально первые 999 команд совпадают с PMTK функциями (но могут иметь дополнительные параметры).

Преамбула Размер Команда Данные CRC Завершение
0x04 0x24 (2 байта) (2 байта) ... (1 байт) 0x0D 0x0A

Команда аналог $PMTK253 (режим работы порта) +скорость:
 04 24 0E 00 FD 00 00 80 25 00 00 56 0D 0A

Команда 722 передача данных EPO тип I ( сразу до 3 сателлитов):
 04 24 BF 00 D2 02 00 00 D0 9F 05 01 ... CRC 0D 0A

Команда 723 передача данных EPO тип II ( сразу до 3 сателлитов):
 04 24 E3 00 D3 02 00 00 D0 9F 05 01 ... CRC 0D 0A

Команда ACK_EPO подтверждение передачи данных EPO:
 04 24 0C 00 02 00 00 00 01 0F 0D 0A

далее