User Guide
MagTek Device Drivers for Windows   
 90
COMMANDS 
Like properties, commands are identified by a string name and have string arguments. All 
commands are terminated by line feed <LF> or a carriage return. To invoke a command, an 
application simply writes it to the driver in the same manner as writing to a file or serial port. If 
the command has a response defined for it, the application reads it from the driver using the same 
I/O handle as in the write. 
Four types of commands are defined by the device control language: 
•  Non-interactive – These commands manipulate the device without requiring any 
interaction with the user. The property commands 
get and set, reset and ver are 
examples of this type. 
•  Interactive – These commands interact with the user. They do not necessarily require the 
user to do anything but may only prompt the user to do something. 
display is an 
example of such a command. Others, such as read or write, however, require user 
interaction to complete. For example, the user must either swipe a card or cancel the 
operation in order to complete a read command. 
•  Device-specific – These commands give access to device-specific features. For example, 
the 
load_key command is available for MagTek devices that use keys to encrypt data 
before sending it to the host. 
•  Raw – These are effectively escape commands. They allow the application to bypass the 
driver to perform device-specific operations that are not included in the driver syntax and 
not supported elsewhere. With these commands, an application has no limitations on the 
amount of control it has over a device. The raw commands can be formatted exactly as 
specified in the device documentation. The command bracketing will be inserted by the 
driver if required (e.g., <stx> and <etx> will be inserted for certain devices). Three 
commands are defined for this type: 
rawsend and rawrecv, used to send and receive 
data directly to the device, and 
rawxact, a transactional version that is a combination of 
the first two. 
A small set of interactive and non-interactive commands is all that is required for an application 
to perform the most common tasks with these devices. Device-specific or raw commands should 
rarely ever be needed. 










