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
- 332 Community Topics
- 2.1K New Ideas
- 600 The Flea Market
- 7.9K Software
- 6.2K SmartSDR for Windows
- 169 SmartSDR for Maestro and M models
- 399 SmartSDR for Mac
- 262 SmartSDR for iOS
- 247 SmartSDR CAT
- 181 DAX
- 370 SmartSDR API
- 9.1K Radios and Accessories
- 17 Aurora
- 167 FLEX-8000 Signature Series
- 7.1K FLEX-6000 Signature Series
- 912 Maestro
- 52 FlexControl
- 855 FLEX Series (Legacy) Radios
- 876 Genius Products
- 446 Power Genius XL Amplifier
- 315 Tuner Genius XL
- 115 Antenna Genius
- 278 Shack Infrastructure
- 196 Networking
- 440 Remote Operation (SmartLink)
- 137 Contesting
- 729 Peripherals & Station Integration
- 137 Amateur Radio Interests
- 948 Third-Party Software