The information contained in this document has been carefully checked and is
believed to be reliable. However, no responsibility can be assumed for inaccuracies
that may not have been detected.
CATC reserves the right to revise the information presented in this document
without notice or penalty.
Trademarks and Servicemarks
CATC is a trademark of Computer Access Technology Corporation.
All other trademarks are property of their respective companies.
Copyright
Copyright 2001, Computer Access Technology Corporation (CATC). All rights
reserved.
This document may be printed and reproduced without additional permission, but
all copies should contain this copyright notice.
Request definition (.req) files are used to configure decoding of class- or vendorspecific data of any protocol defined for USB. A .req file is a set of instructions that
contains definitions that describe, in USB-specific terms, how to take blocks of data
and break them into fields with consecutive decoding of each field. The data being
decoded can be data in a USB Device Request, or any formatted data that is sent on
an Interrupt or Bulk endpoint of a USB device.
The request definition files are text-based files that are identifiable by their .req extension. Customized decoding of USB requests is possible by editing files or
creating new definition files. This document describes the components of a .req file
and the format for writing or editing a .req file.
Please refer to the Universal Serial Bus Specification, version 1.1 for details about
USB protocol. The USB specification is available from the USB Implementers
Forum (USB-IF) at http://www.usb.org/.
This section describes the basic entries that comprise a .req file.
Note: There must be no white space in between keywords and the equal sign (=) ;
for example: GroupName=. However, it is permissible to put white space
between values and the equal sign; e.g., GroupName= Class or 0x00 = RequestName. In the case of keywords that require parentheses fol-
lowed by an equal sign, there must not be white space on either side of the paren-
theses: Request(...)=.
Defines
The Defines keyword is an optional entry that is used to associate a numeric
value with a text string. Once the association is set up, those values can be referred
to by name in the request definitions. The Defines definition uses the following
The GroupName entry defines the name for the group of requests described in the
file. This name also appears in the SETUP field's request decoding context menu.
For example,
GroupName=Imaging Class
shows up in the context menu this way:
Figure 1: GroupName entry appears in SETUP context
menu
GroupType
The GroupType entry defines the type of requests in the file. There are three (3)
possible settings for the GroupType entry: GroupType=Standard, GroupType=Class, and GroupType=Vendor.
GroupType=Standard
A set GroupType=Standard requests defines the standard USB requests. Note
that in the case of defining standard USB requests, there can be only one .req file.
CATC supplies the standard request definitions in the file standard.req.
GroupType=Class
GroupType=Class indicates that the file defines a set of class-specific USB
requests. This group type also requires a ClassCode entry, which specifies the
defines the Human Interface Device (HID) class code.
GroupType=Vendor
GroupType=Vendor indicates that the file defines a set of vendor-specific USB
requests. This group type also requires VendorID and ProductID entries.
These values are used to uniquely identify the Vendor Decoding group when it is
associated with Request Recipients in a trace file. The value for VendorID is the
assigned vendor ID. The value for ProductID doesn't actually have to match the
real product ID for the device. For example:
GroupType=Vendor
VendorID=0x0423
ProductID=0x000D
AllRequests
The AllRequests keyword is used to specify the bRequest values for all of
the requests described in the .req file. The AllRequests definition uses the
following format:
AllRequests=
{
<bRequest>=<RequestNameString>
...
}
The value bRequest is is the USB-assigned value, and is represented numerically.
RequestNameString is the textual representation of bRequest. It also rep-
resents the name of the request that will appear in the Request Decoding dialog. For
example:
AllRequests=
{
0x00=REQUEST_NAME_0
0x01=REQUEST_NAME_1
}
Note: it's not necessary for the numeric bRequest values to start from zero or to
increase sequentially. In addition, the numeric values may be in decimal or hexadecimal.
Request(...)
Request(...) defines a request listed in the AllRequests entry. Request
The possible values for wValue are represented numerically. The meanings are
generally represented as text strings. WordValue entries work similarly to if-then
statements: if wValue matches a wValue value in the WordValue list, then the
meaning will appear in the wValue trace field. If the value of wValue doesn't
match a value in the list, then, by default, its numeric value will be displayed in the
wValue trace field. However, this default can also be overridden with a different
type of decoding -- a FormatValue entry (see “FormatValue” on page 8 for
details) or a Bitmap entry (see “Bitmap” on page 11 for more details).
The following example comes from the wValue entry of the hub.req
SetFeature request definition. The figure shows the output that results when
wValue is 0x0008.
WordValue={
0x0001=PORT_ENABLE
0x0002=PORT_SUSPEND
7
Loading...
+ 25 hidden pages
You need points to download manuals.
1 point = 1 manual.
You can buy points or you can get point for every manual you upload.