4.2   Protocol Overview

The WTX protocol permits a number of tools running on a host system to communicate with one or more host-based target servers, in order to operate on targets running VxWorks (see Figure 4-1).Target servers can also connect to VxSim, a target simulator. A target server can connect to only one target, but a tool can connect to more than one target server at a time, allowing multi-processor application development.   

4.2.1   Language Support

The WTX protocol is usually accessed by Tcl commands or C functions rather than directly (see Figure 4-2). Introductory material for protocol and language bindings is presented in 4.4 WTX Tcl API and in 4.5 WTX C API. Tornado provides a Tcl interpreter and 4.4 WTX Tcl API offers many interactive examples. You may want to work through the Tcl examples to become familiar with WTX even if you plan to program primarily in a compiled C environment.

The WTX Java API provides a set of Java classes permitting access to the WTX protocol services. It is built on top of the WTX C API using the Java Native Interface. Use this interface to create tools that access the target server or the Tornado registry when Java is the implementation language. This API is unsupported. It can be downloaded from the Wind River System WEB server (www.wrs.com).    

The online reference material under Tornado API Guide>WTX Protocol, WTX Tcl Library, and WTX C Library gives detailed descriptions of WTX services, error messages, and API parameters.

4.2.2   WTX Protocol Usage

The WTX protocol provides the interface between the tools and the target server. A tool requests information or an action of the target server, WTX conveys that request, and the target server makes an appropriate response. Figure 4-3 is a schematic representation of a series of interactions between WindSh (a tool) and the target server, showing how WTX commands fit into the process.      

4.2.3   WTX Message Format

All WTX messages are defined in installDir/host/include/wtxmsg.h. Their names are prefixed with "WTX_MSG_". They all contain a WTX_CORE structure (shown below) which carries the identifier of the tool making the request and an errCode field. The errCode contains OK (0) when the call succeeds or an error status code (a value other than 0) when the call fails. The error status corresponds to the errno set by the server. The error status values are defined in installDir/host/include/wtxerr.h.

typedef struct wtx_core                 /* WTX message core */ 
    { 
    UINT32       objId;                 /* identifier */ 
    WTX_ERROR_T  errCode;               /* service error code */ 
    UINT32       protVersion;           /* WTX protocol version */ 
    } WTX_CORE;

4.2.4   Debugging WTX Tools

The target server option -Wd filename is designed to simplify debugging WTX tools. This option causes all the WTX messages exchanged between the connected tools and the target server to be written to the specified file. A sample file is as follows:

User Name                 : chrisc 
Started                   : Fri Jan  8 17:59:37 1999 
Target Server Name        : t80-202@couesnon 
Target Name               : t80-202 
Target Server Options     : tgtsvr.ex -V -Wd /tmp/WTXtrace t80-202  
Host                      : SunOS couesnon 5.5.1 Generic_103640-12 sun4u 
 
0       8    WTX_TOOL_ATTACH                        Fri Jan  8 17:59:48 1999 
    In 
        WTX_MSG_TOOL_DESC 
            WTX_CORE 
                objId             0x0 
                errCode           0 
                protVersion       0 
            WTX_TOOL_DESC 
                id                0x0 
                toolName          wtxtcl 
                toolArgv          Unknown 
                toolVersion       Unknown 
                userName          chrisc@couesnon 
                pReserved         Unknown 
                next              Unknown 
    Out status          Ok 
        WTX_MSG_TOOL_DESC 
            WTX_CORE 
                objId             0x0 
                errCode           0 
                protVersion       0 
            WTX_TOOL_DESC 
                id                0x1a5278 
                toolName          wtxtcl 
                toolArgv          Unknown 
                toolVersion       Unknown 
                userName          chrisc@couesnon 
                pReserved         Unknown 
                next             Unknown