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.

Discover SSDR's Handle

Dick, W3OA
Dick, W3OA Member
edited October 2017 in SmartSDR API
I am writing a client program program which responds to user inputs to SSDR.  I need to be able to discover SSDR's Handle so my client does not respond to inputs from other clients (such as a logging program).  Using SSDR version 2.
How can my client determine SSDR's Handle?
tnx and 73 - ****, W3OA

Answers

  • K9DUR
    K9DUR Member ✭✭
    edited October 2017
    ****,

    You do not say what programming language you are using.  All of my programs are written in VB.Net.  Below is a function that my SDRMonitor program uses to find th eSmartSDR client:

    =============================
        Private Function GetSmartSDRprocess() As Process
            Try
                Dim strProcess As String = Nothing
                Dim strCompare As String = "*SmartSDR.exe"
                Dim s As New ManagementObjectSearcher("SELECT * FROM Win32_Process")
                For Each obj As ManagementObject In s.Get()
                    strProcess = Trim(Replace(obj.Item("CommandLine"), Chr(34), ""))
                    If Not IsNothing(strProcess) Then
                        If strProcess Like strCompare Then
                            Return Process.GetProcessById(obj.Item("ProcessID"))
                        End If
                    End If
                Next
                Return Nothing

            Catch ex As Exception
                Return Nothing
            End Try
        End Function
    =============================

    73, Ray, K9DUR




  • Dick, W3OA
    Dick, W3OA Member
    edited October 2017
    HI Ray -
    Looks like I wasn't specific enough in my question.
    For the client I'm using python running on a Raspberry Pi.
    I think your function assumes the client and SSDR are running on the same machine.
    The Handle I'm looking for is the one in the API that is in the prefix to status messages.
    73 - ****, W3OA
  • K9DUR
    K9DUR Member ✭✭
    edited October 2017
    ****,

    Yes, my function is for a program running on the same computer as the client & returns the Windows handle to the SmartSDR client process..

    -- 73, Ray, K9DUR
  • Eric-KE5DTO
    Eric-KE5DTO Administrator, FlexRadio Employee admin
    edited October 2017
    Today the only client handle that is exposed via the API is the client handle to your application (handles for other clients like SmartSDR are not shown).  This is currently being looked at as something we could change in a future API change.  Likely, we would offer a command that would result in a reply or status message that would detail all of the connected applications, their handles, and their program name (and perhaps ip/port for debugging).
  • Eric-KE5DTO
    Eric-KE5DTO Administrator, FlexRadio Employee admin
    edited October 2017
    I think you guys may be talking past each other.  I believe **** is talking about the client handle assigned to a radio client from the radio.

    This handle is used when sending status messages to indicate which client initiated the change the caused the status message to be sent.

    I think Ray is talking about a Windows handle to a Windows client application.
  • K9DUR
    K9DUR Member ✭✭
    edited October 2017
    Eric, you are exactly right. - 73, Ray, K9DUR

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.