1RIGCTLD(1)                     Hamlib Utilities                     RIGCTLD(1)
2
3
4

NAME

6       rigctld - TCP radio control daemon
7

SYNOPSIS

9       rigctld [-hlLouV] [-m id] [-r device] [-p device] [-d device] [-P type]
10               [-D type] [-s baud] [-c id] [-T IPADDR] [-t number]
11               [-C parm=val] [-X seconds] [-v[-Z]]
12

DESCRIPTION

14       The  rigctld  program is a radio control daemon that handles client re‐
15       quests via TCP sockets.  This allows multiple user  programs  to  share
16       one  radio  (this needs more development).  Multiple radios can be con‐
17       trolled on different TCP ports by use of  multiple  rigctld  processes.
18       Note  that  multiple processes/ports are also necessary if some clients
19       use extended responses and/or vfo mode.  So up to 4 processes/ports may
20       be needed for each combination of extended response/vfo mode.  The syn‐
21       tax of the commands are the  same  as  rigctl(1).   It  is  hoped  that
22       rigctld  will  be  especially useful for client authors using languages
23       such as Perl, Python, PHP, and others.
24
25       rigctld communicates to a client through a TCP socket using  text  com‐
26       mands shared with rigctl.  The protocol is simple, commands are sent to
27       rigctld on one line and rigctld responds to get commands with  the  re‐
28       quested  values,  one per line, when successful, otherwise, it responds
29       with one line “RPRT x”, where ‘x’ is a negative number  indicating  the
30       error  code.   Commands that do not return values respond with the line
31       “RPRT x”, where ‘x’ is ‘0’ when successful,  otherwise  is  a  regative
32       number  indicating the error code.  Each line is terminated with a new‐
33       line ‘\n’ character.  This protocol is primarily for  use  by  the  NET
34       rigctl (radio model 2) backend.
35
36       A  separate  Extended  Response  Protocol extends the above behavior by
37       echoing the received command string as a header, any returned values as
38       a  key:  value  pair,  and  the  “RPRT x” string as the end of response
39       marker which includes the Hamlib success or  failure  value.   See  the
40       PROTOCOL section for details.  Consider using this protocol for clients
41       that will interact with rigctld directly through a TCP socket.
42
43       Keep in mind that Hamlib is BETA level software.  While a lot of  back‐
44       end  libraries  lack  complete rotator support, the basic functions are
45       usually well supported.
46
47       Please report bugs and provide feedback at the e-mail address given  in
48       the BUGS section below.  Patches and code enhancements sent to the same
49       address are welcome.
50

OPTIONS

52       This program follows the usual GNU command line syntax.  Short  options
53       that take an argument may have the value follow immediately or be sepa‐
54       rated by a space.  Long options starting with two dashes (‘-’)  require
55       an ‘=’ between the option and any argument.
56
57       Here is a summary of the supported options:
58
59       -m, --model=id
60              Select radio model number.
61
62              See model list (use “rigctl -l”).
63
64              Note:  rigctl (or third party software using the C API) will use
65              radio model 2 for NET rigctl (this model number is not used  for
66              rigctld even though it shows in the model list).
67
68       -r, --rig-file=device
69              Use device as the file name of the port connected to the radio.
70
71              Often a serial port, but could be a USB to serial adapter.  Typ‐
72              ically /dev/ttyS0,  /dev/ttyS1,  /dev/ttyUSB0,  etc.  on  Linux,
73              COM1,  COM2,  etc.  on MS Windows.  The BSD flavors and Mac OS/X
74              have their own designations.  See your system's documentation.
75
76              The special string “uh-rig” may be given to enable micro-ham de‐
77              vice support.
78
79       -p, --ptt-file=device
80              Use  device  as the file name of the Push-To-Talk device using a
81              device file as described above.
82
83       -d, --dcd-file=device
84              Use device as the file name of the Data  Carrier  Detect  device
85              using a device file as described above.
86
87       -P, --ptt-type=type
88              Use type of Push-To-Talk device.
89
90              Supported  types  are ‘RIG’ (CAT command), ‘DTR’, ‘RTS’, ‘PARAL‐
91              LEL’, ‘NONE’, overriding PTT type defined in the rig's backend.
92
93              Some side effects of this command are that when type is  set  to
94              DTR,  read  PTT  state  comes from the Hamlib frontend, not read
95              from the radio.  When set to NONE, PTT state cannot be  read  or
96              set even if rig backend supports reading/setting PTT status from
97              the rig.
98
99       -D, --dcd-type=type
100              Use type of Data Carrier Detect device.
101
102              Supported types are ‘RIG’ (CAT  command),  ‘DSR’,  ‘CTS’,  ‘CD’,
103              ‘PARALLEL’, ‘NONE’.
104
105       -s, --serial-speed=baud
106              Set serial speed to baud rate.
107
108              Uses  maximum  serial speed from radio backend capabilities (set
109              by -m above) as the default.
110
111       -c, --civaddr=id
112              Use id as the CI-V address to communicate with the rig.
113
114              Only useful for Icom and some Ten-Tec rigs.
115
116              Note: The id is in decimal notation, unless prefixed by  0x,  in
117              which case it is hexadecimal.
118
119       -T, --listen-addr=IPADDR
120              Use IPADDR as the listening IP address.
121
122              The default is ANY (0.0.0.0).
123
124              rigctld can be run and connected to like this:
125
126              rigctld
127                  rigctl -m 2
128                  rigctl -m 2 -r 127.0.0.1
129                  rigctl -m 2 -r localhost
130                  rigctl -m 2 -r 192.168.1.1 (local IP address)
131                  rigctl -m 2 -r ::1 (on Linux rigctld doesn't listen on IPV6 by default)
132
133              rigctld -T 127.0.0.1
134                  rigctl -m 2
135                  rigctl -m 2 -r 127.0.0.1
136                  Exceptions:
137                  rigctl -m 2 -r localhost (only works if localhost is IPV4 address)
138
139              rigctld -T localhost (will set up on IPV4 or IPV6 based on localhost)
140                  rigctl -m 2
141                  rigctl -m 2 -r localhost
142                  rigctl -m 2 ip6-localhost
143                  Exceptions:
144                  rigctl -m 2 -r 127.0.0.1 (only works if localhost is IPV4 address)
145                  rigctl -m 2 -r ::1 (only works localhost is IPV6 address)
146
147              On Linux only where ip6-localhost is fe00::0:
148              rigctld -T ip6-localhost
149                  rigctl -m 2 -r ip6-localhost
150
151       -t, --port=number
152              Use number as the TCP listening port.
153
154              The default is 4532.
155
156              Note:  As rotctld's default port is 4533, it is advisable to use
157              even numbered ports for rigctld, e.g. 4532, 4534, 4536, etc.
158
159       -L, --show-conf
160              List all config parameters for the radio defined with -m above.
161
162       -C, --set-conf=parm=val[,parm=val]
163              Set radio configuration parameter(s), e.g.  stop_bits=2.
164
165              Use the -L option above for a list of  configuration  parameters
166              for a given model number.
167
168       -u, --dump-caps
169              Dump capabilities for the radio defined with -m above and exit.
170
171       -l, --list
172              List all model numbers defined in Hamlib and exit.
173
174              The list is sorted by model number.
175
176              Note:  In  Linux  the  list  can  be  scrolled back using Shift-
177              PageUp/Shift-PageDown, or using the scrollbars of a virtual ter‐
178              minal  in  X  or  the  cmd window in Windows.  The output can be
179              piped to more(1) or less(1), e.g. “rigctl -l | more”.
180
181       -o, --vfo
182              Enable vfo mode.
183
184              An extra VFO argument will be required in front of  each  appro‐
185              priate  command  (except set_vfo).  Otherwise, ‘currVFO’ is used
186              when this option is not set and an extra  VFO  argument  is  not
187              used.
188
189              See chk_vfo below.
190
191       -v, --verbose
192              Set verbose mode, cumulative (see DIAGNOSTICS below).
193
194       -W, --twiddle_timeout=seconds
195              Enables  timeout when VFO twiddling is detected.  Some functions
196              will be ignored.
197
198              Should only  be  needed  when  controlling  software  should  be
199              "paused"  so  you can move the VFO.  Continuous movement extends
200              the timeout.
201
202       -x, --uplink=option
203              1=Sub, 2=Main
204
205              For GPredict use to ignore get_freq for Sub or Main uplink VFO.
206
207              Should allow downlink VFO movement without confusing GPredict or
208              the uplink
209
210       -Z, --debug-time-stamps
211              Enable time stamps for the debug messages.
212
213              Use  only  in  combination with the -v option as it generates no
214              output on its own.
215
216       -h, --help
217              Show a summary of these options and exit.
218
219       -V, --version
220              Show version of rigctl and exit.
221
222       Note: Some options may not be implemented by a given backend  and  will
223       return  an error.  This is most likely to occur with the --set-conf and
224       --show-conf options.
225
226       Please note that the backend for the radio to be controlled, or the ra‐
227       dio  itself may not support some commands.  In that case, the operation
228       will fail with a Hamlib error code.
229

COMMANDS

231       Commands can be sent over the TCP socket either as a single char, or as
232       a  long command name plus the value(s) space separated on one ‘\n’ ter‐
233       minated line. See PROTOCOL.
234
235       Since most of the Hamlib operations have a set and a get method, an up‐
236       per  case letter will be used for set methods whereas the corresponding
237       lower case letter refers to the get method.  Each operation also has  a
238       long name; prepend a backslash, ‘\’, to send a long command name.
239
240       Example  (Perl):  “print  $socket "\\dump_caps\n";” to see what the ra‐
241       dio's backend can do (Note: In Perl and many other languages a ‘\’ will
242       need  to  be escaped with a preceding ‘\’ so that even though two back‐
243       slash characters appear in  the  code,  only  one  will  be  passed  to
244       rigctld.  This is a possible bug, beware!).
245
246       Note:  The  backend for the radio to be controlled, or the radio itself
247       may not support some commands. In that case, the  operation  will  fail
248       with a Hamlib error message.
249
250       Here  is  a  summary of the supported commands (In the case of set com‐
251       mands the quoted italicized string is replaced by the value in the  de‐
252       scription.  In the case of get commands the quoted italicized string is
253       the key name of the value returned.):
254
255       F, set_freq 'Frequency'
256              Set 'Frequency', in Hz.
257
258              Frequency may be a floating point or integer value.
259
260       f, get_freq
261              Get 'Frequency', in Hz.
262
263              Returns an integer value and the VFO hamlib  thinks  is  active.
264              Note that some rigs (e.g. all Icoms) cannot track current VFO so
265              hamlib can get out of sync with the rig if the user presses  rig
266              buttons  like  the  VFO.  rigctld clients should ensure they set
267              the intended VFO or use vfo mode.
268
269       M, set_mode 'Mode' 'Passband'
270              Set 'Mode' and 'Passband'.
271
272              Mode is a token: ‘USB’, ‘LSB’,  ‘CW’,  ‘CWR’,  ‘RTTY’,  ‘RTTYR’,
273              ‘AM’,  ‘FM’,  ‘WFM’,  ‘AMS’,  ‘PKTLSB’,  ‘PKTUSB’, ‘PKTFM’, ‘EC‐
274              SSUSB’, ‘ECSSLSB’, ‘FA’, ‘SAM’, ‘SAL’, ‘SAH’, ‘DSB’.
275
276              Passband is in Hz as an integer, or ‘0’ for  the  radio  backend
277              default.
278
279              Note:  Passing  a ‘?’ (query) as the first argument instead of a
280              Mode token will return a space separated list of  radio  backend
281              supported Modes.  Use this to determine the supported Modes of a
282              given radio backend.
283
284       m, get_mode
285              Get 'Mode' and 'Passband'.
286
287              Returns Mode as a token and Passband in Hz as in set_mode above.
288
289       V, set_vfo 'VFO'
290              Set 'VFO'.
291
292              VFO is a token: ‘VFOA’, ‘VFOB’, ‘VFOC’, ‘currVFO’, ‘VFO’, ‘MEM’,
293              ‘Main’, ‘Sub’, ‘TX’, ‘RX’.
294
295              In VFO mode (see --vfo option above) only a single VFO parameter
296              is required:
297
298                  $ rigctl -m 229 -r /dev/rig -o
299
300                  Rig command: V
301                  VFO: VFOB
302
303                  Rig command:
304
305       v, get_vfo
306              Get current 'VFO'.
307
308              Returns VFO as a token as in set_vfo above.
309
310       J, set_rit 'RIT'
311              Set 'RIT'.
312
313              RIT is in Hz and can be + or -.  A value of ‘0’ resets RIT  (Re‐
314              ceiver Incremental Tuning) to match the VFO frequency.
315
316              Note:  RIT  needs to be explicitly activated or deactivated with
317              the set_func command.  This allows setting the RIT offset  inde‐
318              pendently  of  its  activation  and  allows RIT to remain active
319              while setting the offset to ‘0’.
320
321       j, get_rit
322              Get 'RIT' in Hz.
323
324              Returned value is an integer.
325
326       Z, set_xit 'XIT'
327              Set 'XIT'.
328
329              XIT is in Hz and can be + or -.   A  value  of  ‘0’  resets  XIT
330              (Transmitter Incremental Tuning) to match the VFO frequency.
331
332              Note:  XIT  needs to be explicitly activated or deactivated with
333              the set_func command.  This allows setting the XIT offset  inde‐
334              pendently  of  its  activation  and  allows XIT to remain active
335              while setting the offset to ‘0’.
336
337       z, get_xit
338              Get 'XIT' in Hz.
339
340              Returned value is an integer.
341
342       T, set_ptt 'PTT'
343              Set 'PTT'.
344
345              PTT is a value: ‘0’ (RX), ‘1’ (TX), ‘2’ (TX  mic),  or  ‘3’  (TX
346              data).
347
348       t, get_ptt
349              Get 'PTT' status.
350
351              Returns PTT as a value in set_ptt above.
352
353       S, set_split_vfo 'Split' 'TX VFO'
354              Set 'Split' mode.
355
356              Split is either ‘0’ = Normal or ‘1’ = Split.
357
358              Set 'TX VFO'.
359
360              TX  VFO  is  a  token: ‘VFOA’, ‘VFOB’, ‘VFOC’, ‘currVFO’, ‘VFO’,
361              ‘MEM’, ‘Main’, ‘Sub’, ‘TX’, ‘RX’.
362
363       s, get_split_vfo
364              Get 'Split' mode.
365
366              Split is either ‘0’ = Normal or ‘1’ = Split.
367
368              Get 'TX VFO'.
369
370              TX VFO is a token as in set_split_vfo above.
371
372       I, set_split_freq 'Tx Frequency'
373              Set 'TX Frequency', in Hz.
374
375              Frequency may be a floating point or integer value.
376
377       i, get_split_freq
378              Get 'TX Frequency', in Hz.
379
380              Returns an integer value.
381
382       X, set_split_mode 'TX Mode' 'TX Passband'
383              Set 'TX Mode' and 'TX Passband'.
384
385              TX Mode is a token: ‘USB’, ‘LSB’, ‘CW’, ‘CWR’, ‘RTTY’,  ‘RTTYR’,
386              ‘AM’,  ‘FM’,  ‘WFM’,  ‘AMS’,  ‘PKTLSB’,  ‘PKTUSB’, ‘PKTFM’, ‘EC‐
387              SSUSB’, ‘ECSSLSB’, ‘FA’, ‘SAM’, ‘SAL’, ‘SAH’, ‘DSB’.
388
389              TX Passband is in Hz as an integer, or ‘0’ for the radio backend
390              default.
391
392              Note:  Passing  a ‘?’ (query) as the first argument instead of a
393              TX Mode token will return a space separated list of radio  back‐
394              end  supported TX Modes.  Use this to determine the supported TX
395              Modes of a given radio backend.
396
397       x, get_split_mode
398              Get 'TX Mode' and 'TX Passband'.
399
400              Returns TX Mode  as  a  token  and  TX  Passband  in  Hz  as  in
401              set_split_mode above.
402
403       Y, set_ant 'Antenna'
404              Set 'Antenna' number (‘0’, ‘1’, ‘2’, ...).
405
406              Option depends on rig..for Icom it probably sets the Tx & Rx an‐
407              tennas as in the IC-7851. See your manual for rig  specific  op‐
408              tion values. Most rigs don't care about the option.
409
410              For the IC-7851 (and perhaps others) it means this:
411
412                  1 = TX/RX = ANT1
413                  2 = TX/RX = ANT2
414                  3 = TX/RX = ANT3
415                  4 = TX/RX = ANT1/ANT4
416                  5 = TX/RX = ANT2/ANT4
417                  6 = TX/RX = ANT3/ANT4
418
419       y, get_ant
420              Get 'Antenna' number (‘0’, ‘1’, ‘2’, ...).
421
422       b, send_morse 'Morse'
423              Send 'Morse' symbols.
424
425       0x8b, get_dcd
426              Get 'DCD' (squelch) status: ‘0’ (Closed) or ‘1’ (Open).
427
428       R, set_rptr_shift 'Rptr Shift'
429              Set 'Rptr Shift'.
430
431              Rptr Shift is one of: ‘+’, ‘-’, or something else for ‘None’.
432
433       r, get_rptr_shift
434              Get 'Rptr Shift'.
435
436              Returns ‘+’, ‘-’, or ‘None’.
437
438       O, set_rptr_offs 'Rptr Offset'
439              Set 'Rptr Offset', in Hz.
440
441       o, get_rptr_offs
442              Get 'Rptr Offset', in Hz.
443
444       C, set_ctcss_tone 'CTCSS Tone'
445              Set 'CTCSS Tone', in tenths of Hz.
446
447       c, get_ctcss_tone
448              Get 'CTCSS Tone', in tenths of Hz.
449
450       D, set_dcs_code 'DCS Code'
451              Set 'DCS Code'.
452
453       d, get_dcs_code
454              Get 'DCS Code'.
455
456       0x90, set_ctcss_sql 'CTCSS Sql'
457              Set 'CTCSS Sql' tone, in tenths of Hz.
458
459       0x91, get_ctcss_sql
460              Get 'CTCSS Sql' tone, in tenths of Hz.
461
462       0x92, set_dcs_sql 'DCS Sql'
463              Set 'DCS Sql' code.
464
465       0x93, get_dcs_sql
466              Get 'DCS Sql'
467               code.
468
469       N, set_ts 'Tuning Step'
470              Set 'Tuning Step', in Hz.
471
472       n, get_ts
473              Get 'Tuning Step', in Hz.
474
475       U, set_func 'Func' 'Func Status'
476              Set 'Func' and 'Func Status'.
477
478              Func  is  a  token: ‘FAGC’, ‘NB’, ‘COMP’, ‘VOX’, ‘TONE’, ‘TSQL’,
479              ‘SBKIN’, ‘FBKIN’, ‘ANF’, ‘NR’, ‘AIP’, ‘APF’, ‘MON’, ‘MN’,  ‘RF’,
480              ‘ARO’,  ‘LOCK’, ‘MUTE’, ‘VSC’, ‘REV’, ‘SQL’, ‘ABM’, ‘BC’, ‘MBC’,
481              ‘RIT’, ‘AFC’, ‘SATMODE’, ‘SCOPE’, ‘RESUME’,  ‘TBURST’,  ‘TUNER’,
482              ‘XIT’.
483
484              Func  Status is a non null value for “activate” or “de-activate”
485              otherwise, much as TRUE/FALSE  definitions  in  the  C  language
486              (true is non-zero and false is zero, ‘0’).
487
488              Note:  Passing  a ‘?’ (query) as the first argument instead of a
489              Func token will return a space separated list of  radio  backend
490              supported  set  function tokens.  Use this to determine the sup‐
491              ported functions of a given radio backend.
492
493       u, get_func 'Func'
494              Get 'Func Status'.
495
496              Returns Func Status as a non null value for the Func token given
497              as in set_func above.
498
499              Note:  Passing  a ‘?’ (query) as the first argument instead of a
500              Func token will return a space separated list of  radio  backend
501              supported  get  function tokens.  Use this to determine the sup‐
502              ported functions of a given radio backend.
503
504       L, set_level 'Level' 'Level Value'
505              Set 'Level' and 'Level Value'.
506
507              Level is a token: ‘PREAMP’, ‘ATT’,  ‘VOX’,  ‘AF’,  ‘RF’,  ‘SQL’,
508              ‘IF’,  ‘APF’,  ‘NR’,  ‘PBT_IN’, ‘PBT_OUT’, ‘CWPITCH’, ‘RFPOWER’,
509              ‘RFPOWER_METER’,  ‘RFPOWER_METER_WATTS’,  ‘MICGAIN’,   ‘KEYSPD’,
510              ‘NOTCHF’,  ‘COMP’,  ‘AGC’,  ‘BKINDL’, ‘BAL’, ‘METER’, ‘VOXGAIN’,
511              ‘ANTIVOX’, ‘SLOPE_LOW’, ‘SLOPE_HIGH’,  ‘RAWSTR’,  ‘SWR’,  ‘ALC’,
512              ‘STRENGTH’.
513
514              The Level Value can be a float or an integer value.  For the AGC
515              token the value is one of ‘0’ = OFF,  ‘1’  =  SUPERFAST,  ‘2’  =
516              FAST, ‘3’ = SLOW, ‘4’ = USER, ‘5’ = MEDIUM, ‘6’ = AUTO.
517
518              Note:  Passing  a ‘?’ (query) as the first argument instead of a
519              Level token will return a space separated list of radio  backend
520              supported set level tokens.  Use this to determine the supported
521              levels of a given radio backend.
522
523       l, get_level 'Level'
524              Get 'Level Value'.
525
526              Returns Level Value as a float or integer for  the  Level  token
527              given as in set_level above.
528
529              Note:  Passing  a ‘?’ (query) as the first argument instead of a
530              Level token will return a space separated list of radio  backend
531              supported get level tokens.  Use this to determine the supported
532              levels of a given radio backend.
533
534       P, set_parm 'Parm' 'Parm Value'
535              Set 'Parm' and 'Parm Value'.
536
537              Parm is a token:  ‘ANN’,  ‘APO’,  ‘BACKLIGHT’,  ‘BEEP’,  ‘TIME’,
538              ‘BAT’, ‘KEYLIGHT’.
539
540              Note:  Passing  a ‘?’ (query) as the first argument instead of a
541              Parm token will return a space separated list of  radio  backend
542              supported  set parameter tokens.  Use this to determine the sup‐
543              ported parameters of a given radio backend.
544
545       p, get_parm 'Parm'
546              Get 'Parm Value'.
547
548              Returns Parm Value as a float or  integer  for  the  Parm  token
549              given as in set_parm above.
550
551              Note:  Passing  a ‘?’ (query) as the first argument instead of a
552              Parm token will return a space separated list of  radio  backend
553              supported  get parameter tokens.  Use this to determine the sup‐
554              ported parameters of a given radio backend.
555
556       B, set_bank 'Bank'
557              Set 'Bank'.
558
559              Sets the current memory bank number.
560
561       E, set_mem 'Memory#'
562              Set 'Memory#' channel number.
563
564       e, get_mem
565              Get 'Memory#' channel number.
566
567       G, vfo_op 'Mem/VFO Op'
568              Perform a 'Mem/VFO Op'.
569
570              Mem/VFO  Operation  is  a  token:  ‘CPY’,  ‘XCHG’,   ‘FROM_VFO’,
571              ‘TO_VFO’,  ‘MCL’,  ‘UP’, ‘DOWN’, ‘BAND_UP’, ‘BAND_DOWN’, ‘LEFT’,
572              ‘RIGHT’, ‘TUNE’, ‘TOGGLE’.
573
574              Note: Passing a ‘?’ (query) as the first argument instead  of  a
575              Mem/VFO  Op  token  will  return a space separated list of radio
576              backend supported Set Mem/VFO Op tokens.  Use this to  determine
577              the supported Mem/VFO Ops of a given radio backend.
578
579       g, scan 'Scan Fct' 'Scan Channel'
580              Perform a 'Scan Fct' on a 'Scan Channel'.
581
582              Scan Function is a token: ‘STOP’, ‘MEM’, ‘SLCT’, ‘PRIO’, ‘PROG’,
583              ‘DELTA’, ‘VFO’, ‘PLT’.
584
585              Scan Channel is an integer (maybe?).
586
587              Note: Passing a ‘?’ (query) as the first argument instead  of  a
588              Scan Fct token will return a space separated list of radio back‐
589              end supported Scan Function tokens.  Use this to  determine  the
590              supported Scan Functions of a given radio backend.
591
592       H, set_channel 'Channel'
593              Set memory 'Channel' data.
594
595              Not implemented yet.
596
597       h, get_channel 'readonly'
598              Get channel memory.
599
600              If  readonly!=0  then  only channel data is returned and rig re‐
601              mains on the current channel.  If readonly=0 then  rig  will  be
602              set to the channel requested.  data.
603
604       A, set_trn 'Transceive'
605              Set 'Transceive' mode.
606
607              Transcieve is a token: ‘OFF’, ‘RIG’, ‘POLL’.
608
609              Transceive  is a mechanism for radios to report events without a
610              specific call for information.
611
612              Note: Passing a ‘?’ (query) as the first argument instead  of  a
613              Transceive  token  will  return  a space separated list of radio
614              backend supported Transceive mode tokens.  Use this to determine
615              the supported Transceive modes of a given radio backend.
616
617       a, get_trn
618              Get 'Transceive' mode.
619
620              Transceive mode (reporting event) as in set_trn above.
621
622       *, reset 'Reset'
623              Perform rig 'Reset'.
624
625              Reset  is  a  value: ‘0’ = None, ‘1’ = Software reset, ‘2’ = VFO
626              reset, ‘4’ = Memory Clear reset, ‘8’ = Master reset.
627
628              Since these values are defined  as  a  bitmask  in  include/ham‐
629              lib/rig.h, it should be possible to AND these values together to
630              do multiple resets at once, if the backend supports it  or  sup‐
631              ports a reset action via rig control at all.
632
633       0x87, set_powerstat 'Power Status'
634              Set 'Power Status'.
635
636              Power  Status is a value: ‘0’ = Power Off, ‘1’ = Power On, ‘2’ =
637              Power Standby.
638
639       0x88, get_powerstat
640              Get 'Power Status' as in set_powerstat above.
641
642       0x89, send_dtmf 'Digits'
643              Set DTMF 'Digits'.
644
645       0x8a, recv_dtmf
646              Get DTMF 'Digits'.
647
648       _, get_info
649              Get misc information about the rig.
650
651       0xf5, get_rig_info
652              Get misc information about the rig vfos and other info.
653
654       0xf3, get_vfo_info 'VFO'
655              Get misc information about a specific vfo.
656
657       dump_state
658              Return certain state information about the radio backend.
659
660       1, dump_caps
661              Not a real rig remote command, it just dumps capabilities,  i.e.
662              what the backend knows about this model, and what it can do.
663
664              TODO:  Ensure  this  is in a consistent format so it can be read
665              into a hash, dictionary, etc.  Bug reports requested.
666
667              Note: This command will produce many lines of output so be  very
668              careful  if  using  a  fixed length array!  For example, running
669              this command against the Dummy backend results in  over  5kB  of
670              text output.
671
672              VFO parameter not used in 'VFO mode'.
673
674       2, power2mW 'Power [0.0..1.0]' 'Frequency' 'Mode'
675              Returns 'Power mW'.
676
677              Converts  a  Power  value  in  a  range of 0.0...1.0 to the real
678              transmit power in milli-Watts (integer).
679
680              'Frequency' and 'Mode' also need to be provided as output  power
681              may vary according to these values.
682
683              VFO parameter is not used in VFO mode.
684
685       4, mW2power 'Power mW' 'Frequency' 'Mode'
686              Returns 'Power [0.0..1.0]'.
687
688              Converts  the  real transmit power in milli-Watts (integer) to a
689              Power value in a range of 0.0 ... 1.0.
690
691              'Frequency' and 'Mode' also need to be provided as output  power
692              may vary according to these values.
693
694              VFO parameter is not used in VFO mode.
695
696       chk_vfo
697              Returns  “CHKVFO  1\n” (single line only) if rigctld was invoked
698              with the -o/--vfo option and “CHKVFO 0\n” if not.
699
700              When in VFO mode the client will need to pass 'VFO' as the first
701              parameter to set or get commands.  VFO is one of the strings de‐
702              fined in set_vfo above.
703
704       set_vfo_opt 'Status'
705              Set 'Status'
706
707              Set vfo option Status 1=on or 0=off This is the  same  as  using
708              the  -o  switch  for rigctl and ritctld.  This can be dyamically
709              changed while running.
710

PROTOCOL

712       There are two protocols in use by rigctld, the Default Protocol and the
713       Extended Response Protocol.
714
715       The  Default  Protocol  is intended primarily for the communication be‐
716       tween Hamlib library functions and rigctld (“NET rigctl”, available us‐
717       ing radio model ‘2’).
718
719       The  Extended  Response Protocol is intended to be used with scripts or
720       other programs interacting directly with rigctld as consistent feedback
721       is provided.
722
723   Default Protocol
724       The  Default Protocol is intentionally simple.  Commands are entered on
725       a single line with any needed values.  In  practice,  reliable  results
726       are  obtained by terminating each command string with a newline charac‐
727       ter, ‘\n’.
728
729       Example set frequency and mode commands (Perl code (typed text shown in
730       bold)):
731
732           print $socket "F 14250000\n";
733           print $socket "\\set_mode LSB 2400\n";   # escape leading '\'
734
735       A one line response will be sent as a reply to set commands, “RPRT x\n”
736       where x is the Hamlib error code with ‘0’  indicating  success  of  the
737       command.
738
739       Responses  from rigctld get commands are text values and match the same
740       tokens used in the set commands. Each value  is  returned  on  its  own
741       line.  On error the string “RPRT x\n” is returned where x is the Hamlib
742       error code.
743
744       Example get frequency (Perl code):
745
746           print $socket "f\n";
747           "14250000\n"
748
749       Most get functions return one to three values. A notable  exception  is
750       the dump_caps command which returns many lines of key:value pairs.
751
752       This  protocol  is  primarily used by the “NET rigctl” (rigctl model 2)
753       backend which allows applications already written for Hamlib's C API to
754       take  advantage  of  rigctld  without the need of rewriting application
755       code.  An application's user can select rotator model 2 (“NET  rigctl”)
756       and   then  set  rig_pathname  to  “localhost:4532”  or  other  network
757       host:port (set by the -T/-t options, respectively, above).
758
759   Extended Response Protocol
760       The Extended Response protocol adds several rules to  the  strings  re‐
761       turned by rigctld and adds a rule for the command syntax.
762
763       1. The command received by rigctld is echoed with its long command name
764       followed by the value(s) (if any) received from the  client  terminated
765       by  the  specified  response  separator  as the first record of the re‐
766       sponse.
767
768       2. The last record of each block is the string “RPRT x\n”  where  x  is
769       the numeric return value of the Hamlib backend function that was called
770       by the command.
771
772       3. Any records consisting of data values returned by the radio  backend
773       are  prepended by a string immediately followed by a colon then a space
774       and then the value terminated by the  response  separator.  e.g.  “Fre‐
775       quency: 14250000\n” when the command was prepended by ‘+’.
776
777       4. All commands received will be acknowledged by rigctld
778        with  records  from  rules  1 and 2.  Records from rule 3 are only re‐
779       turned when data values must be returned to the client.
780
781       An example response to a set_mode command sent from  the  shell  prompt
782       (note the prepended ‘+’):
783
784           $ echo "+M USB 2400" | nc -w 1 localhost 4532
785           set_mode: USB 2400
786           RPRT 0
787
788       In this case the long command name and values are returned on the first
789       line and the second line contains the end of block marker and  the  nu‐
790       meric radio backend return value indicating success.
791
792       An example response to a get_mode query:
793
794           $ echo "+\get_mode" | nc -w 1 localhost 4532
795           get_mode:
796           Mode: USB
797           Passband: 2400
798           RPRT 0
799
800              Note:  The  ‘\’ is still required for the long command name even
801              with the ERP character.
802
803       In this case, as no value is passed to rigctld, the first line consists
804       only  of  the long command name.  The final line shows that the command
805       was processed successfully by the radio backend.
806
807       Invoking the Extended Response Protocol requires prepending  a  command
808       with a punctuation character.  As shown in the examples above, prepend‐
809       ing a ‘+’ character to the command results in the responses being sepa‐
810       rated  by  a newline character (‘\n’).  Any other punctuation character
811       recognized by the C ispunct() function except ‘\’,  ‘?’,  or  ‘_’  will
812       cause  that  character  to become the response separator and the entire
813       response will be on one line.
814
815       Separator character summary:
816
817+’    Each record of the response is appended with a newline (‘\n’).
818
819;’, ‘|’, or, ‘,
820              Each record of the response is appended by the  given  character
821              resulting in entire response on one line.
822
823              These  are  common record separators for text representations of
824              spreadsheet data, etc.
825
826?’    Reserved for help in rigctl.
827
828_’    Reserved for get_info short command
829
830#’    Reserved for comments when reading a command file script.
831
832              Note: Other punctuation characters have not been tested!  Use at
833              your own risk.
834
835       For example, invoking a get_mode query with a leading ‘;’ returns:
836
837           get_mode:;Mode: USB;Passband: 2400;RPRT 0
838
839       Or, using the pipe character ‘|’ returns:
840
841           get_mode:|Mode: USB|Passband: 2400|RPRT 0
842
843       And a set_mode command prepended with a ‘|’ returns:
844
845           set_mode: USB 2400|RPRT 0
846
847       Such  a  format will allow reading a response as a single event using a
848       preferred response separator.  Other punctuation  characters  have  not
849       been tested!
850
851       The following commands have been tested with the Extended Response pro‐
852       tocol and the included testctld.pl Perl script:
853
854              set_freq, get_freq,  set_split_freq,  get_split_freq,  set_mode,
855              get_mode,   set_split_mode,  get_split_mode,  set_vfo,  get_vfo,
856              set_split_vfo,   get_split_vfo,   set_rit,   get_rit,   set_xit,
857              get_xit, set_ptt, get_ptt, power2mW, mW2power, dump_caps.
858

DIAGNOSTICS

860       The  -v,  --verbose option allows different levels of diagnostics to be
861       output to stderr and correspond to -v for BUG, -vv for  ERR,  -vvv  for
862       WARN, -vvvv for VERBOSE, or -vvvvv for TRACE.
863
864       A given verbose level is useful for providing needed debugging informa‐
865       tion to the email address below.  For example, TRACE output  shows  all
866       of  the values sent to and received from the radio which is very useful
867       for radio backend library development and may be requested by  the  de‐
868       velopers.
869

EXAMPLES

871       Start  rigctld  for  a  Yaesu  FT-920 using a USB-to-serial adapter and
872       backgrounding:
873
874           $ rigctld -m 1014 -r /dev/ttyUSB1 &
875
876       Start rigctld for a Yaesu FT-920 using a  USB-to-serial  adapter  while
877       setting baud rate and stop bits, and backgrounding:
878
879           $ rigctld -m 1014 -r /dev/ttyUSB1 -s 4800 -C stop_bits=2 &
880
881       Start rigctld for an Elecraft K3 using COM2 on MS Windows:
882
883           $ rigctld -m 2029 -r COM2
884
885       Connect  to the already running rigctld and set the frequency to 14.266
886       MHz with a 1 second read timeout using the default  protocol  from  the
887       shell prompt:
888
889           $ echo "\set_freq 14266000" | nc -w 1 localhost 4532P
890
891       Connect to a running rigctld with rigctl on the local host:
892
893           $ rigctl -m2
894

SECURITY

896       No  authentication  whatsoever; DO NOT leave this TCP port open wide to
897       the Internet.  Please ask if stronger security is  needed  or  consider
898       using a Secure Shell (ssh(1)) tunnel.
899
900       As rigctld does not need any greater permissions than rigctl, it is ad‐
901       visable to not start rigctld as “root” or another system  user  account
902       in order to limit any vulnerability.
903

BUGS

905       The daemon is not detaching and backgrounding itself.
906
907       No  method  to  exit  the daemon so the kill(1) command must be used to
908       terminate it.
909
910       Multiple clients using the daemon may experience  contention  with  the
911       connected radio.
912
913       Report bugs to:
914
915              Hamlib Developer mailing list
916              ⟨hamlib-developer@lists.sourceforge.net⟩
917

COPYING

919       This  file  is part of Hamlib, a project to develop a library that sim‐
920       plifies radio, rotator, and amplifier control functions for  developers
921       of  software  primarily  of interest to radio amateurs and those inter‐
922       ested in radio communications.
923
924       Copyright © 2000-2010 Stephane Fillod
925       Copyright © 2000-2018 the Hamlib Group (various contributors)
926       Copyright © 2011-2020 Nate Bargmann
927
928       This is free software; see the file  COPYING  for  copying  conditions.
929       There  is  NO  warranty;  not even for MERCHANTABILITY or FITNESS FOR A
930       PARTICULAR PURPOSE.
931

SEE ALSO

933       kill(1), rigctl(1), ssh(1), hamlib(7)
934

COLOPHON

936       Links to the Hamlib Wiki, Git repository, release archives,  and  daily
937       snapshot archives are available via hamlib.org ⟨http://www.hamlib.org⟩.
938
939
940
941Hamlib                            2020-09-09                        RIGCTLD(1)
Impressum