Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/dkxce/aprsair

Console App Detects DTMF GPS Signals or APRS AFSK1200 signals from radios (eg: Abbree AR-F8, Zastone ZT-889G) over soundcard and allow to view it over console, web (HTTP), APRS and send via HTTP-GET, TCP-APRS, UDP-APRS.
https://github.com/dkxce/aprsair

air aprs dkxce dtmf gps http server udp

Last synced: about 5 hours ago
JSON representation

Console App Detects DTMF GPS Signals or APRS AFSK1200 signals from radios (eg: Abbree AR-F8, Zastone ZT-889G) over soundcard and allow to view it over console, web (HTTP), APRS and send via HTTP-GET, TCP-APRS, UDP-APRS.

Awesome Lists containing this project

README

        

# APRSAir / APRS Air

Console App Detects DTMF GPS Signals or APRS AFSK1200 signals from radios (eg: Abbree AR-F8, Zastone ZT-889G)
over soundcard and allow to view it over console, web (HTTP), APRS and send via HTTP-GET, TCP-APRS, UDP-APRS.

Это консольное приложение, которое разбирает DTMF GPS пакеты от радиостанций (пакеты координат).
К таким радиостанциям относятся Abbree AR-F8, Zastone ZT-889G и прочие. А также пакеты APRS AFSK1200.
Оно позволяет прослушивать звуковую карту и преобразовывать полученные пакеты в текстовую строку,
которая выводится в консоль, через веб-сервер, через APRS-сервер и может отправлять разобранные
данные по сети средствами HTTP-GET, TCP-APRS, UDP-APRS на внешние сервера.
Для прослушивания используются устройства аудиовхода (записи). Т.е. вы можете подключить вашу
радиостанцию к линейному входу звуковой карты или к микрофонному входу и следить за эфиром.
Либо подключить SDR-приемник и анализировать звук с него.

Приложение может работать в режиме веб-сервера, подключившись к которому можно получать информацию
обо всех разобранных пакетах координат, а также в режиме APRS-сервера, отправляя всем клиентам
стандартные APRS-пакеты с координатами радиостанций.

Также вы можете настроить отправку пакетов на внешний HTTP или APRS сервер.

Начиная с версии 0.0.1.5 приложение поддерживает прием пакетов APRS AFSK1200.
Для этого используется параметр /afsk=.. (только в режимах /listen, либо /agw, либо /kiss)

Начиная с версии 0.0.1.15 приложение умеет работать по KISS/AGW протоколу.
Вы можете подключиться к AGW Packet Engine или напрямую через KISS к TNC
по TCP/IP или через Serial COM Port и получать APRS-пакеты из эфира.
Для этого используется параметр /age, либо /kiss

Рекомендуемые значения для настройки DTMF в радиостанции:
DTMF Transmit time: 160 - 200 ms (200 ms наверняка)
DTMF Interval time: 130 - 200 ms (200 ms наверняка)
6-тизначный ANI CODE !!!

Запуск в тестовом режиме (проверка работоспособности DTMF):

APRSAIR.exe

Получение списка звуковых устройств ввода (записи DTMF/AFSK1200):

APRSAIR.exe /listrecorddevices
APRSAIR_List_input_devices.cmd

Преобразование пакета (строки) в звуковой сигнал DTMF:

APRSAIR.exe /encode "[PACKET]" "[FILE.WAV]"
APRSAIR.exe /encode "926801 B0B 023C#7B0 034#A030 00198000" "encoded_file.wav"
packet_to_dtmf.cmd

APRSAIR.exe /encgeo "CALLID B0B LAT.XX LON.XX ALTITUDE" "[FILE.WAV]"
APRSAIR.exe /encgeo "926801 B0B 55.5 37.5 00198000" "encoded_file.wav"
geo_to_dtmf.cmd

Преобразование звукового сигнала DTMF из файла в текст (файл):

APRSAIR.exe /decode "[FILE.WAV]"
APRSAIR.exe /decode "encoded_file.wav"

APRSAIR.exe /decode "[FILE.WAV]" "[FILE.TXT]"
APRSAIR.exe /decode "encoded_file.wav" "original_packet.txt"
APRSAIR_to_packet.cmd

APRSAIR.exe /decgeo "encoded_file.wav" "original_packet.txt"
APRSAIR.exe /decgeo "encoded_file.wav" "original_packet.txt"
APRSAIR_to_geo.cmd

Преобразование APRS пакета (строки) в звуковой сигнал AFSK1200:

APRSAIR.exe /encaprs "[PACKET]" "[FILE.WAV]"
APRSAIR.exe /encaprs "ZADIRA>APRS,WIDE1-1,WIDE2-2:=5539.03N/03729.50EM275/029" "test_APRS_result.wav"
APRSAIR_Encode_APRS.cmd

Преобразование APRS пакета (файла со списком комманд) в звуковой сигнал AFSK1200:

APRSAIR.exe /encaprsf "[PACKET.TXT]" "[FILE.WAV]"
APRSAIR.exe /encaprsf "TEST_APRS_multiline.txt" "TEST_APRS_multiline.wav"
APRSAIR_Encode_APRS_Multiline.cmd

Преобразование звукового сигнала AFSK1200 из файла в APRS пакет (файл):

APRSAIR.exe /decaprs "[FILE.WAV]"
APRSAIR.exe /decaprs "test_APRS_result.wav"

APRSAIR.exe /decode "[FILE.WAV]" "[FILE.TXT]"
APRSAIR.exe /decode "test_APRS_result.wav" "test_APRS_result.txt"
APRSAIR_Decode_APRS.cmd

Работа в режиме прослушки аудиокарты (потоковый режим):

APRSAIR.exe /listen /source=1 [/afsk=0] [/send="..."] [/aprs="tcp://.../"] [/aprs="udp://.../"] [/httpserv=80] [/aprsserv=14580] [/nogps2console] [/useNormalPassw] [/serverName="..."]

Параметры:
/listen - задаем режим работы
/source=... - с какого аудиоустройства в системе слушать аудиопоток (0,1,2...)
используйте /listrecorddevices для получения списка устройств
(Record Devices)
/afsk=... c какой карты в системе слушать аудиопоток (0,1,2...)
для анализа APRS AFSK1200 сигнала
используйте /listrecorddevices для получения списка устройств
(AFSK Devices)
/send="http://..." - отправлять координаты по ссылке
="http://127.0.0.1/?user={ID}&lat={LAT}&lon={LON}&alt={ALT}"
/aprs="tcp://..." - держать коннект с APRS-IS сервером и отправлять ему координаты
="tcp://username:password@servername:serverport/"
="tcp://callsign:[email protected]:14580"
/aprs="udp://..." - оптравлять данные на APRS-IS сервер через UDP
="udp://username:password@servername:serverport/" - оптравлять данные на APRS-IS сервер через UDP
="udp://callsign:[email protected]:8080" - оптравлять данные на APRS-IS сервер через UDP
/httpserv=80 - веб сервер на порту 80 для вывода информации о принятых координатах (с картой)
/aprsserv=14580 - APRS сервер на порту 14580 для вывода информации о принятых координатах
/nogps2console - не выводится GPS информация в консоль
/serverName="HTTP & APRS Server Name" - имя сервера
/useNormalPassw - использовать правильный пароль APRS для отправки данных через UDP (только через UDP!)

Из файла `users_replace_list.txt` берется список соответствия CALLSIGN и ANI_ID
Из файла `\WEB\index.html` берется ответ HTTP сервера
Из папки `\WEB` берется карта и ответ HTTP сервера

Пример:
APRSAIR.exe /listen /source=1 /send="http://127.0.0.1/?user={ID}&lat={LAT}&lon={LON}&alt={ALT}" /aprs="tcp://UNKNOWN:[email protected]:14580/" /aprs="udp://UNKNOWN:[email protected]:8080" /httpserv=80 /aprsserv=14580 /serverName="My APRSAIR"

Пример:
APRSAIR_Run_as_WaveListener.cmd

Работа в режиме клиента KISS/AGW:
KISS/AGW Listen Mode:

APRSAIR.exe /agw /source=127.0.0.1:8000:0 [/afsk=0] [/send="..."] [/aprs="tcp://.../"] [/aprs="udp://.../"] [/httpserv=80] [/aprsserv=14580] [/nogps2console] [/useNormalPassw] [/serverName="..."]
APRSAIR.exe /kiss /source=127.0.0.1:8100 [/afsk=0] [/send="..."] [/aprs="tcp://.../"] [/aprs="udp://.../"] [/httpserv=80] [/aprsserv=14580] [/nogps2console] [/useNormalPassw] [/serverName="..."]
APRSAIR.exe /kiss /source=COM3:9600 [/afsk=0] [/send="..."] [/aprs="tcp://.../"] [/aprs="udp://.../"] [/httpserv=80] [/aprsserv=14580] [/nogps2console] [/useNormalPassw] [/serverName="..."]

Параметры:
/agw - задаем режим работы AGW
/kiss - задаем режим работы KISS
/source=... - server:port:radio для AGW (например: 127.0.0.1:8000:0) где radio - порт/номер радио в AGW Packet Engine
- server:port для Kiss через TCP/IP (например: 127.0.0.1:8100)
- serial:baud для Kiss через COM (например: COM3:9600)
/afsk=... c какой карты в системе слушать аудиопоток (0,1,2...)
для анализа APRS AFSK1200 сигнала
используйте /listrecorddevices для получения списка устройств
(AFSK Devices)
/send="http://..." - отправлять координаты по ссылке
="http://127.0.0.1/?user={ID}&lat={LAT}&lon={LON}&alt={ALT}"
/aprs="tcp://..." - держать коннект с APRS-IS сервером и отправлять ему координаты
="tcp://username:password@servername:serverport/"
="tcp://callsign:[email protected]:14580"
/aprs="udp://..." - оптравлять данные на APRS-IS сервер через UDP
="udp://username:password@servername:serverport/" - оптравлять данные на APRS-IS сервер через UDP
="udp://callsign:[email protected]:8080" - оптравлять данные на APRS-IS сервер через UDP
/httpserv=80 - веб сервер на порту 80 для вывода информации о принятых координатах (с картой)
/aprsserv=14580 - APRS сервер на порту 14580 для вывода информации о принятых координатах
/nogps2console - не выводится GPS информация в консоль
/serverName="HTTP & APRS Server Name" - имя сервера
/useNormalPassw - использовать правильный пароль APRS для отправки данных через UDP (только через UDP!)

Из файла `users_replace_list.txt` берется список соответствия CALLSIGN и ANI_ID
Из файла `\WEB\index.html` берется ответ HTTP сервера
Из папки `\WEB` берется карта и ответ HTTP сервера

Примеры:
APRSAIR.exe /agw /source=127.0.0.1:8000:0 /send="http://127.0.0.1/?user={ID}&lat={LAT}&lon={LON}&alt={ALT}" /aprs="tcp://UNKNOWN:[email protected]:14580/" /aprs="udp://UNKNOWN:[email protected]:8080" /httpserv=80 /aprsserv=14580 /serverName="My APRSAIR"

APRSAIR.exe /kiss /source=127.0.0.1:8100 /send="http://127.0.0.1/?user={ID}&lat={LAT}&lon={LON}&alt={ALT}" /aprs="tcp://UNKNOWN:[email protected]:14580/" /aprs="udp://UNKNOWN:[email protected]:8080" /httpserv=80 /aprsserv=14580 /serverName="My APRSAIR"

APRSAIR.exe /kiss /source=COM3:9600 /send="http://127.0.0.1/?user={ID}&lat={LAT}&lon={LON}&alt={ALT}" /aprs="tcp://UNKNOWN:[email protected]:14580/" /aprs="udp://UNKNOWN:[email protected]:8080" /httpserv=80 /aprsserv=14580 /serverName="My APRSAIR"

Примеры:
APRSAIR_Run_AGW.cmd
APRSAIR_Run_KISS_TCP.cmd