[feat](trx-reporting): add software comment to APRS beacon
Append the APRS-IS position beacon comment as\n`trx-rs v<version> by SP2SJG` so IGate beacons identify\nthe running software version.\n\nUpdate the APRS beacon formatter tests to assert the exact\npayload including the generated version string.\n\nCo-Authored-By: OpenAI Codex <codex@openai.com> Signed-off-by: Stan Grams <sjg@haxx.space>
This commit is contained in:
@@ -85,15 +85,18 @@ fn format_aprs_lon(lon: f64) -> String {
|
|||||||
///
|
///
|
||||||
/// Uses APRS uncompressed position format (`!`) with path `TCPIP*`.
|
/// Uses APRS uncompressed position format (`!`) with path `TCPIP*`.
|
||||||
/// The two-character `symbol` string sets the symbol-table and symbol-code
|
/// The two-character `symbol` string sets the symbol-table and symbol-code
|
||||||
/// (e.g. `/-` = house, `/&` = diamond/gateway).
|
/// (e.g. `/-` = house, `/&` = diamond/gateway), followed by a software
|
||||||
|
/// comment identifying this IGate instance.
|
||||||
fn format_beacon(callsign: &str, lat: f64, lon: f64, sym_table: char, sym_code: char) -> String {
|
fn format_beacon(callsign: &str, lat: f64, lon: f64, sym_table: char, sym_code: char) -> String {
|
||||||
|
let comment = format!("trx-rs v{} by SP2SJG", env!("CARGO_PKG_VERSION"));
|
||||||
format!(
|
format!(
|
||||||
"{}>APRS,TCPIP*:!{}{}{}{}\r\n",
|
"{}>APRS,TCPIP*:!{}{}{}{}{}\r\n",
|
||||||
callsign,
|
callsign,
|
||||||
format_aprs_lat(lat),
|
format_aprs_lat(lat),
|
||||||
sym_table,
|
sym_table,
|
||||||
format_aprs_lon(lon),
|
format_aprs_lon(lon),
|
||||||
sym_code,
|
sym_code,
|
||||||
|
comment,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -442,7 +445,13 @@ mod tests {
|
|||||||
#[test]
|
#[test]
|
||||||
fn beacon_format_house_symbol() {
|
fn beacon_format_house_symbol() {
|
||||||
let s = format_beacon("SP2SJG-10", 52.2297, 21.0122, '/', '-');
|
let s = format_beacon("SP2SJG-10", 52.2297, 21.0122, '/', '-');
|
||||||
assert_eq!(s, "SP2SJG-10>APRS,TCPIP*:!5213.78N/02100.73E-\r\n");
|
assert_eq!(
|
||||||
|
s,
|
||||||
|
format!(
|
||||||
|
"SP2SJG-10>APRS,TCPIP*:!5213.78N/02100.73E-trx-rs v{} by SP2SJG\r\n",
|
||||||
|
env!("CARGO_PKG_VERSION")
|
||||||
|
)
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
@@ -450,6 +459,7 @@ mod tests {
|
|||||||
let s = format_beacon("VK2ABC-10", -33.8688, 151.2093, '/', '-');
|
let s = format_beacon("VK2ABC-10", -33.8688, 151.2093, '/', '-');
|
||||||
assert!(s.contains('S'));
|
assert!(s.contains('S'));
|
||||||
assert!(s.contains('E'));
|
assert!(s.contains('E'));
|
||||||
|
assert!(s.contains("trx-rs v"));
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
|
|||||||
Reference in New Issue
Block a user