SmartSDR v3.9.19 and the SmartSDR v3.9.19 Release Notes
SmartSDR v2.12.1 and the SmartSDR v2.12.1 Release Notes
The latest 4O3A Genius Product Software and Firmware
Need technical support from FlexRadio? It's as simple as Creating a HelpDesk ticket.
Flex TCP/IP Meter Subscription

I am working on code that will utilize the TCP/IP meter subscription API. I have noticed what I call a strange behavior. When I start the radio (6600) and connect with the API I call the meter list. If no client is running I get back 10 meter indexes. This seems very static. I assumed that when I started the client I would get the remaining meters. I found out this is not the case when I was subscribing to the Level meter (signal strength of signals in the filter passband). When the client 1st started my code found the meter with a index of 13. I then subscribed and I see the signal strength value (dbm) and assumed all was well. However when I changed bands, the meter list updates and now this index is 14. I found out that it jumps index count changes when I operate the radio and sometimes it is 13 and some time it is 14. I found out by changing bands. The meter index count changes between 29 or 31 meters.
I have been advised to just subscribe to all the meters and parse out the name of the meter so the index is irrelevant. It seems like a good idea but since the 6xxx series of radios have limited cpu overhead available this approach seems wasteful to me. I have no need to subscribe to all the meters. It makes more sense to me to only subscribe to meters relevant to my purpose.
Can some one explain why the meter list dynamically changes the index count when I change bands ? If I can find out what the trigger is for the dynamic change I can code around it. I don't mind doing a few meter list queries but I can't code for it with out knowing what causes the meter index count change.
Best Answer
-
The meters are indeed a dynamic entity. There are some meters that will usually be around all of the time (things like voltage rails on the radio, fan RPM, etc), but many of the meters are dynamically created/removed. These can be meters like transmit related meters, slice related meters (created when the Slice is instantiated, removed when the Slice is closed), and accessory meters like those from PGXL and TGXL.
So the question is what kind of information are you trying to get out of the meters? Let's just say that you're trying to get the S-Meter signal strength for the active Slice. You can use the Slice Index for the Active Slice to help search for the right meter combined with the .num matching the Slice Index.
The way we do this in SmartSDR (and FlexLib) is to subscribe to all meters (
sub meter all
) and then parse out the info locally into a list of Meter objects. Then we use the meta information to decide additional steps. For example, if it's a Slice meter, we will attach the meter to the Slice. Further, if it's the S-Meter signal meter, we will attach this so that updates to that meter ID will trigger an SMeterDataReady event on the Slice object. All of this code is available in FlexLib to see how we do this. Let us know if you have specific questions.1
Answers
-
Thanks Eric. I can see now why you sub meter all. I will take a look a the FlexLib
Regards
0
Leave a Comment
Categories
- All Categories
- 338 Community Topics
- 2.1K New Ideas
- 607 The Flea Market
- 7.9K Software
- 6.3K SmartSDR for Windows
- 170 SmartSDR for Maestro and M models
- 401 SmartSDR for Mac
- 264 SmartSDR for iOS
- 247 SmartSDR CAT
- 185 DAX
- 371 SmartSDR API
- 9.1K Radios and Accessories
- 19 Aurora
- 190 FLEX-8000 Signature Series
- 7.1K FLEX-6000 Signature Series
- 913 Maestro
- 53 FlexControl
- 859 FLEX Series (Legacy) Radios
- 886 Genius Products
- 450 Power Genius XL Amplifier
- 320 Tuner Genius XL
- 116 Antenna Genius
- 281 Shack Infrastructure
- 197 Networking
- 442 Remote Operation (SmartLink)
- 137 Contesting
- 741 Peripherals & Station Integration
- 137 Amateur Radio Interests
- 954 Third-Party Software