Allow t/w filter to match stations with an overlay character on their symbol

This commit is contained in:
Heikki Hannikainen 2015-08-30 20:24:03 +03:00
parent bec189970c
commit 86ab75b45f
2 changed files with 9 additions and 4 deletions

View File

@ -70,10 +70,10 @@ static int pbuf_fill_pos(struct pbuf_t *pb, const float lat, const float lng, co
pb->symbol[1] = sym_code;
pb->symbol[2] = 0;
/* Is it perhaps a weather report ? */
if (sym_code == '_' && (sym_table == '/' || sym_table == '\\'))
/* Is it perhaps a weather report ? Allow symbol overlays, too. */
if (sym_code == '_' && valid_sym_table_uncompressed(sym_table))
pb->packettype |= T_WX;
if (sym_code == '@' && (sym_table == '/' || sym_table == '\\'))
if (sym_code == '@' && valid_sym_table_uncompressed(sym_table))
pb->packettype |= T_WX; /* Hurricane */
bad |= (lat < -89.9 && -0.0001 <= lng && lng <= 0.0001);

View File

@ -3,7 +3,7 @@
#
use Test;
BEGIN { plan tests => 6 + 18 + 3 };
BEGIN { plan tests => 6 + 19 + 3 };
use runproduct;
use istest;
use Ham::APRS::IS;
@ -96,6 +96,11 @@ $pass = "CW1234>APRS,qAR,$login:!6028.51N/02505.68E# CWOP pass";
$drop = "XW1AA>APRS,qAR,$login:!6028.51N/02505.68E# pos drop";
istest::should_drop(\&ok, $i_tx, $i_rx, $drop, $pass);
# CWOP with overlay on symbol pass, position drop
$pass = "YACHTS>APRS,qAR,$login:\@055503z4420.57N112405.53W_287/007g020t055r007p053P019h87b10115.U21h";
$drop = "XW1AZ>APRS,qAR,$login:!6028.51N/02505.68E# pos drop again";
istest::should_drop(\&ok, $i_tx, $i_rx, $drop, $pass);
$pass = "EW1234>APRS,qAR,$login:!6028.51N/02505.68E# CWOP pass";
$drop = "FW1AB>APRS,qAR,$login:!6028.51N/02505.68E# pos drop";
istest::should_drop(\&ok, $i_tx, $i_rx, $drop, $pass);