SmartSDR v3.10.15 and the SmartSDR v3.10.15 Release Notes
The latest 4O3A Genius Product Software and Firmware
Need technical support from FlexRadio? It's as simple as Creating a HelpDesk ticket.
Do I need to send keep alive to use the API
Maybe this is a **** question I have read cover to cover several times the fine book API Primer by G3WGV. I am having a connection issue and want to make sure I am not missing something. In the Radio.cs there is a routine that can be called by Send Command("keep alive enable") is this something that I need to send to the radio on a regular basis so that it does not ignore my connection once I am connected?
Excuse my ignorance but I am dealing with some in consistencies after I connect regarding sending commands to the radio. It is either due to a firewall issue or the radio no longer wishing to talk to me. I am leaning to a firewall issue since as long as I run the application within the IDE there is no issue but if I try to run it stand alone not within the IDE it works sometimes and sometimes it does not work.
I have no issue getting the discovery packets and decoding them, parsing the info then connecting to the radio using that information within the IDE however outside the IDE I can obtain the discovery packets, get the information from those then about every other time I can establish a connection with the radio successfully while within the IDE it connects everytime.
I am using Win 7 and turning the firewall off has not seemed to have any effect.
I remembered seeing keep alive and was thinking that maybe I need to generate this at a specific interval to maintain the connection.
Thanks in advance.
Answers
-
No, you don't need to send any sort of keep-alive to keep the TCP connection going.
There is a ping command (no parameters), which you can use to check latency and, if you are on an unreliable link (perhaps a WAN) then you might use the ping to detect that the radio has gone away (as opposed to simply disconnected, which will create a TCP/IP event). Any other command would have the same effect though, so I am not sure what benefit ping brings to the API.
I coded the option to ping the radio into my API library after 20s of inactivity. I find that I do not use it in practice.
73, John, G3WGV
0 -
Thanks I have other issues then.0
-
Wayne,
If you send the Radio a "keepalive enable" command (note that "keepalive" is one word) then you must send a "ping" command periodically (every second or so) otherwise the Radio will timeout the connection.
If you don't send the "keepalive enable" then you do not need to send the "ping" commands.
I see that you referenced the API Primer by G3WGV. If I recall correctly, G3WGV coded a "tester" for the Flex API that runs in Windows. You might want to reach out to him to obtain a copy. The "tester" that I built (unfortunately for you, only runs on the Mac) has been very helpful to me in learning more about the API.0 -
Ah yes, Doug, I had it in the back of my mind that there was some sort of keepalive option but I don't think Wayne has set that. Thanks for the reminder. Wayne: see here for information.
As is the way of these things the tester to which you refer has fallen out of use/maintenance since I got my API library working but I do still have the code and it would not be a big job to update it. The source code might be useful too, although it's written in Delphi, which is perhaps not as mainstream as it deserves to be.
0 -
Hi Doug, is it possible to get a copy of your Mac API “tester” for the Flex? My email is available on QRZ. Thanks!0
-
No keep alive being used. Found my issue was misplacement of a subroutine interferring with the packet processing I was doing0
Leave a Comment
Categories
- All Categories
- 354 Community Topics
- 2.1K New Ideas
- 619 The Flea Market
- 8K Software
- 3 SmartSDR+
- 6.3K SmartSDR for Windows
- 176 SmartSDR for Maestro and M models
- 414 SmartSDR for Mac
- 267 SmartSDR for iOS
- 252 SmartSDR CAT
- 188 DAX
- 377 SmartSDR API
- 9.2K Radios and Accessories
- 25 Aurora
- 220 FLEX-8000 Signature Series
- 7.1K FLEX-6000 Signature Series
- 926 Maestro
- 53 FlexControl
- 862 FLEX Series (Legacy) Radios
- 898 Genius Products
- 457 Power Genius XL Amplifier
- 325 Tuner Genius XL
- 116 Antenna Genius
- 287 Shack Infrastructure
- 202 Networking
- 445 Remote Operation (SmartLink)
- 141 Contesting
- 761 Peripherals & Station Integration
- 139 Amateur Radio Interests
- 979 Third-Party Software

