TCPIP client - flexradio/smartsdr-api-docs GitHub Wiki
Registers that a non-GUI client will be binding to a client with a particular ]Client ID]. From a radio perspective as of v3.0, this command is simply for debugging and troubleshooting and assists developers in determining how non-GUI clients are processing radio data, but in and of itself performs no function in the radio. It is recommended that non-GUI clients send the statement when they bind to maximize information for debugging.
C[D]<seq_number>|client bind client_id=<client_id>
<client_id> = the client_id of the GUI client that this non-GUI client intends to "follow"
Example:
C44|client bind client_id=72E8C7F3-5766-4ADF-9286-EBF2F525C77
See Response Format for details on the format of the response messages from the radio
Hex Response | Message | Debug Output / Meaning |
---|---|---|
00000000 | |[] | OK, handle is the handle of the GUI client that may be used for filtering data |
Responses
Response Example:
R44|0|0x6F54A02B|OK
Disconnects a client that is currently connected to the radio
C[D]<seq_number>|client disconnect <handle>
<handle> = an optional client handle (32-bit hex value sent to client on connection)
Example:
C44|client disconnect
Issuing the disconnect without a handle will disconnect all GUI clients currently connected to the radio. If a handle is specified, only the client with that handle is disconnected. When specifying a handle, either a GUI or non-GUI client may be disconnected.
See Response Format for details on the format of the response messages from the radio
Hex Response | Message | Debug Output / Meaning |
---|---|---|
00000000 | OK | |
50000062 | Invalid Client |
Responses
Response Example:
R44|0||OK
Registers your program as the sole GUI to the radio (v1.x and v2.x) or registers your client as one of possibly many GUI clients (v3.x+). For v1.x and v2.x, all displays (panadapter, waterfall, etc.) will be sent to this client. For later versions of SmartSDR, the displays will be sent to the client that requested them and any resources (slices, etc) that are used will be considered as "owned" by that GUI client.
C[D]<seq_number>|client gui [<client_id>]
Example:
C42|client gui
See Response Format for details on the format of the response messages from the radio
Hex Response | Message | Debug Output / Meaning |
---|---|---|
00000000 | | <client_id> | OK; for v3.x+, if no client_id was specified when the command was issued, one will be returned. |
Responses
Response Example:
R42|0|72E8C7F3-5766-4ADE-9286-EBF2F525C77|OK
Note that the client that initially connects without the client_id (v3.0+) should then store the returned client_id (in the response) and then for all subsequent sessions with this (or any v3.x+) transceiver should present this in the later commands as the client's client_id. The preferred method is to save the ID in a path that will be reused by the client software as new releases are issued.
Registers nickname of the radio that can be stored in the radio
C[D]<seq_number>|client nickname < nickname >
< nickname > = the nickname of the radio being updated
Example:
C44|client nickname Shack6000
See Response Format for details on the format of the response messages from the radio
Hex Response | Message | Debug Output / Meaning |
---|---|---|
00000000 | OK |
Responses
Response Example:
R44|0|0x6F54A02B|OK
Registers the name of the client program connected to the radio. Not yet implemented; do not use.
C[D]<seq_number>|client program <name>
<name> = An alpha-numeric name for your program (no spaces)
Example:
C42|client program MyProgram
See Response Format for details on the format of the response messages from the radio
Hex Response | Message | Debug Output / Meaning |
---|---|---|
00000000 | OK | |
10000002 | unknown client program | |
F3000001 | Too many clients connected to the radio |
Responses
The "unknown client program" response is not an error -- it simply means that SmartSDR has not heard of this client. In general, we ask that clients identify with their program name so that when we are debugging issues, we can see other programs connected and what is issuing commands as this can help with debugging. All messages starting with a "1" are strictly informational.
Response Example:
R42|0||OK
Loads data for this client from the persistence database. This restores the client to the last state prior to the previous shutdown
C[D]<seq_number>|client start_persistence <value>
<value> = a 1 or 0 to indicate if we persistence should be started
Example:
C44|client start_persistence 1
See Response Format for details on the format of the response messages from the radio
Hex Response | Message | Debug Output / Meaning |
---|---|---|
00000000 | OK |
Responses
Response Example:
R44|0||OK
Stores a friendly name for the client (GUI) that can be displayed in other places for clarity. This command should only be issued for a GUI client.
C[D]<seq_number>|client station <station_name>
<station_name> = a text string with no spaces that is the name of the station
Example:
C44|client station Rlyeh
See Response Format for details on the format of the response messages from the radio
Hex Response | Message | Debug Output / Meaning |
---|---|---|
00000000 | OK |
Responses
Response Example:
R44|0||OK
Provides the radio with the UDP port that should be used on the client to receive streaming VITA-49 UDP data. This command should be entered once at the start of a session. Issuing this command to change the UDP port after streaming of UDP data has begun has an undefined behavior.
C[D]<seq_number>|client udpport <port>
<port> = The 16-bit UDP/IP port number on the client computer
Example:
C43|client udpport 4993
Note: this port must be free, meaning not in use by any other running application.
See Response Format for details on the format of the response messages from the radio
Hex Response | Message | Debug Output / Meaning |
---|---|---|
00000000 | OK Successfully registered port number |
Responses
Response Example:
R43|0||OK