xastir_udp_client(1)

πŸ’– xastir_udp_client πŸ’–

okay so bestie, welcome to xastir_udp_client(1) β€” that's a General Commands Manual page, and it's genuinely one of the cutest little utilities in the Xastir family 🫢


✨ NAME ✨

xastir_udp_client β€” send simple messages to xastir for APRS(tm) network. that's it, that's the whole job, and she does it flawlessly πŸ’…


🌸 SYNOPSIS 🌸

xastir_udp_client <hostname> <port> <callsign> <passcode> {-identify |
[-to_rf] <message>}

like… you give her a <hostname>, a <port>, a <callsign>, a <passcode>, and then it's either -identify or an optional -to_rf followed by your <message>. pick a lane, she's not complicated πŸŽ€


πŸ¦‹ DESCRIPTION πŸ¦‹

xastir_udp_client sends packets into the UDP listening port of an enabled xastir instance. that's the vibe. that's the whole assignment. no cap 🧚


🌈 EXAMPLES 🌈

okay here's the moment you've been waiting for, the actual usage:

xastir_udp_client localhost 2023 <callsign> <passcode> "APRS Packet Goes Here"

so rn that will inject the packet into Xastir's decoding routines and send it to any TCP-connected clients. it will also igate it to the INET if you have igating enabled. but if you want it out the RF ports as third-party packets? you have to add the -to_rf flag after the passcode, like this bestie:

xastir_udp_client localhost 2023 <callsign> <passcode> -to_rf "APRS Packet"

the UDP client is lowkey iconic for generating and injecting APRS packets from external scripts. and plot twist πŸ’€ β€” you can also use it to fetch the callsign of the remote xastir server by using the -identify flag:

xastir_udp_client localhost 2023 <callsign> <passcode> -identify

πŸ‘‘ NOTES πŸ‘‘

not me having to be the responsible one here, but listen:

this is a very simple utility that provides no validation of message content. the text passed as the last argument is directly injected into Xastir's incoming data stream and processed exactly as if it had come out of a TNC. no filter, no vibe check, straight in πŸ”₯

as such, the text passed to it as "APRS Packet" must be a complete APRS packet, including FROM and TO call signs β€” not simply the payload. so to have it work properly, you should pass:

"MYCALL-0>APX219:payload goes here"

as the string, not "payload goes here" (where obviously you should replace "MYCALL-0" with your own callsign and SSID πŸ™ˆ).

bestie this is the part where people get confused and I need you to actually read it, okay?

if the APRS payload provided is an object or item, and the call sign and SSID provided in the packet header match Xastir's exactly, then Xastir will "adopt" the object or item and treat it in the same manner as one that had been created in its own GUI β€” that is, the object will be retransmitted with decaying intervals until deleted. this can be useful if one wishes to create objects external to Xastir and have it take control over them, but can be a bit surprising if you weren't expecting it 😭

if you want the objects treated as Xastir's own, use the same callsign and ssid for the object as the callsign/SSID that Xastir is using. and if you DON'T want that, use a different SSID. periodt πŸ’…

so, if Xastir's callsign is "MYCALL-0" then this invocation will create an object that will be adopted and retransmitted:

xastir_udp_client localhost 2023 MYCALL-0 <passcode> "MYCALL-0>APX219,WIDE2-1:;foobar   *202111z3501.53N/10619.04W/"

while this invocation will create an object that will only be transmitted once and not adopted:

xastir_udp_client localhost 2023 MYCALL-0 <passcode> "MYCALL-1>APX219,WIDE2-1:;foobar   *202111z3501.53N/10619.04W/"

see how the SSID changed? yeah. that's the whole trick. slay ✨


πŸ’œ SEE ALSO πŸ’œ

  • xastir help file

APRS[tm] is a Trademark of Bob Bruninga, his home page is at "http://www.aprs.org/aprs.html"


πŸ“ COPYING πŸ“

Copyright (C) 1999,2000 Frank Giannandrea KC2GJS

Copyright (C) 2000-2026 The Xastir Group


and that's the page babes πŸ’– written by The Xastir Group, dated 2019-05-01, and honestly she ate. go inject some packets responsibly, ily 🫢🌸

πŸ“¦ where this page comes from