CWX TCP/IP API Details

  • 2
  • Idea
  • Updated 5 years ago
I've been asked for this a few times so here it is in the CWX TCP/IP API details:

Note that if you want to send a space "cwx send  " will not work -- you should send the ASCII character 0x7F in lieu of a space and it will be properly translated. 

Command Interface
  • cwx send <string> [<block>] appends the string to the buffer, optional block for client reference
    • response will be either character_index or character_index,block if a block is provided
  • cwx clear clears the buffer contents
    • response is the range of characters removed from the buffer
  • cwx wpm <speed> changes the speed of the CW for CWX
  • cwx delay <ms>
  • cwx erase &lt;#chars&gt; remove #chars from end of buffer
    • response is the range of characters removed from the buffer
  • cwx macro save <macro #> "<text>" save a macro with the text provided
  • cwx macro send <macro #> [<block>] send the macro previously saved
    • response will be either character_index or character_index,block if a block is provided
Status interface

S<handle>|cwx sent=<character_index> character_index indicates which character from the previously referenced character indexes have been just sent
S<handle>|cwx wpm=<wpm> break_in_delay=<ms> sent anytime wpm or delay are changed
S<handle>|cwx macro<macro#>="text" provide contents of macros at startup
S&lt;handle&gt;|cwx erase_start=&lt;start&gt; erase_stop=&lt;stop&gt; indicates erasure of indexes start to stop in the buffer (will not be sent)

Note: You must sub cwx all in order to get these status messages

Prosigns
  • To insert Prosign BT use =
  • To insert Prosign AR use +
  • To insert Prosign KN use (
  • To insert Prosign BK use &
  • To insert Prosign SK use $
Photo of Steve - N5AC

Steve - N5AC, VP Engineering / CTO

  • 1057 Posts
  • 1097 Reply Likes

Posted 5 years ago

  • 2
Photo of Bob Wright, N7ZO

Bob Wright, N7ZO

  • 279 Posts
  • 76 Reply Likes
Steve,

This looks like a very nice interface with clearing and speed changes.  The main thing I see missing is an escape sequence to allow the user to build their own prosigns.

Does the .NET API support this functionality?
Photo of Steve - N5AC

Steve - N5AC, VP Engineering / CTO

  • 1057 Posts
  • 1097 Reply Likes
Yes the same functionality is available in the .NET API (FlexLib).  We wanted to do a "\SK" type of escape to build your own prosigns, but this didn't make it in v1.3.
Photo of Al / NN4ZZ

Al / NN4ZZ

  • 1853 Posts
  • 672 Reply Likes
Steve,
I believe currently the only CWX CAT command is KY for sending text.  Will there be any additional CAT commands such as:

- Set the CWX speed
- Send one of the saved macros (i.e. the text saved as an  Fkey )

Or is this level of control only going to be available from the API?

Regards, Al / NN4ZZ  
al (at) nn4zz (dot) com 
Photo of Steve - N5AC

Steve - N5AC, VP Engineering / CTO

  • 1057 Posts
  • 1097 Reply Likes
Only if they are supported in a larger community (they are common on many other radios).  We want folks to move away from CAT because it is such a poor excuse for an interface.
Photo of Al / NN4ZZ

Al / NN4ZZ

  • 1853 Posts
  • 672 Reply Likes
Steve,
Ok thanks, got it,  I can see where there might be some interest in users being able to trigger one of the saved macros from something like DDUtil.  If a few of the logging programs add support the API that would be a better move all the way around.   

On a related note, I'm hoping Ed will support Log4OM in the SDR-BRIDGE.  It looks like a good program with a better chance of API support than some of the other general purpose loggers.

Regards, Al / NN4ZZ  
al (at) nn4zz (dot) com
Photo of Bob Wright, N7ZO

Bob Wright, N7ZO

  • 279 Posts
  • 76 Reply Likes
I am reminded of the old adage "If wishes were horses...".  :-)   CAT may be a poor interface, but it is ubiquitous.

With the current CAT interface, I will still need my external K1EL Winkeyer to get the needed functionality with N1MM or N1MM+ for contesting.  Is N1MM likely to add support for the FlexLib interface in the near future?

Adding a bit of extra functionality to the CAT interface (expecially where it emulates the K1EL Winkeyer) would allow them to use CWX now (or at least very quickly).
(Edited)
Photo of Ned K1NJ

Ned K1NJ

  • 319 Posts
  • 83 Reply Likes
   Right now-  are there loggers that will key the 6000 directly from their text buffers without
using external hardware (K1EL) or software interfaces (N4PY) or using the N1MM keying
macros, CAT1ASC, etc.?
   While the N1MM macros work with at least two loggers, (N1MM, MIXW), they may not work with loggers that use simple text buffers.  E. g., N3FJP worked with PSDR.   PSDR had a CWX
facility.  It used CAT to send text to a cw keying port defined by PowerSDR.  Most loggers use
CAT, and pick up band, frequency, and mode, just not necessarily the Flex-keying compatible
CAT.

    Yes, I know PSDR did the CW and that the CW engine is internal within the 6000.  I'm
just providing some background.

     Is this the end of the line for logger-keying compatibility or just a temporary resting point in
development?

Ned,  K1NJ
Photo of Tim - W4TME

Tim - W4TME, Customer Experience Manager

  • 9197 Posts
  • 3557 Reply Likes
SmartSDR has CWX and the KY CAT command for a logger to send text to the radio to be sent as CW as of v1.3.0
Photo of Ned K1NJ

Ned K1NJ

  • 319 Posts
  • 83 Reply Likes
         Right.  I can't figure out how to make that work with a logger that doesn't support the
N1MM command "CAT1ASC" as in CAT1ASC KY W4TME.

Ned,  K1NJ
Photo of Ned K1NJ

Ned K1NJ

  • 319 Posts
  • 83 Reply Likes
     Sounds good, Steve.  Come to think of it, this would be a good way to do it
once remote LAN operation is in place.  A hardware keying device at the 6000
site, away from the remote PC could be awkward.  Perhaps we should start a
"Winkey Interface"  subject in order to gather support for your idea.

Ned,  K1NJ
Photo of Ken - NM9P

Ken - NM9P

  • 4239 Posts
  • 1351 Reply Likes
You can give us simple access to CW from legacy logging programs like N3FJP by implementing direct keying through a virtual serial port (by toggling the RTS or DTR lines) like the dedicated PTT port does. That would make keying weight, speed and timing issues dependent upon the individual routine in the logger, (not optimal) but it would be functional until the writers change their programs to allow sending the KY command strings.

Since N3FJP has been my main logging program for about 15 years, I would like to see this. I am starting to move to N1MM plus for contesting, but for normal operations and W1AW hunting, I still use N3FJP's ACLog.
(Edited)
Photo of Ned K1NJ

Ned K1NJ

  • 319 Posts
  • 83 Reply Likes
  Ken,
        After looking into a few loggers, it doesn't seem likely that the authors
are about to accommodate "KY".  On the other hand, most offer a Winkey
interface and Steve is saying that Flex is considering that method.  We should
support that effort.  It seems to do the most good for most the loggers.  I've
been in touch with the N3FJP folks and they maintain that the only way they
know to interface the 6000 with their product is a hardware interface. They
gave no indication of any desire to change the software.
     However, a  COMX-COM1X[key dtr] SmartCAT port would do it for me too.

Ned,  K1NJ
(Edited)
Photo of Ken - NM9P

Ken - NM9P

  • 4239 Posts
  • 1351 Reply Likes
I have also suggested, prodded, etc, a simple "key DTR/RTS" port since before the early release of the 6000's.  PowerSDR has it and I used it on my Flex 1500 until I got all the buffers/latency/timing sorted out to the point I could get good keying with the 1500.   

But I would welcome a simple Winkey emulator port, as a potentially superior alternative if that will work.  It should send better CW than the DTR/RTS keying method, because it would not be limited to the timing routines in the logging program.  

Either way, I hope that one or other option is forthcoming.

N3FJP has his hands full keeping his excellent logging and contesting up to date in other arenas.  Since it is a husband and wife operation done in their spare time, I understand his time priorities.  He simply doesn't have the time to rewrite a whole new code routine into the line to allow KY functions, API interfacing, and virtual sound card access for voice keyers.  All of which I would dearly love to see in his software.  But any changes he makes would need to be reprogrammed into every single one of his many stand-alone contest logging programs.  This would take forever for a spare-time operation!
Photo of Stan - VA7NF

Stan - VA7NF

  • 469 Posts
  • 118 Reply Likes

Remote CW has been my nag since the initial public release and I recognize the exposure for bad character formation with DTR/RTS keying.

So, if WinKeyer protocol can be supported by Flex and the loggers (N1MM in my case) then I'm in as well.  **always a but** But I'm not a keyboard CW fancier.

Does this solution handle a remote key/bug/paddle connection?  A V2 of the FlexControl with keying support has been previously suggested.  Or a paddle to USB cable with key/paddle inline switch and sidetone generator?

Stan