8.15 Hamlib -- unsupported commands - FTdx101D SSB audio source
The FTdx101D has an EX.... command which supporst over 230 menu settings.
piWebCAT's high degree of user configurability allows it to access these settings both in direct ASCII mode
and also through Hamlib using \send_cmd_rx.
An example that I use is the menu option to switch SSB modulation audio source between front panel microphone
socket and rear DATA connector. I need to switch to rear DATA connector source if I am remotely operating via
the Mumble VOIP (Voice Over IP) system.
My configuration in buttonshl and catcodeshl for an SSB modulation source switching buttons are shown below:
In buttonshl, we have a single button. This has:
- action = T Toggle on/off.
seton = 1 and setoff = 0 are set codes. anson = 1 and ansoff = 0 match received state data.
- active = S This set 'sync' mode so that the piWebCAT button is kept up to date with rig changes.
- code = SSBI An identifier of my choice - matches code in catcodeshl on the server.
- vx = x Not VFO dependant. Matches abx = X in catcodeshl on the server.
In catcodedshl we have the commands to communicate with the radio.
readmask and sendmask use ricgctl: \send_cmd_rx. This sends an appended rig CAT command.
Reading data from the rig
The FTdx110D CAT read command is : EX010111; (see FTdx101D CAT manual page 9)
As in the catcodeshl table above, the readmask field is \send_cmd_rx EX010111; 10
The appended 10 informs rigctld to expect to receive 10 bytes back from the rig (includes the semicolon)
rigctld will send EX010111; unmodified to the rig.
The rig will send back EX010111n; (10 bytes) where n= 1 for read DATA connector and n = 0 for mic. socket.
rigctld passes the EX010111n; unmodified back to piWebCAT.
The answermask field decodes the result. It is EX010111u; where u means units - ie: implying a single digit of data.
This format is exactly as is used to decode data when piWebCAT is in ASCII mode.
Writing data to the rig
The setmask field is: \send_cmd_rx EX010111# 0 --n1
The # character is substituted by the data value from the client. This is from the buttonshl record's nset field.
For a read panel audio input, nset = 1. rigctld therefore sends EX0101111; to the rig.
The appended 0 informs rigctld that there will be 0 bytes of response.
This is a rigctld requirement. ( In some rigs, a set command will return data.)
The final --n1 informs the piWebCAT PHP server code that the # character is substituted by 1 character.
This is a piWebCAT requirement.