Welcome to the new FlexRadio Community! Please review the new Community Rules and other important new Community information on the Message Board.
If you are having a problem, please check the Help Center for known solutions.
Need technical support from FlexRadio? It's as simple as Creating a HelpDesk ticket.
Need technical support from FlexRadio? It's as simple as Creating a HelpDesk ticket.
Need the latest SmartSDR and Power Genius Software?
SmartSDR v3.1.12 and the SmartSDR v3.1.12 Release Notes. | SmartSDR v2.6.2 and the SmartSDR v2.6.2 Release Notes.
SmartSDR v1.12.1 and the SmartSDR v1.12.1 Release Notes. | Power Genius XL Firmware v3.4.16. | Power Genius XL Utility v2.2.10.
SmartSDR v3.1.12 and the SmartSDR v3.1.12 Release Notes. | SmartSDR v2.6.2 and the SmartSDR v2.6.2 Release Notes.
SmartSDR v1.12.1 and the SmartSDR v1.12.1 Release Notes. | Power Genius XL Firmware v3.4.16. | Power Genius XL Utility v2.2.10.
Proper generic interfacing of FlexLib by logging program
I am prototyping an integration of the FlexLib to a logging program. I can connect to the radio and slices fine, but have a generic design question.
I dislike coupling. So, I created a new Classlibrary called "FlexConnector" which will do all the interfacing to the multiple FlexLib libraries. The reason why I try to not reference the FlexLib from the main application is that it will pollute the code and logic. Assume that Flex is not the only radio type, so many other radios need to be interfaced.
Now, many data from FlexLib properties need to be read by the main program. For example, what frequency a slice is on. I see multiple options:
1. Add references to the FlexLib and WFPUIFramework to the Main application. Then the FlexConnector dll can pass around the Slice object, and read and set anything by directly accessign the FlexLib properties.
2. Have FlexConnector DLL expose a bridge object for the Slice, so the FlexLib and WPF libs are not needed to be known by the main application. In this case many properties and functions have to be adapted.
3. Same as 2, but instead of creating an object, use a Dictionary. The dictionary is owned by the FlexConnector but exposed for reading to the main applicaiton. Main application needs to know the formatting of the keys (coupling). Also, only strings or simple types can be put in the dictionary values, or the FlexLib will have to referenced as well.
4. ?
In general, I estimate that about 20% of all properties will be needed by the main logger.
I favor a solution where the FlexConnector class library can be shared with other programs, so a loosely coupled solution would be desirable.
How have others solved the problem? Any suggestions are welcome.
73
Andy
KU7T
I dislike coupling. So, I created a new Classlibrary called "FlexConnector" which will do all the interfacing to the multiple FlexLib libraries. The reason why I try to not reference the FlexLib from the main application is that it will pollute the code and logic. Assume that Flex is not the only radio type, so many other radios need to be interfaced.
Now, many data from FlexLib properties need to be read by the main program. For example, what frequency a slice is on. I see multiple options:
1. Add references to the FlexLib and WFPUIFramework to the Main application. Then the FlexConnector dll can pass around the Slice object, and read and set anything by directly accessign the FlexLib properties.
2. Have FlexConnector DLL expose a bridge object for the Slice, so the FlexLib and WPF libs are not needed to be known by the main application. In this case many properties and functions have to be adapted.
3. Same as 2, but instead of creating an object, use a Dictionary. The dictionary is owned by the FlexConnector but exposed for reading to the main applicaiton. Main application needs to know the formatting of the keys (coupling). Also, only strings or simple types can be put in the dictionary values, or the FlexLib will have to referenced as well.
4. ?
In general, I estimate that about 20% of all properties will be needed by the main logger.
I favor a solution where the FlexConnector class library can be shared with other programs, so a loosely coupled solution would be desirable.
How have others solved the problem? Any suggestions are welcome.
73
Andy
KU7T
0
Leave a Comment
Categories
- 70 Community Topics
- 1.9K New Ideas
- 120 The Flea Market
- 5.4K Software
- 4.9K SmartSDR for Windows
- 35 SmartSDR for Maestro and M models
- 87 SmartSDR for Mac
- 144 SmartSDR for iOS
- 150 SmartSDR CAT
- 69 DAX
- 279 SmartSDR API
- 7.1K Radios and Accessories
- 5.8K FLEX-6000 Signature Series
- 557 Maestro
- 14 FlexControl
- 723 FLEX Series (Legacy) Radios
- 153 Power Genius Products
- 119 Power Genius XL Amplifier
- 12 Power Genius Utility
- 22 Tuner Genius
- 41 Shack Infrastructure
- 22 Networking
- 89 Remote Operation (SmartLink)
- 50 Contesting
- 128 Peripherals & Station Integration
- 62 Amateur Radio Interests
- 405 Third-Party Software
Answers
I am sure I will have more questions when I get deeper into it. Currently I can read frequency and set the mode :-)
73
Andy
KU7T