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 refer to the product documentation or check the Help Center for known solutions.
Need technical support from FlexRadio? It's as simple as Creating a HelpDesk ticket.

Is the FlexRadio GUI library available?

FlexRadio is generous with their API access. I wouldn't be surprised if they also allow access to their GUI library. Is the FlexRadio GUI library available? It would go far encouraging new developers to program to a common look and behavior. I'm not a GUI guy, I am a low level backend coder. The GUI would save me a lot time while coding in C# on Windows and Linux - I am determined to write a SmartSDR-like client for Linux.


-Freeman, N5FPP

Answers

  • Trucker
    Trucker Member ✭✭✭

    As far as I know, there is no "GUI library " for SmartSDR. Flex Radio uses several off the shelf custom controls for creating the SmartSDR GUI. Look in the SmartSDR install subfolder and you will see several dll files that they use. However, Visual Studio won't link to them and expose the parameters needed unless you have a license from the vendor.

    So, your choices are limited to purchasing the controls from the vendor, looking for equivalent freeware controls or rolling your own.

    James

    WD5GWY

  • Mike-VA3MW
    Mike-VA3MW Administrator, FlexRadio Employee, Community Manager, Super Elmer, Moderator admin
    edited May 2022
  • Trucker
    Trucker Member ✭✭✭

    Mike , the Flex API contains no graphical elements for drawing an interface as the OP inquired about. What it does do is provide data from the radio that can be used to construct an interface. The panadapter spectrum line is an example. The radio sends values that can be used to draw the spectrum line. But, it doesn't define the container. The form displayed and its various controls are either custom controls that Flex developers use from a 3rd party, along with controls in Visual Studio that are provided by Microsoft.

    But, unless something has drastically changed, Flex Radio does not provide an api ( dll files) for the actual controls that are used for displaying data to and from the radio nor for creating the interface. The breakaway windows used in v3.x is an example of custom controls that Flex uses. Those are custom controls from a commercial company that sells specialized controls that do more than the normal Windows controls do.

    And a developer who doesn't have a license from that company cannot use them in their application. The Flex Library API's simply provide a method to control the radio and use data to and from the radio for control. Nothing more.

    But, it is a nice thing to have.

    James

    WD5GWY

  • Eric-KE5DTO
    Eric-KE5DTO Administrator, FlexRadio Employee admin

    We've talked about doing something like this (exposing a "Radio Chooser" GUI component) that would help get people off the ground when doing a C# WPF application. We haven't ever "gotten around" to making that happen though. I know there are some in the community that have done their own version of that window that may be willing to consult if that's the kind of thing you're looking for.

    I can also say that we're very open to answering questions on "how did you get it to look like that" or "how did you get it to present X when Y is happening," etc. Either posting specific questions here in the community is fine or you can send us email to devhelp AT flexradio D0T com (excuse the syntax, avoiding scrapers).

  • Eric,

    I would find that useful, especially if I could get it to run natively under Linux through Mono and C#.

    What is FlexRadio's stand on duplicating or emulating the Slice UI? The use of the receiver flag as a frequency indicator is inspired. Having it wrap all the parameters of the receiver and transmitter is very cool. I hope the design is not covered by a design patent.
  • Roger
    Roger Member ✭✭

    Freeman,

    I've been looking at creating a SmartSDR equivalent for Android and I've come to a couple of realizations:

    1.) Based on its look and feel the SmartSDR interface is from around 2010 and really needs to be modernized in any new implementation.

    2.) Your worst nightmare is going to be implementing a replacement for DAX followed closely by CAT.

    What form or markup do you need to make your project work on Linux?

    So far I've been working on creating the markup using C# Markup as opposed to XAML because C# Markup will load faster and hopefully consume fewer CPU cycles. At the bottom of the main window I've kept the look and feel of the Status bar pretty much the same. The menu system I've decided to change to be a hamburger menu to give the resulting interface a more modern look and feel.

    The flag and radio panel have dozens of controls which will be a major task to implement. The meters all need to be completely redone to give the resulting application a more modern look and fee.

    If you want let's chat some more and see what we can come up with.

    73 and good DX,

    Roger, NK1I

  • KD0RC
    KD0RC Member, Super Elmer Moderator

    Hi Roger, an Android implementation of SmartSDR would be GREAT! If you need an alpha tester, I would be happy to volunteer. My phone is a Motorola Edge 5G UW.

  • John KB4DU
    John KB4DU Member ✭✭✭✭

    Not coding any more, but do you have a graphic of your idea for the layout?

  • Roger
    Roger Member ✭✭

    Hi John,

    As mentioned above at the bottom of the main window I've kept the look and feel of the Status bar pretty much the same. The menu system I've decided to change to be a hamburger menu to give the resulting interface a more modern look and feel and take up minimal space on a small screen.

    For the per slice panafall displays and radio panel controls I'm working on the idea of having them be able to float all individually or dock to one of two carousels, one carousel for the panafalls and another for the radio panel controls.

    Because of all of the possible Android device sized and aspect ratios my feeling is the display layout has to be as flexible as possible.

    I've seen a couple of projects that impalement a Bluetooth CW key or maybe just a button control on the touch screen that you can tap out Morse code on.

    I'm still in the early stages, trying to figure what can be done on an Android device.

    73 and good DX,

    Roger, NK1I

  • Clay
    Clay Member ✭✭

    Hello Freeman,

    I've also been writing my own Linux based "SmartSDR like" GUI control surface, for my Flex 6000. I'm using the free GTK3+ GUI toolkit and the TCP/IP API. Take a look here:

    73,

    Clay, AB9A

  • K1FR
    K1FR Member ✭✭

    Thanks, Clay. Impressive piece of work. I have been going back and forth from Python and C++ for my DAX IQ processing app (nothing serious, mostly a learning exercise). Your post gave me some good hints for future.

    73, Tom

    K1FR

  • Trucker
    Trucker Member ✭✭✭

    I am late to reading this post. Fantastic work. It's nice to see a Linux based program to access the Flex 6000 radios. I wonder if this software has been updated. It certainly looks good.

    James

    WD5GWY

  • arodland
    arodland Member ✭✭

    wfview exists, it's pretty great, and it's open-source. I spoke to the maintainers and they have an interest in adding Flex support, and I have an interest in helping them. IMO that's a much nicer option than writing another new GUI from scratch. So watch this space :)

  • KD0RC
    KD0RC Member, Super Elmer Moderator

    Very cool!

  • Roger
    Roger Member ✭✭

    I'm back to trying to write a SmartSDR application for Android that will run on an Android tablet, and I have a couple of questions:

    1.) This thread started out with Freeman asking if Flex had the GUI library available, which they understandably don't. Freeman if there was a GUI that would be usable and build natively on Linux what language would it need to be in? I'm currently messing with XAML in my attempt to build the GUI for Android.

    2.) Back on June of 2022 Freeman asked, "What is FlexRadio's stand on duplicating or emulating the Slice UI?". I extend that question to the general look and feel of the SmartSDR UI. If I were going between my Windows laptop and Android tablet, I'd want the UI to look fairly close. It seems that SmartSDR for MAC has a very similar look to SmartSDR for Windows. Mike or Eric, any thoughts on this question?

    73 and good DX,

    de Roger, NK1I

  • Eric-KE5DTO
    Eric-KE5DTO Administrator, FlexRadio Employee admin

    I have some of my own thoughts, but want to ensure that I'm presenting the company official line and not just my own thinking here. Give me some time to get that solidified and I will come back with what I hope is a better answer than I can provide in the moment. Thanks for your patience.

  • Roger
    Roger Member ✭✭

    Thanks Eric,

    As you can see from this thread, I've had this idea kicking around in my head for a couple of years now.

    The look and feel of the volume controls in the title bar and meters are already something I'll never replicate

    All of the fanafall displays I've seen across most of the manufactures seem to look, and work about the same.

    Buttons and sliders look however they look from either Microsoft or Syncfusion.

    If anyone else reads this thread and can think of things that would make sense on a tablet, please leave a comment.

    73 and good DX,

    de Roger, NK1I

  • KD0RC
    KD0RC Member, Super Elmer Moderator

    Hi Roger, the big issue with touch screens is precision tuning. I can usually get in the ballpark by tapping the screen, then I need a much slower interface to easily fine tune to the desired value. RCForb does this with a nice simulated tuning knob, but a + and - button that tune in increments of the selected step size would also work great.

  • Roger
    Roger Member ✭✭

    Hi Len, I Googled "RCFord simulated tuning knob" and didn't come up with anything. Would you by chance have a link you could provide me?

    wfview as a tuning knob you can grab with a mouse, and I assume the same thing could be done with your finger or a stylus on a touch screen. I contributed some code to RigPi and Howard had it so you could touch the top and bottom of frequency numbers to increment and decrement the desired frequency. Kind of like the old rotary switches that had a small button above and below the individual numbers to change the value of each digit.

    One of the challenges I see with an eight to ten inch tablet is keeping everything compact and at the same time user friendly. That's why I was hoping to keep the look of all of the meters, buttons and sliders. My thought is to put them all into a horizontal carousel control at either the top or bottom of the screen.

    BTW - I've looked at some of your code on GitHub and that's helped me understand how the Flex API functions.

    73 and good DX,

    de Roger, NK1I

  • Trucker
    Trucker Member ✭✭✭
    edited August 22

    Try RCForb ( as in Bob)

    James

    WD5GWY

    http://download.remotehams.com/

  • KD0RC
    KD0RC Member, Super Elmer Moderator

    Hi Roger, James has it right. Here is a link:

    RemoteHams.com - Home

    RCForb works nicely, but is not feature rich. When operating remotely from my Android phone, I have SmartSDR running on a computer at the radio location and use TeamViewer to get a view of the panadapter and waterfall. I use RCForb (server app on my computer, client app on my phone) to tune the rig and for the PTT function (too hard to hit the SmartSDR buttons accurately on such a small screen).

    I agree - multiple pages or the carousel should work great.

    Another thought - If you can code in an option so that the panadapter and waterfall can be turned on or off depending on network throughput would be a good thing. I am often operating SmartSDR in the boonies, and wish that I could turn them off to save what little bandwidth that I have for audio.

    I'm glad that my GitHub code helped. The FLex documentation is pretty good, but there are a few holes in it. One thing that I did was to write a quick and dirty program that subscribes to everything so that I can see what the radio does. Flex is very good at being consistent with command reciprocity. If you see what comes back from the radio as the result from an operation (tuning, volume change, etc), you have an excellent chance of having the info you need to create that same command yourself.

Leave a Comment

Rich Text Editor. To edit a paragraph's style, hit tab to get to the paragraph menu. From there you will be able to pick one style. Nothing defaults to paragraph. An inline formatting menu will show up when you select text. Hit tab to get into that menu. Some elements, such as rich link embeds, images, loading indicators, and error messages may get inserted into the editor. You may navigate to these using the arrow keys inside of the editor and delete them with the delete or backspace key.