Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
RIGCTLD(1)		       Hamlib Utilities			    RIGCTLD(1)

NAME
       rigctld - TCP radio control daemon

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

DESCRIPTION
       The  rigctld  program is	a radio	control	daemon that handles client re-
       quests via TCP sockets.	This allows multiple user  programs  to	 share
       one  radio  (this needs more development).  Multiple radios can be con-
       trolled on different TCP	ports by use of	 multiple  rigctld  processes.
       Note  that  multiple processes/ports are	also necessary if some clients
       use extended responses and/or vfo mode.	So up to 4 processes/ports may
       be needed for each combination of extended response/vfo mode.  The syn-
       tax of the commands are the  same  as  rigctl(1).   It  is  hoped  that
       rigctld	will  be  especially useful for	client authors using languages
       such as Perl, Python, PHP, and others.

       rigctld communicates to a client	through	a TCP socket using  text  com-
       mands shared with rigctl.  The protocol is simple, commands are sent to
       rigctld	on  one	line and rigctld responds to get commands with the re-
       quested values, one per line, when successful, otherwise,  it  responds
       with  one  line "RPRT x", where `x' is a	negative number	indicating the
       error code.  Commands that do not return	values respond with  the  line
       "RPRT  x",  where  `x'  is `0' when successful, otherwise is a regative
       number indicating the error code.  Each line is terminated with a  new-
       line  `\n'  character.	This  protocol is primarily for	use by the NET
       rigctl (radio model 2) backend.

       A separate Extended Response Protocol extends  the  above  behavior  by
       echoing the received command string as a	header,	any returned values as
       a  key:	value  pair,  and  the	"RPRT x" string	as the end of response
       marker which includes the Hamlib	success	or  failure  value.   See  the
       PROTOCOL	section	for details.  Consider using this protocol for clients
       that will interact with rigctld directly	through	a TCP socket.

       Keep  in	mind that Hamlib is BETA level software.  While	a lot of back-
       end libraries lack complete rig support,	the basic functions  are  usu-
       ally well supported.

       Please  report bugs and provide feedback	at the e-mail address given in
       the BUGS	section	below.	Patches	and code enhancements sent to the same
       address are welcome.

OPTIONS
       This program follows the	usual GNU command line syntax.	Short  options
       that take an argument may have the value	follow immediately or be sepa-
       rated  by a space.  Long	options	starting with two dashes (`-') require
       an `=' between the option and any argument.

       Here is a summary of the	supported options:

       -m, --model=id
	      Select radio model number. Defaults to dummy rig.

	      See model	list (use "rigctld -l").

	      Note: rigctl (or third party software using the C	API) will  use
	      radio  model 2 for NET rigctl (this model	number is not used for
	      rigctld even though it shows in the model	list).

       -r, --rig-file=device
	      Use device as the	file name of the port connected	to the radio.

	      Typically	/dev/ttyS0, /dev/ttyS1,	/dev/ttyUSB0, etc.  on	Linux,
	      COM1,  COM2,  etc.  on MS	Windows.  The BSD flavors and Mac OS/X
	      have their own designations.  See	your system's documentation.

	      Can be a network address:port, e.g.  127.0.0.1:12345

	      The special string "uh-rig" may be given to enable micro-ham de-
	      vice support.

       -p, --ptt-file=device
	      Use device as the	file name of the Push-To-Talk device  using  a
	      device file as described above.

       -d, --dcd-file=device
	      Use  device  as  the file	name of	the Data Carrier Detect	device
	      using a device file as described above.

       -P, --ptt-type=type
	      Use type of Push-To-Talk device.

	      Supported	types are `RIG'	(CAT command), `DTR',  `RTS',  `PARAL-
	      LEL',  `CM108', `GPIO', `GPION', `NONE', overriding PTT type de-
	      fined in the rig's backend.

	      Some side	effects	of this	command	are that when type is  set  to
	      DTR,  read  PTT  state  comes from the Hamlib frontend, not read
	      from the radio.  When set	to NONE, PTT state cannot be  read  or
	      set even if rig backend supports reading/setting PTT status from
	      the rig.

       -D, --dcd-type=type
	      Use type of Data Carrier Detect device.

	      Supported	 types	are  `RIG'  (CAT command), `DSR', `CTS', `CD',
	      `PARALLEL', `CM108', `GPIO', `GPION', `NONE'.

       -s, --serial-speed=baud
	      Set serial speed to baud rate.

	      Uses maximum serial speed	from radio backend  capabilities  (set
	      by -m above) as the default.

       -c, --civaddr=id
	      Use id as	the CI-V address to communicate	with the rig.

	      Only useful for Icom and some Ten-Tec rigs.

	      Note:  The  id is	in decimal notation, unless prefixed by	0x, in
	      which case it is hexadecimal.

       -S, --separator=char
	      Use char as separator instead of line feed.

	      The default is `\n'.  Recommend using $ or @  as	they  work  on
	      both Unix	and Windows.

       -T, --listen-addr=IPADDR
	      Use IPADDR as the	listening IP address.

	      The default is ANY (0.0.0.0).

	      rigctld can be run and connected to like this:

	      rigctld
		  rigctl -m 2
		  rigctl -m 2 -r 127.0.0.1
		  rigctl -m 2 -r localhost
		  rigctl -m 2 -r 192.168.1.1 (local IP address)
		  rigctl -m 2 -r ::1 (on Linux rigctld doesn't listen on IPV6 by default)

	      rigctld -T 127.0.0.1
		  rigctl -m 2 (binds to	all interfaces)
		  rigctl -m 2 -r 127.0.0.1 (bind only to 127.0.0.1)
		  Exceptions:
		  rigctl -m 2 -r localhost (only works if localhost is IPV4 address)

	      rigctld -T localhost (will set up	on IPV4	or IPV6	based on localhost)
		  rigctl -m 2
		  rigctl -m 2 -r localhost
		  rigctl -m 2 ip6-localhost
		  Exceptions:
		  rigctl -m 2 -r 127.0.0.1 (only works if localhost is IPV4 address)
		  rigctl -m 2 -r ::1 (only works if localhost is IPV6 address)

	      On Linux only where ip6-localhost	is fe00::0:
	      rigctld -T ip6-localhost
		  rigctl -m 2 -r ip6-localhost

       -t, --port=number
	      Use number as the	TCP listening port.

	      The default is 4532.

	      Note:  As	rotctld's default port is 4533,	it is advisable	to use
	      even numbered ports for rigctld, e.g. 4532, 4534,	4536, etc.

       -L, --show-conf
	      List all config parameters for the radio defined with -m above.

       -C, --set-conf=parm=val[,parm=val]
	      Set configuration	parameter(s). Some common ones are:
		  async:True enables asynchronous data transfer	for backends that support it. This allows use of transceive and	spectrum data.
		  auto_power_on:True enables compatible	rigs to	be powered up on open
		  auto_power_off:True enables compatible rigs to be powered down on close
		  auto_disable_screensaver:True	enables	compatible rigs	to have	their screen saver disabled on open
		  dcd_type:Data	Carrier	Detect (or squelch) interface type override
		  dcd_pathname:Path name to the	device file of the Data	Carrier	Detect (or squelch)
		  disable_yaesu_bandselect:True	disables the automatic band select on band change for Yaesu rigs
		  dtr_state:ON turns on	DTR, OFF turns it off, Unset disables it
		  lo_freq:Frequency to add to the VFO frequency	for use	with a transverter
		  post_write_delay:Delay in ms between each command sent out
		  ptt_share:True enables ptt port to be	shared with other apps
		  ptt_type:Push-To-Talk	interface type override
		  ptt_pathname:Path name to the	device file of the Push-To-Talk
		  ptt_bitnum:Push-To-Talk GPIO bit number
		  retry:Max number of retry
		  rts_state:ON turns on	DTR, OFF turns it off, Unset disables it
		  twiddle_timeout:For satellite	ops when VFOB is twiddled will pause VFOB commands until timeout
		  twiddle_rit:Suppress get_freq	on VFOB	for RIT	tuning satellites
		  timeout:Timeout in ms
		  write_delay:Delay in ms between each byte sent out
		  tuner_control_pathname:Path name to a	script/program to control a tuner with 1 argument of 0/1 for Tuner Off/On

	      Use the -L option	above for a list of  configuration  parameters
	      for a given model	number.

       -u, --dump-caps
	      Dump capabilities	for the	radio defined with -m above and	exit.

       -l, --list
	      List all model numbers defined in	Hamlib and exit.

	      The list is sorted by model number.

	      Note:  In	 Linux	the  list  can	be  scrolled back using	Shift-
	      PageUp/Shift-PageDown, or	using the scrollbars of	a virtual ter-
	      minal in X or the	cmd window in  Windows.	  The  output  can  be
	      piped to more(1) or less(1), e.g.	"rigctld -l | more".

       -o, --vfo
	      Enable vfo mode.

	      An  extra	 VFO argument will be required in front	of each	appro-
	      priate command (except set_vfo).	Otherwise, `currVFO'  is  used
	      when  this  option  is  not set and an extra VFO argument	is not
	      used.

	      See chk_vfo below.

       -v, --verbose
	      Set verbose mode,	cumulative (see	DIAGNOSTICS below).

       -W, --twiddle_timeout=seconds
	      Enables timeout when VFO twiddling is detected.  Some  functions
	      will be ignored.

	      Should  only  be	needed	when  controlling  software  should be
	      "paused" so you can move the VFO.	 Continuous  movement  extends
	      the timeout.

       -w, --twiddle_rit=seconds
	      Suppress VFOB getfreq so RIT can be twiddled.

       -x, --uplink=option
	      1=Sub, 2=Main

	      For GPredict use to ignore get_freq for Sub or Main uplink VFO.

	      Should allow downlink VFO	movement without confusing GPredict or
	      the uplink.

       -Z, --debug-time-stamps
	      Enable time stamps for the debug messages.

	      Use  only	 in  combination with the -v option as it generates no
	      output on	its own.

       -A, --password
	      Sets  password  on  rigctld  which  requires   hamlib   to   use
	      rig_set_password	and rigctl to use \password to access rigctld.
	      A	32-char	shared secret will be displayed	 to  be	 used  on  the
	      client side.  (NOT IMPLEMENTED)

       -R, --rigctld-idle
	      Will  make  rigctld close	the rig	when no	clients	are connected.
	      Normally remains connected to speed up connects.

       -b, --bind-all
	      Will make	rigctld	try to bind to first network device available.

       -h, --help
	      Show a summary of	these options and exit.

       -V, --version
	      Show version of rigctld and exit.

       Note: Some options may not be implemented by a given backend  and  will
       return  an error.  This is most likely to occur with the	--set-conf and
       --show-conf options.

       Please note that	the backend for	the radio to be	controlled, or the ra-
       dio itself may not support some commands.  In that case,	the  operation
       will fail with a	Hamlib error code.

COMMANDS
       Commands	can be sent over the TCP socket	either as a single char, or as
       a  long command name plus the value(s) space separated on one `\n' ter-
       minated line. See PROTOCOL.

       Since most of the Hamlib	operations have	a set and a get	method,	a sin-
       gle upper case letter will be used for set methods whereas  the	corre-
       sponding	single lower case letter refers	to the get method.  Each oper-
       ation  also  has	 a long	name; prepend a	backslash, `\',	to send	a long
       command name all	in lower case.

       Example (Perl): "print $socket "\\dump_caps\n";"	to see	what  the  ra-
       dio's backend can do (Note: In Perl and many other languages a `\' will
       need  to	 be escaped with a preceding `\' so that even though two back-
       slash characters	appear in  the	code,  only  one  will	be  passed  to
       rigctld.	 This is a possible bug, beware!).

       Note:  The  backend for the radio to be controlled, or the radio	itself
       may not support some commands. In that case, the	 operation  will  fail
       with a Hamlib error message.

       Here  is	 a  summary of the supported commands (In the case of set com-
       mands the quoted	italicized string is replaced by the value in the  de-
       scription.  In the case of get commands the quoted italicized string is
       the key name of the value returned.):

       F, set_freq 'Frequency'
	      Set 'Frequency', in Hz.

	      Frequency	may be a floating point	or integer value.

       f, get_freq
	      Get 'Frequency', in Hz.

	      Returns  an  integer  value and the VFO hamlib thinks is active.
	      Note that	some rigs (e.g.	all Icoms) cannot track	current	VFO so
	      hamlib can get out of sync with the rig if the user presses  rig
	      buttons  like  the  VFO.	rigctld	clients	should ensure they set
	      the intended VFO or use vfo mode.

       M, set_mode 'Mode' 'Passband'
	      Set 'Mode' and 'Passband'.

	      Mode is a	token: `USB', `LSB',  `CW',  `CWR',  `RTTY',  `RTTYR',
	      `AM',  `FM',  `WFM',  `AMS',  `PKTLSB',  `PKTUSB', `PKTFM', `EC-
	      SSUSB', `ECSSLSB', `FA', `SAM', `SAL', `SAH', `DSB'.

	      Passband is in Hz	as an integer, -1 for no change,  or  `0'  for
	      the radio	backend	default.  IC7300 can use 1,2,3 to select which
	      filter to	use

	      Note:  Passing  a	`?' (query) as the first argument instead of a
	      Mode token will return a space separated list of	radio  backend
	      supported	Modes.	Use this to determine the supported Modes of a
	      given radio backend.

       m, get_mode
	      Get 'Mode' and 'Passband'.

	      Returns Mode as a	token and Passband in Hz as in set_mode	above.

       V, set_vfo 'VFO'
	      Set 'VFO'.

	      VFO is a token: `VFOA', `VFOB', `VFOC', `currVFO', `VFO',	`MEM',
	      `Main',  `Sub',  `TX',  `RX', `MainA', `MainB', `MainC', `SubA',
	      `SubB' `SubC'.

	      In VFO mode (see --vfo option above) only	a single VFO parameter
	      is required:

		  $ rigctl -m 229 -r /dev/rig -o

		  Rig command: V
		  VFO: VFOB

		  Rig command:

       v, get_vfo
	      Get current 'VFO'.

	      Returns VFO as a token as	in set_vfo above.

       J, set_rit 'RIT'
	      Set 'RIT'.

	      RIT is in	Hz and can be +	or -.  A value of `0' resets RIT  (Re-
	      ceiver Incremental Tuning) to match the VFO frequency.

	      Note:  RIT  needs	to be explicitly activated or deactivated with
	      the set_func command.  This allows setting the RIT offset	 inde-
	      pendently	 of  its  activation  and  allows RIT to remain	active
	      while setting the	offset to `0'.

       j, get_rit
	      Get 'RIT'	in Hz.

	      Returned value is	an integer.

       Z, set_xit 'XIT'
	      Set 'XIT'.

	      XIT is in	Hz and can be +	or -.	A  value  of  `0'  resets  XIT
	      (Transmitter Incremental Tuning) to match	the VFO	frequency.

	      Note:  XIT  needs	to be explicitly activated or deactivated with
	      the set_func command.  This allows setting the XIT offset	 inde-
	      pendently	 of  its  activation  and  allows XIT to remain	active
	      while setting the	offset to `0'.

       z, get_xit
	      Get 'XIT'	in Hz.

	      Returned value is	an integer.

       T, set_ptt 'PTT'
	      Set 'PTT'.

	      PTT is a value: `0' (RX),	`1' (TX), `2' (TX  mic),  or  `3'  (TX
	      data).

       t, get_ptt
	      Get 'PTT'	status.

	      Returns PTT as a value in	set_ptt	above.

       S, set_split_vfo	'Split'	'TX VFO'
	      Set 'Split' mode.

	      Split is either `0' = Normal or `1' = Split.

	      Set 'TX VFO'.

	      TX  VFO  is  a  token: `VFOA', `VFOB', `VFOC', `currVFO',	`VFO',
	      `MEM', `Main', `Sub', `TX', `RX'.

       s, get_split_vfo
	      Get 'Split' mode.

	      Split is either `0' = Normal or `1' = Split.

	      Get 'TX VFO'.

	      TX VFO is	a token	as in set_split_vfo above.

       I, set_split_freq 'Tx Frequency'
	      Set 'TX Frequency', in Hz.

	      Frequency	may be a floating point	or integer value.

       i, get_split_freq
	      Get 'TX Frequency', in Hz.

	      Returns an integer value.

       X, set_split_mode 'TX Mode' 'TX Passband'
	      Set 'TX Mode' and	'TX Passband'.

	      TX Mode is a token: `USB', `LSB',	`CW', `CWR', `RTTY',  `RTTYR',
	      `AM',  `FM',  `WFM',  `AMS',  `PKTLSB',  `PKTUSB', `PKTFM', `EC-
	      SSUSB', `ECSSLSB', `FA', `SAM', `SAL', `SAH', `DSB'.

	      TX Passband is in	Hz as an integer, or `0' for the radio backend
	      default.

	      Note: Passing a `?' (query) as the first argument	instead	 of  a
	      TX  Mode token will return a space separated list	of radio back-
	      end supported TX Modes.  Use this	to determine the supported  TX
	      Modes of a given radio backend.

       x, get_split_mode
	      Get 'TX Mode' and	'TX Passband'.

	      Returns  TX  Mode	 as  a	token  and  TX	Passband  in  Hz as in
	      set_split_mode above.

       Y, set_ant 'Antenna' 'Option'
	      Set 'Antenna' and	'Option'.

	      Number is	1-based	antenna# (`1', `2', `3', ...).

	      Option depends on	rig. For Icom it probably sets the Tx &	Rx an-
	      tennas as	in the IC-7851.	See your manual	for rig	 specific  op-
	      tion values. Most	rigs don't care	about the option.

	      For the IC-7851, FTDX3000	(and perhaps others) it	means this:

		  1 = TX/RX = ANT1  FTDX3000=ANT1/ANT3
		  2 = TX/RX = ANT2  FTDX3000=ANT2/ANT3
		  3 = TX/RX = ANT3  FTDX3000=ANT3
		  4 = TX/RX = ANT1/ANT4
		  5 = TX/RX = ANT2/ANT4
		  6 = TX/RX = ANT3/ANT4

       y, get_ant 'Antenna'
	      Get 'Antenna'

	      A	value of 0 for Antenna will return the current TX antenna

	      >	0 is 1-based antenna# (`1', `2', `3', ...).

	      Option  returned	depends	 on  rig. For Icom it is likely	the RX
	      only flag.

       b, send_morse 'Morse'
	      Send 'Morse' symbols.  For Yaesu rigs use	memory#	(1-5 for  most
	      rigs) or up to 50	char message (which will use memory#1)

	      Example from rigctld socket:
	      b	CQ CQ DE ME
	      Yaesu example to send message#1 from rigctld socket:
	      b	1

       0xbb, stop_morse
	      Stop sending the current morse code.

       0xbc, wait_morse
	      Wait for morse to	finish -- only works on	full break-in.

       0x94, send_voice_mem 'Msgnum'
	      Have rig transmit	internal message 'Msgnum'

       0x8b, get_dcd
	      Get 'DCD'	(squelch) status: `0' (Closed) or `1' (Open).

       R, set_rptr_shift 'Rptr Shift'
	      Set 'Rptr	Shift'.

	      Rptr Shift is one	of: `+', `-', or something else	for `None'.

       r, get_rptr_shift
	      Get 'Rptr	Shift'.

	      Returns `+', `-',	or `None'.

       O, set_rptr_offs	'Rptr Offset'
	      Set 'Rptr	Offset', in Hz.

       o, get_rptr_offs
	      Get 'Rptr	Offset', in Hz.

       C, set_ctcss_tone 'CTCSS	Tone'
	      Set 'CTCSS Tone',	in tenths of Hz.

       c, get_ctcss_tone
	      Get 'CTCSS Tone',	in tenths of Hz.

       D, set_dcs_code 'DCS Code'
	      Set 'DCS Code'.

       d, get_dcs_code
	      Get 'DCS Code'.

       0x90, set_ctcss_sql 'CTCSS Sql'
	      Set 'CTCSS Sql' tone, in tenths of Hz.

       0x91, get_ctcss_sql
	      Get 'CTCSS Sql' tone, in tenths of Hz.

       0x92, set_dcs_sql 'DCS Sql'
	      Set 'DCS Sql' code.

       0x93, get_dcs_sql
	      Get 'DCS Sql' code.

       N, set_ts 'Tuning Step'
	      Set 'Tuning Step', in Hz.

       n, get_ts
	      Get 'Tuning Step', in Hz.

       U, set_func 'Func' 'Func	Status'
	      Set 'Func' and 'Func Status'.

	      Func  is	a  token:  `ABM',  `AFC', `AFLT', `AIP', `ANF',	`ANL',
	      `APF', `ARO', `BC2', `BC', `COMP', `CSQL', `DIVERSITY',  `DSQL',
	      `DUAL_WATCH',  `FAGC',  `FBKIN',	`LOCK',	 `MBC',	 `MN',	`MON',
	      `MUTE', `NB2', `NB', `NR', `OVF_STATUS', `RESUME', `REV',	 `RF',
	      `RIT',   `SATMODE',   `SBKIN',  `SCEN',  `SCOPE',	 `SEND_MORSE',
	      `SEND_VOICE_MEM',	`SPECTRUM',  `SPECTRUM_HOLD',  `SQL',  `SYNC',
	      `TBURST',	 `TONE',  `TRANSCEIVE',	`TSQL',	`TUNER', `VOX',	`VSC',
	      `XIT'.

	      Func Status is a non null	value for "activate" or	 "de-activate"
	      otherwise,  much	as  TRUE/FALSE	definitions  in	the C language
	      (true is non-zero	and false is zero, `0').

	      Note: Passing a `?' (query) as the first argument	instead	 of  a
	      Func  token  will	return a space separated list of radio backend
	      supported	set function tokens.  Use this to determine  the  sup-
	      ported functions of a given radio	backend.

       u, get_func 'Func'
	      Get 'Func	Status'.

	      Returns Func Status as a non null	value for the Func token given
	      as in set_func above.

	      Note:  Passing  a	`?' (query) as the first argument instead of a
	      Func token will return a space separated list of	radio  backend
	      supported	 get  function tokens.	Use this to determine the sup-
	      ported functions of a given radio	backend.

       L, set_level 'Level' 'Level Value'
	      Set 'Level' and 'Level Value'.

	      Level is a token:	`AF',  `AGC',  `AGC_TIME',  `ALC',  `ANTIVOX',
	      `APF',  `ATT',  `BAL',  `BAND_SELECT',  `BKINDL',	 `BKIN_DLYMS',
	      `COMP', `COMP_METER',  `CWPITCH',	 `ID_METER',  `IF',  `KEYSPD',
	      `METER',	`MGC',	`MGF', `MGL', `MICGAIN', `MONITOR_GAIN', `NB',
	      `NOTCHF',	`NOTCHF_RAW',  `NR',  `PBT_IN',	 `PBT_OUT',  `PREAMP',
	      `RAWSTR',	  `RF',	  `RFPOWER',   `RFPOWER_METER',	  `RFPOWER_ME-
	      TER_WATTS', `SLOPE_HIGH',	 `SLOPE_LOW',  `SPECTRUM_ATT',	`SPEC-
	      TRUM_AVG',   `SPECTRUM_EDGE_HIGH',  `SPECTRUM_EDGE_LOW',	`SPEC-
	      TRUM_MODE', `SPECTRUM_REF',  `SPECTRUM_SPAN',  `SPECTRUM_SPEED',
	      `SQL',  `STRENGTH',  `SWR',  `TEMP_METER', `USB_AF', `USB_AF_IN-
	      PUT', `VD_METER',	`VOXDELAY', `VOXGAIN'.

	      The Level	Value can be a float or	an integer value.  For the AGC
	      token the	value is one of	`0' = OFF,  `1'	 =  SUPERFAST,	`2'  =
	      FAST,  `3'  =  SLOW, `4' = USER, `5' = MEDIUM, `6' = AUTO.  Note
	      that not all values work on all rigs.  To	list usable values  do
	      'rigctl  -m  [modelnum]  -u  | grep "AGC levels"'	or for Windows
	      'rigctl -m [modelnum] -u | find "AGC levels"'.

	      Note: Passing a `?' (query) as the first argument	instead	 of  a
	      Level  token will	return a space separated list of radio backend
	      supported	set level tokens.  Use this to determine the supported
	      levels of	a given	radio backend.

       l, get_level 'Level'
	      Get 'Level Value'.

	      Returns Level Value as a float or	integer	for  the  Level	 token
	      given as in set_level above.

	      Note:  Passing  a	`?' (query) as the first argument instead of a
	      Level token will return a	space separated	list of	radio  backend
	      supported	get level tokens.  Use this to determine the supported
	      levels of	a given	radio backend.

       P, set_parm 'Parm' 'Parm	Value'
	      Set 'Parm' and 'Parm Value'.

	      Parm  is	a  token: `AFIF', `AFIF_ACC', `AFIF_LAN', `AFIF_WLAN',
	      `ANN', `APO', `BACKLIGHT', `BANDSELECT', `BAT', `BEEP',  `KEYER-
	      TYPE', `KEYLIGHT', `SCREENSAVER',	`TIME'.

	      Note:  Passing  a	`?' (query) as the first argument instead of a
	      Parm token will return a space separated list of	radio  backend
	      supported	 set parameter tokens.	Use this to determine the sup-
	      ported parameters	of a given radio backend.

       p, get_parm 'Parm'
	      Get 'Parm	Value'.

	      Returns Parm Value as a float or	integer	 for  the  Parm	 token
	      given as in set_parm above.

	      Note:  Passing  a	`?' (query) as the first argument instead of a
	      Parm token will return a space separated list of	radio  backend
	      supported	 get parameter tokens.	Use this to determine the sup-
	      ported parameters	of a given radio backend.

       B, set_bank 'Bank'
	      Set 'Bank'.

	      Sets the current memory bank number.

       E, set_mem 'Memory#'
	      Set 'Memory#' channel number.

       e, get_mem
	      Get 'Memory#' channel number.

       G, vfo_op 'Mem/VFO Op'
	      Perform a	'Mem/VFO Op'.

	      Mem/VFO  Operation  is  a	 token:	 `CPY',	 `XCHG',   `FROM_VFO',
	      `TO_VFO',	 `MCL',	 `UP', `DOWN', `BAND_UP', `BAND_DOWN', `LEFT',
	      `RIGHT', `TUNE', `TOGGLE'.

	      Note: Passing a `?' (query) as the first argument	instead	 of  a
	      Mem/VFO  Op  token  will	return a space separated list of radio
	      backend supported	Set Mem/VFO Op tokens.	Use this to  determine
	      the supported Mem/VFO Ops	of a given radio backend.

       g, scan 'Scan Fct' 'Scan	Channel'
	      Perform a	'Scan Fct' on a	'Scan Channel'.

	      Scan Function is a token:	`STOP',	`MEM', `SLCT', `PRIO', `PROG',
	      `DELTA', `VFO', `PLT'.

	      Scan Channel is an integer (maybe?).

	      Note:  Passing  a	`?' (query) as the first argument instead of a
	      Scan Fct token will return a space separated list	of radio back-
	      end supported Scan Function tokens.  Use this to	determine  the
	      supported	Scan Functions of a given radio	backend.

       H, set_channel 'Channel'
	      Set memory 'Channel' data.

	      Not implemented yet.

       h, get_channel 'readonly'
	      Get channel memory.

	      If  readonly!=0  then  only channel data is returned and rig re-
	      mains on the current channel.  If	readonly=0 then	 rig  will  be
	      set to the channel requested.

       A, set_trn 'Transceive'
	      Set 'Transceive' mode.

	      Transceive is a token: `OFF', `RIG', `POLL'.

	      Transceive  is a mechanism for radios to report events without a
	      specific call for	information.

	      Note: Passing a `?' (query) as the first argument	instead	 of  a
	      Transceive  token	 will  return  a space separated list of radio
	      backend supported	Transceive mode	tokens.	 Use this to determine
	      the supported Transceive modes of	a given	radio backend.

       a, get_trn
	      Get 'Transceive' mode.

	      Transceive mode (reporting event)	as in set_trn above.

       *, reset	'Reset'
	      Perform rig 'Reset'.

	      Reset is a value:	`0' = None, `1'	= Software reset,  `2'	=  VFO
	      reset, `4' = Memory Clear	reset, `8' = Master reset.

	      Since  these  values  are	 defined  as a bitmask in include/ham-
	      lib/rig.h, it should be possible to OR these values together  to
	      do  multiple  resets at once, if the backend supports it or sup-
	      ports a reset action via rig control at all.

       0x87, set_powerstat 'Power Status'
	      Set 'Power Status'.

	      Power Status is a	value: `0' = Power Off,	`1' = Power On,	`2'  =
	      Power  Standby  (enter  standby),	 `4'  =	 Power	Operate	(leave
	      standby).

       0x88, get_powerstat
	      Get 'Power Status' as in set_powerstat above.

       0x89, send_dtmf 'Digits'
	      Set DTMF 'Digits'.

       0x8a, recv_dtmf
	      Get DTMF 'Digits'.

       _, get_info
	      Get misc information about the rig.

       0xf5, get_rig_info
	      Get misc information about the rig vfo status and	other info.

       0xf3, get_vfo_info 'VFO'
	      Get misc information about a specific vfo.

       dump_state
	      Return certain state information about the radio backend.

       1, dump_caps
	      Not a real rig remote command, it	just dumps capabilities,  i.e.
	      what the backend knows about this	model, and what	it can do.

	      TODO:  Ensure  this  is in a consistent format so	it can be read
	      into a hash, dictionary, etc.  Bug reports requested.

	      Note: This command will produce many lines of output so be  very
	      careful  if  using  a  fixed length array!  For example, running
	      this command against the Dummy backend results in	 over  5kB  of
	      text output.

	      VFO parameter not	used in	'VFO mode'.

       2, power2mW 'Power [0.0..1.0]' 'Frequency' 'Mode'
	      Returns 'Power mW'.

	      Converts	a  Power  value	 in  a	range of 0.0...1.0 to the real
	      transmit power in	milli-Watts (integer).

	      'Frequency' and 'Mode' also need to be provided as output	 power
	      may vary according to these values.

	      VFO parameter is not used	in VFO mode.

       4, mW2power 'Power mW' 'Frequency' 'Mode'
	      Returns 'Power [0.0..1.0]'.

	      Converts	the  real transmit power in milli-Watts	(integer) to a
	      Power value in a range of	0.0 ...	1.0.

	      'Frequency' and 'Mode' also need to be provided as output	 power
	      may vary according to these values.

	      VFO parameter is not used	in VFO mode.

       set_clock 'DateTime'
	      Set 'DateTime'

	      Sets  rig	 clock -- note that some rigs do not handle seconds or
	      milliseconds.  If	you try	to set sec/msec	and rig	does not  sup-
	      port  it	you  will  get	a  debug  warning  message.  Format is
	      ISO8601.	Formats	accepted allow for  2-digit  or	 4-digit  time
	      zone
	      YYYY-MM-DDTHH:MM:SS.SSS+ZZ (where	+ZZ is either -/+ UTC offset HH)
	      YYYY-MM-DDTHH:MM:SS.SSS+ZZZZ (where +ZZZZ	is either -/+ UTC offset HHMM)
	      YYYY-MM-DDTHH:MM:SS+ZZ
	      YYYY-MM-DDTHH:MM:SS+ZZZZ
	      YYYY-MM-DDTHH:MM+ZZ
	      YYYY-MM-DDTHH:MM+ZZZZ
	      YYYY-MM-DD (sets date only)
	      local (sets both clocks to local time)
	      utc (sets	both clocks to utc time)
	      Note:  Icom  rigs	expect you to set local	time and the hours off
	      to UTC.  So...4PM	EST example would be  2021-12-01T16:00:00-0500
	      But...if	you want to display GMT	you must set the clock for GMT
	      with zero	UTC offset.  Hopefully Icom will allow displaying  ei-
	      ther clock in the	future

	      Note: Kenwood rigs only allow setting local clock, and then only
	      if  not  autoset by NTP.	Trying to set clock when NTP is	in use
	      will set the offset, but not the time - and no error status will
	      be returned.  Time displayed on the auxiliary  clock  is	solely
	      determined by UTC	and the	aux offset.

       get_clock
	      Get 'RigTime'

	      Gets  rig	 clock -- note that some rigs do not handle seconds or
	      milliseconds.   Format  is  ISO8601   YYYY-MM-DDTHH:MM:SS.sss+ZZ
	      where +ZZ	is either -/+ UTC offset

       chk_vfo
	      Returns "1\n" (single line only) if rigctld was invoked with the
	      -o/--vfo option and "0\n"	if not.

	      When in VFO mode the client will need to pass 'VFO' as the first
	      parameter	to set or get commands.	 VFO is	one of the strings de-
	      fined in set_vfo above.

       set_vfo_opt 'Status'
	      Set 'Status'

	      Set  vfo	option	Status 1=on or 0=off This is the same as using
	      the -o switch for	rigctl and ritctld.  This can  be  dynamically
	      changed while running.

       set_lock_mode 'Locked'
	      Turns  mode  lock	 on(1)	or  off(0)  (only when using rigctld).
	      Turning on will prevent all clients from changing	the rig	 mode.
	      For example this is useful when running CW Skimmer in FM mode on
	      an  IC-7300.   Clicking  spots  in  a  spotting program will not
	      change the VFOA mode when	lock is	on.  So	"set_lock_mode 1" when
	      CW Skimmer is started and	"set_lock_mode 0" when CW  Skimmer  is
	      stopped.

       get_lock_mode
	      Returns  current	lock mode status 1=On, 2=Off (only useful with
	      rigctld)

       send_raw	'Terminator' 'String'
	      Can send ASCII string or 0xnn values -- there can	be  no	spaces
	      in  the  command string.	Possible terminator values are CR, LF,
	      ;, ICOM, 0-100 (bytes to read),  or  -1  meaning	unknown	 (will
	      timeout on read) Examples:
		send_raw ; FA;MD;
		send_raw icom 0xFE;0xFE;0x94;0x03;0xFD
		send_raw -1 0xFE;0xFE;0x94;0x03;0xFD
		send_raw 14 0xFE;0xFE;0x94;0x03;0xFD

       client_version 'String'
	      Client  can send its version to rigctld and get feedback on com-
	      patibility, deprecation, and alternatives

       hamlib_version
	      Returns Hamlib version with ISO8601 date/time

       test   Performs test routines.  Under development.

       set_gpio	'GPIO#'
	      Sets GPIO1, GPIO2, GPIO3,	GPIO4 on the GPIO ptt  port  Can  also
	      use 1,2,3,4

       get_gpio	'GPIO#'
	      Reads  GPIO1,  GPIO2, GPIO3, GPIO4 on the	GPIO ptt port Can also
	      use 1,2,3,4

PROTOCOL
       There are two protocols in use by rigctld, the Default Protocol and the
       Extended	Response Protocol.

       The Default Protocol is intended	primarily for  the  communication  be-
       tween Hamlib library functions and rigctld ("NET	rigctl", available us-
       ing radio model `2').

       The  Extended  Response Protocol	is intended to be used with scripts or
       other programs interacting directly with	rigctld	as consistent feedback
       is provided.

   Default Protocol
       The Default Protocol is intentionally simple.  Commands are entered  on
       a  single  line	with any needed	values.	 In practice, reliable results
       are obtained by terminating each	command	string with a newline  charac-
       ter, `\n'.

       Example set frequency and mode commands (Perl code (typed text shown in
       bold)):

	   print $socket "F 14250000\n";
	   print $socket "\\set_mode LSB 2400\n";   # escape leading '\'

       A one line response will	be sent	as a reply to set commands, "RPRT x\n"
       where  x	 is  the  Hamlib error code with `0' indicating	success	of the
       command.

       Responses from rigctld get commands are text values and match the  same
       tokens  used  in	 the  set  commands. Each value	is returned on its own
       line.  On error the string "RPRT	x\n" is	returned where x is the	Hamlib
       error code.

       Example get frequency (Perl code):

	   print $socket "f\n";
	   "14250000\n"

       Most get	functions return one to	three values. A	notable	 exception  is
       the dump_caps command which returns many	lines of key:value pairs.

       This  protocol  is  primarily used by the "NET rigctl" (rigctl model 2)
       backend which allows applications already written for Hamlib's C	API to
       take advantage of rigctld without the  need  of	rewriting  application
       code.   An application's	user can select	rotator	model 2	("NET rigctl")
       and  then  set  rig_pathname  to	 "localhost:4532"  or  other   network
       host:port (set by the -T/-t options, respectively, above).

   Extended Response Protocol
       The  Extended  Response	protocol adds several rules to the strings re-
       turned by rigctld and adds a rule for the command syntax.

       1. The command received by rigctld is echoed with its long command name
       followed	by the value(s)	(if any) received from the  client  terminated
       by  the	specified  response  separator	as the first record of the re-
       sponse.

       2. The last record of each block	is the string "RPRT x\n"  where	 x  is
       the numeric return value	of the Hamlib backend function that was	called
       by the command.

       3.  Any records consisting of data values returned by the radio backend
       are prepended by	a string immediately followed by a colon then a	 space
       and  then  the  value  terminated by the	response separator. e.g. "Fre-
       quency: 14250000\n" when	the command was	prepended by `+'.

       4. All commands received	will be	acknowledged by	rigctld	 with  records
       from  rules  1  and 2.  Records from rule 3 are only returned when data
       values must be returned to the client.

       An example response to a	set_mode command sent from  the	 shell	prompt
       (note the prepended `+'):

	   $ echo "+M USB 2400"	| nc -w	1 localhost 4532
	   set_mode: USB 2400
	   RPRT	0

       In this case the	long command name and values are returned on the first
       line  and  the second line contains the end of block marker and the nu-
       meric radio backend return value	indicating success.

       An example response to a	get_mode query:

	   $ echo "+\get_mode" | nc -w 1 localhost 4532
	   get_mode:
	   Mode: USB
	   Passband: 2400
	   RPRT	0

	      Note: The	`\' is still required for the long command  name  even
	      with the ERP character.

       In this case, as	no value is passed to rigctld, the first line consists
       only  of	 the long command name.	 The final line	shows that the command
       was processed successfully by the radio backend.

       Invoking	the Extended Response Protocol requires	prepending  a  command
       with a punctuation character.  As shown in the examples above, prepend-
       ing a `+' character to the command results in the responses being sepa-
       rated  by  a newline character (`\n').  Any other punctuation character
       recognized by the C ispunct() function except `\',  `?',	 or  `_'  will
       cause  that  character  to become the response separator	and the	entire
       response	will be	on one line.

       Separator character summary:

       `+'    Each record of the response is appended with a newline (`\n').

       `;', `|', or, `,'
	      Each record of the response is appended by the  given  character
	      resulting	in entire response on one line.

	      These  are  common record	separators for text representations of
	      spreadsheet data,	etc.

       `?'    Reserved for help	in rigctl.

       `_'    Reserved for get_info short command

       `#'    Reserved for comments when reading a command file	script.

	      Note: Other punctuation characters have not been tested!	Use at
	      your own risk.

       For example, invoking a get_mode	query with a leading `;' returns:

	   get_mode:;Mode: USB;Passband: 2400;RPRT 0

       Or, using the pipe character `|'	returns:

	   get_mode:|Mode: USB|Passband: 2400|RPRT 0

       And a set_mode command prepended	with a `|' returns:

	   set_mode: USB 2400|RPRT 0

       Such a format will allow	reading	a response as a	single event  using  a
       preferred  response  separator.	 Other punctuation characters have not
       been tested!

       The following commands have been	tested with the	Extended Response pro-
       tocol and the included testctld.pl Perl script:

	      set_freq,	get_freq,  set_split_freq,  get_split_freq,  set_mode,
	      get_mode,	  set_split_mode,  get_split_mode,  set_vfo,  get_vfo,
	      set_split_vfo,   get_split_vfo,	set_rit,   get_rit,   set_xit,
	      get_xit, set_ptt,	get_ptt, power2mW, mW2power, dump_caps.

DIAGNOSTICS
       The  -v,	 --verbose option allows different levels of diagnostics to be
       output to stderr	and correspond to -v for BUG, -vv for  ERR,  -vvv  for
       WARN, -vvvv for VERBOSE,	or -vvvvv for TRACE.

       A given verbose level is	useful for providing needed debugging informa-
       tion  to	 the email address below.  For example,	TRACE output shows all
       of the values sent to and received from the radio which is very	useful
       for  radio  backend library development and may be requested by the de-
       velopers.

EXAMPLES
       Start rigctld for a Yaesu FT-920	 using	a  USB-to-serial  adapter  and
       backgrounding:

	   $ rigctld -m	1014 -r	/dev/ttyUSB1 &

       Start  rigctld  for  a Yaesu FT-920 using a USB-to-serial adapter while
       setting baud rate and stop bits,	and backgrounding:

	   $ rigctld -m	1014 -r	/dev/ttyUSB1 -s	4800 -C	stop_bits=2 &

       Start rigctld for an Elecraft K3	using COM2 on MS Windows:

	   $ rigctld -m	2029 -r	COM2

       Connect to the already running rigctld and set the frequency to	14.266
       MHz  with  a  1 second read timeout using the default protocol from the
       shell prompt:

	   $ echo "\set_freq 14266000" | nc -w 1 localhost 4532

       Connect to a running rigctld with rigctl	on the local host:

	   $ rigctl -m2

SECURITY
       No authentication whatsoever; DO	NOT leave this TCP port	open  wide  to
       the  Internet.	Please	ask if stronger	security is needed or consider
       using a Secure Shell (ssh(1)) tunnel.

       As rigctld does not need	any greater permissions	than rigctl, it	is ad-
       visable to not start rigctld as "root" or another system	 user  account
       in order	to limit any vulnerability.

BUGS
       The daemon is not detaching and backgrounding itself.

       No  method  to  exit  the daemon	so the kill(1) command must be used to
       terminate it.

       Multiple	clients	using the daemon may experience	 contention  with  the
       connected radio.

       Report bugs to:

	      Hamlib Developer mailing list
	      <hamlib-developer@lists.sourceforge.net>

COPYING
       This  file  is part of Hamlib, a	project	to develop a library that sim-
       plifies radio, rotator, and amplifier control functions for  developers
       of  software  primarily	of interest to radio amateurs and those	inter-
       ested in	radio communications.

       Copyright (C) 2000-2010 Stephane	Fillod
       Copyright (C) 2000-2018 the Hamlib Group	(various contributors)
       Copyright (C) 2011-2020 Nate Bargmann

       This is free software; see the file  COPYING  for  copying  conditions.
       There  is  NO  warranty;	 not even for MERCHANTABILITY or FITNESS FOR A
       PARTICULAR PURPOSE.

SEE ALSO
       kill(1),	rigctl(1), ssh(1), hamlib(7)

COLOPHON
       Links to	the Hamlib Wiki, Git repository, release archives,  and	 daily
       snapshot	archives are available via hamlib.org <http://www.hamlib.org>.

Hamlib				  2020-09-09			    RIGCTLD(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=rigctld&sektion=1&manpath=FreeBSD+Ports+15.0>

home | help