kopia lustrzana https://github.com/jamescoxon/dl-fldigi
774 wiersze
22 KiB
Plaintext
774 wiersze
22 KiB
Plaintext
/**
|
|
\page rig_xml_page Rig Xml How to
|
|
|
|
\tableofcontents
|
|
|
|
This document describes the contents of the rig definition file \"rig.xml\".
|
|
<br>
|
|
|
|
A number of transceivers have rig definition files written and tested
|
|
which you may use. These are found in the xmls directory on this
|
|
site: <a href="https://sourceforge.net/projects/fldigi/files/xmls/">xml archives</a>.
|
|
You will find subdirectories by manufacturer which contain files named
|
|
by rig type, ie: TS-850.xml. If you create, test and verify the proper
|
|
operation for a transceiver not yet posted please share that with
|
|
others by sending it as an attachment to feedback [at] w1hkj [dot] com and I will
|
|
post it on the web site. You are encouraged to study the various rig
|
|
definition files to learn more about how they are organized.
|
|
|
|
Comments are contained within the tag pair:
|
|
<pre>
|
|
\<!--
|
|
...
|
|
--\>
|
|
</pre>
|
|
and may appear anywhere in the rig definition file The entire rig definition
|
|
must be contained within the tag pair
|
|
|
|
<pre>
|
|
<RIGDEF>
|
|
...
|
|
</RIGDEF>
|
|
</pre>
|
|
|
|
The text within the tag pair \<RIG\>\</RIG\> specifies the transceiver to
|
|
which this file applies, as in:
|
|
|
|
<pre>
|
|
<RIG>Icom 746 PRO</RIG>
|
|
</pre>
|
|
|
|
The text within the tag pair \<PROGRAMMER\>\</PROGRAMMER\> is not used by the
|
|
parser, but should as a minimum say who created and who tested the definition file, as in:
|
|
|
|
</pre>
|
|
<PROGRAMMER>
|
|
Dave Freese W1HKJ Tested by: W1HKJ, Dave
|
|
</PROGRAMMER>
|
|
</pre>
|
|
|
|
The text within the tag pair
|
|
|
|
<pre>
|
|
<STATUS> ... </STATUS>
|
|
</pre>
|
|
|
|
is not used by the parser, but should as a minimum state whether the
|
|
definition file has been \"Verified\", is \"Alpha&\", what the Version and
|
|
Date of creation or update, as in:
|
|
|
|
<pre>
|
|
<STATUS> Verified Version: 1.0 Date: 2007 Jan 5 </STATUS>
|
|
</pre>
|
|
|
|
The title bar tag pair contains the text which will be displayed on the window decoration bar, as in:
|
|
|
|
<pre>
|
|
<TITLE>Rig Control - IC-746 PRO</TITLE>
|
|
</pre>
|
|
|
|
\section serial_port Serial Port Parameters
|
|
|
|
The serial port parameters may be preset in the xml file and also set or
|
|
changed on the rigCAT configuration tab. These values are loaded from the xml file.
|
|
If a value is changed on the configuration tab it is saved in the progdefaults.xml file if the
|
|
configuration is saved. On a subsequent start of fldigi the saved parameters will override
|
|
the ones in the rig definition file.
|
|
|
|
<table>
|
|
<tr>
|
|
<td><b>xml tag</b></td>
|
|
<td><b>parameter</b></td>
|
|
<td><b>description</b></td>
|
|
</tr>
|
|
<tr>
|
|
<td><TIMEOUT>TT</TIMEOUT></td>
|
|
<td>TT in milliseconds</td>
|
|
<td>serial port timeout</td>
|
|
</tr>
|
|
<tr>
|
|
<td><RETRIES>NN</RETRIES></td>
|
|
<td>NN integer</td>
|
|
<td>number of times CAT string is resent</td>
|
|
</tr>
|
|
<tr>
|
|
<td><WRITE_DELAY>TT</WRITE_DELAY></td>
|
|
<td>TT in milliseconds</td>
|
|
<td>wait time after sending normal command to xcvr</td>
|
|
</tr>
|
|
<tr>
|
|
<td><INIT_DELAY>IT</INIT_DELAY></td>
|
|
<td>IT in milliseconds</td>
|
|
<td>wait time after sending init string to xcvr</td>
|
|
</tr>
|
|
<tr>
|
|
<td><BAUDRATE>BAUD</BAUDRATE></td>
|
|
<td>BAUD integer</td>
|
|
<td>1200, 2400, 4800, 9600, 19200, 38400 ...</td>
|
|
</tr>
|
|
<tr>
|
|
<td><STOPBITS>B</STOPBITS></td>
|
|
<td>B integer</td>
|
|
<td>1 or 2</td>
|
|
</tr>
|
|
<tr>
|
|
<td><RTSCTS>BOOL</RTSCTS></td>
|
|
<td>BOOL true, false</td>
|
|
<td>h/w handshake used for data flow control</td>
|
|
</tr>
|
|
<tr>
|
|
<td><RTSPLUS>BOOL</RTSPLUS></td>
|
|
<td>BOOL true, false</td>
|
|
<td>set RTS signal line to +12 V (default -12 V)</td>
|
|
</tr>
|
|
<tr>
|
|
<td><RTSPTT>BOOL</RTSPTT></td>
|
|
<td>BOOL true, false</td>
|
|
<td>toggle RTS signal line for PTT</td>
|
|
</tr>
|
|
<tr>
|
|
<td><DTRPLUS>BOOL</DTRPLUS></td>
|
|
<td>BOOL true, false</td>
|
|
<td>set DTR signal line to + 12 V (default -12 V)</td>
|
|
</tr>
|
|
<tr>
|
|
<td><DTRPTT>BOOL</DTRPTT></td>
|
|
<td>BOOL true, false</td>
|
|
<td>toggle DTR signal line for PTT</td>
|
|
</tr>
|
|
<tr>
|
|
<td><CMDPTT>BOOL</CMDPTT></td>
|
|
<td>BOOL true, false</td>
|
|
<td>use command string for PTT (not supported by all xcvrs)</td>
|
|
</tr>
|
|
<tr>
|
|
<td><ECHO>BOOL</ECHO></td>
|
|
<td>BOOL true, false</td>
|
|
<td>xcvr/interface echoes all chars (typical of CI-V interface)</td>
|
|
</tr>
|
|
<tr>
|
|
<td><WAIT_FOR_DEVICE>nnn</WAIT_FOR_DEVICE></td>
|
|
<td>nnnn in milliseconds</td>
|
|
<td>used for correct startup of K9MJ CI-V router</td>
|
|
</tr>
|
|
<tr>
|
|
<td><VSP>BOOL</VSP></td>
|
|
<td>BOOL true/false</td>
|
|
<td>serial port is a virtual device</td>
|
|
</tr>
|
|
</table>
|
|
|
|
\section polling Poll Interval
|
|
|
|
The rigCAT code operates in a separate thread during which the various
|
|
queries are made with a default interval of 100 milliseconds between the last query
|
|
and the start of the next cycle. The actual cycle period is dependent on
|
|
the serial communications baud rate, the size of the commands, and the
|
|
responsiveness of the transceiver. It will always be greater than the poll interval.
|
|
|
|
You can specify a poll interval in milliseconds in the xml file:
|
|
|
|
<POLLINT>mmm</POLLINT>
|
|
|
|
where mmm is the poll interval in milliseconds.
|
|
|
|
\section modes_section Modes
|
|
|
|
The transceiver modes are specified within the \<MODES\>\</MODES\> tag pair.
|
|
Each entry or element associated with a mode has a symbol name (text) and a
|
|
way to specify what the data transfer consists of. The data transfer might
|
|
be a single byte, multiple bytes, or a string
|
|
|
|
Example 1, for the Icom-746PRO
|
|
|
|
<pre>
|
|
\<MODES\>
|
|
\<ELEMENT\>\<SYMBOL\>LSB\</SYMBOL\>\<BYTE\>00</BYTE>\</ELEMENT\>
|
|
\<ELEMENT\>\<SYMBOL\>USB\</SYMBOL\>\<BYTE\>01</BYTE>\</ELEMENT\>
|
|
\<ELEMENT\>\<SYMBOL\>AM\</SYMBOL\>\<BYTE\>02</BYTE>\</ELEMENT\>
|
|
\<ELEMENT\>\<SYMBOL\>CW\</SYMBOL\>\<BYTE\>03</BYTE>\</ELEMENT\>
|
|
\<ELEMENT\>\<SYMBOL\>RTTY\</SYMBOL\>\<BYTE\>04</BYTE>\</ELEMENT\>
|
|
\<ELEMENT\>\<SYMBOL\>FM\</SYMBOL\>\<BYTE\>05</BYTE>\</ELEMENT\>
|
|
\<ELEMENT\>\<SYMBOL\>CW-R\</SYMBOL\>\<BYTE\>07</BYTE>\</ELEMENT\>
|
|
\<ELEMENT\>\<SYMBOL\>RTTY-R\</SYMBOL\>\<BYTE\>08</BYTE>\</ELEMENT\>
|
|
\</MODES\>
|
|
</pre>
|
|
|
|
Example 2, for the Kenwood 850
|
|
|
|
<pre>
|
|
\<MODES\>
|
|
\<ELEMENT\>\<SYMBOL\>LSB\</SYMBOL\>\<BYTE\>31</BYTE>\</ELEMENT\>
|
|
\<ELEMENT\>\<SYMBOL\>USB\</SYMBOL\>\<BYTE\>32</BYTE>\</ELEMENT\>
|
|
\<ELEMENT\>\<SYMBOL\>CW\</SYMBOL\>\<BYTE\>33</BYTE>\</ELEMENT\>
|
|
\<ELEMENT\>\<SYMBOL\>FM\</SYMBOL\>\<BYTE\>34</BYTE>\</ELEMENT\>
|
|
\<ELEMENT\>\<SYMBOL\>AM\</SYMBOL\>\<BYTE\>35</BYTE>\</ELEMENT\>
|
|
\<ELEMENT\>\<SYMBOL\>FSK\</SYMBOL\>\<BYTE\>36</BYTE>\</ELEMENT\>
|
|
\<ELEMENT\>\<SYMBOL\>CW-R\</SYMBOL\>\<BYTE\>37</BYTE>\</ELEMENT\>
|
|
\<ELEMENT\>\<SYMBOL\>FSK-R\</SYMBOL\>\<BYTE\>39</BYTE>\</ELEMENT\>
|
|
\</MODES\>
|
|
</pre>
|
|
|
|
Example 3, for the FT-100
|
|
|
|
<pre>
|
|
\<MODES\>
|
|
\<ELEMENT\>\<SYMBOL\>LSB\</SYMBOL\>\<BYTE\>00</BYTE>\</ELEMENT\>
|
|
\<ELEMENT\>\<SYMBOL\>USB\</SYMBOL\>\<BYTE\>01</BYTE>\</ELEMENT\>
|
|
\<ELEMENT\>\<SYMBOL\>CW\</SYMBOL\>\<BYTE\>02</BYTE>\</ELEMENT\>
|
|
\<ELEMENT\>\<SYMBOL\>CW-R\</SYMBOL\>\<BYTE\>03</BYTE>\</ELEMENT\>
|
|
\<ELEMENT\>\<SYMBOL\>AM\</SYMBOL\>\<BYTE\>04</BYTE>\</ELEMENT\>
|
|
\<ELEMENT\>\<SYMBOL\>DIG\</SYMBOL\>\<BYTE\>05</BYTE>\</ELEMENT\>
|
|
\<ELEMENT\>\<SYMBOL\>FM\</SYMBOL\>\<BYTE\>06</BYTE>\</ELEMENT\>
|
|
\<ELEMENT\>\<SYMBOL\>W-FM\</SYMBOL\>\<BYTE\>07</BYTE>\</ELEMENT\>
|
|
\</MODES\>
|
|
</pre>
|
|
|
|
The modes which are supported by lower sideband in the transceiver are
|
|
specified in the <LSBMODES></LSBMODES> tag pair. The string
|
|
data for the LSB modes must match those given in the modes id specifier
|
|
For example in the Icom 746 Pro:
|
|
|
|
<pre>
|
|
<LSBMODES>
|
|
\<STRING\>LSB\<STRING\>
|
|
\<STRING\>RTTY\<STRING\>
|
|
\<STRING\>CW-R\<STRING\>
|
|
</LSBMODES>
|
|
</pre>
|
|
|
|
\section bandwidths Bandwidth Specifier
|
|
|
|
If the transceiver data stream uses identically the same format for the
|
|
bandwidth data then it is specified in the <BANDWIDTHS></BANDWIDTHS> tag
|
|
pair
|
|
|
|
Example for the Icom 746 Pro:
|
|
|
|
<pre>
|
|
<BANDWIDTHS>
|
|
\<ELEMENT\>\<SYMBOL\>50\</SYMBOL\>\<BYTE\>00</BYTE>\</ELEMENT\>
|
|
\<ELEMENT\>\<SYMBOL\>100\</SYMBOL\>\<BYTE\>01</BYTE>\</ELEMENT\>
|
|
\<ELEMENT\>\<SYMBOL\>150\</SYMBOL\>\<BYTE\>02</BYTE>\</ELEMENT\>
|
|
\<ELEMENT\>\<SYMBOL\>200\</SYMBOL\>\<BYTE\>03</BYTE>\</ELEMENT\>
|
|
\<ELEMENT\>\<SYMBOL\>250\</SYMBOL\>\<BYTE\>04</BYTE>\</ELEMENT\>
|
|
\<ELEMENT\>\<SYMBOL\>300\</SYMBOL\>\<BYTE\>05</BYTE>\</ELEMENT\>
|
|
\<ELEMENT\>\<SYMBOL\>350\</SYMBOL\>\<BYTE\>06</BYTE>\</ELEMENT\>
|
|
\<ELEMENT\>\<SYMBOL\>400\</SYMBOL\>\<BYTE\>07</BYTE>\</ELEMENT\>
|
|
\<ELEMENT\>\<SYMBOL\>450\</SYMBOL\>\<BYTE\>08</BYTE>\</ELEMENT\>
|
|
\<ELEMENT\>\<SYMBOL\>500\</SYMBOL\>\<BYTE\>09</BYTE>\</ELEMENT\>
|
|
\<ELEMENT\>\<SYMBOL\>600\</SYMBOL\>\<BYTE\>10</BYTE>\</ELEMENT\>
|
|
\<ELEMENT\>\<SYMBOL\>700\</SYMBOL\>\<BYTE\>11</BYTE>\</ELEMENT\>
|
|
\<ELEMENT\>\<SYMBOL\>800\</SYMBOL\>\<BYTE\>12</BYTE>\</ELEMENT\>
|
|
\<ELEMENT\>\<SYMBOL\>900\</SYMBOL\>\<BYTE\>13</BYTE>\</ELEMENT\>
|
|
\<ELEMENT\>\<SYMBOL\>1000\</SYMBOL\>\<BYTE\>14</BYTE>\</ELEMENT\>
|
|
\<ELEMENT\>\<SYMBOL\>1100\</SYMBOL\>\<BYTE\>15</BYTE>\</ELEMENT\>
|
|
\<ELEMENT\>\<SYMBOL\>1200\</SYMBOL\>\<BYTE\>16</BYTE>\</ELEMENT\>
|
|
\<ELEMENT\>\<SYMBOL\>1300\</SYMBOL\>\<BYTE\>17</BYTE>\</ELEMENT\>
|
|
\<ELEMENT\>\<SYMBOL\>1400\</SYMBOL\>\<BYTE\>18</BYTE>\</ELEMENT\>
|
|
\<ELEMENT\>\<SYMBOL\>1500\</SYMBOL\>\<BYTE\>19</BYTE>\</ELEMENT\>
|
|
\<ELEMENT\>\<SYMBOL\>1600\</SYMBOL\>\<BYTE\>20</BYTE>\</ELEMENT\>
|
|
\<ELEMENT\>\<SYMBOL\>1700\</SYMBOL\>\<BYTE\>21</BYTE>\</ELEMENT\>
|
|
\<ELEMENT\>\<SYMBOL\>1800\</SYMBOL\>\<BYTE\>22</BYTE>\</ELEMENT\>
|
|
\<ELEMENT\>\<SYMBOL\>1900\</SYMBOL\>\<BYTE\>23</BYTE>\</ELEMENT\>
|
|
\<ELEMENT\>\<SYMBOL\>2000\</SYMBOL\>\<BYTE\>24</BYTE>\</ELEMENT\>
|
|
\<ELEMENT\>\<SYMBOL\>2100\</SYMBOL\>\<BYTE\>25</BYTE>\</ELEMENT\>
|
|
\<ELEMENT\>\<SYMBOL\>2200\</SYMBOL\>\<BYTE\>26</BYTE>\</ELEMENT\>
|
|
\<ELEMENT\>\<SYMBOL\>2300\</SYMBOL\>\<BYTE\>27</BYTE>\</ELEMENT\>
|
|
\<ELEMENT\>\<SYMBOL\>2400\</SYMBOL\>\<BYTE\>28</BYTE>\</ELEMENT\>
|
|
\<ELEMENT\>\<SYMBOL\>2500\</SYMBOL\>\<BYTE\>29</BYTE>\</ELEMENT\>
|
|
\<ELEMENT\>\<SYMBOL\>2600\</SYMBOL\>\<BYTE\>30</BYTE>\</ELEMENT\>
|
|
\<ELEMENT\>\<SYMBOL\>2700\</SYMBOL\>\<BYTE\>31</BYTE>\</ELEMENT\>
|
|
\<ELEMENT\>\<SYMBOL\>2800\</SYMBOL\>\<BYTE\>32</BYTE>\</ELEMENT\>
|
|
\<ELEMENT\>\<SYMBOL\>2900\</SYMBOL\>\<BYTE\>33</BYTE>\</ELEMENT\>
|
|
\<ELEMENT\>\<SYMBOL\>3000\</SYMBOL\>\<BYTE\>34</BYTE>\</ELEMENT\>
|
|
\<ELEMENT\>\<SYMBOL\>3100\</SYMBOL\>\<BYTE\>35</BYTE>\</ELEMENT\>
|
|
\<ELEMENT\>\<SYMBOL\>3200\</SYMBOL\>\<BYTE\>36</BYTE>\</ELEMENT\>
|
|
\<ELEMENT\>\<SYMBOL\>3300\</SYMBOL\>\<BYTE\>37</BYTE>\</ELEMENT\>
|
|
\<ELEMENT\>\<SYMBOL\>3400\</SYMBOL\>\<BYTE\>38</BYTE>\</ELEMENT\>
|
|
\<ELEMENT\>\<SYMBOL\>3500\</SYMBOL\>\<BYTE\>39</BYTE>\</ELEMENT\>
|
|
\<ELEMENT\>\<SYMBOL\>3600\</SYMBOL\>\<BYTE\>40</BYTE>\</ELEMENT\>
|
|
</BANDWIDTHS>
|
|
</pre>
|
|
|
|
If the bandwidth data stream is unique for send and receive data streams then
|
|
they are specified separately with a \<BW-CMD\>\</BW-CMD\> tag pair for
|
|
data sent to the transceiver, and a \<BW-REPLY\>\</BW-REPLY\> tag pair for
|
|
data returned to the computer. The number and symbol name for these must match.
|
|
|
|
Example: FT-100:
|
|
|
|
<pre>
|
|
<BW-CMD>
|
|
\<ELEMENT\>\<SYMBOL\>300\</SYMBOL\>\<BYTE\>00</BYTE>\</ELEMENT\>
|
|
\<ELEMENT\>\<SYMBOL\>500\</SYMBOL\>\<BYTE\>01</BYTE>\</ELEMENT\>
|
|
\<ELEMENT\>\<SYMBOL\>2400\</SYMBOL\>\<BYTE\>02</BYTE>\</ELEMENT\>
|
|
\<ELEMENT\>\<SYMBOL\>6000\</SYMBOL\>\<BYTE\>03</BYTE>\</ELEMENT\>
|
|
</BW-CMD>
|
|
|
|
<BW-REPLY>
|
|
\<ELEMENT\>\<SYMBOL\>300\</SYMBOL\>\<BYTE\>03</BYTE>\</ELEMENT\>
|
|
\<ELEMENT\>\<SYMBOL\>500\</SYMBOL\>\<BYTE\>02</BYTE>\</ELEMENT\>
|
|
\<ELEMENT\>\<SYMBOL\>2400\</SYMBOL\>\<BYTE\>01</BYTE>\</ELEMENT\>
|
|
\<ELEMENT\>\<SYMBOL\>6000\</SYMBOL\>\<BYTE\>00</BYTE>\</ELEMENT\>
|
|
</BW-REPLY>
|
|
</pre>
|
|
|
|
\section commands_replies Commands and Replies
|
|
|
|
CAT command strings are defined within a \<COMMAND\>...\</COMMAND\> block. Each
|
|
block structure appears as:
|
|
|
|
<pre>
|
|
<COMMAND>
|
|
\<SYMBOL\>...\</SYMBOL\> noun name of symbol
|
|
\<SIZE\>...\</SIZE\> number of bytes in CAT string
|
|
\<STRING\>...\</STRING\> string literal (optional)
|
|
\<DATA\> data block (optional)
|
|
\<DTYPE\>...\</DTYPE\> type of data in data block
|
|
\<SIZE\>...\</SIZE\> number of bytes in data block
|
|
\<MAX\>...\</MAX\> maximum value of data value
|
|
\<MIN\>...\</MIN\> minimum value of data value
|
|
\<RESOL\>...\</RESOL\> resolution of data value
|
|
\</DATA\> end of data block
|
|
\<STRING\>...\</STRING\> string literal (optional)
|
|
</COMMAND>
|
|
</pre>
|
|
|
|
Here are three examples from the KX3.xml definition file
|
|
<pre>
|
|
<COMMAND>
|
|
\<SYMBOL\>INIT\</SYMBOL\>
|
|
\<SIZE\>12\</SIZE\>
|
|
\<STRING\>AI0;DT0;K31;\</STRING\>
|
|
</COMMAND>
|
|
|
|
<COMMAND>
|
|
\<SYMBOL\>SETFREQ\</SYMBOL\>
|
|
\<SIZE\>14\</SIZE\>
|
|
\<STRING\>FA\</STRING\>
|
|
\<DATA\>
|
|
\<DTYPE\>DECIMAL\</DTYPE\>
|
|
\<SIZE\>11\</SIZE\>
|
|
\<MAX\>99999999999\</MAX\>
|
|
\<MIN\>00000490000\</MIN\>
|
|
\<RESOL\>1\</RESOL\>
|
|
\</DATA\>
|
|
\<STRING\>;\</STRING\>
|
|
</COMMAND>
|
|
|
|
<COMMAND>
|
|
\<SYMBOL\>GETFREQ\</SYMBOL\>
|
|
\<SIZE\>3\</SIZE\>
|
|
\<STRING\>FA;\</STRING\>
|
|
<INFO>FREQ</INFO>
|
|
</COMMAND>
|
|
</pre>
|
|
|
|
A command string may have a corresponding reply string sent by the transceiver. The
|
|
SYMBOL noun name for each command - reply pair is the same.
|
|
|
|
Fldigi can parse and decode message returned from the transceiver that define
|
|
4 aspects of the transceiver operation:
|
|
|
|
<table>
|
|
<tr>
|
|
<td>OK</td>
|
|
<td>data accepted by the transceiver</td>
|
|
</tr>
|
|
<tr>
|
|
<td>BAD</td>
|
|
<td>data rejected by the transceiver</td>
|
|
</tr>
|
|
<tr>
|
|
<td>MODE</td>
|
|
<td>current operating mode of the transceiver</td>
|
|
</tr>
|
|
<tr>
|
|
<td>BW</td>
|
|
<td>current bandwidth setting of the transceiver</td>
|
|
</tr>
|
|
<tr>
|
|
<td>FREQ</td>
|
|
<td>frequency of the active VFO (might be either A or B for example)</td>
|
|
</tr>
|
|
</table>
|
|
<br>
|
|
|
|
These are all contained within multiple \<REPLY\>\</REPLY\> tag pairs. The REPLY
|
|
block structure is:
|
|
|
|
<pre>
|
|
\<REPLY\>
|
|
\<SYMBOL\>...\</SYMBOL\> noun name of symbol
|
|
\<SIZE\>...\</SIZE\> number of bytes in reply string
|
|
\<BYTES\>...</BYTES> space separated hexadecimal values
|
|
\<BYTE\>...</BYTE> single hexadecimal value
|
|
\<STRING\>...\</STRING\> returned character string
|
|
\</REPLY\>
|
|
</pre>
|
|
|
|
This is an example of a fixed format message with no variable fields. It is the
|
|
OK message sent back by the Icom-746 PRO:
|
|
|
|
<pre>
|
|
\<REPLY\>
|
|
\<SYMBOL\>OK\</SYMBOL\>
|
|
\<SIZE\>6\</SIZE\>
|
|
\<BYTES\>FE FE E0 66</BYTES>
|
|
\<BYTE\>FB</BYTE>
|
|
\<BYTE\>FD</BYTE>
|
|
\</REPLY\>
|
|
</pre>
|
|
|
|
The \<SYMBOL\>\</SYMBOL\> pair and the command definition are
|
|
mandatory. The \<SIZE\>\</SIZE\> field is mandatory and specifies the number
|
|
of bytes contained in this reply. The above definition could also have been
|
|
coded as:
|
|
|
|
<pre>
|
|
\<REPLY\>
|
|
\<SYMBOL\>OK\</SYMBOL\>
|
|
\<SIZE\>6\</SIZE\>
|
|
\<BYTES\>FE FE E0 66 FB FD</BYTES>
|
|
\</REPLY\>
|
|
</pre>
|
|
|
|
When the reply contains variable data it is specified in a contained
|
|
tag pair \<DATA\>\</DATA\>. This data field contains specifiers that describe
|
|
the kind and size of the data. The \<DTYPE\>\</DTYPE\> tag pair may
|
|
be one of:
|
|
<br>
|
|
|
|
BINARY or<br>
|
|
DECIMAL<br>
|
|
|
|
This is an example for the reply to a mode query that is returned by the Icom-746 PRO:
|
|
|
|
<pre>
|
|
\<REPLY\>
|
|
\<SYMBOL\>MODE\</SYMBOL\>
|
|
\<SIZE\>8\</SIZE\>
|
|
\<BYTES\>FE FE E0 66</BYTES>
|
|
\<BYTE\>04</BYTE>
|
|
\<DATA\>
|
|
\<DTYPE\>BINARY\</DTYPE\>
|
|
\<SIZE\>1\</SIZE\>
|
|
\</DATA\>
|
|
<FILL>1</FILL>
|
|
\<BYTE\>FD</BYTE>
|
|
\</REPLY\>
|
|
</pre>
|
|
|
|
Fldigi rigCAT will check for both the preample and postamble to insure
|
|
that a valid reply has been sent by the transceiver.
|
|
<br>
|
|
|
|
This is an example for the reply to a frequency query that is returned by the Elecraft KX3.
|
|
The corresponding query command structure is shown above.
|
|
|
|
<pre>
|
|
\<REPLY\>
|
|
\<SYMBOL\>FREQ\</SYMBOL\>
|
|
\<SIZE\>14\</SIZE\>
|
|
\<STRING\>FA\</STRING\>
|
|
\<DATA\>
|
|
\<DTYPE\>DECIMAL\</DTYPE\>
|
|
\<SIZE\>11\</SIZE\>
|
|
\<MAX\>99999999999\</MAX\>
|
|
\<MIN\>00001500000\</MIN\>
|
|
\<RESOL\>1\</RESOL\>
|
|
\</DATA\>
|
|
\<STRING\>;\</STRING\>
|
|
\</REPLY\>
|
|
</pre>
|
|
|
|
\section Meters
|
|
|
|
fldigi rigCAT can query the transceiver for both Smeter and Power Meter.
|
|
The fldigi user interface controls that display these values have a range of
|
|
0 to 100. You need to provide the scale conversion from queried value to
|
|
fldigi UI control scale. The <SMETER>...</SMETER> and <PMETER>...</PMETER>
|
|
are reserved pairs that are used to define the conversions. The program will
|
|
interpolate between values as it converts the queried value to the user
|
|
interface control range.
|
|
|
|
Here are two examples of scale specifiers:
|
|
|
|
<pre>
|
|
<!-- smeter scale mapping for FT-950 -->
|
|
<SMETER> 0,0; 255,100 </SMETER>
|
|
|
|
<!-- power meter scale mapping for FT-950 -->
|
|
<PMETER>
|
|
0,0; 16,1; 32,4; 48,7;
|
|
64,12; 80,18; 96,24; 112,32;
|
|
128,40; 144,50; 160,61; 176,73;
|
|
192,85; 208,100
|
|
</PMETER>
|
|
|
|
<!-- smeter scale mapping for IC-706MkIIG -->
|
|
<SMETER> 0,0; 255,100 </SMETER>
|
|
</pre>
|
|
|
|
The query and respective responses are coded as any other command/reply pair:
|
|
|
|
For the FT-950:
|
|
|
|
<pre>
|
|
<REPLY>
|
|
<SYMBOL>SMETER</SYMBOL>
|
|
<SIZE>7</SIZE>
|
|
<STRING>RM1</STRING>
|
|
<DATA>
|
|
<DTYPE>DECIMAL</DTYPE>
|
|
<SIZE>3</SIZE>
|
|
</DATA>
|
|
<STRING>;</STRING>
|
|
</REPLY>
|
|
|
|
<COMMAND>
|
|
<SYMBOL>GET_SMETER</SYMBOL>
|
|
<SIZE>4</SIZE>
|
|
<STRING>RM1;</STRING>
|
|
<INFO>SMETER</INFO>
|
|
</COMMAND>
|
|
|
|
<REPLY>
|
|
<SYMBOL>PWRMETER</SYMBOL>
|
|
<SIZE>7</SIZE>
|
|
<STRING>RM5</STRING>
|
|
<DATA>
|
|
<DTYPE>DECIMAL</DTYPE>
|
|
<SIZE>3</SIZE>
|
|
</DATA>
|
|
<STRING>;</STRING>
|
|
</REPLY>
|
|
|
|
<COMMAND>
|
|
<SYMBOL>GET_PWRMETER</SYMBOL>
|
|
<SIZE>4</SIZE>
|
|
<STRING>RM5;</STRING>
|
|
<INFO>PWRMETER</INFO>
|
|
</COMMAND>
|
|
</pre>
|
|
|
|
and for the IC-706MkIIG:
|
|
|
|
<pre>
|
|
<REPLY>
|
|
<SYMBOL>SMETER</SYMBOL>
|
|
<SIZE>10</SIZE>
|
|
<BYTES>FE FE E0 58 15 02</BYTES>
|
|
<DATA>
|
|
<DTYPE>BCD</DTYPE>
|
|
<SIZE> 3 </SIZE>
|
|
<MAX> 255 </MAX>
|
|
<MIN> 0 </MIN>
|
|
<RESOL> 1 </RESOL>
|
|
</DATA>
|
|
<BYTE>FD</BYTE>
|
|
</REPLY>
|
|
|
|
<COMMAND>
|
|
<SYMBOL>GET SMETER</SYMBOL>
|
|
<SIZE>7</SIZE>
|
|
<BYTES>FE FE 58 E0 15 02 FD</BYTES>
|
|
<INFO>SMETER</INFO>
|
|
</COMMAND>
|
|
</pre>
|
|
|
|
\section notch_control Notch Control
|
|
|
|
The transceiver manual notch can be both read and controlled using rigCAT.
|
|
|
|
There are a few requirements that may not be met by all transceivers.
|
|
<br>
|
|
<ul>
|
|
<li>it must support a CAT manual notch on/off string</li>
|
|
<li>it must support a CAT manual notch value string</li>
|
|
<li>the conversion between notch audio frequency and the CAT value must
|
|
be bilateral.</li>
|
|
</ul>
|
|
<br>
|
|
Here is an example for the FT-950:
|
|
|
|
<pre>
|
|
<NOTCH>
|
|
1,10; 300,3000;
|
|
</NOTCH>
|
|
|
|
<COMMAND>
|
|
<SYMBOL>SET_NOTCH_ON</SYMBOL>
|
|
<SIZE>8</SIZE>
|
|
<STRING>BP00001;</STRING>
|
|
</COMMAND>
|
|
|
|
<COMMAND>
|
|
<SYMBOL>SET_NOTCH_OFF</SYMBOL>
|
|
<SIZE>8</SIZE>
|
|
<STRING>BP00000;</STRING>
|
|
</COMMAND>
|
|
|
|
<COMMAND>
|
|
<SYMBOL>SET_NOTCH_VAL</SYMBOL>
|
|
<SIZE>8</SIZE>
|
|
<STRING>BP01</STRING>
|
|
<DATA>
|
|
<DTYPE>DECIMAL</DTYPE>
|
|
<SIZE>3</SIZE>
|
|
</DATA>
|
|
<STRING>;</STRING>
|
|
</COMMAND>
|
|
|
|
<REPLY>
|
|
<SYMBOL>NOTCH_ON</SYMBOL>
|
|
<SIZE>8</SIZE>
|
|
<STRING>BP00001;</STRING>
|
|
</REPLY>
|
|
|
|
<COMMAND>
|
|
<SYMBOL>GET_NOTCH_ON</SYMBOL>
|
|
<SIZE>5</SIZE>
|
|
<STRING>BP00;</STRING>
|
|
<INFO>NOTCH_ON</INFO>
|
|
</COMMAND>
|
|
|
|
<REPLY>
|
|
<SYMBOL>NOTCH</SYMBOL>
|
|
<SIZE>8</SIZE>
|
|
<STRING>BP01</STRING>
|
|
<DATA>
|
|
<DTYPE>DECIMAL</DTYPE>
|
|
<SIZE>3</SIZE>
|
|
</DATA>
|
|
<STRING>;</STRING>
|
|
</REPLY>
|
|
|
|
<COMMAND>
|
|
<SYMBOL>GET_NOTCH</SYMBOL>
|
|
<SIZE>5</SIZE>
|
|
<STRING>BP01;</STRING>
|
|
<INFO>NOTCH</INFO>
|
|
</COMMAND>
|
|
</pre>
|
|
|
|
The notch is controlled from fldigi using the alt-ctl-left-click on the waterfall.
|
|
The same keyboard-mouse combination is used to both set and clear the notch. Point
|
|
the cursor to an offending signal, and then use the keyboard-mouse combination to
|
|
set the manual notch at that frequency. Repeat the keyboard-mouse combination anywhere
|
|
in the waterfall to clear the notch. The SET notch is indicated by a dashed vertical
|
|
line on the waterfall display at the audio frequency being notched. You should also
|
|
see a pronounced reduction in signal at that point. fldigi will also annunciate any
|
|
transceiver changes made to the manual notch.
|
|
|
|
\section power_level Power Level Control
|
|
|
|
rigCAT can control the power level of the transceiver if that is a supported CAT command.
|
|
The definitions for the power level are similar to the notch in that the conversion
|
|
should be bilateral.
|
|
|
|
Another example using the FT-950 transceiver:
|
|
|
|
<pre>
|
|
<PWRLEVEL>
|
|
0,0; 100,100;
|
|
</PWRLEVEL>
|
|
|
|
<REPLY>
|
|
<SYMBOL>PWRLEVEL</SYMBOL>
|
|
<SIZE>6</SIZE>
|
|
<STRING>PC</STRING>
|
|
<DATA>
|
|
<DTYPE>DECIMAL</DTYPE>
|
|
<SIZE>3</SIZE>
|
|
</DATA>
|
|
<STRING>;</STRING>
|
|
</REPLY>
|
|
|
|
<COMMAND>
|
|
<SYMBOL>GET_PWRLEVEL</SYMBOL>
|
|
<SIZE>3</SIZE>
|
|
<STRING>PC;</STRING>
|
|
<INFO>PWRLEVEL</INFO>
|
|
</COMMAND>
|
|
|
|
<COMMAND>
|
|
<SYMBOL>SET_PWRLEVEL</SYMBOL>
|
|
<SIZE>6</SIZE>
|
|
<STRING>PC</STRING>
|
|
<DATA>
|
|
<DTYPE>DECIMAL</DTYPE>
|
|
<SIZE>3</SIZE>
|
|
</DATA>
|
|
<STRING>;</STRING>
|
|
</COMMAND>
|
|
</pre>
|
|
|
|
The rigCAT controls for
|
|
<ul>
|
|
<li>Transceiver-Mode</li>
|
|
<li>Transceiver-Bandwidth</li>
|
|
<li>Smeter</li>
|
|
<li>Power-Meter and</li>
|
|
<li>Power-Level</li>
|
|
</ul>
|
|
all share a common space on the main fldigi display.
|
|
<center>
|
|
\image html rigcat-1.png "Mode/Bandwidth controls"
|
|
\image latex rigcat-1.png "Mode/Bandwidth controls" width=2.0in
|
|
<br>
|
|
\image html rigcat-2.png "S-meter"
|
|
\image latex rigcat-2.png "S-meter" width=2.0in
|
|
<br>
|
|
\image html rigcat-3.png "Power-meter"
|
|
\image latex rigcat-3.png "Power-meter" width=2.0in
|
|
<br>
|
|
\image html rigcat-4.png "Power Level"
|
|
\image latex rigcat-4.png "Power Level" width=2.0in
|
|
</center>
|
|
<br>
|
|
The transition between Mode/Bandwidth and the other control/displays is
|
|
made using the button just to the right of the bandwidth control.
|
|
|
|
The transition from either S-meter or Power-meter to the Power Level is
|
|
make by left clicking on the S-meter or Power-meter.
|
|
|
|
\section debugging Debugging
|
|
|
|
To assist in debugging an xml file you may place the following statement
|
|
within the body of the <rigdef>...</rigdef> pair.
|
|
|
|
<DEBUG>true</DEBUG>
|
|
|
|
fldigi will then record critical events as they occur during the execution
|
|
of the rigCAT loop. Remove the debug statement from the xml when the
|
|
file has been proven and before publishing.
|
|
|
|
You can test an xml to observe the CAT send sequences by inhibiting the
|
|
actual connection to the serial port.
|
|
|
|
<NOSERIAL>true/false</NOSERIAL> - default false
|
|
|
|
The serial i/o events are normally recorded as a sequence of HEX values. This
|
|
behavior can be changed to record the events as a string of ASCII characters.
|
|
|
|
<ASCII>true/false</ASCII> - default false
|
|
|
|
You can use the xml remarks brackets
|
|
<pre>
|
|
\<!--
|
|
...
|
|
--\>
|
|
</pre>
|
|
to surround sections of the xml document to inhibit certain functions if
|
|
they have already been proven.
|
|
|
|
You can increase the polling interval to slow things down during debugging.
|
|
|
|
\ref rig_xml_page "Return to Top of Page"
|
|
<br>
|
|
\ref main_page "Return to Main Page"
|
|
|
|
*/
|