TransCore 76007 FHSS TRANSCEIVER MODULE User Manual 3
TransCore FHSS TRANSCEIVER MODULE 3
Contents
- 1. Users Manual
- 2. User Manual 1
- 3. User Manual 2
- 4. User Manual 3
- 5. User Manual 4
User Manual 3
2.0 Getting Started 7. The millisecond delay box will activate. In this dialog you can specify zero or more conditions that should be met for a data string before it is edited by the wizard rules. If a data string doesn’t meet the conditions and the check box Filter Data Strings is checked, the data string is filtered. If the check box is cleared, the data string is sent to the receiving application unmodified. If you specify a length condition, any data strings shorter or longer will not be modified by the wizard rules. You can enter texts that should be present in the data string. Entering 00 in the At Start field will check for 00 in the beginning of the data string. Then any string that starts with something else will not meet the condition. 3. Click the Next button when you are done. 8. Set the desired millisecond delay by either using the up or down arrows, or by entering a number directly in the box. 2.9.4.3.1 4. The Wizard – Strip window will open. Wizard Enable the user to define a simple setup that matches and modifies a data string. The wizard consist of four different parts, Trig, Strip, Replace, and Add. It is only intended to be used for very simple tasks. For more advanced tasks, you need to use the scripting language. To start the wizard: 1. Tap on the Wizard button. 5. Select one of two choices: 2. The Wizard – Trig window will open. • 41 Stripping a certain number of characters at the start and/or the end of the data string, or 2.0 Getting Started • 8. Tap the Next button. Removing one or more texts at the indicated positions of the data string. 9. The Wizard – Add window will open. For example, if 00 is specified in the field At Start and the data string is 0012345, the resulting output will be 12345. However, if the data string is 9912345, nothing will be removed from the start of the data string. This window allows the user to enter texts that need to be added to the data string at the start or the end. If all fields are left empty, no text will be stripped from the data string. 6. Tap the Next button. 10. When text entry is complete, click on the Finish button. 7. The Wizard - Replace window will open. 11. The Freefloat Link*One Wizard Script window will appear. 12. Tap the Yes button to confirm that a wizard script should be created. NOTE: This window allows the user to enter up to three text replacements. Enter the text to be replaced in one of the Search for fields, and then enter the text to replace it with in the corresponding Replace with field. The wizard script is a Lua script and can be modified manually afterwards if, for example, the need to add more advanced conditions or modifications arises. NOTE: 42 The wizard script is overwritten each time the wizard is run. 2.0 Getting Started 2.9.4.3.2 Tap the OK button to save all changes. Edit Script Opens the Link*One script. The name of the script file is Script.txt and it is opened in the associated program, normally Notepad. To edit a script: 1. Tap the Edit Script button. 2.9.4.4 Misc Tab 2.9.4.4.1 Use Log File 2. A Notepad window will open. 3. Edit the script as desired. 4. When finished, tap File > Save to save the script. If all the internal messages and events in Link*One are to be written to a log, check the setting Use Log File, and enter a valid path and filename in the edit box. The log file is mostly used for troubleshooting a script. Alternatively, the text editor SciTE knows the syntax of Lua. It might be useful when writing Link*One scripts. 2.9.4.3.3 Browse Script Folder Opens Windows Explorer in the folder that contains the script, configuration, and the license file. For more information about scripting in Link*One, see the topic Link*One Scripting. • To hide Link*One’s main window on startup, check On Startup in the Hide Window area. • To hide Link*One’s main window when serial data is received, check On Incoming Data in the Hide Window area. When a value greater than 0 is entered into onTimer Interval, the script method onTimer() will be called once during the specified time interval. For example: if you enter the value 3000, onTimer() will be called once every third second. Please take care when choosing a value here, if 1 ms is entered, onTimer() will be called 1000 times per sec43 2.0 Getting Started ond. This could make a PC unresponsive. Of course this will be highly dependant on what code the onTimer() method contains. To remove a password: 1. Tap the Set Password button to open the Set Password window. When the option Autostart is checked, Link*One will start automatically when Windows is launched. Link*One will then be started with the profile for which Autostart was activated . If there are two profiles—one serving COM1 and the other serving COM2—Autostart can be checked for each of those profiles. One instance of Link*One will be started at login for every profile that has Autostart checked. 2.9.4.4.2 Set Password Allows the user to set a password that is required when exiting Link*One and when clicking on the Settings... button in the main window. To set a password: 1. Tap the Set Password button. 2. Delete the text in the Password box. 2. Enter a password into the Password box. 3. Tap the OK button. 3. Tap the OK button to save the password. 2.9.4.4.3 Settings Location A Link*One configuration consist of mainly two parts, the settings (serial port configuration, hot keys, etc.) and the script file(s). The settings are file-based to enable different users on the same PC to share the same Link*One configuration. The configuration is stored in the file Config.dat. Do not edit this file manually. To determine where script and configuration files are located, click on the Browse Script Folder button in the Data Editing tab of the Settings window. 44 2.0 Getting Started 2.10 Link*One Scripting 2.10.3 2.10.1 When things happen in Link*One, for example a hot key or a data string is received on the serial port, an event is generated. This results in a script method being called. The methods called when events happen are called event methods. Overview Link*One has an embedded script language called Lua. When Link*One receives data from a device, a hot key is pressed etc. certain methods in the script are called. The code in these scripts determines what action is taken. Script Events The table below is an overview and short description of all the different event methods. For a more detailed explanation, see the topic Event Methods below. The name of the script file is Script.txt and is placed in the Link*One application data folder. The location of this folder varies depending on what operating system you are using. If you need to make a backup of the script or copy it to another PC, click on the Browse Script Folder... on the Misc tab in the Settings dialog. Windows Explorer is opened and displays the contents of the script folder. Event Handler When you edit the script, remember to restart Link*One to recompile the script or use the faster alternative of entering the Settings dialog and then exiting it. If you make a mistake, for example create a syntax error, an error message is displayed when the script is compiled: onStart Link*One is started onEnd Link*One is exited onData A data string is received on the serial port onHotKey A hot key is pressed onKeyboardCapture A data string is received from a HID device onExternalData A data string is received from an external application onTimer The timer interval has elapsed onCTS Status change on CTS onDSR Status change on DTR onRI Status change on RI onDCD Status change on DCD 2.10.4 Also, some errors can appear when the script is running, so called runtime errors. Here are a couple of examples: When Called Event Methods In this topic all the event methods are explained in detail. 2.10.4.1 onStart() This method is called when Link*One is started. It is also called when you exit the Settings dialog. This method receives no arguments. Example: Beep on start 2.10.4.2 onEnd() Called when Link*One is exited. It is also called when you enter the Settings dialog. This method receives no arguments. 2.10.2 Lua Language Example: Beep on exit From http://www.lua.org/about.html: Lua is a powerful, fast, light-weight, embeddable scripting language. Lua combines simple procedural syntax with powerful data description constructs based on associative arrays and extensible semantics. 2.10.4.3 Put simply, Lua is what makes data processing in Link*One very flexible and powerful. The reference manual for Lua can be found at the Lua site: onData(data, length) Called when a data string is received from the serial port. This method receives the data string in data and the length of the string in length. http://www.lua.org/ There is also a printed book on the Lua language, called Programming in Lua, which is more accessible than the reference manual. Data may contain binary characters including the null character. Please note that if the Data String Termination is set to be a character and that character does not match the terminator used by the serial device, this method is never called. Apart from Lua and its built-in language, Link*One exposes a number of useful methods to the script. 45 2.0 Getting Started 2.10.4.5 Example: Hex dump of serial data onKeyboardCapture(name, data) Called when a keyboard capture string has been received. The arguments to this method are the name of the keyboard capture and the data. Example: Display the name and data of a keyboard capture event If you have a keyboard captured defined called My USB Scanner and it captures the string 73105541 the method in the above example will display this dialog: 2.10.4.6 onExternalData(data, length) Called when an external application sends data to Link*One. The arguments are the received data and the length of it. To test the above example, copy and paste the code into the script replacing the default implementation of onData(). Use Timeout as the Data String Terminator. Connect a serial device to the serial port and make it generate some data. Below is the output when reading a barcode containing “W1711010814107013621” using a serial barcode reader: External applications can send data to Link*One. They do it by finding the window handle of Link*One’s window and then send a WM_COPYDATA message to the window. Example: Display data and length sent to Link*One from an external application The last character 0d (hexadecimal) is the same as 13 in decimal notation. The ASCII character with code 13 is carriage return. This means the barcode reader is using carriage return () as its data string terminator. 2.10.4.4 onHotKey(name) This feature makes it possible to create an application that integrates tightly with Link*One. For example, the code in onExternalData() could relay the data to a scanner to make it beep, initiate a scan, configure it etc. This method is called when you press a hot key. The argument to this method is the name of the hot key that was pressed. Example: Message box displaying the hot key’s name 2.10.4.7 onTimer() Called periodically at the specified timer interval. This method receives no arguments. When executed, the above method will display a message box with the name of the hot key: 46 2.0 Getting Started In the example above, the onTimer Interval has been set to 3000 milliseconds (3 seconds). This means that the onTimer() script method will be called once every three seconds. Windows Method This method can be used for adding timeout logic to a solution. Example: Output a time stamp to the active application at the onTimer interval 2.10.4.8 onCTS(status) This method is called when the hardware handshake signal changes state. Description enumWindows Enumerates all windows findWindow Finds a window with the specified title and/ or class getForegroundWindow Gets the handle of the foreground window getWindowClass Gets the class name of a window getWindowText Gets the title of a window setForegroundWindow Sets a window to be the foreground window setWindowText Sets the title of a window windowOperation Executes a window operation The argument status is true when the signal goes high and false when the signal goes low. Clipboard Method Description This description also applies to onDSR, onRI, and onDCD. getClipboardData Gets the text on the clipboard Example: Outputs the state of CTS when it is changed setClipboardData Sets the text on the clipboard Application Launch 2.10.5 Method Description closeAppHandle Closes the application handle isAppRunning Determines if an application is still running run Starts a program Script Methods Serial Port Method Lua is a generic script language and has methods to manipulate string, tables, files, and so on. However, it does not contain any methods to retrieve the title of a window, simulate keys etc. So in order to activate an application window, send key strokes and similar operations, a number of internal methods in Link*One have been exposed to the embedded Lua script engine. The tables below offers an overview of the methods. The methods have been grouped into areas of interest for easier reference. Below the tables there is a reference section with a detailed description of each method. Description closePort Closes the serial port getDTR Gets the status of the DTR signal getRTS Gets the status of the RTS signal openPort Opens the serial port setDTR Sets the status of the DTR signal setRTS Sets the status of the RTS signal When these methods are used in a script, you need to prefix them with “app.”, for example app.sleep( 100 ). Miscellaneous Method Output/User Feedback Description ean128 Parses the contents of a GS1-128/UCC/EAN128 code Beeps with the internal PC speaker exit Exits Link*One blinkIcon Changes the color of the notification area icon exitWindows Either logs off the current user, shuts down the PC, or shuts down and restarts the PC log Writes a text line to a log file getProfile Gets the current Link*One profile messageBox Displays a message box getTickCount playSound Plays a sound file Gets the number of milliseconds elapsed since the system was started playSystemSound Plays a sound associated with a system event lockWorkStation Locks Windows setProfile Sets the current profile send Sends keyboard data setTimer Sets the script timer sendSerialData Sends serial data to the COM-port sleep Delays the script for some time sendSubscriberData Sends data to subscribers Method beep Description 47 2.0 Getting Started 2.10.6 Output/User Feedback 2.10.6.3 log(filename, message) 2.10.6.1 beep(frequency, duration) 2.10.6.3.1 Description 2.10.6.1.1 Description Writes the message to the specified log file. Note that logging with this method from the script is separate from the built-in logging facility. Makes the internal PC speaker beep with the specified frequency and duration. 2.10.6.1.2 Arguments Argument Type Description Number The frequency of the beep in Hertz. duration Number The duration of the beep in milliseconds. Type Description filename String The path and name of the log file to write to. message String The log message to write. 2.10.6.3.3 Returns Returns Nothing. true if successful, false otherwise. 2.10.6.1.4 Arguments Argument frequency 2.10.6.1.3 2.10.6.3.2 Constants 2.10.6.3.4 Example 2.10.6.4 messageBox(title, message, type) 2.10.6.4.1 Description true if successful, false otherwise. 2.10.6.1.5 Example 2.10.6.2 blinkIcon(icon, duration) 2.10.6.2.1 Description Displays a message box with the specified title and message. The type argument specifies the number and type of buttons used. 2.10.6.4.2 Changes the notification icon color for the specified duration. After the duration has elapsed the icon will return to the default color grey. Argument The operation is asynchronous, in other words, if blinkIcon is called again before the duration for the first call has elapsed, the new icon is set immediately by the second call. 2.10.6.2.2 Arguments Argument Type Description icon Number The icon color index. duration Number The duration in milliseconds the color should be displayed before restoring the default color. 2.10.6.2.3 Arguments Type Description title String The message box title. message String The message to be displayed. type Number, optional The type of buttons to use. 2.10.6.4.3 Returns A value from the constants in mbResults (see below) indicating the button clicked. 2.10.6.4.4 Constants Use one of the following constants for the type argument: Returns Nothing. 2.10.6.2.4 Constants 2.10.6.2.5 Example The possible return values are: Please note the delay in the loop is needed to display each icon color for half a second. 48 2.0 Getting Started 2.10.6.4.5 Example 2.10.6.6.4 Constants Use one of the following values for the systemEvent argument: 2.10.6.5 playSound(filename, options) 2.10.6.5.1 Description The possible values of the options argument: Plays the sound specified by the filename argument. 2.10.6.5.2 Arguments Argument Type Description filename String The path and filename of the sound file. options Number Specifies the behavior for the sound playback. Use the constants in soundOptions. 2.10.6.5.3 2.10.6.6.5 Example 2.10.6.7 send(data) 2.10.6.7.1 Description Returns true if successful, false otherwise. 2.10.6.5.4 Constants Sends keyboard data. 2.10.6.7.2 Arguments Argument 2.10.6.5.5 Example Type String data Description The data to send. The argument data is a string consisting of text, key names, and Unicode characters. Argument Type Description text “Rob was here” Regular characters. 2.10.6.6 playSystemSound(systemEvent, options) Key Name “{Enter}” Key names corresponds to the keys defined in the dialog Key Settings. 2.10.6.6.1 Description Unicode “{65}” Character in Unicode decimal notation. Unicode “{0x0041}” Character in Unicode hexadecimal notation. Plays the sound specified by the given system event. Different system events can be mapped to sound files in the Control Panel. 2.10.6.6.2 Arguments Argument 2.10.6.7.3 Type Nothing. Description systemEvent Number The ID of the system event. 2.10.6.7.4 options Number Specifies the behavior for the sound playback. Use the constants in soundOptions. None. 2.10.6.6.3 Returns Returns true if successful, false otherwise. 49 Constants 2.0 Getting Started 2.10.6.7.5 Example 2.10.6.9 sendSubscriberData(data, length) 2.10.6.9.1 Description Sends data to subscribers. If there are no subscribers, calling this method has no effect. 2.10.6.9.2 Arguments Argument Note: • • • When you want send() to send the characters \ and { you need to escape those with a backslash. There is a helper method called escapeData() in the supplied file extra.lua. The data to send to the COM-port. length Number The number of characters of data that should be sent. 2.10.6.9.3 Nothing. When sending data to certain applications they might miss key presses if the key events are sent too fast or too early. You may need to increase the setting Interkey Delay and/or intersperse calls to send() with calls to sleep() or findWindow() depending on the situation. None. sendSerialData(data, length) 2.10.6.8.1 Description 2.10.6.9.4 2.10.6.9.5 Sends serial data to the COM-port. Note that Link*One needs to be configured to use a COM-port for this method to work. 2.10.6.8.2 Arguments Argument Type Description data String The data to send to the COM-port. length Number The number of characters of data that should be sent. 2.10.6.8.3 Returns Nothing. 2.10.6.8.4 Constants None. 2.10.6.8.5 Example 50 Description String If you specify a key name for a key that is not defined, it will be ignored. 2.10.6.8 Type data Returns Constants Example 2.0 Getting Started 2.10.7 Windows 2.10.7.3 getForegroundWindow() 2.10.7.1 enumWindows(handle) 2.10.7.3.1 Description 2.10.7.1.1 Description Gets the handle of the foreground window. 2.10.7.3.2 Enumerates all windows. 2.10.7.1.2 handle 2.10.7.1.3 None. Arguments Argument Type Description Number The handle to the window whose child windows should be enumerated. Specify null (0) to enumerate all top level windows. 2.10.7.3.3 Returns The window handle of the foreground window. In special circumstances this can be null so you need to check the return value before further use of it. 2.10.7.3.4 Constants None. Returns A table containing all the window handles of the enumerated windows. 2.10.7.1.4 Arguments 2.10.7.3.5 Example 2.10.7.4 getWindowClass(handle) 2.10.7.4.1 Description Constants None. 2.10.7.1.5 Example Gets the class name of the specified window. 2.10.7.4.2 2.10.7.2 findWindow(title, class) 2.10.7.2.1 Description Argument handle 2.10.7.4.3 Finds a window with the specified title and class. 2.10.7.2.2 Type Description 2.10.7.4.4 title String The title of the sought window. None. class String, optional The window class of the sought window. 2.10.7.4.5 2.10.7.2.3 Returns The window handle if the window is found or null otherwise. 2.10.7.2.4 Constants None. 2.10.7.2.5 Type Number Description The handle of the window. Returns A string containing the class name of the window or an empty string if the class name couldn’t be retrieved. Arguments Argument Arguments Example 51 Constants Example 2.0 Getting Started 2.10.7.5 getWindowClass(handle) 2.10.7.7 setForegroundWindow(handle) 2.10.7.5.1 Description 2.10.7.7.1 Description Gets the title of the specified window. This method also works on child windows such as buttons, edit boxes, and similar controls. 2.10.7.5.2 2.10.7.7.2 Arguments Argument Type Number handle 2.10.7.5.3 Sets the specified window to be the foreground window. Argument Description The handle of the window. 2.10.7.7.3 Returns 2.10.7.7.4 2.10.7.6 getWindowText(handle) 2.10.7.6.1 Description Gets the title of the specified window. This method also works on child windows such as buttons, edit boxes, and similar controls. 2.10.7.6.2 2.10.7.6.3 Type Number Description Example 2.10.7.8 getWindowText(handle, text) 2.10.7.8.1 Description Arguments Argument The handle of the window. Returns Type Description handle Number The handle of the window. text String The title to set. 2.10.7.8.3 Returns true if successful, false otherwise. Constants 2.10.7.8.4 None. 2.10.7.6.5 2.10.7.7.5 2.10.7.8.2 A string containing the window title of the window or an empty string if the window text couldn’t be retrieved. 2.10.7.6.4 Constants Sets the title of the specified window. This method also works on child windows such as buttons, edit boxes, and similar controls. Arguments Argument handle Returns None. None. Example Description The handle of the window. Nothing. Constants 2.10.7.5.5 Type Number handle A string containing the window title of the window or an empty string if the window text couldn’t be retrieved. 2.10.7.5.4 Arguments Constants None. Example 2.10.7.8.5 52 Example 2.0 Getting Started 2.10.7.9 windowOperation(handle, operation) 2.10.8 Clipboard 2.10.7.9.1 Description 2.10.8.1 getClipboardData() Executes a window operation. 2.10.8.1.1 Description 2.10.7.9.2 Gets the text from the clipboard. Arguments Argument Type 2.10.8.1.2 Description handle Number The handle of the window. None. operation Number The operation to perform on the window. 2.10.8.1.3 2.10.7.9.3 The text contents on the clipboard as a string and the length of the data. If the call fails or the clipboard doesn’t have any text, an empty string and zero length is returned. Note that the terminating null is counted. Constants 2.10.8.1.4 The following constants define the possible values of the operation argument: 2.10.7.9.5 Returns Returns Nothing. 2.10.7.9.4 Arguments Constants None. 2.10.8.1.5 Example 2.10.8.2 setClipboardData(text) 2.10.8.2.1 Description Example Sets the text on the clipboard. 2.10.8.2.2 Arguments Argument text 2.10.8.2.3 Type String Returns Nothing. 2.10.8.2.4 Constants None. 2.10.8.2.5 53 Example Description The text to set. 2.0 Getting Started 2.10.9 Application Launch 2.10.9.3 run(program, argument, delay) 2.10.9.1 closeAppHandle(handle) 2.10.9.3.1 Description 2.10.9.1.1 Description Displays a message box with the specified title and message. The type argument specifies the number and type of buttons used. Closes the application handle. 2.10.9.1.2 Argument Type Number handle 2.10.9.1.3 2.10.9.3.2 Arguments The full path to the executable. Description The application handle. Returns Nothing. 2.10.9.1.4 Arguments Constants Type program String The full path to the executable. argument String The command line argument string. delay Number, optional The number of milliseconds to wait until the started application is waiting for user input. If this argument isn’t specified, the default wait time is 10000 ms. None. 2.10.9.1.5 Example 2.10.9.3.3 See the run() method. Description Returns The application handle. Note that this handle needs to be closed with the method closeAppHandle() to avoid memory leaks. If the application couldn’t be started, a runtime error occurs. 2.10.9.3.4 2.10.9.2 isAppRunning(handle) None. 2.10.9.2.1 Description 2.10.9.3.5 Determines if an application is still running. 2.10.9.2.2 Arguments Argument handle 2.10.9.2.3 Type Number Description The application handle. Returns Nothing. 2.10.9.2.4 Constants true if the application is still running, false otherwise. 2.10.9.2.5 Example See the run() method. 54 Constants Example 2.0 Getting Started 2.10.10 2.10.10.1 Serial Port 2.10.10.3 closePort() 2.10.10.3.1 Description getRTS() Gets the status of the RTS signal of the serial port. RTS is an output signal. 2.10.10.1.1 Description Closes the serial port. 2.10.10.3.2 Arguments 2.10.10.1.2 Arguments None. None. 2.10.10.3.3 Returns 2.10.10.1.3 Returns A boolean which indicates the RTS signal status (true = high, false = low). Nothing. 2.10.10.1.4 Constants 2.10.10.3.4 Constants None. None. 2.10.10.1.5 Example 2.10.10.3.5 Example See the openPort() method. See the getDTR() method. 2.10.10.2 2.10.10.4 openPort() getDTR() 2.10.10.2.1 Description 2.10.10.4.1 Description Gets the status of the DTR signal of the serial port. DTR is an output signal. Opens the serial port. None. openPort() and closePort() can be used when you need to release the serial port, start an application that uses the port for a while, and then reopen the port. 2.10.10.2.3 Returns 2.10.10.4.2 Arguments A boolean which indicates the DTR signal status (true = high, false = low). None. 2.10.10.2.4 Constants None. A boolean indicating if the port could be opened. If the port is being held open by another application a call to this method will return false. 2.10.10.2.5 Example 2.10.10.4.4 Constants 2.10.10.2.2 Arguments 2.10.10.4.3 Returns None. 2.10.10.4.5 Example Note: 55 This is only a code fragment. 2.0 Getting Started 2.10.11 Miscellaneous 2.10.10.5.1 Description 2.10.11.1 ean128(data, strict) Sets the status of the DTR signal. DTR is an output signal. 2.10.11.1.1 Description 2.10.10.5.2 Arguments Parses the contents of a GS1-128 code (earlier called UCC-128 or EAN128). For variable length fields followed by another field, the data must be delimited by a Group Separator (GS, ASCII 29, hex 1D). 2.10.10.5 setDTR(status) Argument Type Boolean status Description The status to set, (true = high, false = low). Please refer to http://www.gs1.org for information about GS1 Application Identifiers. 2.10.10.5.3 Returns 2.10.11.1.2 Arguments Nothing. Argument 2.10.10.5.4 Constants None. 2.10.10.5.5 Example Type Description data String The GS1-128 data to be parsed and split into separate fields. strict Boolean In strict mode, spaces are not allowed in alphanumeric fields. See the getDTR() method. 2.10.11.1.3 Returns 2.10.10.5.1 Description A table where the keys are the Application Identifiers (AIs) and the values are the contents of the fields. If the parsing fails, a nil value is returned. The parsing can fail if the code is not a GS1 code or if the code doesn’t follow the standard. Sets the status of the RTS signal. RTS is an output signal. 2.10.11.1.4 Constants 2.10.10.5.2 Arguments None. 2.10.10.6 setRTS(status) Argument status Type Boolean 2.10.11.1.5 Example Description The status to set, (true = high, false = low). 2.10.10.5.3 Returns Nothing. 2.10.10.5.4 Constants None. 2.10.10.5.5 Example See the getRTS() method. 2.10.11.2 exit() 2.10.11.2.1 Description Exits Link*One. Please note that the exit is not immediate, Link*One will exit as soon as the current script has finished executing. 2.10.11.2.2 Arguments None. 2.10.11.2.3 Returns Nothing. 2.10.11.2.4 Constants None. 2.10.11.2.5 Example 56 2.0 Getting Started 2.10.11.3 exitWindows(options) 2.10.11.5 getTickCount() 2.10.11.3.1 Description 2.10.11.5.1 Description Either logs off the current user, shuts down the PC, or shuts down and restarts the PC. Gets the number of milliseconds elapsed since the system was started. This method can for example be used to take time between events in Link*One. 2.10.11.3.2 Arguments Argument options Type Number, optional 2.10.11.5.2 Arguments Description None. Type of action to be performed. 2.10.11.5.3 Returns The number of milliseconds elapsed since the system was started. 2.10.11.3.3 Returns 2.10.11.5.4 Constants Nothing. None. 2.10.11.3.4 Constants 2.10.11.5.5 Example The following constants define the type of action to be performed: Please note that the default value for options is Logoff (0). The Force (4) value must be used in combination with Logoff (0), Shutdown (1), Reboot (2), or Poweroff (8). Use Force (4) with care since it will end applications without asking the user to save data. 2.10.11.3.5 Example 2.10.11.6 2.10.11.4 getProfile() lockWorkStation() 2.10.11.6.1 Description 2.10.11.4.1 Description Locks Windows. Gets the current Link*One profile. 2.10.11.6.2 Arguments 2.10.11.4.2 Arguments None. None. 2.10.11.6.3 Returns 2.10.11.4.3 Returns true if successful, false otherwise. A string containing the name of the current profile. 2.10.11.6.4 Constants 2.10.11.4.4 Constants None. None. 2.10.11.6.5 Example 2.10.11.4.5 Example 57 2.0 Getting Started 2.10.11.7 setProfile(profile) 2.10.11.9 sleep(duration) 2.10.11.7.1 Description 2.10.11.9.1 Description Sets the current profile in Link*One. Delays the script for the specified time. Please note that a profile change reinitializes the Lua script engine and because of this, any information held in global variables will be lost. If you need any information to survive over a profile switch, you will need to store it in a file. 2.10.11.9.2 Arguments Argument duration The actual switch is delayed until the script has finished executing the current method. Type String profile Description The time to wait. 2.10.11.9.3 Returns Nothing. 2.10.11.7.2 Arguments Argument Type Number 2.10.11.9.4 Constants Description None. The name of the profile to switch to. 2.10.11.9.5 Example 2.10.11.7.3 Returns Nothing. 2.10.11.7.4 Constants None. 2.10.11.7.5 Example 2.10.12 Notification Area Icon When started, Link*One adds an icon to the notification area (also called the Systray sometimes). It is used to indicate different states and events. Please note that the icon can also be modified by a script. Appearance Explanation Link*One is idle. 2.10.11.8 setTimer(interval) 2.10.11.8.1 Description Data was received from the serial port. Sets the script timer to the specified interval. This is the same setting as on the Misc tab in the Settings dialog. To turn off the timer, specify zero as the interval. Data was sent to the serial port. 2.10.11.8.2 Arguments Argument interval Type Number A serial hardware pin event was triggered. OR Description Data was received through a keyboard capture definition. The timer interval to set. 2.10.11.8.3 Returns The serial port specified in the profile could not be opened. Nothing. 2.10.11.8.4 Constants None. 2.10.11.8.5 Example 58 2.0 Getting Started 2.10.13 Migration guide WLinq 3.x to Link*One Link*One has no character translation table, instead you can record a custom key sequence and give it a name. See Section 2.9.4.2.2 Key Settings for instructions on creating a custom key sequence. Link*One is based on the earlier product called WLinq. Many functions present in WLinq (3.x) has been removed in Link*One. The reason for this is to simplify Link*One and to avoid confusion if there are more than one way to achieve a task. The key name can then be used as an expression in the string passed to the send() method: This guide is meant to ease the transition from WLinq 3.x data formats to the new script based approach in Link*One. Other types of features that has been affected are also explained in this chapter. 2.10.13.1 2.10.13.4 Send Pre- and Postfix Keys This feature mainly existed for the integration of WLinq to Freefloat Access*One. When activated, the key sequence Ctrl + Alt + 1 was sent before the data string and Ctrl + Alt + 2 was sent after the data string. It enabled Access*One to distinguish between keyboard and barcode data. To achieve the same result, record the key sequences and given them the names {Prefix} and {Postfix} and then use them in an expression: Duplicate String Filter The Duplicate String Filter function has been removed from the Communications tab in the Settings window. The equivalent function can be achieved in a script: 2.10.13.5 Lock Output Window The Lock Output Window function can be implemented in a script. The following script only sends data to a window who’s title contain the text “- Notepad”: 2.10.13.6 Initialization String The Initialization String can be used for sending a command to for example a barcode scanner that needs some enabling or configuration command at startup. 2.10.13.2 In Link*One, the following script could instead be used to send commands to the equipment attached to the serial port: Case Setting The Case Setting function has been removed from the Keyboard tab in the Settings window. To achieve the same in a script, use the appropriate sample from below: Note: onStart() is called when a profile is activated. This happens when Link*One starts but also when you click OK in the Settings dialog. Similarly, onEnd() is called when Link*One is exited and also when the Settings dialog is entered by clicking the Settings button in the main window. 2.10.13.7 2.10.13.3 Filter Unknown Data Strings In WLinq 3.x, if no data editing format matched the input data, the option Filter Unknown Data Strings determined whether the input data should be discarded or let through unmodified. The same effect can easily be implemented in a Link*One script:. Character Translation In WLinq 3.x, the only way to have WLinq press special keys like Home, Page Down, and similar was awkward. First you had to choose a character position, then redefine that position to map the character to for example the Home key. Then in the data output format, you had to use that character in the output string, for example: Input() + “\x81”. 59 2.0 Getting Started The above script makes Link*One filter all input data that doesn’t start with the characters K06. 2.10.13.8 2.10.13.10 Data Format Output In a WLinq 3.x data format, expressions was entered into the data format output edit box and combined with plus (+). In Link*One, all the string operations are using the facilities of the embedded script language. To make Link*One simulate a possibly modified string as keyboard output, you need to pass the string to the method app.send(). Input Data Replacements The replacement function in earlier WLinq versions was quite easy to use. But it lacked power and flexibility. Below is an example of a simple substring replacement. It replaces all occurrences of the character K with the character X. Use the table below as a guide for converting expressions in WLinq 3.x to Link*One. Most string operations in WLinq 3.x operated on the data input string implicitly. In Link*One, the data string is an argument sent to the script methods onData(), onKeyboardCapture(), and onExternalData(). Multiple replacements can be done by storing the result in a string variable and repeat the process. Here K is replaced with X and A is replaced with TEST. Constant String WLinq 3.x Link*One “ABC” “ABC” Extract a substring from the start of the string 2.10.13.9 Criteria WLinq 3.x Link*One Left( 3 ) string.sub( data, 1, 3 ) string.sub( data, -3 ) In the previous WLinq generation, a data format was activated for a data string when the criteria of the data format matched. Two types of criteria were supported, length and pattern. In Link*One the same function as a length criteria is implemented using an if-statement. WLinq 3.x Link*One Right( 3 ) string.sub( data, -3 ) Extract characters from position three up to position four. Please note the difference in parameters! An alternative approach could be: WLinq 3.x Link*One Mid( 3, 2 ) string.sub( data, 3, 4 ) From the first A in the string, extract five characters including the A WLinq 3.x Link*One Mid( “A”, 5 ) string.gsub( data, “.*(A....).*”, “%1” ) Extracts characters from position six to the end of the string A pattern criteria like the one above could be implemented using the string.find() pattern matching method: WLinq 3.x Link*One Mid( 6 ) string.sub( data, 6 ) Scans for the first string and extracts all characters up to the second string. 23 and CD is not included in the result. The format used for patterns in string.find() and the format in WLinq 3.x is different. Please refer to the Lua documentation for the Lua pattern format. A big advantage with scripting in Link*One is that more complex decisions can be made, for example mixing length and pattern matching, something that was not possible in WLinq 3.x. Multiple criteria used in WLinq 3.x can be implemented by chaining if-elseif-statements: WLinq 3.x Link*One SubStr( “23”, “CD” ) string.gsub( data, “.*23(.*)CD.*”, “%1” ) The entire data string WLinq 3.x Link*One Input() data Inserts the current date in the specified format 60 WLinq 3.x Link*One Date( “%Y-%m-%d” ) os.date( “%Y-%m-%d” ) 2.0 Getting Started There is no direct equivalent function for the WLinq 3.x WaitForWindow. Below is a full example of a script which waits for a Notepad window to appear, activates the window, and after a small delay sends the data to the window. Inserts the current time in the specified format WLinq 3.x Link*One Time( “%H:%M” ) os.date( “%H:%M” ) Some common situations where you need to wait for a window are when waiting for an Open dialog to appear (after sending Ctrl+O) or when you have launched an application with app.run() and need to wait for it to be ready to receive input. Concatenations of expressions WLinq 3.x Link*One “X” + Left( 2 ) + Right( 2) “X” .. string.sub( data, 1, 2 ) .. string.sub( data, -2 ) Wait for a window to appear Control characters WLinq 3.x WLinq 3.x Link*One “ ” “{13}{9}” WaitForWindow( “*Notepad”, 3000 ) “\x09” “{9}” “\d013” “{13} Link*One Combining text and key presses WLinq 3.x Link*One Input() + “ 1 ” data .. “{Tab}1{Enter}” Reboot Windows WLinq 3.x Link*One Reboot() app.exitWindows( exitWindowsOpts[“REBOOT”] ) Reboot Windows (forced) WLinq 3.x Link*One RebootForced() app.exitWindows( exitWindowsOpts[“FORCE”] ) No direct equivalent function for WaitForAppExit() exists in Link*One. The same result can be achieved by using app.isAppRunning(). Starts the specified program WLinq 3.x Link*One RunApp( “notepad. exe” ) h = app.run( “notepad.exe” ) closeAppHandle( h ) Even though the sample below demonstrates a script that pauses until you exits Notepad, Link*One is not intended to have a script that interact with the user (except for app.messageBox()) since there may be side effects. app.isAppRunning() is intended to be used to synchronize the script with an external application that does its job and then exits. Please note that the Link*One sample code below more realistically demonstrates what is needed when switching to another application. A small delay is needed before sending input to the activated window or characters may be lost. Also the example avoids an unnecessary delay when the target window already is the foreground window. Wait for a window to appear WLinq 3.x WaitForAppExit( 30000 ) Activates the first window that has a caption that matches the window caption pattern WLinq 3.x Link*One Link*One SetFocus( “*Notepad” ) If a script calls app.closePort(), the script can start an external application that uses the same serial port. When that external application is exited, the script can re-open the serial port by calling app.openPort(). 61 2.0 Getting Started The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. Open the serial port WLinq 3.x Link*One OpenPort() app.openPort() THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. Close the serial port WLinq 3.x Link*One ClosePort() app.closePort() Send data to the serial port WLinq 3.x Link*One SendData( “abc” ) data = “abc” app.sendSerialData( data, data:len() ) Note: 2.10.16 The profile switch is performed when the script has finished its execution. Switch profile WLinq 3.x Link*One SetProfile( “Profile2” ) app.setProfile( “Profile2” ) 2.10.14 Version Changes Date 5.0 Major upgrade, product name changed, and OEM version created. 2008-11-26 5.1 Changed name of Lua DLL file to make it compatible with a Lua addon. 2009-03-06 5.2 Added the wizard. Updates to the manual. 2009-04-02 5.3 When “{65}” was used as a character notation there was a bug in the parser that sometimes made the character disappear. On slow systems with a single CPU core there could be a race condition between the main program module and the licenser module. 2009-10-29 5.4 Added 30-day trial period. Added scan codes for all default key sequence definitions. This was done to avoid problems sending Tab and similar keys in a thin-client environment. 2010-10-05 Fixed problem with empty hot key sequences. Support for Thin Clients, Java Applications, and Flash Applications Normally, Link*One uses a Windows API function called SendInput to simulate key presses to the active application. This API is recommended by Microsoft because it takes care of differences between different keyboard locales. For example, on a French keyboard, the letter A is positioned where the letter Q is on a US/UK keyboard layout. However, this technique of simulating keys doesn’t work with all environments and applications used on the Windows platform. So far, problems have been spotted with thin clients (Terminal Services or Citrix), Java applications, and Flash applications. 5.5 OEM version released for testing. 2010-12-22 5.6 OEM version with extra tab in Settings dialog for easier configuration of scanner key. 2011-05-05 5.7 Now blocks key sequences named {numbers} since they won’t work. The reason is that the syntax {number} is used as a format to specify the ASCII/Unicode code for characters in the string sent to app.send(). Added built-in support for applications/environments not supporting the way Link*One simulates most keys. Added appendix that explains how this feature is activated and how it works. 2011-05-10 5.8 Removed remnants of code for overlapped I/O that wasn’t used. It made third-party serial drivers upset and caused Link*One to hang. This problem was noticed when trying to use Link*One together with BlueSoleil Bluetooth software. 2011-11-01 To address this issue, key sequences for digits, lower case and upper case letters has been recorded and is present in the default configuration of Link*One. Script functions for translating digits and letters to key sequences are provided in extra.lua. Also, the function sendData in the default script.txt contains information about how to activate this feature. Please note that the key sequences are tailored for the most common keyboard layouts, QWERTY with non-shifted keys for digits. You need to modify some of these key sequences to make it work on for example AZERTY (French) and QWERTZ (German) keyboard layouts. 2.10.15 Version History Lua Copyright Copyright © 1994-2008 Lua.org, PUC-Rio. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 62 3.0 Operating the3.0 Unit Operating the Unit 3.1 GPS Instructions 3.1.1 Requirements: The WWAN module of the M9010 includes a GPS. 3.1.2 Set up to use the GPS To use the GPS, the WWAN module must be either fully turned on, or in airplane mode. To ensure WWAN is ON or in Airplane Mode: 1. Open DAP Configuration Center 2. Select the Power Options tab 6. Select Sierra Wireless NMEA Port (COM12), then OK. The following screenshot shows 2 satellites are detected (not enough): 3. Ensure you are in one of the following combinations: • Global airplane mode is OFF and WWAN is ON or in Airplane • Global airplane mode is ON and WWAN was either ON or in Mode Airplane Mode Here are some acceptable settings: Once the GPS is able to get a fix (enough satellites), Fastrax shows something like: The GPS Monitor shows: 4. Open the GPS monitor (Fn + F6), and click on the ‘play’ button: 7. Clicking on the third button shows a map. 8. GPS is now ready. You’ll get Session started, waiting for fix… 5. To get more detailed information: a. Run Fastrax GPS Workbench available from the desktop b. Select File > Connect: 63 3.0 Operating the Unit 3.1.3 3.2 Integration to Windows 7 The GPS is handled as a standard sensor in Windows 7: 3.2.1 DAP-Imager Instructions What is DAP-Imager DAP-Imager allows taking pictures using the built-in camera. It also features a barcode decoding engine to read 1D and 2D barcodes, usually used with ScannerManager. If the Weather gadget is opened, it will update with a city nearby. 3.2.2 Selecting the Right Mode The upper right icon (or lower left if unit is in portrait) is used to select the mode: The portrait, landscape and macro modes are used to take pictures, whereas barcode mode is used to read barcodes. Mode settings are defined in the INI file. Refer to that section for more details. 3.2.3 Pictures 3.2.3.1 How to Take a Picture To take a picture, press and release the trigger button on the back of the unit. Alternatively, you can click on Capture. 3.2.3.2 DAP-Imager uses the same method to get the current position in order to geotag images. Flash The flash can be turned on or off using the flash menu. No automatic flash is supported at this time. 64 3.0 Operating the Unit 3.2.3.3 The coordinates are shown on top after having added the file to the list. Geotagging 3.2.3.4 The geotagging menu allows enabling the feature and showing a map centered on the current position. The current coordinates are written at the bottom of the menu. To open the folder where images are saved, choose “Actions > Show Image Folder” from the ‘more’ menu. Once a picture has been taken, the current location is saved as an EXIF metadata in the JPEG file (GPS sub-IFD). 3.2.3.3.1 How to Locate a Saved Picture 3.2.3.5 General Options To access the general options, choose “Options > General…” from the ‘more’ menu: How to enable the GPS DAP-Imager has been built to work with the standard location sensors supported by Windows 7. The WWAN module is equipped with a GPS, which maps to “Sierra Wireless NMEA Port” in the “Location and Other Sensors” section of the control panel. You may also use the “Geosense Location Sensor” that retrieves the current position by looking to the WLAN used. Option screen: Refer to Section 3.1 GPS Instructions for more information. Once a fix is available, DAP-Imager should show the current position in the geotagging menu. Refer to the GPS section of the user’s manual for more information on troubleshooting the GPS. 3.2.3.3.2 How to View Geotagging Data The file name and target folder templates can be changed here. They define where the image is to be saved. The list of variables can be found in the TargetFolder option of the [General] section. To view the location where the picture has been taken, you may use any geotagging software. For example, the “geotag” software is an open source java program that can be run from the web (open http://geotag.sourceforge.net , then click on “Run it now”). The default camera mode is the mode chosen when opening DAP-Imager. The flash light duration is the number of milliseconds the flash light remains lit when pressing the button. 3.2.4 Barcodes DAP-Imager supports the following barcode symbologies: 65 1D: Code 11, Code 39 (+extended), Code 93, Interleaved 2 of 5, Codabar, Code 128, EAN13, EAN8, PatzchCode, UPC-A and UPC-E. 2D: PDF417, DataMatrix, QR Code and MicroQR Code Postal: AustrialiaPost, IntelligentMail, Planet, Postnet and RM4SCC 3.0 Operating the Unit DAP-Imager can be used as a standalone application, or used in conjunction with ScannerManager. In both cases, you will probably want to leave the application hidden to wedge barcodes. 3.2.4.1 3.2.4.1.2 Using DAP-Imager as a Stand-Alone Application DAP-Imager can be used without ScannerManager. In that case, ScannerManager must not be running, so that the trigger will be used exclusively for DAP-Imager. How to Scan Barcodes If you have used ScannerManager before, the keyboard wedge will have been disabled. To enable it, turn “KbWedge” ON in the INI file. Check the “.INI Configuration File” section for more information. NOTE: To scan barcodes, first ensure DAP-Imager is in barcode mode. To do that, open the application (double click the icon in the notification area) and select Barcode from the mode menu. You can scan barcodes the same way it’s done in ScannerManager even if using DAP-Imager separately. 3.2.4.2 Decoder Configuration The Symbols button shows the decoder properties configuration screen. It allows enabling or disabling specific barcode types and setting advanced parameters. The main window shows a preview and a text box with the results scanned. At this point we can start scanning to test the capabilities. Steps: • Press and hold the trigger. • Move the unit so that it is almost perpendicular to the barcode. The barcode should fill 30% to 75% of the preview window, depending on the density of the barcode. • If the image is not on focus, move unit to force an automatic focus. • It usually takes around 1 second to decode a barcode. On a successful decode attempt, the barcode is surrounded by a green box and a single beep is heard. Two beeps indicate failure. Double click on an item to change its value. If it’s an ON/OFF value, the change is applied immediately. For other value types, set the value in the “Value” field, and then click on Apply. An asterisk (*) indicates default values. Enabling all barcode types will make decoding slower. You may start the configuration by selecting a preset (Presets button). Close DAP-Imager with the top right X button; the program remains in background. 3.2.4.1.1 The Options button pops up the Decoder Options screen. Using ScannerManager Normally you will want to use ScannerManager, like in the following screen: These parameters should not be changed, except if suggested by a DAP technical support representative. 3.2.5 ScannerManager configures DAP-Imager automatically and takes care of the wedging. .INI Configuration File DAP-Imager uses a .INI configuration file located, by default, in C:\ProgramData\DAP-Imager\DAP-Imager.ini When DAP-Imager is in background, it shows a live preview as long as the trigger is held down. It helps ensuring the focus, position and distance are correct. As soon as the barcode can be decoded, ScannerManager receives the data and wedge it (if the output is set to Keyboard Wedge). Before changing it, you must unload DAP-Imager by clicking its icon in the notification area and choosing Quit. Otherwise, the program rewrites the INI file when it quits. If no DAP-Imager.ini file is found in the directory, a new one is automatically created with default values. 66 3.0 Operating the Unit 3.2.6 [General] 3.2.6.7 3.2.6.1 TargetFolder = %PICTURES%\%YEAR%%MONTH%-%DAY% Determines the key that must be pressed in combination with Func1VirtualKey. Func1KeyModifiers = 0 To scan barcodes, first ensure DAP-Imager is in barcode mode. To do that, open the application (double click the icon in the notification area) and select “Barcode” from the mode menu. 3.2.6.8 Func2KeyModifiers = 0 Specifies the path where the picture is to be taken. 3.2.6.9 Supported variables: When set to 1, the main trigger key is registered as a global hotkey, so that DAP-Imager captures it even if another application has the focus. Determines the key that must be pressed in combination with Func2VirtualKey. Use the key modifiers shown for Func1VirtualKey. Variables Func1KeySystemWide = 1 Name Description 3.2.6.10 %YEAR% 4-digit year %MONTH% 2-digit month When set to 1, the second trigger key is registered as a global hotkey, so that DAP-Imager captures it even if another application has the focus. %DAY% 2-digit day of month %DAYOFWEEK% Name of the week day 3.2.7 %HOUR% Hour %MINUTE% 2-digit minute Options specific to the camera modes that take a picture. %SECOND% 2-digit second %INDEX% Sequential index, incremented each time a picture is taken. The number is saved in “C:\ProgramData\DAP-Imager\NextImageIndex.txt”. %PICTURE% Path of the default Windows folder to save pictures (C:\Users\username\Pictures) 3.2.6.2 3.2.7.1 [Camera] InactiveTimeBeforeStandbyLevel1 = 10000 Number of milliseconds before the camera is stopped when the application is in background. Waking up the camera takes a few seconds. If you use the camera often, you may want to increase this value. Decrease it to save power. 3.2.7.2 FileNameTemplate = %HOUR%h%MINUTE%m%SECOND%s ActivateDapImagerOnTrigger = OFF When in a camera mode (portrait, landscape or macro), the trigger key is never global, except if this option is set. If set and Func1KeySystemWide is 1, pressing the trigger will show up DAP-Imager. Pressing another time takes a picture. Specifies the file name of images taken. Supports the same variables than TargetFolder. 3.2.6.3 Func2KeySystemWide = 0 DefaultImagerMode = Portrait 3.2.7.3 Name of the imager mode to be selected when DAP-Imager starts. Notice that if ScannerManager is present, it starts DAP-Imager in barcode mode. ShowImageNameOnPreview = OFF When ON, the image file path is written on the image when the picture is taken. Default supported values: Portrait, Landscape, Macro, Barcode They correspond to the name of the corresponding section [ImagerMode:XXXX]. 3.2.8 3.2.6.4 Options specific to the barcode mode. FlashLightDurationMs = 10000 Number of milliseconds the flash light remains lit when its button is clicked (any camera mode). The flash light is automatically turned off after a delay to save power. 3.2.6.5 3.2.8.1 EnableAutoPreview = ON When ON, DAP-Imager shows the camera preview in a top level window while the trigger key is pressed. Func1VirtualKey = 135 3.2.8.2 Virtual key code used for the main trigger key. For the integration with ScannerManager to work, you must use the default value (corresponds to the trigger on back of the unit). PreviewWndRect = 0 0 320 240 Size of the auto preview window. Should not be changed. 3.2.8.3 For other virtual-key codes, refer to the “Virtual-Key Codes” section of the Windows Application UI Development guide. Notice that the codes here are in DECIMAL. 3.2.6.6 [Barcodes] UIPolicy = Legacy Sets the way the trigger key is handled. Only the “Legacy” UI policy is officially supported, but you may experiment with the other modes. UIPolicy Func2VirtualKey = 117 Sets the key used to force an autofocus. For other virtual-key codes, refer to the “Virtual-Key Codes” section of the Windows Application UI Development guide. Notice that the codes here are in DECIMAL. 67 Name Description Legacy Works like a regular handheld scanner: press and hold the trigger key to decode, release to cancel. Standard Press and release the trigger key to decode. DAPImager makes MaxNbrAttempts decoding attempts. DecTrigUp Attempts to decode when the trigger key is released. 3.0 Operating the Unit 3.2.8.4 DefaultFocus = 3733 3.2.8.19 MinGainWithMovieLight = 1000 Not used in this version of DAP-Imager. Not used in this version of DAP-Imager. 3.2.8.5 3.2.8.20 Aimer = ON MaxGain = 4000 Not used in this version of DAP-Imager. Not used in this version of DAP-Imager. 3.2.8.6 3.2.8.21 DecodeAfterAutofocus = ON GainStep = 200 Not used in this version of DAP-Imager. Not used in this version of DAP-Imager. 3.2.8.7 3.2.8.22 MaxNbrResults = 1 IdealGain = 2000 When several barcodes are visible in an image, the decoder can return more than one result. Set this value to the maximum number of results that are considered. If 1, the first result is returned and the others are discarded. Not used in this version of DAP-Imager. 3.2.8.8 3.2.8.24 3.2.8.23 FlashIntensityStep = 100 Not used in this version of DAP-Imager. DecodeTimeoutMs = 1500 MaxFlashIntensity = 100 Maximum duration of a decode operation, in milliseconds. If the decode operation takes longer, it is cancelled. Using a small timeout won’t allow decoding most barcodes. Using a higher value may have an impact on the user interface responsiveness. Not used in this version of DAP-Imager. 3.2.8.9 3.2.8.26 3.2.8.25 MaxShutter = 4000 Not used in this version of DAP-Imager. MaxNbrAttempts = 1 ShutterStep = 260 In the Standard or DecTrigUp UI policies, number of attempts DAPImager tries to decode before returning NO READ. Not used in this version of DAP-Imager. 3.2.8.10 Not used in this version of DAP-Imager. 3.2.8.27 InactiveTimeBeforeStandbyLevel1 = 10000 3.2.8.28 Number of milliseconds before the flash light is turned off. 3.2.8.11 3.2.9 KbWedge = OFF AddTab = OFF AddEnter = ON [ImagerModes] 3.2.8.1 ModeList = Portrait,Landscape,Macro,B arcode, 3.2.11 When KbWedge is ON and a barcode is wedged, simulates a RETURN key after the barcode data. 3.2.8.15 3.2.10 Lists the modes that appear in the camera mode menu. The modes specified here must be defined in the sections that follow. When KbWedge is ON and a barcode is wedged, simulates a TAB key after the barcode data. 3.2.8.14 [OCR] OCR not yet supported in this version of DAP-Imager. Set this option to ON if you don’t use ScannerManager and want to wedge barcodes. 3.2.8.13 AppendSymbology = OFF When ON, DAP-Imager will wedge the name of the symbology after the barcode data. It can be used to find out the symbology of a barcode. InactiveTimeBeforeStandbyLevel2 = 10000 Number of milliseconds before the camera is stopped when the trigger is not pressed. Waking up the camera takes a few seconds. If you scan barcodes often, you may want to increase this value. Decrease it to save power. 3.2.8.12 IdealShutter = 575 [ImagerMode:XXXX] This sections defines a given imager mode (XXXX), as listed in ModeList. Not all values are used; it depends on the ModeType option. Preamble = When KbWedge is ON and a barcode is wedged, this value is prefixed to the barcode data. 3.2.11.1 3.2.8.16 A value of 1 is for barcode decoding. Postamble = When KbWedge is ON and a barcode is wedged, this value is appended to the barcode data. 3.2.8.17 3.2.11.2 IconID = 142 Resource ID of the icon to be shown in the mode menu. You can use a resource editor to view the icons that are available (for example: http:// www.resedit.net/). InterCharDelay = 0 When KbWedge is ON and a barcode is wedged, sets the delay between each key that is simulated, in milliseconds. 3.2.8.18 ModeType = 0 A value of 0 indicates that it’s a mode to take pictures. 3.2.11.3 MaxGainWithoutMVLight = 2500 SelectionButtonImageFileName = res\ button-mode-portrait80.png File path of the image shown when the mode is selected (mode button). Not used in this version of DAP-Imager. 68 3.0 Operating the Unit 3.2.11.4 Set to ON to preview in JPEG format, or OFF to preview in YUV format. Enabled = ON 3.2.11.23 CompressionRatio = 13 ON if the mode is enabled. If disabled, it will be grayed out in the mode menu. 3.2.11.5 Not supported by the camera. AutoFlash = ON 3.2.11.24 FocusPosition = 500 Not used in this version of DAP-Imager. 3.2.11.6 Defines where to focus (0: infinite, 10000: closest position). Not used when Autofocus is ON. GpsReportTypes = 1 Set this option to 1 to enable geotagging, or 0 to disable it. 3.2.11.25 Autofocus = ON 3.2.11.7 Enables or disables continuous autofocus. When the camera is moved, it automatically tries to autofocus. PreviewWidth = 640 Size of the image preview. Should not be changed. 3.2.11.8 3.2.11.26 WhiteBalancePreset = 0 PreviewHeight = 480 Defines how colors are balanced. Size of the image preview. Should not be changed. 3.2.11.9 Variables StillWidth = 1600 Width of the images captured (resolution). 3.2.11.10 StillHeight = 1200 Height of the images captured (resolution). 3.2.11.11 ColorSpace = 16 Name Description Automatic Fluorescent Incandescent Sunny Not used, leave unchanged. Cloudy 3.2.11.12 Movie Light Flash Hybrid FrameRate = 30.000000 Not used, leave unchanged. 3.2.11.13 Shutter = 10000 Exposition duration, when AutoExposure is OFF. The value must be between 0 and 10000. 3.2.11.27 ManualWhiteBalance = OFF 3.2.11.14 Set to ON to use WhiteBalanceKelvin. Otherwise, WhiteBalancePreset applies. Brightness = 5000 Brightness level. It shifts pixel values so that the image is either lighter or darker. The value must be between 0 and 10000 (higher is lighter). 3.2.11.15 3.2.11.28 WhiteBalanceKelvin = 8267 White balance value; 0 is the coldest (bluish), 10000 is the warmest. GlobalGain = 0 Not yet supported by the camera. 3.2.11.29 PreviewToWindow = ON 3.2.11.16 Set to ON to have DirectShow paint the preview (improves performances). Should not be ON in barcode mode. Exposure = 5000 Not yet supported by the camera. 3.2.11.17 FlipMode = 1 Not supported. 3.2.11.18 AutoExposure = ON [Permissions] 3.2.12.1 Option(More) = 3 Set this value to 0 to prevent a user from accessing the “more” menu after the geotagging icon. When clicked, it simply shows the About box. When ON, the camera finds the best exposition and gain for the current lighting conditions. Using OFF allows setting Shutter manually, but since the camera doesn’t support the GlobalGain option, it should not be used. 3.2.11.19 3.2.12 A value of 3 grants all permissions. LightingMode = 0 0: Flash (light pulse) 1: Continuous lighting (flash light) 3.2.11.20 LightingPower = 0 The lighting power must be 0 (turned off) or 100 (turned on). 3.2.11.21 Aimer = OFF Not supported by the camera. 3.2.11.22 Compression = ON 69 3.0 Operating the Unit 3.3 Command-Line Options DAP-Imager includes several commands to control it from an external application. 3.3.1 Syntax DAP-Imager [configFilePath] [-b] [-q] [-NextImageFilePath FilePath] [-OneShotCapture] [-SelectMode \”modeName\”] [-SetAutoFlash state] [-WaitUntilWndClosed] [-SetTopMost] Command-Line Arguments Argument Description configFilePath .ini file to load (optional; default path is C:\ ProgramData\DAP-Imager\DAP-Imager.ini). -b Execute in background -q Quit any instance already running -NextImageFilePath Sets the path of the next image file saved (one-shot). Normally used with “-OneShotCapture”. -OneShotCapture Shows the preview, let the user press the trigger and take a picture. When taken, DAP-Imager hides. Can be used with “-NextImageFilePath” to allow a user taking a picture that is then retrieved by an external application. -SelectMode The next parameter is the name of the mode to select (Portrait, Landscape, Macro, Barcode) -ResetOptions: Ignores DAP-Imager.ini and use the default settings -WaitUntilWndClosed Shows DAP-Imager and do not return before it’s hidden 70 4.0 Programming the Unit 4.1 Bar Code Parameter Menus This chapter describes the programmable parameters, provides bar codes for programming, and hexadecimal equivalents for host parameter programming through SSI. custom defaults, scan the Write to Custom Defaults bar code. The factory default or custom default parameter values can be recalled by scanning the SET FACTOR DEFAULT bar code or the RESTORE DEFAULTS bar code on page 8-10. Operational Parameters – or – The SE-955 is shipped with the factory default settings shown in Table 8-1 on page 8-5. These factory default values are stored in non-volatile memory and are preserved even when the scanner is powered down. Changes to the factory default values can be stored as custom defaults. These values are also stored in non-volatile memory and are preserved even when the scanner is powered down. • To change the parameter values: • The table below lists the factory defaults for all parameters. To change any option, scan the appropriate bar code(s). Scan the appropriate bar codes included in this chapter. The new values replace the existing memory values. To set the new values as Parameter Send the parameter through the scan engine’s serial port using the SSI command PARAM_SEND. Hexadecimal parameter numbers are shown in this chapter below the parameter title, and options appear in parenthesis beneath the accompanying bar codes. Instructions for changing parameters using this method are found in Chapter 9, Simple Serial Interface. Parameter Number (Hex) Set Factory Default Beeper Volume Beeper Tone Beeper Frequency Adjustment Factory Default Section Number All Defaults 4.2.1 0x8C Medium 4.2.2 0x91 Medium Frequency 4.2.3 0xF0 0x91 2500 Hz 4.2.4 Laser On Time 0x88 3.0 sec 4.2.5 Aim Duration 0xED 0.0 sec 4.2.6 Scan Angle 0xBF Medium (46°) 4.2.7 4.2.8 Power Mode 0x80 Low Power Trigger Mode 0x8A Level 4.2.9 Time-out Between Same Symbol 0x89 1.0 sec 4.2.10 Beep After Good Decode 0x38 Enable 4.2.11 Transmit “No Read” Message 0x5E Disable 4.2.12 Parameter Scanning 0xEC Enable 4.2.13 Linear Code Type Security Levels 0x4E 4.2.14 Bi-directional Redundancy 0x43 Disable 4.2.15 UPC/EAN 5.1 UPC-A 0x01 Enable 5.1.1 UPC-E 0x02 Enable 5.1.2 UPC-E1 0x0C Disable 5.1.3 EAN-8 0x04 Enable 5.1.4 EAN-13 0x03 Enable 5.1.5 Bookland EAN 0x53 Disable 5.1.6 Decode UPC/EAN Supplementals 0x10 Ignore 5.1.7 0x50 7 8-25 5.1.8 Transmit UPC-A Check Digit 0x28 Enable 5.1.9 Transmit UPC-E Check Digit 0x29 Enable 5.1.10 Transmit UPC-E1 Check Digit 0x2A Enable 5.1.11 Decode UPC/EAN Supplemental Redundancy UPC-A Preamble 0x22 System Character 5.1.12 UPC-E Preamble 0x23 System Character 5.1.13 UPC-E1 Preamble 0x24 System Character 5.1.14 71 4.0 Programming the Unit Parameter No. (Hex) Factory Default Page Number Convert UPC-E to A Parameter 0x25 Disable 5.1.15 Convert UPC-E1 to A 0x26 Disable 5.1.16 EAN-8 Zero Extend 0x27 Disable 5.1.17 Convert EAN-8 to EAN-13 Type 0xE0 Type is EAN-13 5.1.18 UPC/EAN Security Level 0x4D 5.1.19 UCC Coupon Extended Code 0x55 Disable 5.1.20 Code 128 5.2 Code-128 0x08 Enable 5.2.1 UCC/EAN-128 0x0E Enable 5.2.2 ISBT 128 0x54 Enable 5.2.3 Code 39 0x00 Enable 5.3.1 Trioptic Code 39 0x0D Disable 5.3.2 Convert Code 39 to Code 32 0x56 Disable 5.3.3 Code 32 Prefix 0xE7 Disable 5.3.4 Set Length(s) for Code 39 0x12 2-55 5.3.5 5.3.6 Code 39 5.3 0x13 Code 39 Check Digit Verification 0x30 Disable Transmit Code 39 Check Digit 0x2B Disable 5.3.7 Code 39 Full ASCII Conversion 0x11 Disable 5.3.8 Code 93 0x09 Disable 5.4.1 Set Length(s) for Code 93 0x1A 0x1B 4-55 5.4.2 Code 11 0x0A Disable 5.5.1 Set Lengths for Code 11 0x1C 0x1D 4 to 55 5.5.2 Code 11 Check Digit Verification 0x34 Disable 5.5.3 Transmit Code 11 Check Digit(s) 0x2F Disable 5.5.4 Code 93 5.4 Code 11 5.5 Interleaved 2 of 5 5.6 Interleaved 2 of 5 0x06 Enable 5.6.1 Set Length(s) for I 2 of 5 0x16 0x17 14 5.6.2 Interleaved 2 of 5 Check Digit Verification 0x31 Disable 5.6.3 Transmit Interleaved 2 of 5 Check Digit 0x2C Disable 5.6.4 Convert Interleaved 2 of 5 to EAN 13 0x52 Disable 5.6.5 Discrete 2 of 5 0x05 Disable 5.7.1 Set Length(s) for Discrete 2 of 5 0x14 0x15 12 5.7.2 0xF0 0x98 Disable 5.8.1 Discrete 2 of 5 5.7 Chinese 2 of 5 5.8 Chinese 2 of 5 72 4.0 Programming the Unit Parameter Parameter No. (Hex) Factory Default Page Number Codabar 0x07 Disable 5.9.1 Set Lengths for Codabar 0x18 0x19 5-55 5.9.2 CLSI Editing 0x36 Disable 5.9.3 NOTIS Editing 0x37 Disable 5.9.4 MSI 0x0B Disable 5.10.1 Set Length(s) for MSI 0x1E 0x1F 6-55 5.10.2 5.10.3 Codabar 5.9 MSI 5.10 MSI Check Digits 0x32 One Transmit MSI Check Digit 0x2E Disable 5.10.4 MSI Check Digit Algorithm 0x33 Mod 10/Mod 10 5.10.5 RSS-14 0xF0 0x52 Disable 5.11.1 RSS-Limited 0xF0 0x53 Disable 5.11.2 RSS-Expanded 0xF0 0x54 Disable 5.11.3 RSS 5.11 Data Options 5.12 Transmit Code ID Character 0x2D Prefix/Suffix Values Prefix Suffix 1 Suffix 2 None 5.12.1 5.12.2 Scan Data Transmission Format 0x69 0x68 0x6A NULL LF CR 0xEB Data as is Serial Interface 5.12.3 5.13 Baud Rate 0x9C 9600 5.13.1 Parity 0x9E None 5.13.2 Software Handshaking 0x9F Enable 5.13.3 Decode Data Packet Format 0xEE Unpacketed 5.13.4 Host Serial Response Time-out 0x9B 2 sec 5.13.5 Stop Bit Select 0x9D 5.13.6 Intercharacter Delay 0x6E 5.13.7 Host Character Time-out 0xEF 200 msec 5.13.8 Decode Event 0xF0 0x00 Disable 5.14.1 Boot Up Event 0xF0 0x02 Disable 5.14.2 Parameter Event 0xF0 0x03 Disable 5.14.3 Event Reporting* 5.14 Numeric Bar Codes 5.15 Cancel 5.15.1 *See Table 9-9 on page 9-20 for formatting of any parameter whose number is 0x100 or greater. 73 4.0 Programming the Unit 4.2 Bar Code Settings 4.2.1 4.2.3 Parameter # 0x91 Set Default Parameter To select a decode beep frequency (tone), scan the appropriate bar code. The SE-955 can be reset to two types of defaults: factory defaults or custom defaults. Scan the appropriate bar code below to reset the SE-955 to its default settings and/or set the scanner’s current settings as the custom default. • Beeper Tone Restore Defaults - Scan this bar code to reset all default parameters as follows. Low Frequency (0x02) – If custom defaults were set by scanning Write to Custom Defaults, scan Restore Defaults to retrieve and restore the scanner’s custom default settings. – If no custom defaults were set, scan Restore Defaults to restore the factory default values. *Medium Frequency (0x01) Restore Defaults • High Frequency (0x00) Set Factory Defaults - Scan this bar code to restore the factory de- fault values. If custom defaults were set, they are eliminated. 4.2.4 Beeper Frequency Adjustment Parameter # 0xF0 0x91 This parameter adjusts the frequency of the high beeper tone from the nominal 2500 Hz to another frequency matching the resonances of the installation. It is programmable in 10 Hz increments from 1220 Hz to 3770 Hz. Set Factory Defaults • Write to Custom Defaults - Scan this bar code to store the current To increase the frequency, scan the bar code below, then scan three numeric bar codes in Section 5.5 on page 95 that correspond to the desired frequency adjustment divided by 10. For example, to set the frequency to 3000 Hz (an increase of 500 Hz), scan numeric bar codes 0, 5, 0, corresponding to 50, or (500/10). scanner settings as custom defaults. Once custom default settings are stored, they can be recovered at any time by scanning Restore Defaults. To decrease the frequency, scan the bar code below, then scan three numeric bar codes in Section 5.5 on page 95 that correspond to the value (256 - desired adjustment/10). For example, to set the frequency to 2000 Hz (a decrease of 500 Hz), scan numeric bar codes 2, 0, 6, corresponding to 206, or (256 - 500/10). Write to Custom Defaults 4.2.2 Beeper Volume To change the selection or cancel an incorrect entry, scan the Cancel bar code in Section 5.5.1 on page 95. Parameter # 0x8C To select a decode beep volume, scan the appropriate bar code. Beeper Frequency Adjustment (Default: 2500 Hz) Low (0x02) *Medium (0x01) High (0x00) 74 4.0 Programming the Unit 4.2.5 4.2.7 Laser On Time Scan Angle Parameter # 0x88 Parameter # 0xBF This parameter sets the maximum time decode processing continues during a scan attempt. It is programmable in 0.1 second increments from 0.5 to 9.9 seconds. This parameter sets the scan angle to narrow, medium or wide. To set a Laser On Time, scan the bar code below. Next scan two numeric bar codes in Section 5.5 on page 95 that correspond to the desired on time. Single digit numbers must have a leading zero. For example, to set an on time of 0.5 seconds, scan the bar code below, then scan the “0” and “5” bar codes. To change the selection or cancel an incorrect entry, scan the Cancel bar code in Section 5.5.1 on page 95. Narrow Angle (35°) (0x05) *Medium Angle (46°) (0x06) Laser On Time (Default: 3.0 sec.) 4.2.6 Aim Duration Parameter # 0xED Wide Angle (53°) (0x07) When a scanner with an aim mode (see Table 9-10 on page 9-22) is triggered either by a trigger pull, or a START_DECODE command, this parameter sets the duration the aiming pattern is seen before a a scan attempt begins. It does not apply to the aim signal or the AIM_ON command. It is programmable in 0.1 second increments from 0.0 to 9.9 seconds. No aim pattern is visible when the value is 0.0. 4.2.8 Power Mode Parameter # 0x80 This parameter determines the power mode of the engine. To set an aim duration, scan the bar code below. Next scan two numeric bar codes beginning on page 8-71 that correspond to the desired aim duration. Single digit numbers must have a leading zero. For example, to set an aim duration of 0.5 seconds, scan the bar code below, then scan the “0” and “5” bar codes. To change the selection or cancel an incorrect entry, scan the Cancel bar code in Section 5.5 on page 95. In Low Power mode, the scanner enters into a low power consumption Sleep power state whenever possible (provided all WAKEUP commands have been released). In Continuous Power mode, the scan engine remains in the Awake state after each decode attempt. The Sleep and Awake commands can be used to change the power state in either the Low Power mode or the Continuous Power mode. Aim Duration (Default: 0.0 sec.) Continuous Power (0x00) Low Power (0x01) 75 4.0 Programming the Unit 4.2.9 Triggering Modes 4.2.10 Time-out Between Same Symbol Parameter # 0x8A Parameter # 0x89 Choose one of the options below to trigger the scan engine. Bar codes and option numbers are on the following page. When in Continuous triggering mode, this parameter sets the minimum time that must elapse before the scanner decodes a second bar code identical to one just decoded. This reduces the risk of accidently scanning the same symbol twice. It is programmable in 0.1 second increments from 0.0 to 9.9 seconds. • Scan (Level) - A trigger pull activates the laser and decode processing. The laser remains on and decode processing continues until a trigger release, a valid decode, or the Laser On Time-out is reached. To set a time-out between same symbol, scan the bar code below. Next scan two numeric bar codes beginning on page 8-71 that correspond to the desired time-out. Single digit values must have a leading zero. For example, to set a time-out of 0.5 seconds, scan the bar code below, then scan the “0” and “5” bar codes. To change the selection or cancel an incorrect entry, scan the Cancel bar code in Section 5.5.1 on page 95. *Level (0X00) • Scan (Pulse) - A trigger pull activates the laser and decode processing. The laser remains on and decode processing continues until a valid decode or the Laser On Time-out is reached. Time-out Between Same Symbol (Default: 1.0 sec.) 4.2.11 Pulse (0X02) • Beep After Good Decode Parameter # 0x38 Continuous - The laser is always on and decoding. Scan this symbol to set the scanner to beep after a good decode. Continuous (0X04) • *Beep After Good Decode (0x01) Blink - This trigger mode is used for triggerless operation. Scanning range is reduced in this mode. This mode cannot be used with scanners that support an aim mode. Scan this symbol to set the scanner not to beep after a good decode. The beeper still operates during parameter menu scanning and indicates error conditions. Blinking (0X07) • Host - A host command issues the triggering signal. The scan engine interprets an actual trigger pull as a Level triggering option. Do Not Beep After Good Decode (0x00) 4.2.12 Transmit “No Read” Message Parameter # 0x5E Enable this option to transmit “NR” if a symbol does not decode during the timeout period or before the trigger is released. Any enabled prefix or suffixes are appended around this message. Host (0X08) Enable No Read (0x01) When disabled, and a symbol cannot be decoded, no message is sent to the host. *Disable No Read (0x00) 76 4.0 Programming the Unit 4.2.13 Parameter Scanning Linear Security Level 3 Code types other than the following must be successfully read twice before being decoded. The following codes must be read three times: Parameter # 0xEC To disable decoding of parameter bar codes, scan the bar code below. The Set Defaults parameter bar code can still be decoded. To enable decoding of parameter bar codes, either scan *Enable Parameter Scanning (0x01), Set Factory Defaults or set this parameter to 0x01 via a serial command. Code Type Length MSI 4 or less D 2 of 5 8 or less I 2 of 5 8 or less *Enable Parameter Scanning (0x01) Linear Security Level 3 (0x03) Disable Parameter Scanning (0x00) 4.2.14 Linear Security Level 4 All code types must be successfully read three times before being decoded. Linear Code Type Security Level Parameter # 0x4E The SE-955 offers four levels of decode security for linear code types (e.g. Code 39, Interleaved 2 of 5). Select higher security levels for decreasing levels of bar code quality. As security levels increase, the scanner’s aggressiveness decreases. Select the security level appropriate for your bar code quality. Linear Security Level 4 (0x04) Linear Security Level 1 The following code types must be successfully read twice before being decoded: Code Type Length Codabar All MSI 4 or less D 2 of 5 8 or less I 2 of 5 8 or less 4.2.15 Bi-directional Redundancy Parameter # 0x43 Enable this option to transmit “NR” if a symbol does not decode during the timeout period or before the trigger is released. Any enabled prefix or suffixes are appended around this message. Enable Bi-directional Redundancy (0x01) *Linear Security Level 1 (0x01) When disabled, and a symbol cannot be decoded, no message is sent to the host. Linear Security Level 2 All code types must be successfully read twice before being decoded. *Disable Bi-directional Redundancy (0x00) Linear Security Level 2 (0x02) 77 5.0 UPC Types 5.1 5.1.1 5.0 UPC Types UPC / EAN 5.1.4 Enable/Disable UPC-A : Parameter # 0x01 Enable/Disable EAN-8 : Parameter # 0x04 To enable or disable EAN-8, scan the appropriate bar code below. To enable or disable UPC-A, scan the appropriate bar code below. *Enable EAN-8 (0x01) *Enable UPC-A (0x01) Disable EAN-8 (0x00) Disable UPC-A (0x00) 5.1.2 5.1.5 Enable/Disable UPC-E : Parameter # 0x02 Enable/Disable EAN-13 : Parameter # 0x03 To enable or disable EAN-13, scan the appropriate bar code below. To enable or disable UPC-E, scan the appropriate bar code below. *Enable EAN-13 (0x01) *Enable UPC-E (0x01) Disable EAN-13 (0x00) Disable UPC-E (0x00) 5.1.3 NOTE: UPC-E1 is not a UCC (Uniform Code Council) approved symbology. Enable/Disable UPC-E1 : Parameter # 0x0C 5.1.6 To enable or disable UPC-E1, scan the appropriate bar code below. Enable/Disable Bookland EAN : Parameter # 0x53 To enable or disable EAN Bookland, scan the appropriate bar code below. Enable UPC-E1 (0x01) Enable Bookland EAN (0x01) *Disable UPC-E1 (0x00) *Disable Bookland EAN (0x00) NOTE: UPC-E1 is not a UCC (Uniform Code Council) approved symbology. 78
Source Exif Data:
File Type : PDF File Type Extension : pdf MIME Type : application/pdf PDF Version : 1.6 Linearized : Yes Create Date : 2014:04:23 07:44:14-07:00 Creator : Adobe InDesign CS5 (7.0) Modify Date : 2014:04:23 07:44:21-07:00 XMP Toolkit : Adobe XMP Core 5.4-c005 78.147326, 2012/08/23-13:03:03 Metadata Date : 2014:04:23 07:44:21-07:00 Creator Tool : Adobe InDesign CS5 (7.0) Format : application/pdf Document ID : uuid:fb1b69f4-e081-412b-9dbf-adab6d4ec518 Instance ID : uuid:74e95486-1785-4a57-a424-462fac537234 Producer : Adobe PDF Library 9.9 Page Count : 38EXIF Metadata provided by EXIF.tools