User Guide
    Section 1. Overview 
 89
usually remain unchanged, even though the new device may be very different from the 
old one. 
The features of a driver that implement a device control language completely shield an 
application developer from the complexities of device-specific functionality. 
LANGUAGE OVERVIEW 
The device control language is text based and designed to utilize the read and write file I/O 
facilities of the underlying operating system. All commands, their responses and properties 
consist of text strings that are written to or read from the driver using basic file I/O. The control 
language is based on a property/command model that is similar to the notions of properties and 
methods as accepted in environments such as Visual Basic or Delphi. 
Properties 
All properties are accessed in a uniform way: by using a 
get (/get prop) or set(/set prop) 
command. Properties are either read/write or read only. A set command with a read only 
property will fail. All properties are identified by a string name and use strings for their 
arguments. Properties defined by the control language fall into the following three groups: 
•  Capability properties – These properties contain information about the capabilities of a 
particular device and are generally read only. They allow an application to query a 
device’s capabilities to determine if the device is suitable for a particular task. Included 
in this category are 
c_cardwpin, c_check, c_pin, and c_magnetic (e. g., /get
c_check
). 
•  Configuration properties – These properties configure a device for different modes of 
operation or may alter the way some commands behave. Because of this, they are usually 
readable and writable. They give an application the ability to set up a device for a particular 
task that requires a specific, non-default mode of operation. Included in this category are 
capitalize, dev_version, and port_name (e.g., /set capitalize 1). 
•  Device-specific properties −These properties cover configuration requirements that are 
not common among MagTek devices, even if the devices belong to the same class. An 
application can determine if a particular set of device-specific properties is available by 
first querying the device’s capabilities or version. Refer to Appendix D, Device Driver 
Summaries, for a particular driver to see how these properties are affected with an 
individual device. 
Properties can be “action” properties. That is, the driver may execute an action on the device 
when a property is set. For example, an application can enable or disable magnetic stripe tracks 
by setting the 
trk_enable property. The driver responds by sending one or more commands to 
the device to enable or disable the desired tracks. 










