<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head> <meta content="text/html; charset=ISO-8859-1" http-equiv="content-type"><title>rigxml</title></head><body style="color: rgb(0, 0, 0); background-color: rgb(255, 255, 204);" alink="#000099" link="#000099" vlink="#990099"> <h1 style="text-align: center;">Rig Xml Howto</h1> <p>This document describes the contents of the rig definition file “rig.xml”. </p> <p><br> A number of transceivers have rig defintion files written and tested which you may use. These are found in the xmls directory on this site: <a href="../xmlarchives.html">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 w1hkj@w1hkj.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. </p> <p>Comments are contained within the tag pair </p> <p style="margin-left: 40px;"><!-<br> --> </p> <p>and may appear anywhere in the rig definition file The entire rig definition must be contained within the tag pair </p> <p style="margin-left: 40px;"><RIGDEF><br> </RIGDEF> </p> <p>The text within the tag pair <RIG></RIG> specifies the transceiver to which this file applies, as in: </p> <p style="margin-left: 40px;"><RIG>Icom 746 PRO</RIG> </p> <p>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: </p> <p style="margin-left: 40px;"><PROGRAMMER> <br> Dave Freese W1HKJ Tested by: W1HKJ, Dave <br> </PROGRAMMER> </p> <p>The text within the tag pair </p> <p style="margin-left: 40px;"><STATUS><br> </STATUS> </p> <p>is not used by the parser, but should as a minimum state whether the definition file has been “Verifed”, is “Alpha”, what the Version and Date of creation or update, as in: </p> <p style="margin-left: 40px;"><STATUS> Verified Version: 1.0 Date: 2007 Jan 5 </STATUS> </p> <p>The </p> <p style="margin-left: 40px;"><TITLE><br> </TITLE> </p> <p>tag pair contains the text which will be displayed on the window decoration bar, as in: </p> <p style="margin-left: 40px;"><TITLE>Rig Control - IC-746 PRO</TITLE> <br> </p> <p>The serial port parameters may be preset in the xml file and also set or changed on the rigcat configuration tab.<br> <!--<br> default settings for initial setup<br> --><br> </p> <table style="text-align: left; width: 100%;" border="0" cellpadding="2" cellspacing="2"> <tbody> <tr align="center"> <td style="vertical-align: top;">xml tag<br> </td> <td style="vertical-align: top;">parameter<br> </td> </tr> <tr> <td style="vertical-align: top;"><TIMEOUT>TT</TIMEOUT></td> <td style="vertical-align: top;">TT in milliseconds<br> </td> </tr> <tr> <td style="vertical-align: top;"><RETRIES>NN</RETRIES></td> <td style="vertical-align: top;">NN integer<br> </td> </tr> <tr> <td style="vertical-align: top;"><WRITE_DELAY>TT</WRITE_DELAY></td> <td style="vertical-align: top;">TT in milliseconds<br> </td> </tr> <tr> <td style="vertical-align: top;"><POST_WRITE_DELAY>TT</POST_WRITE_DELAY></td> <td style="vertical-align: top;">TT in milliseconds<br> </td> </tr> <tr> <td style="vertical-align: top;"><BAUDRATE>BAUD</BAUDRATE></td> <td style="vertical-align: top;">BAUD = 1200, 2400, 4800, 9600, 19200, 38400 ...<br> </td> </tr> <tr> <td style="vertical-align: top;"><STOPBITS>B</STOPBITS></td> <td style="vertical-align: top;">B = 1 or 2<br> </td> </tr> <tr> <td style="vertical-align: top;"><RTSCTS>BOOL</RTSCTS></td> <td style="vertical-align: top;">BOOL = true, false; h/w handshake used for data flow control<br> </td> </tr> <tr> <td style="vertical-align: top;"><RTSPLUS>BOOL</RTSPLUS></td> <td style="vertical-align: top;">BOOL = true, false; set RTS signal line to +12 V<br> </td> </tr> <tr> <td style="vertical-align: top;"><RTSPTT>BOOL</RTSPTT></td> <td style="vertical-align: top;">BOOL = true, false; toggle RTS signal line for PTT<br> </td> </tr> <tr> <td style="vertical-align: top;"><DTRPLUS>BOOL</DTRPLUS></td> <td style="vertical-align: top;">BOOL = true, false; set DTR signal line to + 12 V</td> </tr> <tr> <td style="vertical-align: top;"><DTRPTT>BOOL</DTRPTT></td> <td style="vertical-align: top;">BOOL = true, false; toggle DTR signal line for PTT<br> </td> </tr> <tr> <td style="vertical-align: top;"><ECHO>BOOL</ECHO></td> <td style="vertical-align: top;">BOOL = true, false; xcvr/interface echos all chars (typical of CI-V interface)<br> </td> </tr> <tr> <td style="vertical-align: top;"><CMDPTT>BOOL</CMDPTT></td> <td style="vertical-align: top;">BOOL = true, false; use command string for PTT (not supported by all rigs)<br> </td> </tr> </tbody> </table> <br> 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 specifiy what the data transfer consists of. The data transfer might be a single byte, multiple bytes, or aa string<br> <br> Example 1, for the Icom-746PRO<br> <MODES><br> <ELEMENT><SYMBOL>LSB</SYMBOL><BYTE>00</BYTE></ELEMENT><br> <ELEMENT><SYMBOL>USB</SYMBOL><BYTE>01</BYTE></ELEMENT><br> <ELEMENT><SYMBOL>AM</SYMBOL><BYTE>02</BYTE></ELEMENT><br> <ELEMENT><SYMBOL>CW</SYMBOL><BYTE>03</BYTE></ELEMENT><br> <ELEMENT><SYMBOL>RTTY</SYMBOL><BYTE>04</BYTE></ELEMENT><br> <ELEMENT><SYMBOL>FM</SYMBOL><BYTE>05</BYTE></ELEMENT><br> <ELEMENT><SYMBOL>CW-R</SYMBOL><BYTE>07</BYTE></ELEMENT><br> <ELEMENT><SYMBOL>RTTY-R</SYMBOL><BYTE>08</BYTE></ELEMENT><br> </MODES><br> <br> Example 2, for the Kenwood 850<br> <MODES><br> <ELEMENT><SYMBOL>LSB</SYMBOL><BYTE>31</BYTE></ELEMENT><br> <ELEMENT><SYMBOL>USB</SYMBOL><BYTE>32</BYTE></ELEMENT><br> <ELEMENT><SYMBOL>CW</SYMBOL><BYTE>33</BYTE></ELEMENT><br> <ELEMENT><SYMBOL>FM</SYMBOL><BYTE>34</BYTE></ELEMENT><br> <ELEMENT><SYMBOL>AM</SYMBOL><BYTE>35</BYTE></ELEMENT><br> <ELEMENT><SYMBOL>FSK</SYMBOL><BYTE>36</BYTE></ELEMENT><br> <ELEMENT><SYMBOL>CW-R</SYMBOL><BYTE>37</BYTE></ELEMENT><br> <ELEMENT><SYMBOL>FSK-R</SYMBOL><BYTE>39</BYTE></ELEMENT><br> </MODES><br> <br> Example 3, for the FT-100<br> <MODES><br> <ELEMENT><SYMBOL>LSB</SYMBOL><BYTE>00</BYTE></ELEMENT><br> <ELEMENT><SYMBOL>USB</SYMBOL><BYTE>01</BYTE></ELEMENT><br> <ELEMENT><SYMBOL>CW</SYMBOL><BYTE>02</BYTE></ELEMENT><br> <ELEMENT><SYMBOL>CW-R</SYMBOL><BYTE>03</BYTE></ELEMENT><br> <ELEMENT><SYMBOL>AM</SYMBOL><BYTE>04</BYTE></ELEMENT><br> <ELEMENT><SYMBOL>DIG</SYMBOL><BYTE>05</BYTE></ELEMENT><br> <ELEMENT><SYMBOL>FM</SYMBOL><BYTE>06</BYTE></ELEMENT><br> <ELEMENT><SYMBOL>W-FM</SYMBOL><BYTE>07</BYTE></ELEMENT><br> </MODES><br> <br> The modes which are supported by lower sideband in the transceiver are specified in the <LSBMODES></LSBMODES> tar pair. The string data for the lsb modes must match those given in the modes id specifier For example in the Icom 746 Pro:<br> <br> <LSBMODES><br> <STRING>LSB</STRING><br> <STRING>RTTY</STRING><br> <STRING>CW-R</STRING><br> </LSBMODES><br> <br> If the transceiver data stream uses identically the same format for the bandwidth data then it is specified in the <BANDWIDTHS></BANDWIDTHS> tag pair<br> <br> Example for the Icom 746 Pro:<br> <BANDWIDTHS><br> <ELEMENT><SYMBOL>50</SYMBOL><BYTE>00</BYTE></ELEMENT><br> <ELEMENT><SYMBOL>100</SYMBOL><BYTE>01</BYTE></ELEMENT><br> <ELEMENT><SYMBOL>150</SYMBOL><BYTE>02</BYTE></ELEMENT><br> <ELEMENT><SYMBOL>200</SYMBOL><BYTE>03</BYTE></ELEMENT><br> <ELEMENT><SYMBOL>250</SYMBOL><BYTE>04</BYTE></ELEMENT><br> <ELEMENT><SYMBOL>300</SYMBOL><BYTE>05</BYTE></ELEMENT><br> <ELEMENT><SYMBOL>350</SYMBOL><BYTE>06</BYTE></ELEMENT><br> <ELEMENT><SYMBOL>400</SYMBOL><BYTE>07</BYTE></ELEMENT><br> <ELEMENT><SYMBOL>450</SYMBOL><BYTE>08</BYTE></ELEMENT><br> <ELEMENT><SYMBOL>500</SYMBOL><BYTE>09</BYTE></ELEMENT><br> <ELEMENT><SYMBOL>600</SYMBOL><BYTE>10</BYTE></ELEMENT><br> <ELEMENT><SYMBOL>700</SYMBOL><BYTE>11</BYTE></ELEMENT><br> <ELEMENT><SYMBOL>800</SYMBOL><BYTE>12</BYTE></ELEMENT><br> <ELEMENT><SYMBOL>900</SYMBOL><BYTE>13</BYTE></ELEMENT><br> <ELEMENT><SYMBOL>1000</SYMBOL><BYTE>14</BYTE></ELEMENT><br> <ELEMENT><SYMBOL>1100</SYMBOL><BYTE>15</BYTE></ELEMENT><br> <ELEMENT><SYMBOL>1200</SYMBOL><BYTE>16</BYTE></ELEMENT><br> <ELEMENT><SYMBOL>1300</SYMBOL><BYTE>17</BYTE></ELEMENT><br> <ELEMENT><SYMBOL>1400</SYMBOL><BYTE>18</BYTE></ELEMENT><br> <ELEMENT><SYMBOL>1500</SYMBOL><BYTE>19</BYTE></ELEMENT><br> <ELEMENT><SYMBOL>1600</SYMBOL><BYTE>20</BYTE></ELEMENT><br> <ELEMENT><SYMBOL>1700</SYMBOL><BYTE>21</BYTE></ELEMENT><br> <ELEMENT><SYMBOL>1800</SYMBOL><BYTE>22</BYTE></ELEMENT><br> <ELEMENT><SYMBOL>1900</SYMBOL><BYTE>23</BYTE></ELEMENT><br> <ELEMENT><SYMBOL>2000</SYMBOL><BYTE>24</BYTE></ELEMENT><br> <ELEMENT><SYMBOL>2100</SYMBOL><BYTE>25</BYTE></ELEMENT><br> <ELEMENT><SYMBOL>2200</SYMBOL><BYTE>26</BYTE></ELEMENT><br> <ELEMENT><SYMBOL>2300</SYMBOL><BYTE>27</BYTE></ELEMENT><br> <ELEMENT><SYMBOL>2400</SYMBOL><BYTE>28</BYTE></ELEMENT><br> <ELEMENT><SYMBOL>2500</SYMBOL><BYTE>29</BYTE></ELEMENT><br> <ELEMENT><SYMBOL>2600</SYMBOL><BYTE>30</BYTE></ELEMENT><br> <ELEMENT><SYMBOL>2700</SYMBOL><BYTE>31</BYTE></ELEMENT><br> <ELEMENT><SYMBOL>2800</SYMBOL><BYTE>32</BYTE></ELEMENT><br> <ELEMENT><SYMBOL>2900</SYMBOL><BYTE>33</BYTE></ELEMENT><br> <ELEMENT><SYMBOL>3000</SYMBOL><BYTE>34</BYTE></ELEMENT><br> <ELEMENT><SYMBOL>3100</SYMBOL><BYTE>35</BYTE></ELEMENT><br> <ELEMENT><SYMBOL>3200</SYMBOL><BYTE>36</BYTE></ELEMENT><br> <ELEMENT><SYMBOL>3300</SYMBOL><BYTE>37</BYTE></ELEMENT><br> <ELEMENT><SYMBOL>3400</SYMBOL><BYTE>38</BYTE></ELEMENT><br> <ELEMENT><SYMBOL>3500</SYMBOL><BYTE>39</BYTE></ELEMENT><br> <ELEMENT><SYMBOL>3600</SYMBOL><BYTE>40</BYTE></ELEMENT><br> </BANDWIDTHS><br> <br> If the bandwidth data stream is unique for send and receive data streams then they are specified separately with the <BW-CMD></BW-CMD> tag pair for data sent to the transceiver, and the <BW-REPLY></BW-REPLY> tag pair for data returned to the computer.<br> <br> Example: FT-100:<br> <BW-CMD><br> <ELEMENT><SYMBOL>300</SYMBOL><BYTE>00</BYTE></ELEMENT><br> <ELEMENT><SYMBOL>500</SYMBOL><BYTE>01</BYTE></ELEMENT><br> <ELEMENT><SYMBOL>2400</SYMBOL><BYTE>02</BYTE></ELEMENT><br> <ELEMENT><SYMBOL>6000</SYMBOL><BYTE>03</BYTE></ELEMENT><br> </BW-CMD><br> <br> <BW-REPLY><br> <ELEMENT><SYMBOL>300</SYMBOL><BYTE>03</BYTE></ELEMENT><br> <ELEMENT><SYMBOL>500</SYMBOL><BYTE>02</BYTE></ELEMENT><br> <ELEMENT><SYMBOL>2400</SYMBOL><BYTE>01</BYTE></ELEMENT><br> <ELEMENT><SYMBOL>6000</SYMBOL><BYTE>00</BYTE></ELEMENT><br> </BW-REPLY><br> <br> Fldigi can parse and decode message returned from the transceiver that define 4 aspects of the transceiver operation:<br> <br> <table style="width: 70%; text-align: left; margin-left: auto; margin-right: auto;" border="1" cellpadding="2" cellspacing="2"> <tbody> <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> </tbody> </table> <br> These are all contained within multiple <REPLY></REPLY> tag pairs. 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:<br> <br> <REPLY><br> <SYMBOL>OK</SYMBOL><br> <SIZE>6</SIZE><br> <BYTES>FE FE E0 66</BYTES><br> <BYTE>FB</BYTE><br> <BYTE>FD</BYTE><br> </REPLY><br> <br> The <SYMBOL></SYMBOL> pair and the command defnition 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:<br> <br> <REPLY><br> <SYMBOL>OK</SYMBOL><br> <SIZE>6</SIZE><br> <BYTES>FE FE E0 66 FB FD</BYTES><br> </REPLY><br> <br> 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> <br> BINARY or<br> DECIMAL<br> <br> This is an example for the reply to a mode query that is returned by the Icom-746 PRO:<br> <br> <REPLY><br> <SYMBOL>MODE</SYMBOL> specifies the response name<br> <SIZE>8</SIZE> 8 bytes of data returned<br> <BYTES>FE FE E0 66</BYTES> 4 bytes of preamble<br> <BYTE>04</BYTE> 1 additional byte for preample<br> <DATA><br> <DTYPE>BINARY</DTYPE> binary data field of 1 byte<br> <SIZE>1</SIZE><br> </DATA><br> <FILL>1</FILL> a variable field (data) not used<br> <BYTE>FD</BYTE> 1 byte postamble<br> </REPLY><br> <br> Fldigi rigcat will check for both the preample and postamble to insure that a valid reply has been sent by the transceiver.<br> <br> </body></html>