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!

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.