Keyboard Shortcuts
ctrl + shift + ? :
Show all keyboard shortcuts
ctrl + g :
Navigate to a group
ctrl + shift + f :
Find
ctrl + / :
Quick actions
esc to dismiss
Likes
Search
Interface documentation for programmers
Xastir and other software uses AGWPE to talk to Direwolf. The protocol is fairly well defined. Implementing a client isn't trivial, but it's not super-hard either, as long as you're familiar with writing socket-related code. You also don't need to implement everything, if you don't need it all. (For example, if you only want to listen to APRS traffic, you don't need to implement the connection-based pieces.) The spec is available in a couple of places. Here's one: There is some example?code in C++ and Delphi (yes, really), but I didn't find it of much help. Working from the descriptive text, I wrote a full Python client that works against Direwolf, ldsped and AGWPE itself. Depending on what you want to do, you may also need code to work with AX.25 packets. Direwolf can also talk via KISS, though that's more limited. Hope that helps. Martin. KD6YAM On Sun, Sep 26, 2021 at 5:43 AM John <wa1kli@...> wrote: Is there a document detailing how to write programs such as Xasitr that make API calls to direwolf? |
¿ªÔÆÌåÓýHello John, While Martin's response is spot on for communicating packets from the Direwolf TNC to the Xastir APRS application, maybe you're wanting something different?? Can you describe what you want to do? --David KI6ZHD On 09/25/2021 07:02 PM, John wrote:
Is there a document detailing how to write programs such as Xasitr that make API calls to direwolf? |
Although I see a lot of good in the AGW protocol, it does add an extra layer. Why not just use KISS over TCP/IP. Then you are using the standard protocol for hardware TNCs. There is a lot of code (and even libraries) for the KISS protocol. The only differnece between getting data from a hardware TNC and a software TNC would be the source (TCP or COMM port).? Robert Giuliano
On Sunday, September 26, 2021, 09:57:19 AM EDT, Martin Cooper <kd6yam@...> wrote:
Xastir and other software uses AGWPE to talk to Direwolf. The protocol is fairly well defined. Implementing a client isn't trivial, but it's not super-hard either, as long as you're familiar with writing socket-related code. You also don't need to implement everything, if you don't need it all. (For example, if you only want to listen to APRS traffic, you don't need to implement the connection-based pieces.) The spec is available in a couple of places. Here's one: There is some example?code in C++ and Delphi (yes, really), but I didn't find it of much help. Working from the descriptive text, I wrote a full Python client that works against Direwolf, ldsped and AGWPE itself. Depending on what you want to do, you may also need code to work with AX.25 packets. Direwolf can also talk via KISS, though that's more limited. Hope that helps. Martin. KD6YAM On Sun, Sep 26, 2021 at 5:43 AM John <wa1kli@...> wrote: Is there a document detailing how to write programs such as Xasitr that make API calls to direwolf? |
On Sun, Sep 26, 2021 at 11:40 AM, David Ranch wrote:
Can you describe what you want to do?I would like to be able to write a program on a Raspberry Pi that receives APRS packets from direwolf, makes some decisions based upon those packets, and then has direwoldf transmit other packets under program control. I also want to use hamlib to do such things as set frequency etc. |
AGWPEMartin, am confused. Isn't AGWPE a separate software package that must be installed? Also is it only available for Microsoft Windows? The confusion arises because the name is used for two different things. There is the AGWPE software, written by?George Rossopoulos (SV2AGW) for Windows, and comprising a library and a few applications. And then there is the AGWPE API / protocol, as described in the document I linked to. The name comes from AGW Packet Engine, the AGW?coming from the author's callsign. There are several server implementations of the AGWPE protocol. The three that I'm aware of are the AGWPE software itself, Direwolf, and ldsped (the name of that last also coming from the author's callsign, plus Packet Engine Daemon). Any of those can be used by client software, such as Xastir and many others, that uses the AGWPE protocol to talk to the server. Hope that helps. Martin. KD6YAM ? |
Many HAMs kind of associate the protocol with sound card TNCs (like: AGWpe, UZ7HO, and Direwolf).? Others associate it with (what I will call) an interface combiner (LDSped). The true is that most APRS clienets that implement the AGW protocol.? It allows for multiple streams over the same TCP interface. However, as I stated earlier, the standard KISS over TCP/IP has a lot of the same features, and makes interacing easier.? Direwolf has the TCP/IP interface for bidirection communication, as does almost every APRS client.? Why add another protocol, when you probably already have the KISS protocol in any application you would develop for APRS? Robert Giuliano
On Sunday, September 26, 2021, 07:33:41 PM EDT, Martin Cooper <kd6yam@...> wrote:
AGWPEMartin, am confused. Isn't AGWPE a separate software package that must be installed? Also is it only available for Microsoft Windows? The confusion arises because the name is used for two different things. There is the AGWPE software, written by?George Rossopoulos (SV2AGW) for Windows, and comprising a library and a few applications. And then there is the AGWPE API / protocol, as described in the document I linked to. The name comes from AGW Packet Engine, the AGW?coming from the author's callsign. There are several server implementations of the AGWPE protocol. The three that I'm aware of are the AGWPE software itself, Direwolf, and ldsped (the name of that last also coming from the author's callsign, plus Packet Engine Daemon). Any of those can be used by client software, such as Xastir and many others, that uses the AGWPE protocol to talk to the server. Hope that helps. Martin. KD6YAM ? |
KISS by itself just provides an envelope and encoding for arbitrary data, and says nothing about what kind of data is inside that envelope. Encoding and decoding the data contained in a KISS packet is by agreement between client and server on what the packets contain. Without a higher level protocol / API that defines the contents, KISS has no concept?of, for example, enabling monitoring or opening a connection. So while KISS will help you get data back and forth, you still need something else on top of it. Even if there's a commonly understood agreement on the format of the contents, that's not part of KISS itself, but another layer. KISS plus that other layer may be equivalent to AGWPE, but not KISS by itself. Martin. KD6YAM On Sun, Sep 26, 2021 at 6:35 PM Rob Giuliano via <kb8rco=[email protected]> wrote:
|
So, with respect to the Direwolf interface, what in the AGW protocol is so much different? So far, there has been nothing I have done with the Direwolf AGW that I haven't done with Direwolf's KISS over TCP/IP. ?>>> On Sun, Sep 26, 2021 at 07:13 PM, John wrote: > I would
like to be able to write a program on a Raspberry Pi that receives APRS
packets from direwolf, > makes some decisions based upon those packets,
and then has direwoldf transmit other packets > under program control. I
also want to use hamlib to do such things as set frequency etc. Using
KISS over TCP/IP, I have received packets from Direwolf, decoded those
packets, acted on those packets, and sent packets back to Direwolf for transmitting.? I have even help others use decoded KISS packets from Direwolf to aim satellite antennas at a balloon.
|
At the top of this conversation, you said: "Although I see a lot of good in the AGW protocol, it does add an extra layer." The point of my previous message was that there is an extra layer involved when using KISS that hadn't been mentioned. As you said yourself?below, you decoded packets received from Direwolf using KISS. What you got from KISS itself was just a blob of data; you had to implement some other specification to understand / interpret those blobs before you could do something meaningful with them. It is KISS plus that extra layer that is the parallel to AGWPE,?not KISS by itself. I haven't claimed that there is anything you can do with AGWPE that you can't do with KISS plus that extra layer, or vice versa, nor have I claimed that one is better than the other. To each, his or her own. But let's understand that KISS by itself is just a blob transport, and there's more involved. Martin. KD6YAM On Sun, Sep 26, 2021 at 8:08 PM Rob Giuliano via <kb8rco=[email protected]> wrote:
|
If one is attaching at the kiss layer, then each client must be able to pack and unpack the packets and if the service is a connected services, handle retries. Since APRS is essentially connectionless, this is not a major?lift. If, however, one uses a connection based packet approach, then the clients must handle the retries for the packets and this can get complicated. ? I have encountered?certain clients who do not handle the?retries well causing failure of the client. Many/most of the low level packet software (AGWPE, Doundcard, Direwolf) do seem to handle the retries well.? Connecting the client over the AGW?layer removes the need for the client to handle the retries and for connected services and removes the need for the retry code at the client layer. On Sun, Sep 26, 2021 at 11:45 AM Rob Giuliano via <kb8rco=[email protected]> wrote:
--
AB1PH Don Rolph |
to navigate to use esc to dismiss