Also note that in the QCX+, CW is always decoded, even if it is not configured for display on the
QCX's own display; therefore decoded CW over the CAT interface is independent of whether or
not it is being shown on the QCX+.
CAT Limitations
The QCX CAT implmentation is necessarily limited due to the relatively meagre resources
available on the ATmega328 processor. Aside from the limited (but powerful) command set, which
is a subset of TS-480 protocol, plus some QCX-specific commands, you may also need to be
aware of the following limitations on buffer sizes.
Incoming CAT command
characters go into a 128-character circular buffer to be processed by
QCX. If you overflow this buffer further incoming characters are simply ignored, and this will result
in a ?; error code returned to the CAT host.
CAT Command buffer
is a 85 characters long linear buffer and is the maximum size of a single
command in the incoming CAT command bufffer. If multiple commands are concatenated together
and sent in one continuous string, the maximum length of each individual command is 85
characters. Each single command is copied out of the incoming CAT command buffer into the
CAT command buffer, and the commands processed one by one.
Message transmit buffer
is an 80-character circular buffer, used by the KY command, to send
messages to the QCX to be transmitted. Any attempt to send text which would overflow this buffer
is supressed and simply returns the ?; error result code.
Decoded CW
is stored in a 40-character linear buffer. It is retrieved from QCX using the TB;
command. The TB; query returns the whole contents of the buffer, which may be up to 40
characters (if it is full). If the buffer is left full without collecting its contents, newly decoded
characters are not put in the buffer, they are simply lost.
CAT result buffer
is a 120-character circular buffer that holds the output of a CAT query
command, ready to send back to the CAT host over the serial port. If the buffer becomes full,
further CAT command results are simply discarded.
These limitations on the buffer sizes mean that if you send a LOT of CAT commands too quickly
and don’t wait for the results – you are likely to overflow the buffers. The QCX won’t crash but
you’ll get back the ?; error code or in perhaps unexpected erroneous results.
Another limitation is that the CAT serial port is shared with the LCD data pins, necessarily due to
the limited number of processor I/O pins. When the QCX has started communicating with the CAT
host over the CAT serial port, the LCD is made to wait until all CAT communication has
completed. If the processor is writing to the LCD at the time the CAT host tries to issue a
command to the QCX, then the QCX will most likely receive a partial command which will result in
an error code ?; whereupon the CAT host would normally simply re-issue its command.
QCX operating manual, firmware 1.07, manual edit 0.03
50