Discover SSDR's Handle

  • 1
  • Question
  • Updated 1 year ago
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 - Dick, W3OA
Photo of Dick, W3OA

Dick, W3OA

  • 3 Posts
  • 0 Reply Likes

Posted 1 year ago

  • 1
Photo of Ray Andrews, K9DUR

Ray Andrews, K9DUR, Elmer

  • 239 Posts
  • 61 Reply Likes
Dick,

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
Photo of Dick, W3OA

Dick, W3OA

  • 3 Posts
  • 0 Reply Likes
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 - Dick, W3OA
Photo of Ray Andrews, K9DUR

Ray Andrews, K9DUR, Elmer

  • 238 Posts
  • 61 Reply Likes
Dick,

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
Photo of Eric - KE5DTO

Eric - KE5DTO, Official Rep

  • 685 Posts
  • 205 Reply Likes
I think you guys may be talking past each other.  I believe Dick 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.
Photo of Ray Andrews, K9DUR

Ray Andrews, K9DUR, Elmer

  • 238 Posts
  • 61 Reply Likes
Eric, you are exactly right. - 73, Ray, K9DUR
Photo of Eric - KE5DTO

Eric - KE5DTO, Official Rep

  • 700 Posts
  • 206 Reply Likes
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).