naiveNMEAdaemon
Простой проигрыватель файлов NMEA с сетевым интерфейсом для отладки приложений, основанных на gpsd или SignalK.
Возможности
- Воспроизведение одного или нескольких файлов NMEA 0183 совместно, отправлением по одному сообщению из каждого файла поочерёдно.
- Регулируемая частота посылки сообщений.
- Работает непрерывно или указанное количество времени.
- Фильтрация сообщений
- Устанавливает курс в сообщениях как направление от предыдущей к последней точке определения координат.
- Устанавливает число спутников в сообщениях на указанное.
- Устанавливает скорость в сообщениях на указанную.
- Устанавливает временную метку в сообщениях на текущее время
- Позволяет записывать результирующий поток сообщений в файл.
Использование
Запуск демона
php naiveNMEAdaemon.php [-i...] [-t...] [-b...] [--run...] [--filtering...] [--updsat...] [--updtime] [log_file_name]
Где:
-b
обслуживать на протокол://адрес:порт, по умолчанию tcp://127.0.0.1:2222
Пример: -b=tcp://0.0.0.0:2222
- принимать соединение на всех имеющихся интерфейсах.
-i
список фалов NMEA, по одному сообщению в строке, по умолчанию sample1.log
Пример: -isample1.log
или -i=sample1AIS.log,forAIStest.nmea
или просто sample1.log последним параметром.
-t
пауза между отсылкой сообщений, микросекунд (1/1 000 000 сек.), по умолчанию 200000.
Пример: -t1000000
отсылает сообщения раз в секунду.
--run
время работы, секунд. По умолчанию 0 - бесконечно.
Пример: --run=30
--filtering
отправлять только указанные сообщения из списка GGA,GLL,GNS,RMC,VTG,VHW,GSA,HDT,ZDA,VDO,VDM... или, наоборот, отправлять всё, кроме сообщений, указанныз с приставкой "x" (икс), или всё но мообщения из списка - тоько одно из указанного числа. По умолчанию - не фильтровать исходный файл.
Пример: --filtering=RMC,VDM
- отправлять только координаты и сообщения AIS из исходных файлов.
--filtering=xVDO,xVDM
- отправлять всё, кроме сообщений AIS.
--filtering=10DPT,10DBT - отправлять всё, но сообщения о глубине - только одно из десяти.
--updbearing
устанавливать значение поля 8 'Track made good' сообщений RMC как направление от предыдущей точки определения координат к последней, логическое значение.
--updsat
устанавливать указанное количество спутников в сообщениях GGA если координаты определены, но количество спутников в сообщении равно нулю. Так происходит при создании файла NMEA из файла GPX с помощью GPSBabel. Нулевое количество спутников является ошибочным для gpsd, и gpsd не показывает координаты (но SignalK игнорирует это обстоятельство). По умолчанию включено и количество спутников равно 6.
--updspeed
устанавливает значение поля 7 'Speed over ground' сообщений RMC в указанную величину, если оно примерно равно нулю. Километры в час, с плавающей точкой. По умолчанию выключено, если скорость не указана, то она будет 10.0 км/час. Для gpsd нужно отфильтровать сообщения GGA, если требуется воспользоваться этой опцией. В противном случае gpsd будет вычислять скорость по сообщениям GGA.
Пример: --updspeed=15
--updtime
устанавливает время во всех сообщениях в текущее. Строго говоря, текущее время устанавливается для первого встреченного сообщения RMC, а потом это же время задаётся всем сообщениям до следующего сообщения RMC. Таким образом формируется "эпоха" для gpsd. По умолчанию включено.
Пример: --updtime=0
- отключить.
--savesentences
записывать итоговый поток сообщений NMEA в указанный файл.
Пример: --savesentences=resulting.nmea
Подключение к демону
GPSD
gpsd -G -N -n tcp://localhost:2222