X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=blobdiff_plain;f=src%2Fdrivers%2Fao_aprs.c;h=6ab61e6a3018f9d945bce57be25eb5176e251a3c;hp=93c4af3fc74a36eef3cef66da4494125b625d180;hb=93a9aa703a0173e13b327ed432e6d52e90ebfa1b;hpb=4339d5c8e6373119e5377fe5c883b6b0e6ce37f6 diff --git a/src/drivers/ao_aprs.c b/src/drivers/ao_aprs.c index 93c4af3f..6ab61e6a 100644 --- a/src/drivers/ao_aprs.c +++ b/src/drivers/ao_aprs.c @@ -507,24 +507,32 @@ static int tncPositionPacket(void) longitude = -longitude; } + /* Round latitude and longitude by 0.005 minutes */ + latitude = latitude + 833; + if (latitude > 900000000) + latitude = 900000000; + longitude = longitude + 833; + if (longitude > 1800000000) + longitude = 1800000000; + lat_deg = latitude / 10000000; latitude -= lat_deg * 10000000; latitude *= 60; lat_min = latitude / 10000000; latitude -= lat_min * 10000000; - lat_frac = (latitude + 50000) / 100000; + lat_frac = latitude / 100000; lon_deg = longitude / 10000000; longitude -= lon_deg * 10000000; longitude *= 60; lon_min = longitude / 10000000; longitude -= lon_min * 10000000; - lon_frac = (longitude + 50000) / 100000; + lon_frac = longitude / 100000; if (altitude < 0) altitude = 0; - altitude = altitude * (int32_t) 1000 / (int32_t) 3048; + altitude = (altitude * (int32_t) 10000 + (3048/2)) / (int32_t) 3048; return sprintf ((char *) tncBuffer, "=%02u%02u.%02u%c\\%03u%02u.%02u%cO /A=%06u\015", lat_deg, lat_min, lat_frac, lat_sign, @@ -585,7 +593,7 @@ void ao_aprs_send(void) tncIndex = 0; tncMode = TNC_TX_SYNC; - ao_radio_send_lots(tncFill); + ao_radio_send_aprs(tncFill); } /** @} */