python-ogn-client/tests/parser/parse/test_position_weather.py

33 wiersze
1.3 KiB
Python

from ogn.parser import parse
from ogn.parser.utils import KNOTS_TO_MS, KPH_TO_MS, INCH_TO_MM, fahrenheit_to_celsius
def test_v028_fanet_position_weather():
# with v0.2.8 fanet devices can report weather data
raw_message = 'FNTFC9002>OGNFNT,qAS,LSXI2:/163051h4640.33N/00752.21E_187/004g007t075h78b63620 29.0dB -8.0kHz'
message = parse(raw_message)
assert message['aprs_type'] == 'position_weather'
assert message['beacon_type'] == 'fanet'
assert message['wind_direction'] == 187
assert message['wind_speed'] == 4 * KNOTS_TO_MS / KPH_TO_MS
assert message['wind_speed_peak'] == 7 * KNOTS_TO_MS / KPH_TO_MS
assert message['temperature'] == fahrenheit_to_celsius(75)
assert message['humidity'] == 78 * 0.01
assert message['barometric_pressure'] == 63620
assert message['signal_quality'] == 29.0
assert message['frequency_offset'] == -8.0
def test_GXAirCom_fanet_position_weather_rainfall():
raw_message = 'FNT08F298>OGNFNT,qAS,DREIFBERG:/082654h4804.90N/00845.74E_273/005g008t057r123p234h90b10264 0.0dB'
message = parse(raw_message)
assert message['aprs_type'] == 'position_weather'
assert message['beacon_type'] == 'fanet'
assert message['rainfall_1h'] == 123 / 100 * INCH_TO_MM
assert message['rainfall_24h'] == 234 / 100 * INCH_TO_MM