kopia lustrzana https://github.com/projecthorus/radiosonde_auto_rx
Add APRS callsign generation support for M20 sondes, matching dxlAPRS's weird-ass formatting.
rodzic
5f350410ab
commit
217909fe02
|
|
@ -13,6 +13,7 @@ import traceback
|
||||||
import socket
|
import socket
|
||||||
from threading import Thread, Lock
|
from threading import Thread, Lock
|
||||||
from . import __version__ as auto_rx_version
|
from . import __version__ as auto_rx_version
|
||||||
|
from .utils import strip_sonde_serial
|
||||||
|
|
||||||
try:
|
try:
|
||||||
# Python 2
|
# Python 2
|
||||||
|
|
@ -74,7 +75,7 @@ def telemetry_to_aprs_position(
|
||||||
# Generate the comment field.
|
# Generate the comment field.
|
||||||
_aprs_comment = aprs_comment
|
_aprs_comment = aprs_comment
|
||||||
_aprs_comment = _aprs_comment.replace("<freq>", _freq)
|
_aprs_comment = _aprs_comment.replace("<freq>", _freq)
|
||||||
_aprs_comment = _aprs_comment.replace("<id>", sonde_data["id"])
|
_aprs_comment = _aprs_comment.replace("<id>", strip_sonde_serial(sonde_data["id"]))
|
||||||
_aprs_comment = _aprs_comment.replace("<temp>", "%.1fC" % sonde_data["temp"])
|
_aprs_comment = _aprs_comment.replace("<temp>", "%.1fC" % sonde_data["temp"])
|
||||||
_aprs_comment = _aprs_comment.replace(
|
_aprs_comment = _aprs_comment.replace(
|
||||||
"<pressure>", "%.1fhPa" % sonde_data["pressure"]
|
"<pressure>", "%.1fhPa" % sonde_data["pressure"]
|
||||||
|
|
|
||||||
|
|
@ -535,6 +535,7 @@ class SondeDecoder(object):
|
||||||
# - Have dropped the low-leakage FIR filter (-F9) to save a bit of CPU
|
# - Have dropped the low-leakage FIR filter (-F9) to save a bit of CPU
|
||||||
# Have scaled back sample rate to 220 kHz to again save CPU.
|
# Have scaled back sample rate to 220 kHz to again save CPU.
|
||||||
# mk2mod runs at ~90% CPU on a RPi 3, with rtl_fm using ~50% of another core.
|
# mk2mod runs at ~90% CPU on a RPi 3, with rtl_fm using ~50% of another core.
|
||||||
|
# Update 2021-07-24: Updated version with speedups now taking 240 kHz BW and only using 50% of a core.
|
||||||
|
|
||||||
decode_cmd = "%s %s-p %d -d %s %s-M raw -s 240k -f %d 2>/dev/null |" % (
|
decode_cmd = "%s %s-p %d -d %s %s-M raw -s 240k -f %d 2>/dev/null |" % (
|
||||||
self.sdr_fm,
|
self.sdr_fm,
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,7 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
from __future__ import division, print_function
|
from __future__ import division, print_function
|
||||||
|
import codecs
|
||||||
import fcntl
|
import fcntl
|
||||||
import logging
|
import logging
|
||||||
import os
|
import os
|
||||||
|
|
@ -255,6 +256,15 @@ def generate_aprs_id(sonde_data):
|
||||||
# Use the generated id same as dxlAPRS
|
# Use the generated id same as dxlAPRS
|
||||||
_object_name = sonde_data["aprsid"]
|
_object_name = sonde_data["aprsid"]
|
||||||
|
|
||||||
|
elif "M20" in sonde_data["type"]:
|
||||||
|
# Generate the M20 ID based on the first two hex digits of the
|
||||||
|
# raw hexadecimal id, followed by the last decimal section.
|
||||||
|
# Why we do this and not just use the three hex bytes, nobody knows...
|
||||||
|
if 'rawid' in sonde_data:
|
||||||
|
_object_name = "ME" + sonde_data['rawid'].split('_')[1][:2] + sonde_data["id"].split("-")[-1]
|
||||||
|
else:
|
||||||
|
_object_name = None
|
||||||
|
|
||||||
elif "IMET" in sonde_data["type"]:
|
elif "IMET" in sonde_data["type"]:
|
||||||
# Use the last 5 characters of the unique ID we have generated.
|
# Use the last 5 characters of the unique ID we have generated.
|
||||||
_object_name = "IMET" + sonde_data["id"][-5:]
|
_object_name = "IMET" + sonde_data["id"][-5:]
|
||||||
|
|
|
||||||
|
|
@ -249,7 +249,7 @@ aprs_position_report = False
|
||||||
# <batt> - Battery Voltage (e.g. 3.1V)
|
# <batt> - Battery Voltage (e.g. 3.1V)
|
||||||
# The default comment (below) is compatible with radiosondy.info's parsers, and should only be modified
|
# The default comment (below) is compatible with radiosondy.info's parsers, and should only be modified
|
||||||
# if absolutely necessary.
|
# if absolutely necessary.
|
||||||
aprs_custom_comment = Clb=<vel_v> t=<temp> h=<humidity> p=<pressure> <freq> Type=<type> Radiosonde
|
aprs_custom_comment = Clb=<vel_v> t=<temp> h=<humidity> p=<pressure> <freq> Type=<type> ser=<id> Radiosonde
|
||||||
|
|
||||||
|
|
||||||
###########################
|
###########################
|
||||||
|
|
|
||||||
Ładowanie…
Reference in New Issue