Intermec Technologies 700C-SMC45 Pen-notepad computer with Radio Interfaces User Manual back let85x11

Intermec Technologies Corporation Pen-notepad computer with Radio Interfaces back let85x11

User Manual pt 3

127700 Series Color Mobile Computer User’s ManualPrinter Support5The 700 Series Color Mobile Computer works with the following printersfrom Intermec Technologies. Contact an Intermec Representative for in-formation about these printers.S6820A full-page, 80-column printer.S6808A 4-inch belt-mount printer.S781TA 2-inch belt-mount printer with a Bluetooth compatible module fromSocket Communications.S782TA 2-inch workboard printer.
Printer SupportChapter —5128 700 Series Color Mobile Computer User’s ManualPrinting ASCIIThe following methods for printing using Pocket PC at this time is as fol-lows:SAdd port drivers to print ASCII directly to the port.SUse LinePrinter ActiveX Control from the Software Developer’ s Kit(SDK) - see the SDK User’ s Manual for more information.SVia wireless printing - see the Wireless Printing Development Guide on the700C Software Tools CD for more information.Directly to a PortPrinting directly to the port sends RAW data to the printer. The format ofthis data depends upon your application and the printer capabilities.You must understand the printer commands available for your specificprinter. Generally, applications just send raw ASCII text to the printer.Since you are sending data to the printer from your application directly tothe port you are in complete control of the printers operations. This allowsyou to do line printing (print one line at a time) rather than the page for-mat printing offered by the GDI approach. It is also much faster since datadoes not have to be converted from one graphics format to the other (dis-play to printer). Most Intermecprinters use Epson Escape Sequences tocontrol print format operations.These commands are available in documentation you receive with yourprinters or from technical support. Win32 APIs are required to print di-rectly to the port.Directly to a Generic Serial PortTo print directly to a generic serial port printer (non-Intermec printers):SUse CreateFile() to open ports - COM1: can be opened on most de-vices.SUse WriteFile() to send data directly to the printer.SUse CloseHandle() when you are finished printing to close the port.IrDA Printer DriverIrDA printing is only available on the certain devices and is supported di-rectly by the Windows CE load via the IrSock API provided by the Micro-soft Win32 API without need for additional drivers. Intermec 6804, 6805,6806, 6808 and 6820 and other IrDA printers are supported.
Printer Support—Chapter 5129700 Series Color Mobile Computer User’s ManualNPCP Printer DriverThe NPCP printer communications driver (NPCPPORT.DLL) is aStream Device Driver built into the operating system. The driver supportsonly NPCP communications to and from the 6820 and 4820 printers overa selected serial port.All applications use WIN32 API functions to access the drivers. Basic op-erations are easily implemented by applications through the CreateFile(),WriteFile(), ReadFile(), DeviceIOControl(), and CloseHandle() Win32APIs.Operations to upgrade printer modules, perform printer diagnostics, andget printer configuration are performed largely via DeviceIOControl()functions.About NPCPNPCP (NorandPortable Communications Protocol) is a proprietary pro-tocol that provides session, network, and datalink services for Intermecmobile computers in the Intermec LAN environment used with printersand data communications.NPCP Driver Installation and RemovalUse LPT9: for the NPCP printer device and COM1 for the last parameter.COM1 is the connection available via the 700 Series Computer.Applications use the RegisterDevice() function to install the driver.DeregisterDevice() uninstalls the device driver and frees memory spacewhen the driver is not required. Use the HANDLE returned byRegisterDevice() as the parameter to DeregisterDevice().Use the RegisterDevice() function call as demonstrated below. Specify thefull path name to the driver starting at the root for the RegisterDevice()function to work properly. The last parameter to RegisterDevice() is aDWORD that represents the name of the port for the NPCP stream driverto use. Build this parameter on the stack if it is not to be paged out duringthe call. The first parameter “LPT” (Device Name) and the secondparameter “9’ (index), indicate the name of the registered device, such asLPT9. This is used in the CreateFile() function call.Install(){HANDLE hDevice;TCHAR port[6];port[0] = TCHAR(‘C’);port[1] = TCHAR(‘O’);port[2] = TCHAR(‘M’);port[3] = TCHAR(‘1’);port[4] = TCHAR(‘:’);port[5] = TCHAR(0);hDevice = RegisterDevice ( (TEXT(”LPT”), 9,TEXT(“\\STORAGE CARD\\WINDOWS\\NPCPPORT.dll”), (DWORD)port);}
Printer SupportChapter —5130 700 Series Color Mobile Computer User’s ManualOpening the NPCP DriverThe application opens the NPCP driver by using the CreateFile()function. The call can be implemented as follows. The first parameter“LPT9:” must reflect the device name and index used in theRegisterDevice() function call and will fail for any of the following reasons:hFile = CreateFile(_T(”LPT9:”), GENERIC_WRITE |GENERIC_READ, 0, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL,NULL);SThe port associated with the device during RegisterDevice() is in use.SThe NPCP device is already open.SThe share mode is not set to zero. The device cannot be shared.SAccess permissions are not set to GENERIC_WRITE |GENERIC_READ. Both modes must be specified.Closing the NPCP DriverUsing the CloseHandle() (hFile) function closes the NPCP driver. WherehFile is the handle returned by the CreateFile() function call.STRUE = the device is successfully closed.SFALSE = an attempt to close NULL HANDLE or an already closed de-vice.Reading from the NPCP DriverReading of the NPCP printers is not supported since all responses from theprinter are the result of commands sent to the printer. DeviceIoControl()functions are provided where data is to be received from the printer.Writing to the NPCP DriverAll Print data can be sent to the printer using the WriteFile() function.The print data written to the driver must contain the proper printercommands for formatting. If the function returns FALSE, the NPCP errormay be retrieved using IOCTL_NPCP_ERROR. See the description onthe next page.
Printer Support—Chapter 5131700 Series Color Mobile Computer User’s ManualNPCP Driver I/O ControlsAn application uses the DeviceIoControl() function to specify an printeroperation to be performed. Certain I/O controls are required to bind andclose communication sessions with the printer, and must be completedbefore any other commands to the driver can execute properly.The function returns TRUE to indicate the device successfully completedits specified I/O control operation, otherwise it returns FALSE. Thefollowing I/O control codes are defined:#define IOCTL_NPCP_CANCELCTL_CODE(FILE_DEVICE_SERIAL_PORT,0x400,METHOD_BUFFERED,FILE_ANY_ACCESS)#define IOCTL_NPCP_BINDCTL_CODE(FILE_DEVICE_SERIAL_PORT,0x401,METHOD_BUFFERED,FILE_ANY_ACCESS)#define IOCTL_NPCP_CLOSECTL_CODE(FILE_DEVICE_SERIAL_PORT,0x402,METHOD_BUFFERED,FILE_ANY_ACCESS)#define IOCTL_NPCP_ERRORCTL_CODE(FILE_DEVICE_SERIAL_PORT,0x403,METHOD_BUFFERED,FILE_ANY_ACCESS)#define IOCTL_NPCP_FLUSHCTL_CODE(FILE_DEVICE_SERIAL_PORT,0x404,METHOD_BUFFERED,FILE_ANY_ACCESS)#define IOCTL_NPCP_IOCTLCTL_CODE(FILE_DEVICE_SERIAL_PORT,0x405,METHOD_BUFFERED,FILE_ANY_ACCESS)#define IOCTL_NPCP_PRTVERCTL_CODE(FILE_DEVICE_SERIAL_PORT,0x406,METHOD_BUFFERED,FILE_ANY_ACCESS)SIOCTL_NPCP_CANCELThis cancels all printing at the printer. It flushes the printer buffers andreinitializes the printer to its default state. No parameters are required.SIOCTL_NPCP_BINDThis command is required before any data is sent or received by theprinter. Once the driver is opened, the application must bind the com-munications session with the printer before any data can be sent or re-ceived by the printer. If an error occurs during the bind, the applicationmay use IOCTL_NPCP_ERROR to get the current extended errorcode. No parameters are required.SIOCTL_NPCP_CLOSEThis command closes the current session with the printer. This functionalways returns TRUE. No parameters are required.SIOCTL_NPCP_ERRORThis command returns the extended NPCP error code in PL/N format.The word returned will contain the PL/N compatible error code in thelow byte and completion flags in the high byte. If the frame that re-turned an error was not received correctly by the printer theFRAME_NOT_ACKED bit will be set in the high byte. This operationalways returns TRUE. An output buffer of at least 2 bytes is required.See “NPCP Error Codes” on page 133.SIOCTL_NPCP_FLUSHThis command allows the application to poll the printer for errors whilethe report is completing the print process at the printer. If an error oc-curs during the polling process, the operation will return FALSE and theapplication can get the extended error code by usingIOCTL_NPCP_ERROR. No parameters are required.
Printer SupportChapter —5132 700 Series Color Mobile Computer User’s ManualNPCP Printer CommunicationsAll NPCP printer communications should be based on the following flow:1Use CreateFile(); to open the printer driver.2Use IOCTL_NPCP_BIND to bind a session with the printer;IOCTL_NPCP_ERROR to check for errors on the bind to ensure suc-cess; and IOCTL_NPCP_CANCEL to cancel any outstanding printjobs.3Use IOCTL_NPCP_FLUSH to poll the printer to free up printer buff-er resources. Use IOCTL_NPCP_FLUSH to poll the printer’ s status. Ifan error is reported by the IOCTL, then use IOCTL_NPCP_ERRORto get the error and determine the correct recovery procedure.4Use WriteFile(); to write your data to the printer. Check for errors andthat all data were written. Use IOCTL_NPCP_ERROR to get the ex-tended error. If the error is critical in nature, useIOCTL_NPCP_CLOSE, followed by CloseFile(), to end the commu-nications session. Start a new session, beginning with step 1 to ensureproper printing. For noncritical errors display the error and retry theoperation.5After all data is sent to the printer, ensure that the printer continues toprint the report properly by polling the printer’ s status. UseIOCTL_NPCP_FLUSH to poll the printer’ s status. If an error is re-ported by the IOCTL, then use IOCTL_NPCP_ERROR to get the er-ror and determine the correct recovery procedure.Sample CodeSee sample code in the “\700 Color Dev Tools\Installable Drivers\PortDrivers\Npcp\NPCPPrint\” directory for more details on printing, printercommunications and error code handling.
Printer Support—Chapter 5133700 Series Color Mobile Computer User’s ManualNPCP Error CodesCall the IOCTL_NPCP_ERROR I/O control function to receive PL/Ncompatible error codes. Applications must decide how to act upon the datareturned.// Definition of NPCP communications Errors and Printer Errors#define PNRDY (BYTE)102 // link not ready error#define RXTMO (BYTE)104 // link no receive error#define TXTMO (BYTE)106 // link no transmit error#define BADADR (BYTE)111 // frame address error#define GAPERR (BYTE)112 // link gap error (timeout) in receive data#define LSRPE (BYTE)113 // frame parity error on length field#define IFTS (BYTE)120 // session layer - invalid frame this state#define NS_NE_VR (BYTE)121 // session layer sequence error#define NR_NE_VS (BYTE)122 // session layer sequence error#define MAC_CRCERR (BYTE)124 // MAC CRC error#define RLENERR (BYTE)123 // MAC too much data received#define FRMERR (BYTE)200 // Frame Reject#define FRMERR_IF (BYTE)201 // Frame Reject - Invalid Frame#define FRMERR_NR (BYTE)202 // Frame Reject - NR Mismatch#define FRMERR_NS (BYTE)203 // Frame Reject - NS Mismatch#define NDMERR (BYTE)204 // Normal Disconnect mode error#define BINDERR (BYTE)210 // bind error#define IPLDUR (BYTE)221 // invalid presentation layer response#define HEADJAM (BYTE)222 // printer head jam#define PAPEROUT (BYTE)223 // printer paper out#define LOWVOLTS (BYTE)224 // printer low voltage#define HIVOLTS (BYTE)225 // printer over voltage#define LOWBAT (BYTE)226 // printer low battery#define COVEROFF (BYTE)227 // printer cover off error#define HEADFAULT (BYTE)228 // printer head short or driver short error#define PFFAULT (BYTE)229 // paper feed motor fault.#define FRAME_NOT_ACKED 0x8000 // frame was not received by printer and need tobe resent.
Printer SupportChapter —5134 700 Series Color Mobile Computer User’s ManualO’Neil Printer DriverThe DTR printer communications driver is a Stream Device Drivernamed ONEIL.DLL.All applications use WIN32 API functions to access drivers. Basicoperations are easily implemented by applications through the CreateFile(),WriteFile(), DeviceIOControl() and CloseHandle() Win32 APIs.The driver supports communications to 6804DM, 6804T, 6805A, 6806,6808, 681T, and 781 printers over a selected serial port.DTR Driver Installation and RemovalYour application must install the device driver by using the RegisterDe-vice() function. The driver name is ONEIL.DLL. We recommend thatyou use “DTR” for the Device Name parameter, “1” for the Device Driverindex parameter, and use any of the following strings for the last parame-ter:SNULL (==0) Defaults to COM1 @ 9600S“COM1” only COM port specified defaults to 9600S“COM1:9600” sets to COM port and specified bit rateS“COM1:19200” sets to COM port and specified bit rateUse the HANDLE returned by RegisterDevice() as the parameter toDeregisterDevice(). The correct usage of the RegisterDevice() function callis demonstrated below. You may use DeregisterDevice() to uninstall thedriver.Install(){HANDLE hDevice;TCHAR port[6];port[0] = TCHAR(‘C’);port[1] = TCHAR(‘O’);port[2] = TCHAR(‘M’);port[3] = TCHAR(‘1’);port[4] = TCHAR(‘:’);port[5] = TCHAR(0);hDevice = RegisterDevice ( (TEXT(”DTR”), 1, TEXT(”\\WINDOWS\\ONEIL.DLL”),(DWORD)port);}
Printer Support—Chapter 5135700 Series Color Mobile Computer User’s ManualOpening the DTR DriverThe application opens the DTR driver by using the CreateFile() function.The call can be implemented as follows:hFile = CreateFile(_T(”DTR1:”), GENERIC_WRITE, 0, NULL,OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);The first parameter “DTR1:” must reflect the device name and index usedin the RegisterDevice() function call.The function call will fail for any of the following reasons:SThe port associated with the device during RegisterDevice() is currentlyin use.SThe DTR device is already open.SThe share mode is not set to zero. The device cannot be shared.SAccess permissions are not set to GENERIC_WRITE.Closing the DTR DriverUsing the CloseHandle() (hFile) function closes the DTR driver. WherehFile is the handle returned by the CreateFile() function call.STRUE indicates the device is successfully closed.SFALSE indicates an attempt to close a NULL HANDLE or an alreadyclosed device.Writing to the DTR DriverYou can use the WriteFile() function to send all Print data to the printer.The print data being written must contain the proper formatting printercommands.DTR Printer CommunicationsAll DTR printer communications should be based on the following flow:1Use CreateFile(); to open the printer driver.2Use WriteFile() to write your data to the printer. Check for errors andthat all data were written.3Use CloseHandle() to close the driver.
Printer SupportChapter —5136 700 Series Color Mobile Computer User’s Manual
137700 Series Color Mobile Computer User’s ManualScanner Support6The 700 Series Color Mobile Computer is available with imaging or laserscanning technologies, including the following:SAPS linear imager:Reads 1D symbologies and PDF 417 bar codes. Linear imaging usingVista Scanning technology reads low-contrast bar codes, laminated barcodes, and bar codes displayed on CRT or TRT displays. This imaginguses harmless LEDs for illumination and does not require any warninglabels. Vista Scanning is more reliable than lasers as it is a completelysolid state with no moving parts or oscillating mirrors.S2D Imager:This decodes several stacked 1D and 2D symbologies, including PDF417 and Data Matrix without “painting.” It can also read 1D codesfrom any orientation, for example the scan beam does not need to bealigned perpendicular to the symbol in order to read it. Photography is asecondary application; the lens in the device will favor bar code reading.Photos are 640x480, 256 gray-scale.S1D laser scanner:Traditional laser scanner that decodes 1D bar codes.SPDF 417 laser scanner:Higher speed laser scanner that can read PDF 417 labels by “painting”the label.
Scanner SupportChapter —6138 700 Series Color Mobile Computer User’s ManualScanner Control and Data TransferNote: To use the methods described below, enable Data Collection func-tionality on the 700 Computer using the bootloader configuration menu.See Chapter 3, “Installing Applications” for more information.The Data Server and associated software provide several ways to manipu-late scanner control and data transfer between the scanner subsystem anduser applications:SAutomatic Data Collection COM Interfaces:These COM interfaces allow user applications to receive bar code data,and configure and control the bar code reader engine.SITCAxBarCodeReaderControl functions:These ActiveX controls allow user applications to collect bar code datafrom the scanner, to configure the scanner, and to configure audio andvisual notification when data arrives. For more information, see theSDK User’ s Manual.SITCAxReaderCommand functions:Use these ActiveX controls to modify and retrieve configuration infor-mation using the reader interface commands. For more information, seethe SDK User’ s Manual.SScanning EasySet bar code labels:You can use the EasySet bar code creation software from IntermecTechnologies Corporation to print configuration labels. Scan the labelsto change the scanner configuration and data transfer settings.Automatic Data Collection COM InterfacesData collection configuration and functionality cannot be accessed by anymeans (including control panel applets or remote management applications)until after the 700 Series Computer has completed initialization, whichoccurs during a warm- or cold-boot or after a firmware upgrade.When initialization is complete, the green LED on the 700 Series Com-puter stops flashing. Changes made to configuration settings remain after awarm boot. After a cold-boot, all configuration settings are reset to theirdefaults with the exception of scanner configurations, which remain exceptfor the Symbology Identifier transmission option or the Preamble andPostamble strings. To reset all configuration settings to the factory defaults,the S9C scanner firmware must be reloaded.
6 Scanner Support—Chapter139700 Series Color Mobile Computer User’s ManualThe Automatic Data Collection (ADC) functions are accessed throughcustom COM interfaces. These interfaces allow the application to receivebar code data and configure and control the bar code reader engine. TheCOM interfaces include the following functions:SIADC (starting on page 151)SIBarCodeReaderControl (starting on page 159)SIS9CConfig (starting on page 172)SIS9CConfig2 (starting on page 204)SIS9CConfig3 (starting on page 216)SIImage Interface (starting on page 221)Multiple ADC COM Object SupportA 700 Series Computer may have multiple reader engines to decode differ-ent types of ADC data. For example, a bar code reader engine decodes rawbar code data and passes it to a bar code reader COM object. An RFIDreader engine decodes raw RFID tag data and passes it to an RFID tagreader COM object.ADC COM interfaces are implemented as in-process COM objects. Aninstance of the ADC COM object creates a logical connection to access orcontrol the reader engine. Specifically, the IBarCodeReadConfig or IBar-CodeReaderControl COM objects can manage the bar code scanner con-figuration while the ADC COM object can gather data simultaneously.These ADC COM objects or connections can be created in a single ap-plication or multiple applications. Up to seven instances of a COM objectcan be created for a reader engine. For more information, see “How toCreate and Use the ADC COM Interfaces”below.For data collection features, ADC COM objects also provide for readahead and non-read ahead data access and grid data editing.
Scanner SupportChapter —6140 700 Series Color Mobile Computer User’s ManualHow to Create and Use the ADC COM InterfacesYou can also use the Input Device Functions (starting on page 149) tocreate and use the ADC COM interfaces.1Create and initialize the in-process Bar Code Reader object usingITCDeviceOpen() (see page 149). This function returns a COMInterface pointer to the Bar Code Reader Object created by thefunction.2Set the data grid if data filtering is desired (default grid gives the applica-tion all the data). Below is a sample code of how to set the grid to acceptCode 39 data that starts with the letter “A” and is not a reader com-mand.ITC_BARCODEREADER_GRID stBCGrid;stBCGrid.stDIGrid.szDataMask = TEXT(”A%s”);stBCGrid.stDDGrid.dwSymbologyMask = BARCODE_SYMBOLOGY_CODE39;stBCGrid.dwDataSourceTypeMask = ITC_DATASOURCE_USERINPUT;HRESULT hrStatus = pIBCControl->SetAttribute(ITC_RDRATTR_GRID,reinterpret_cast<BYTE *>(&stBCGrid),sizeof(stBCGrid));3Issue a read to accept the bar code data. The timestamp, symbology, anddata type are put into the ITC_BARCODE_DATA_DETAILS struc-ture. Passing in a pointer to this structure is optional. The followingsample code uses an infinite timeout.ITC_BARCODE_DATA_DETAILS stBCDetails;BYTE rgbBCData[1024]; // Buffer used to accept the bar code dataDWORD dwBytesReceived; // Number of bytes in the return data.HRESULT hrStatus = pIBCControl->Read(rgbBCData,sizeof(rgbBCData),&dwBytesReceived,& stBCDetails,INFINITE);4Compile and link the application.Read-Ahead Bar Code Data AccessThe Bar Code Reader COM object delivers ADC data to the connectionin read-ahead mode. In this mode, the data is queued until a COM con-nection is ready to read it. Read-ahead mode decouples reader device per-formance from the application performance. That is, data is read as fast asthe user can scan it, independent of the connection processing load. Nodata will be scanned until the first Read() function is posted.
6 Scanner Support—Chapter141700 Series Color Mobile Computer User’s ManualGrid Data FilteringThe virtual wedge retrieves scanned Automatic Data Collection (ADC)data and sends it to the keypad driver so that the 700 Series Computer canreceive and interpret the data as keypad input. The data can be filtered sothat only data conforming to a certain text pattern or symbology will besent to an application. After the data is filtered, it can be edited by adding,deleting, or rearranging portions of the text or by extracting portions oftext for further editing. To filter and edit data, you need to define thevirtual wedge grid parameters.SGrid Processing:Grid processing takes place in two steps:SCompilation:In which the user’ s grid expressions are checked for errors andreduced to a binary form for faster matching. This is done wheneverthe virtual wedge grid is set or changed by configuration software.SMatching:In which data is tested against the grids set in compilation. Matchingcan be performed multiple times after a compilation. The AIMsymbology ID of the data being tested, including the enclosing anglebrackets, must be prepended to the incoming data.SyntaxThe basic syntax of each grid expression is:<symID> filter-expression= > editing-expressionwhere:SsymIDIs the AIM symbology ID (see the AIM Symbology ID Defaults tablestarting on page 219).SfilterexpressionIs any character string that includes valid filter expression values (seethe “Filter Expression Values” table on the next page).Sediting-expressionIs any character string that includes valid editing expression values (seethe “Editing Expression Values” table on page 144).
Scanner SupportChapter —6142 700 Series Color Mobile Computer User’s ManualFilter Expression ValuesA filter-expression can be any string of text containing the operators listedbelow.Filter Expression ValuesOperator Meaning ExampleAny character string not containingthespecialcharacters:.?[]{}or\(period, question mark, left/rightbrackets, left/right curly brackets, back-slash).Match the string literally. super20 matches super20\c where c is any of the special char-acters:.?[]{}or\(period, question mark, left/rightbrackets, left/right curly brackets, back-slash)Remove any special meaning of c. \* matches *.(period) Any character. . matches x^ (tarot) Anchor the match at the beginningof the string.^abc matches abc, but not aabc$ (dollar sign) Anchor the match at the end of thestring.abc$ matches abc but not abcc? (question mark) Repeat the preceding expression zeroor one time.aa? matches a or aa*(asterisk) Repeat the preceding expression zeroor more times.ab*c matches ac, abc, abbc, etc.+(plussymbol) Repeat the preceding expression oneor more times.ab+c matches abc, abbc, etc.[characterclass] A series of nonrepeating charactersdenoting a class.[abcdefhijklmnopqrstuvwxyz] is theclass of all lowercase alphas.[rangel`rangeh] A sequential range of nonrepeatingcharacters denoting a class.[a-z]istheclassofalllowercaseal-phas.[^characterclass] Any character except those denotedby a character class.[^a-z] matches a numeric digit or apunctuation mark.[characterclass_tag] [:alnum:] - Alphanumeric characters[:alpha:] - Alphabetic characters[:blank:] - Tab and space[:cntrl:] - Control characters[:digit:] - Numeric characters[:graph:] - All printable characters ex-cept space[:lower:] - Lowercase letters[:print:] - All printable characters[:punct:] - Punctuation[:space:] - White space characters[:upper:] - Uppercase letters[:xdigit:] - Hexadecimal digits[[:alpha:]]* matches Dynaction,Selmer, or NewWonder but not Su-per20{num} Matches exactly num repetitions. a{3} matches only aaa{min,} Matches at least num repetitions. a{3,} matches aaaa but not aa
6 Scanner Support—Chapter143700 Series Color Mobile Computer User’s ManualFilter Expression Values (continued)ExampleMeaningOperator{min,max} A repetition operator like + or *, ex-cept the number of repetitions is spe-cified by min and max.[a-z]{1,3} matches a, ab, or aab, butnot aabc(expr1)|(expr2) Matches expr1 or expr2.a|b matches a or b(subexpression) Grouping operator to consolidateterms into a subexpression, whichcan override the order of evaluation.The subexpression is available for lat-er matching or editing by means of\index,where\index is between 1-9and refers to the index-th group inthe string, counting from left toright. \0 refers to the whole expres-sion.Overriding evaluation order: (ab)*cmatches c, abc, ababc, etc.Back-referencing: (aa)bb\1 matchesaabbaa.
Scanner SupportChapter —6144 700 Series Color Mobile Computer User’s ManualEditing Expression ValuesThis table lists the valid operators for editing expressions.Operator Meaning Example\index The index-th subexpression (reading left-right)in the matched string. index must be between0`9. \0 is the matched expression itself.M([0-9]{6})= > \1 produces 270494 whenM270494 is scanned, stripping off the firstcharacter.&or\0 The matched expression itself. M[0-9]{6}= > \0-Conn andM[0-9]{6}= > &-Connboth produceM270494-Connwhen M270494 is scanned.\xhh A concise representation of the lower 256characters in the Unicode set. When con-verted, this is still a 16-bit value.\x0d inserts a carriage return.any character string Inserts any character string in the outputstring.See previous examples.S<symID> is optional. If present, only data in the indicated symbology isaccepted.SIf the entire expression is blank, all data is passed unchanged. If =>editing-expression is omitted, then all data that passes through the filter isreturned unchanged. If = > editing expression is present, the data is trans-formed by editing-expression.SMultiple grid expressions can be compiled and are related in a logicalOR fashion. These are expressed as single grid expressions separated bysemicolons. When matching is attempted, the first grid expression fromleft to right that achieves a match will cause the data to be accepted.SAll pattern expressions and parsed data are in Unicode.Grid Filter Example 1This accepts a serial number in which the encoded number is a six-charac-ter string beginning with M followed by six numeric characters.SFilterM[0-9]{6}SEffectWhen a bar code, such as M270494, is scanned, all data is passed.Grid Filter Example 2This formats a scanned Social Security number and forms it into an XMLelement tagged “SSN”.SFilter([0-9]{3})([0-9]{2})([0-9]{4})= > <SSN > \1-\2-\3</SSN >SEffectA bar code, such as 123456789, is passed and reformatted to<SSN > 123-45-6789</SSN >
6 Scanner Support—Chapter145700 Series Color Mobile Computer User’s ManualGrid Filter Example 3This deletes the first three and last five characters of a 21-character Code128 label and deletes the first two characters of a 10-character Interleaved2 of 5 label.SFilter<]C > ...(.{13}).....= > \1; <]I > ..(........)= > \1SEffectIf Code 128, AAA1234567890123BBBBB becomes 1234567890123If Interleaved 2 of 5, AA12345678 becomes 12345678Grid Filter Example 4This inverts data such that the first alphabetic string (like a first name) andsecond alphabetic string (like a last name) are reversed and separated by acomma and a space.SFilter([[:alpha:]])+ ([[:alpha:]])+= > \2, \1SEffectWhen a bar code with the data “Dexter Gordon” is scanned, the data ismodified to read “Gordon, Dexter”.ADC ConnectionA 700 Series Computer can have both Bar Code and RFID reader engineswith each engine supporting multiple connections. Each connection allowsan application to access data or manage a configuration. An applicationcould have multiple connections.// Get an instance of the ADC COM object that corresponds integrated scannerIBarCodeReaderControl *pIBCControl;// Pointer to the Bar Code Reader objectHRESULT hrStatus = ITCDeviceOpen( TEXT(”default”),IID_IBarCodeReaderControl, ITC_DHDEVFLAG_READAHEAD,(LPVOID *) &pIBCControl);// If the ADC object was successfully created and initialized, accept barcode data.ITC_BARCODE_DATA_DETAILS stBCDetails;stBCDetails.wStructSize = sizeof(stBCDetails);BYTE rgbBCData[1024];//Buffer used to accept the bar code dataDWORD dwBytesReceived;// Number of bytes in the return data.HRESULT hrStatus = pIBCControl->Read(rgbBCData,sizeof(rgbBCData),&dwBytesReceived,& stBCDetails,INFINITE);
Scanner SupportChapter —6146 700 Series Color Mobile Computer User’s Manual2D Imager OverviewThe 700 Color optional integrated 2D Imager captures 640x480256-grayscale images at 20 frames per second. The imager features can becategorized into data collection features and image acquisition features asfollows:Data Collection FeaturesThe imager includes a decode engine capable of decoding 2D matrixsymbologies such as Data Matrix as well as the traditional 1D and stackedsymbologies (see the table on the next page for supported symbologies). Theapplication programming interfaces used to collect bar code data and con-figure the imager are the same as those used for the laser scanner. This in-cludes the keyboard wedge as well as the ADC COM interfaces and in-cludes functionality such as data editing and data filtering. In addition, theimager has the following configuration features (see “IS9CConfig3 Func-tions” starting on page 216 for configuration details):SAimer LED:A small, rectangular-aiming LED is displayed periodically during theimage capture and decoding process. The initial duration (after scan but-tons are pressed) of the aimer LED can be configured. This helps to selectthe specific bar code to be scanned with multiple bar codes in theimage.SScaled Illumination LED:When the ambient light is not sufficient to decode the bar code, the redillumination LEDs will be turned on to brighten the image. The inten-sity of the illumination LEDs is scaled to brighten the image justenough for decode. The reduces power consumption and the effect ofspecular reflection.SWindow size and position:The default window size (640x480) can be reduced in size and posi-tioned. This is useful in applications where multiple bar codes may bepresent in the image and the specific bar code must be selected to beread. For example, the window can be sized and positioned around theaimer LED. The entire bar code must reside in the configured windowfor a good decode.Omni-directional scanning is a feature that does not require configuration.1D and stacked symbologies as well as 2D matrix symbologies can bescanned with the 700 Series Computer in any orientation. Thus, time isnot needed to orient the 700 horizontal as with laser scanners.
6 Scanner Support—Chapter147700 Series Color Mobile Computer User’s ManualThe following table shows which bar code symbologies are supported ei-ther by an imager or by a laser scanner.Bar Code Symbology Imager Laser ScannerCode 39 XXInterleaved 2 of 5 X XStandard 2 of 5 XXMatrix 2 of 5 XCode 128 XXCode 93 X XCodabar XXMSI XPlessey XUPC X XEAN/EAN 128 XXCode 11 XPDF 417 XXMicro PDF 417 XTelepen XData Matrix XQR Code XImage Acquisition FeaturesThe integrated imager provides the following image acquisition features:SReal-time and Still Image Acquisition:This includes functions that start and stop image acquisition and readacquired images.SSignature Capture:This allows the application to retrieve an image of the normalized signa-ture. This means the image is always oriented as if the picture were tak-en at right angles to the signature, at the same distance, and in the cen-ter of the image no matter in what orientation the picture was taken.Signature capture requires a PDF 417 or Code 128 bar code symbologyto be present in the image and requires the application to identify theX,Y offsets relative to the center the bar code, the X,Y dimension ofimage to be captured, and the aspect ratio of the bar code. Note theunits are in terms of the narrow element width of the bar code.
Scanner SupportChapter —6148 700 Series Color Mobile Computer User’s ManualSee the following example signature capture label and dimensions. Theseimage acquisition features are provided through the IImage Interfacedefined on page 221.Y-axis–Y–XIntelligent bar codeunitsBar code height
6 Scanner Support—Chapter149700 Series Color Mobile Computer User’s ManualCreate and Delete ADC COM Object FunctionsUse these functions to create and release ADC COM interfaces.ITCDEVMGMT.H is the header file and ITCDEVMGMT.LIB is thelibrary.ITCDeviceOpenThis function opens and initializes a communication channel to the de-vice. In C++, this function returns a pointer to an interface on which themethods are called. In C, this function returns a handle, which is the firstparameter in each of the interface function calls.SyntaxHRESULT ITCDeviceOpen( LPCTSTR pszDeviceName, REFIID iid,ITC_DEVICE_FLAGS eDeviceFlags, void** ppvObject );ParameterspszDevice [in] Pointer to a string that contains the device nameon which to initialize the logical connection.The device name (Merlin 1) identifies acommunications port.Use “default” for all internal scanners, such asImager, SE900, etc. Use “ExtScanner” fortethered scanners.iid [in] The identifier of the interface being requested.eDeviceFlags [in] Enumeration that identifies the readcharacteristics as follows:SITC_DHDEVFLAG_READAHEADData is buffered on behalf of the callingapplications. Data Buffering starts after thefirst call to IADC::Read ().SITC_DHDEVFLAG_NODATAThe client application is managing the deviceto set its configuration or control its interfacebut not to collect data from the device.ppvObject [out] A pointer to the interface pointer identified byiid. If the object does not support this interface,ppvObject is set to NULL.Return ValuesHRESULT that indicates success or failure.RemarksNone.See AlsoSITCDeviceClose
Scanner SupportChapter —6150 700 Series Color Mobile Computer User’s ManualITCDeviceCloseThis function closes the interface opened with ITCDeviceOpen.Syntax:HRESULT ITCDeviceClose( IUnknown** ppvObject );ParametersppvObject [in,out] A pointer to the interface pointer created byITCDeviceOpen. If successful on output, thispointer is set to NULL.Return ValuesNone.RemarksOn Windows, this interface decrements the reference count. So alterna-tively, IUnknown::Release() could be used and must be used if referencecounting is performed with IUnknown::AddRef(). On DOS, this functioncloses all resources associated with the channel.See AlsoNone.
6 Scanner Support—Chapter151700 Series Color Mobile Computer User’s ManualIADC FunctionsIADC functions provide ADC data in an input device independent man-ner. This interface can receive bar code data, RFID data, and other ADCdata from data collection engines, such as a bar code scanner. Use IADCfunctions if bar code specifics such as symbology are not important to theapplication.IADC functions are the following. IADC.H is the header file andITCUUID.LIB contains the IID_IADC Interface GUID value used toobtain the interface.SIADC::CancelReadRequest (page 152)SIADC::Initialize (page 153)SIADC::QueryAttribute (page 154)SIADC::QueryData (page 155)SIADC::Read (page 156)SIADC::SetAttribute (page 157)
Scanner SupportChapter —6152 700 Series Color Mobile Computer User’s ManualIADC::CancelReadRequestThis function cancels a pending Read() request. This call can be made on aseparate thread as a Read() or on the same thread. On a separate thread,the function is useful in unblocking a blocked Read() so that other opera-tions can be performed. On the same thread, this function is useful instopping data from being collected on behalf of a Read Ahead Client.SyntaxHRESULT IADC::CancelReadRequest( BOOL FlushBufferedData,WORD*pwTotalDiscardedMessages, DWORD *pdwTotalDiscardedBytes );ParametersFlushBufferedData [in] True Flush and discard all alreadybuffered data.False Do not discard data, data will bereturned on the next read call.pwTotalDiscardedMessages [in/out] Total number of discarded bufferedlabels or tags.pdwTotalDiscardedBytes Total number of discarded bytes.Return ValuesHRESULT that indicates success or failure.RemarksThe return value indicates whether a read was pending.See AlsoSIADC::InitializeSIADC::QueryAttributeSIADC::QueryDataSIADC::ReadSIADC::SetAttribute
6 Scanner Support—Chapter153700 Series Color Mobile Computer User’s ManualIADC::InitializeThis function initializes a connection by opening a communications chan-nel with a logical reader engine. The communications port is implicitlyidentified. This communication channel is required to collect data or con-figure the device.SyntaxHRESULT IADC::Initialize ( LPCTSTR pszDeviceName,ITC_DEVICE_FLAGS eDeviceFlags );ParameterspszDeviceName [in] Pointer to a string that contains the device nameon which to initialize the logical connection.The device name (Merlin 1) identifies acommunications port.Use “default” for all internal scanners, such asImager, SE900, etc. Use “ExtScanner” fortethered scanners.eDeviceFlags [in] Enumeration that identifies the readcharacteristic as follows:SITC_DHDEVFLAG_READAHEADData is buffered on behalf of the callingapplication. Data buffering starts after thefirst call to IADC::Read ().Return ValuesHRESULT that indicates success or failure.RemarksNone.See AlsoSIADC::CancelReadRequestSIADC::QueryAttributeSIADC::QueryDataSIADC::ReadSIADC::SetAttribute
Scanner SupportChapter —6154 700 Series Color Mobile Computer User’s ManualIADC::QueryAttributeThis function retrieves a specified attribute that is device-independent.The specified attribute can be a grid or multiclient enable status.SyntaxHRESULT IADC::QueryAttribute (ITC_ADC_ATTRIBUTE_ID eAttribID, BYTE rgbBuffer[], DWORDdwBufferSize, DWORD *pnBufferData );ParameterseAttribID [in] Specifies the attribute. Only one attribute can bequeried at a time. See IADC::SetAttribute.rgbBuffer [out] Contains buffer for the attribute to be queried.The structure of lpBuffer depends on theattribute being queried. See IADC::SetAttributefor a description of these structures.dwBufferSize [in] The maximum number of bytes rgbBuffer canstore.pnBufferData [out] Pointer to the DWORD location to put thenumber of bytes stored in rgbBuffer.Return ValuesHRESULT that indicates success or failure.RemarksNone.See AlsoSIADC::CancelReadRequestSIADC::InitializeSIADC::QueryDataSIADC::ReadSIADC::SetAttribute
6 Scanner Support—Chapter155700 Series Color Mobile Computer User’s ManualIADC::QueryDataThis function returns the status of user input data that has been buffered.SyntaxHRESULT IADC::QueryData ( DWORD *dwTotalBufferedBytes, WORD*wNumberOfMessages, DWORD *dwNextMessageSize );ParametersdwTotalBufferedBytes [out] Total bytes buffered for connection.wNumberOfMessages [out] Total messages buffered. For example,each buffer contains a single bar code scan.dwNextMessageSize [out] Size (in bytes) of the next bufferedmessage.Return ValuesA standard status code that indicates success or failure.RemarksNone.See AlsoSIADC::CancelReadRequestSIADC::InitializeSIADC::QueryAttributeSIADC::ReadSIADC::SetAttribute
Scanner SupportChapter —6156 700 Series Color Mobile Computer User’s ManualIADC::ReadThis function requests user input data from the reader engine. This is ablocking function that returns either when there is data or after a timeout.SyntaxHRESULT IADC::Read ( BYTE rgbDataBuffer[], DWORDdwDataBufferSize, DWORD pnBytesReturned, SYSTEMTIMEpSystemTime, DWORD dwTimeout );ParametersrgbDataBuffer [in] Pointer to the buffer that receives the datafrom the device.dwDataBufferSize [in] Maximum number of bytes that can bestored in rgbDataBuffer.pnBytesReturned [out] Pointer to the DWORD location to storethe number of bytes returned inrgbDataBuffer.pSystemTime [out] Pointer to a SYSTEMTIME structure thatwill hold the time stamp of the receiveddata. This can be NULL if a timestamp isnot needed.dwTimeout [in] Number of milliseconds caller waits fordata. This parameter is ignored if theRead Ahead flag is not set.S0If data is not available, returns quickly.SINFINITEWaits until data is available.Return ValuesHRESULT that indicates success or failure.RemarksNone.See AlsoSIADC::CancelReadRequestSIADC::InitializeSIADC::QueryAttributeSIADC::QueryDataSIADC::SetAttribute
6 Scanner Support—Chapter157700 Series Color Mobile Computer User’s ManualIADC::SetAttributeThis function changes an attribute such as a grid specification.SyntaxHRESULT IADC::SetAttribute ( ITC_ADC_ATTRIBUTE_ID eAttribID,BYTE rgbData[], DWORD nBufferSize );ParameterseAttribID [in] Identifies the attribute to set. Only one attributecan be set at a time. The attribute is:SITC_MULTICLIENT_ENABLEIndicates whether this client can coexist withother clients.rgbData [in] Contains data for the attribute to be set.Depending on the eAttribID, this will be mappedto the appropriate structure as follows:SITC_MULTICLIENT_ENABLEBOOL is the rgbData Data Structure.STRUE, Client can receive data with otherclients (default).SFALSE, Data stream to this client is turnedoff when there are other clients.SITC_DHATTR_READFILTERITC_READFILTER is the rgbData DataStructure. The ITC_READFILE structure isdefined in IADCDEVICE.H as follows:typedef struct{#define ITC_MAXFILTER_CHARS 240WORD nFilterChars;TCHAR szFilter[ITC_MAXFILTER_CHARS];} ITC_READFILTER;where:SITC_MAXFILTER_CHARSMaximum number of characters in a filterspecification. Includes NULL termination.SnFilterChars Number of characters inpszDataMask.SszFilter Data mask specification. See“Grid Data Filtering.”nBufferSize [in] Number of bytes in rgbData.ITC_DHATTR_READFILTERRegular expression that performs data filtering and data editing. See “GridData Filtering” on page 141 for more information.Return ValuesA standard status code that indicates success or failure.RemarksNone.
Scanner SupportChapter —6158 700 Series Color Mobile Computer User’s ManualSee AlsoSIADC::CancelReadRequestSIADC::InitializeSIADC::QueryAttributeSIADC::QueryDataSIADC::Read
6 Scanner Support—Chapter159700 Series Color Mobile Computer User’s ManualIBarCodeReaderControl FunctionsIBarCodeReaderControl functions provide functionality for bar codecollection and control only. These functions allow an application to:STrigger the bar code laser scannerSDisable the scannerSReceive a bar code with details such as symbology scanned, data type(Unicode, ASCII), and the time the data was received.These functions include the following. IBARCODEREADER.H is theheader file and ITCUUID.LIB contains the IID_IADC Interface GUIDvalue used to obtain the interface.SIBarCodeReaderControl::CancelReadRequest (page 160)SIBarCodeReaderControl::ControlLED (page 161)SIBarCodeReaderControl::Initialize (page 162)SIBarCodeReaderControl::IssueBeep (page 163)SIBarCodeReaderControl::QueryAttribute (page 164)SIBarCodeReaderControl::Read (page 165)SIBarCodeReaderControl::SetAttribute (page 167)SIBarCodeReaderControl::TriggerScanner (page 171)
Scanner SupportChapter —6160 700 Series Color Mobile Computer User’s ManualIBarCodeReaderControl::CancelReadRequestThis function cancels a pending IBarCodeReaderControl::Read request. Ifthe read request is blocked, issue the CancelReadRequest from a separatethread.SyntaxHRESULT IBarCodeReaderControl::CancelReadRequest( BOOLFlushBufferedData, WORD *pwTotalDiscardedMessages,WORD*pwTotalDiscardedBytes );ParametersFlushBufferedData [in] TRUE Flushes and discards all buffereddata.FALSE Does not discard data; data willbe returned on the next readcall.pwTotalDiscardedMessages [in/out] Total number of discardedbuffered labels or tags.pwTotalDiscardedBytes Total number of discardedbytes.Return ValuesHRESULT that indicates success or failure.RemarksNone.See AlsoSIBarCodeReaderControl::ControlLEDSIBarCodeReaderControl::InitializeSIBarCodeReaderControl::IssueBeepSIBarCodeReaderControl::QueryAttributeSIBarCodeReaderControl::ReadSIBarCodeReaderControl::SetAttributeSIBarCodeReaderControl::TriggerScanner
6 Scanner Support—Chapter161700 Series Color Mobile Computer User’s ManualIBarCodeReaderControl::ControlLEDThis function controls LED illumination on a tethered scanner. The goodread LED and any valid LEDs will be turned on and off based on definedparameters.SyntaxHRESULT IBarCodeReaderControl::ControlLED(ITC_BARCODE_LASER_LED_ID eLED, BOOL fLedOn );ParameterseLED [in] The specified LED identifier.SITC_BARCODE_LASER_GOOD_READ_LEDIdentifies the good read LED.fLedOn [in] TRUE turns on the LED. FALSE turns off the LED.Return ValuesHRESULT that indicates success or failure.RemarksThis function does not coordinate LED control with the scanner. If thescanner LED control is enabled, function results will be unpredictable.See AlsoSIBarCodeReaderControl::CancelReadRequestSIBarCodeReaderControl::InitializeSIBarCodeReaderControl::IssueBeepSIBarCodeReaderControl::QueryAttributeSIBarCodeReaderControl::ReadSIBarCodeReaderControl::SetAttributeSIBarCodeReaderControl::TriggerScanner
Scanner SupportChapter —6162 700 Series Color Mobile Computer User’s ManualIBarCodeReaderControl::InitializeThis function opens and initializes a communications channel with a log-ical bar code reader engine.SyntaxHRESULT IBarCodeReaderControl::Initialize ( LPCTSTRpszDeviceName, ITC_DEVICE_FLAGS eDeviceFlags );ParameterspszDeviceName [in] Pointer to a string with device on which toinitialize the logical connection. The deviceidentifies a communications port. Use “default”for all internal scanners, such as Imager, SE900,etc. Use “ExtScanner” for tethered scanners.eDeviceFlags [in] Enumeration that identifies the readcharacteristic as follows:SITC_DHDEVFLAG_READAHEADData is buffered on behalf of the callingapplications. Data Buffering starts after thefirst call to IADC::Read ().Return ValuesHRESULT that indicates success or failure.RemarksNone.See AlsoSIBarCodeReaderControl::CancelReadRequestSIBarCodeReaderControl::ControlLEDSIBarCodeReaderControl::IssueBeepSIBarCodeReaderControl::QueryAttributeSIBarCodeReaderControl::ReadSIBarCodeReaderControl::SetAttributeSIBarCodeReaderControl::TriggerScanner
6 Scanner Support—Chapter163700 Series Color Mobile Computer User’s ManualIBarCodeReaderControl::IssueBeepThis function causes the reader engine to generate a high beep, a low beep,or a custom beep. The high beep and low beep are preconfigured beeptones and durations. The custom beep allows the client to specify the fre-quency and duration. The volume is the current volume setting. Note thisis not implemented.SyntaxHRESULT IBarCodeReaderControl::IssueBeep( ITC_BEEP_SPECrgBeepRequests[], DWORD dwNumberOfBeeps );ParametersrgBeepRequests [in] Array of ITC_BEEP_SPEC structures thatidentifies the beep type. The beep structureis:typedef struct tagITCBeepSpec{ITC_BEEP_TYPE eBeepType; // Identifies the type of beep// Following fields used only if the beep type is ITC_CUSTOM_BEEP.WORD wPitch; // Frequency, in Hz, of the beep.WORD wOnDuration; // Duration, in milliseconds, of Beep On.WORD wOffDuration; // Duration, in milliseconds, of Beep Off// Beep Off is used to separate individual beeps} ITC_BEEP_SPEC;typedef enum tagITCBeepType{ITC_LOW_BEEP, // Issue the default low beep.ITC_HIGH_BEEP, // Issue the default high beep.ITC_CUSTOM_BEEP, // Issue a custom beep.} ITC_BEEP_TYPE;dwNumberOfBeeps [in] Identifies the total number of beeps inrgBeepRequests.Return ValuesE_NOTIMPL as this function is not implemented.RemarksNone.See AlsoSIBarCodeReaderControl::CancelReadRequestSIBarCodeReaderControl::ControlLEDSIBarCodeReaderControl::InitializeSIBarCodeReaderControl::QueryAttributeSIBarCodeReaderControl::ReadSIBarCodeReaderControl::SetAttributeSIBarCodeReaderControl::TriggerScanner
Scanner SupportChapter —6164 700 Series Color Mobile Computer User’s ManualIBarCodeReaderControl::QueryAttributeThis function retrieves the device-specific grid, the scanner enable status,and the LED control status for the current bar code reader engine.SyntaxHRESULT IBarCodeReaderControl::QueryAttribute (ITC_BARCODEREADER_ATTRIBUTE_ID eAttr, BYTE rgbAttrBuffer[],DWORD dwAttrBufferSize );ParameterseAttr [in] Specifies the attribute. SeeIBarCodeReaderControl::SetAttribute onpage 167 for the attributes.rgbAttrBuffer [out] Contains buffer for the attribute to bequeried. The structure of rgbAttrBufferdepends on the attribute being queried.See IBarCodeReaderControl::SetAttritbutefor a description of these structures.dwAttrBufferSize [in] The maximum number of bytes thatrgbAttrBuffer can store.Return ValuesA standard status code that indicates success or failure.RemarksThe following attributes are not supported on the imager:SITC_RDRATTR_TONE_ENABLESITC_RDRATTR_VOLUME_LEVELSITC_RDRATTR_TONE_FREQUENCYSITC_RDRATTR_GOOD_READ_BEEPS_NUMBERSITC_RDRATTR_GOOD_READ_BEEP_DURATIONSee AlsoSIBarCodeReaderControl::CancelReadRequestSIBarCodeReaderControl::ControlLEDSIBarCodeReaderControl::InitializeSIBarCodeReaderControl::IssueBeepSIBarCodeReaderControl::ReadSIBarCodeReaderControl::SetAttributeSIBarCodeReaderControl::TriggerScanner
6 Scanner Support—Chapter165700 Series Color Mobile Computer User’s ManualIBarCodeReaderControl::ReadThis function reads data from the bar code input device. This method per-forms the same function as IADC::Read () except that it provides addition-al information about data received such as bar code symbology used, datatype, and time stamp of received data.SyntaxHRESULT IBarCodeReaderControl::Read ( BYTErgbDataBuffer[],DWORD dwDataBufferSize, DWORDpnBytesReturned,ITC_BARCODE_DATA_DETAILSpBarCodeDataDetails, DWORD dwTimeout );ParametersrgbDataBuffer [in] Pointer to the buffer that receives datafrom the device.dwDataBufferSize [in] Maximum number of bytes that can bestored in rgbDataBuffer.pnBytesReturned [out] Pointer to the DWORD location that willstore the bytes returned in rgbDataBuffer.pBarCodeDataDetails [in] Address of data structure in which to putthe data details. This may be NULL. TheITC_BARCODE_DATA_DETAILS is:typedef struct tagITCBarCodeDetails{WORD wStructSize,ITC_BARCODE_SYMBOLOGY_ID eSymbology,ITC_BARCODE_DATATYPE eDataType,SYSTEMTIME stTimeStamp,}ITC_BARCODE_DATA_DETAILS;typedef enum tagBarCodeDataType{BARCODE_DATA_TYPE_UNKNOWN = 1,BARCODE_DATA_TYPE_ASCII,BARCODE_DATA_TYPE_UNICODE,}ITC_BARCODE_DATATYPE;where:SwStructSize Size of structure. Used for versioning structure.SeSymbology Symbology of the returned data.SeDataType Identifies data types as ASCII, UNICODE, etc.SstTimeStamp Timestamp of the received data.SBARCODE_DATA_TYPE_UNKNOWN Data in unknown.SBARCODE_DATA_TYPE_ASCII Data is ASCII.SBARCODE_DATA_TYPE_UNICODE Data is UNICODE.
Scanner SupportChapter —6166 700 Series Color Mobile Computer User’s ManualdwTimeout [in] Number of milliseconds caller waits fordata. If you set a timeout, the call will beblocked until data is received.S0If data not available, returns quickly.SINFINITEWaits until data is available.Return ValuesHRESULT that indicates success or failure.RemarksNone.See AlsoSIBarCodeReaderControl::CancelReadRequestSIBarCodeReaderControl::ControlLEDSIBarCodeReaderControl::InitializeSIBarCodeReaderControl::IssueBeepSIBarCodeReaderControl::QueryAttributeSIBarCodeReaderControl::SetAttributeSIBarCodeReaderControl::TriggerScanner
6 Scanner Support—Chapter167700 Series Color Mobile Computer User’s ManualIBarCodeReaderControl::SetAttributeThis function enables and disables the laser scanner, sets the bar code read-er engine specific grid, and enables or disables the reader engine LED con-trol.SyntaxHRESULT IBarCodeReaderControl::SetAttribute (ITC_BARCODEREADER_ATTRIBUTE_ID eAttr, BYTE rgbAttrBuffer[],DWORD dwAttrBufferSize );ParameterseAttr [in] Identifies the attribute to set. Only one attribute can be setat a time. The attributes are:SITC_RDRATTR_SCANNER_ENABLEEnable or disable scanner for all connections.SITC_RDRATTR_GOOD_READ_LED_ENABLEEnables and disables the reader engine from controllingthe good read LED.SITC_RDRATTR_TONE_ENABLEEnables and disables the reader engine from issuingbeeps.SITC_RDRATTR_VOLUME_LEVELSets beep volume level.SITC_RDRATTR_TONE_FREQUENCYSets beep frequency.SITC_RDRATTR_GOOD_READ_BEEPS_NUMBERSets number of beeps for a good read.SITC_RDRATTR_GOOD_READ_BEEP_DURATIONSets duration of beeps for a good read.SITC_DHATTR_READFILTERThe ITC_READFILTER is the rgbData Data Structure.The ITC_READFILE structure is defined inIADCDEVICE.H as follows:typedef struct{#define ITC_MAXFILTER_CHARS 240WORD nFilterChars;TCHAR szFilter[ITC_MAXFILTER_CHARS];} ITC_READFILTER;where:SnFilterChars Number of characters in pszDataMask.SszFilter Data mask specification. See “Grid DataFiltering.”SITC_MAXFILTER_CHARSMaximum number of characters in a filter specification.Includes NULL termination.
Scanner SupportChapter —6168 700 Series Color Mobile Computer User’s ManualrgbAttrBuffer [in] Contains data for the attribute to be set. Dependingon eAttr,thergbAttrData will be mapped to theappropriate structure as shown in the following table .rgbAttrBuffer Data StructureseAttr Data Structure contained in rgbAttrBufferITC_RDRATTR_GRID ITC_BARCODEREADER_READER_GRIDReader Engine specific grid only.ITC_RDRATTR_SCANNER_ENABLE BOOLTRUE Enable scanner.FALSE Disable scanner.ITC_RDRATTR_GOOD_READ_LED_ENABLE BOOLTRUE Reader Engine controls good read LED.FALSE Good read LED is not controlled.ITC_RDRATTR_DATA_VALID_LED_ENABLE BOOLTRUE Reader Engine controls data valid LED.FALSE Data valid LED is not controlled.ITC_RDRATTR_TONE_ENABLE BOOLTRUE Reader Engine issues beeps.FALSE Beeps are not issued.ITC_RDRATTR_VOLUME_LEVEL ITC_BEEP_VOLUMEAn enumerator that identifies the beep volume level con-trol. Valid range for S9C:typedef enum tagBeepVolume{ITC_BEEP_VOLUME_LOW = 0,ITC_BEEP_VOLUME_MEDIUM = 2,ITC_BEEP_VOLUME_HIGH = 1 //Default}ITC_BEEP_VOLUMENote: Due to the hardware design on this 700 Series Com-puter, the volume level can be eitherOFF (ITC_BEEP_VOLUME_LOW) orON (ITC_BEEP_VOLUME_MEDIUM/HIGH).ITC_RDRATTR_TONE_FREQUENCY DWORDA value that identifies the tone frequency in Hz. Validrange for S9C: 1000`4095 Hz (default: 2090).Note: Value is divided by 10 for storage. On retrieval, thescanner rounds off the value to the nearest 10 Hz, then mul-tiplies the value by 10. For example, the value sent to thescanner is 2095. On retrieval, the value returned is 2090.
6 Scanner Support—Chapter169700 Series Color Mobile Computer User’s ManualrgbAttrBuffer Data Structures (continued)Data Structure contained in rgbAttrBuffereAttrITC_RDRATTR_GOOD_READ_BEEPS_NUMBER ITC_GOOD_READ_BEEPS_NUMBERAn enumerator identifying the good read beeps number.Valid range for S9C:typedef enum tagGoodReadBeepsNumber{ITC_NUM_BEEPS_NONE = 0,ITC_NUM_BEEPS_ONE = 1, // DefaultITC_NUM_BEEPS_TWO = 2}ITC_GOOD_READ_BEEPS_NUMBERITC_RDRATTR_GOOD_READ_BEEP_DURATION DWORDValue identifying the good read beep duration in ms.Valid range for S9C: 0`2550 ms (Default: 80).Note: Value is divided by 10 for storage. On retrieval, thescanner rounds the value to the nearest 10 ms, then multi-plies the value by 10.dwAttrBufferSize [in] The size of rgbAttrBuffer in bytes.Return ValuesHRESULT that indicates success or failure.RemarksRead ahead and non-read ahead clients can change the grid. Sincechanging the grid changes the entire reader engine grid, useIBarCodeReaderControl::QueryAttribute to retrieve the current readerengine grid and grid changes before sending back using SetAttribute. Thegrid structure is typedef struct tagBarCodeReaderGrid.{ITC_DI_GRID stDIGrid; // Device independent grid.ITC_DDBARCODE_GRID stDDGrid; // Reader engine dependent gridDWORD dwDataSourceTypeMask;} ITC_BARCODEREADER_GRID;ITC_DI_GRIDtypedef struct tagItcBarCodeGrid{DWORD dwSymbologyMask; // Symbologies to be received.} ITC_DDBARCODE_GRID;When the scanner is enabled, it scans when the scan button is pressed orthe trigger is pulled. When the scanner is disabled, it does not respondwhen the scan button is pressed or the trigger is pulled.
Scanner SupportChapter —6170 700 Series Color Mobile Computer User’s ManualThe following attributes are not supported on the imager:SITC_RDRATTR_TONE_ENABLESITC_RDRATTR_VOLUME_LEVELSITC_RDRATTR_TONE_FREQUENCYSITC_RDRATTR_GOOD_READ_BEEPS_NUMBERSITC_RDRATTR_GOOD_READ_BEEP_DURATIONSee AlsoSIBarCodeReaderControl::CancelReadRequestSIBarCodeReaderControl::ControlLEDSIBarCodeReaderControl::InitializeSIBarCodeReaderControl::IssueBeepSIBarCodeReaderControl::QueryAttributeSIBarCodeReaderControl::ReadSIBarCodeReaderControl::TriggerScanner
6 Scanner Support—Chapter171700 Series Color Mobile Computer User’s ManualIBarCodeReaderControl::TriggerScannerThis function turns the scanner on and off. The client application mustcoordinate control of the scanner with the user.SyntaxHRESULT IBarCodeReaderControl::TriggerScanner ( BOOLfScannerOn );ParametersfScannerOn [in] Set TRUE to turn the scanner on. Set FALSE to turnthe scanner off.Return ValuesHRESULT that indicates success or failure.RemarksThe scanner will be turned on or off independent of the actions of the us-ers. The client application must coordinate control of the scanner with theuser. When the scanner is turned on, its behavior is controlled by the trig-ger mode. That is, in one shot mode, the laser turns off when a label isscanned; in auto-trigger mode, the laser remains on.See AlsoSIBarCodeReaderControl::CancelReadRequestSIBarCodeReaderControl::ControlLEDSIBarCodeReaderControl::InitializeSIBarCodeReaderControl::IssueBeepSIBarCodeReaderControl::QueryAttributeSIBarCodeReaderControl::ReadSIBarCodeReaderControl::SetAttribute
Scanner SupportChapter —6172 700 Series Color Mobile Computer User’s ManualIS9CConfig FunctionsThis interface provides methods to set and retrieve the 700 Series Com-puter bar code configuration. All supported symbologies are initialized totheir defaults when the S9C firmware is loaded.GET/SET functions use enumerations as their parameters. In most enu-merations, there is an enumerator xx_NO_CHANGE (such asITC_CODE39_NO_CHANGE), where xx refers to a particular enum-eration. This enumerator can be used during a call to a SET to indicatethat no change is to be made to that particular parameter. This preventsthe called function from having to format the same S9C command andsend down to the S9C scanner.For all symbologies, to set a bar code length of “any length,” use a value of“0” for the bar code length argument.IS9CConfig functions are the following. IS9CCONFIG.H is the headerfile and ITCUUID.LIB contains the IID_IADC Interface GUID valueused to obtain the interface.SIS9CConfig::GetCodabar (page 173)SIS9CConfig::SetCodabar (page 174)SIS9CConfig::GetCode39 (page 176)SIS9CConfig::SetCode39 (page 177)SIS9CConfig::GetCode93 (page 179)SIS9CConfig::SetCode93 (page 179)SIS9CConfig::GetCode128 (page 180)SIS9CConfig::SetCode128 (page 181)SIS9CConfig::GetI2of5 (page 183)SIS9CConfig::SetI2of5 (page 184)SIS9CConfig::GetMatrix2of5 (page 185)SIS9CConfig::SetMatrix2of5 (page 186)SIS9CConfig::GetMSI (page 187)SIS9CConfig::SetMSI (page 187)SIS9CConfig::GetPDF417 (page 188)SIS9CConfig::SetPDF417 (page 189)SIS9CConfig::GetPlessey (page 192)SIS9CConfig::SetPlessey (page 192)SIS9CConfig::GetStandard2of5 (page 194)SIS9CConfig::SetStandard2of5 (page 195)SIS9CConfig::GetTelepen (page 197)SIS9CConfig::SetTelepen (page 197)SIS9CConfig::GetUpcEan (page 198)SIS9CConfig::SetUpcEan (page 200)
6 Scanner Support—Chapter173700 Series Color Mobile Computer User’s ManualIS9CConfig::GetCodabarThis function retrieves the current settings of Codabar symbology.SyntaxHRESULT IS9CConfig::GetCodabar( ITC_CODABAR_DECODING*peDecode, ITC_CODABAR_START_STOP* peSS, ITC_CODABAR_CLSI*peCLSI, ITC_CODABAR_CHECK_DIGIT* peCheck,ITC_BARCODE_LENGTH_ID* peLengthId, BYTE rgbLengthBuff[],DWORD* pdwNumBytes );ParameterspeDecode [out] Pointer to the ITC_CODABAR_DECODINGlocation to receive the decoding for Codabarsymbology.peSS [out] Pointer to theITC_CODABAR_START_STOP location toreceive the Start/Stop option.peCLSI [out] Pointer to the ITC_CODABAR_CLSI locationto receive the CLSI library system.peCheck [out] Pointer to theITC_CODABAR_CHECK_DIGIT location toreceive the check digit.peLengthId [out] Pointer to the ITC_BARCODE_LENGTH_IDlocation to receive an indicator of eitherITC_BARCODE_LENGTH orITC_BARCODE_FIXED_LENGTH.rgbLengthBuff [out,size_is(3)]An array of bytes to receive 1 byte of data forITC_BARCODE_LENGTH, or 3 bytes of datafor ITC_BARCODE_FIXED_LENGTH.pdwNumBytes [out] Pointer to the DWORD location to receive anumber indicating number of bytes inrbgLengthBuff[]: 1 byte forITC_BARCODE_LENGTH or 3 bytes forITC_BARCODE_FIXED_LENGTH.Return ValuesHRESULT that indicates success or failure.RemarksNone.See AlsoNone.
Scanner SupportChapter —6174 700 Series Color Mobile Computer User’s ManualIS9CConfig::SetCodabarThis function updates the Codabar settings with new values.SyntaxHRESULT IS9CConfig::SetCodabar( ITC_CODABAR_DECODINGeDecode, ITC_CODABAR_START_STOP eSS, ITC_CODABAR_CLSIeCLSI,ITC_CODABAR_CHECK_DIGIT eCheck, ITC_BARCODE_LENGTH_IDeLengthId, BYTE rgbLengthBuff[],DWORD dwNumBytes );ParameterseDecode [in] Identifies the decoding for Codabar symbology.eSS [in] Identifies the Start/Stop option.eCLSI [in] Identifies the CLSI library system.eCheck [in] Identifies the check digit.eLengthId [in] UseITC_BARCODE_LENGTH_NO_CHANGE toindicate no change for bar code length. UseITC_BARCODE_LENGTH for any length andminimum length, and set rgbLengthBuff[0] to avalid length value.Use ITC_BARCODE_FIXED_LENGTH tocompose 1 or 2 or 3 fixed lengths, and set 3 bytes:rgbLengthBuff[0],rgbLengthBuff[1],rgbLengthBuff[2] with valid values.rgbLengthBuff [in,size_is(dwNumBytes)]An array of bytes containing bar code lengths wheneLengthId = ITC_BARCODE_LENGTH orITC_BARCODE_FIXED_LENGTH.dwNumBytes [in] Number of bytes in rbgLengthBuff[]. For S9C, thisvalue is 1 wheneLengthId = ITC_BARCODE_LENGTH or 3when eLengthId =ITC_BARCODE_FIXED_LENGTHReturn ValuesHRESULT that indicates success or failure.RemarksNone.See AlsoNone.
6 Scanner Support—Chapter175700 Series Color Mobile Computer User’s ManualCodabar Default SettingsParameter Default Valid RangeDecode Not Active ITC_CODABAR_DECODINGCLSI Library System Not Active ITC_CODABAR_CLSIStart/Stop Not Transmitted ITC_CODABAR_START_STOPCheck Digit Not Used ITC_CODABAR_CHECK_DIGITBar Code Length Minimum Length = 6 0x00`0xFE ITC_BC_LENGTH_NO_CHANGECodabar Enumerationstypedef enum tagCodabarDecoding{ITC_CODABAR_NOTACTIVE = 0, // DefaultITC_CODABAR_ACTIVE = 1,ITC_CODABAR_NO_CHANGE = 255} ITC_CODABAR_DECODING;typedef enum tagCodabarStartStop{ITC_CODABAR_SS_NOTXMIT, // DefaultITC_CODABAR_SS_LOWERABCD, // a,b,c,dITC_CODABAR_SS_UPPERABCD, // A,B,C,DITC_CODABAR_SS_LOWERABCDTN, // a,b,c,d / t,n,*,eITC_CODABAR_SS_DC1TODC4, // DC1,DC2,DC3,DC4ITC_CODABAR_SS_NO_CHANGE = 255} ITC_CODABAR_START_STOP;typedef enum tagCodabarClsi{ITC_CODABAR_CLSI_NOTACTIVE = 0, // DefaultITC_CODABAR_CLSI_ACTIVE = 1,ITC_CODABAR_CLSI_NO_CHANGE = 255} ITC_CODABAR_CLSI;typedef enum tagCodabarCheckDigit{ITC_CODABAR_CHECK_NOTUSED, // DefaultITC_CODABAR_CHECK_XMIT,ITC_CODABAR_CHECK_NOTXMIT,ITC_CODABAR_CHECK_NO_CHANGE = 255} ITC_CODABAR_CHECK_DIGIT;typedef enum tagBarcodeLengthId{ITC_BARCODE_LENGTH = 0,ITC_BARCODE_FIXED_LENGTH,ITC_BARCODE_LENGTH_NO_CHANGE = 255} ITC_BARCODE_LENGTH_ID;
Scanner SupportChapter —6176 700 Series Color Mobile Computer User’s ManualIS9CConfig::GetCode39This function retrieves the current settings of Code 39.SyntaxHRESULT IS9Cconfig::GetCode39( ITC_CODE39_DECODING*peDecode, ITC_CODE39_FORMAT* peFormat,ITC_CODE39_START_STOP* peSS,ITC_CODE39_SS_CHARS* peSSChars,ITC_CODE39_CHECK_DIGIT* peCheck, DWORD* pwLength );ParameterspeDecode [out] Pointer to the ITC_CODE39_DECODINGlocation to receive the decoding for Code 39.peFormat [out] Pointer to the ITC_CODE39_FORMAT locationto receive the Code 39 format.peSS [out] Pointer to the ITC_CODE39_START_STOPlocation to receive the Code 39 start/stop.peSSChars [out] Pointer to the ITC_CODE39_SS_CHARSlocation to receive the Start/Stop character.peCheck [out] Pointer to the ITC_CODE39_CHECK_DIGITlocation to receive the check digit.pwLength [out] Pointer to the DWORD location to receive the barcode length.Return ValuesHRESULT that indicates success or failure.RemarksNone.See AlsoNone.
6 Scanner Support—Chapter177700 Series Color Mobile Computer User’s ManualIS9CConfig::SetCode39This function updates the Code 39 settings with new values.SyntaxHRESULT IS9CConfig::SetCode39( ITC_CODE39_DECODINGeDecode,ITC_CODE39_FORMAT eFormat, ITC_CODE39_START_STOPeSS,ITC_CODE39_SS_CHARS eSSChars, ITC_CODE39_CHECK_DIGITeCheck, DWORD dwLength );ParameterseDecode [in] Identifies the decoding for Code 39.eFormat [in] Identifies the Code 39 Format.eSS [in] Identifies the Start/Stop option.eSSChars [in] Identifies the Start/Stop character.eCheck [in] Identifies the Check digit.dwLength [in] Identifies the bar code length.Return ValuesHRESULT that indicates success or failure.RemarksNone.See AlsoNone.Code 39 Default SettingsParameter Default Valid RangeDecoding Active ITC_CODE39_DECODINGFormat Standard 43 Character ITC_CODE39_FORMATStart/Stop Not Transmitted ITC_CODE39_START_STOPAccepted Start/stop Characters *only ITC_CODE39_SS_CHARSCheck Digit Not Used ITC_CODE39_CHECK_DIGITBar Code Length Any Bar Code Length 0x00`0xFE ITC_BC_LENGTH_NO_CHANGE
Scanner SupportChapter —6178 700 Series Color Mobile Computer User’s ManualCode 39 Enumerationstypedef enum tagCode39Decoding{ITC_CODE39_NOTACTIVE = 0,ITC_CODE39_ACTIVE = 1, // DefaultITC_CODE39_NO_CHANGE = 255} ITC_CODE39_DECODING;typedef enum tagCode39Format{ITC_CODE39_FORMAT_STANDARD43, // DefaultITC_CODE39_FORMAT_FULLASCII,ITC_CODE39_FORMAT_NO_CHANGE = 255} ITC_CODE39_FORMAT;typedef enum tagCode39StartStop{ITC_CODE39_SS_NOTXMIT, // DefaultITC_CODE39_SS_XMIT,ITC_CODE39_SS_NO_CHANGE = 255} ITC_CODE39_START_STOP;typedef enum tagCode39StartStopChars{ITC_CODE39_SS_CHARS_DOLLARSIGN,ITC_CODE39_SS_CHARS_ASTERISK, // DefaultITC_CODE39_SS_CHARS_BOTH,ITC_CODE39_SS_CHARS_NO_CHANGE = 255} ITC_CODE39_SS_CHARS;typedef enum tagCode39CheckDigit{ITC_CODE39_CHECK_NOTUSED, // DefaultITC_CODE39_CHECK_MOD43_XMIT,ITC_CODE39_CHECK_MOD43_NOTXMIT,ITC_CODE39_CHECK_FRENCH_CIP_XMIT,ITC_CODE39_CHECK_FRENCH_CIP_NOTXMIT,ITC_CODE39_CHECK_ITALIAN_CPI_XMIT,ITC_CODE39_CHECK_ITALIAN_CPI_NOTXMIT,ITC_CODE39_CHECK_NO_CHANGE = 255} ITC_CODE39_CHECK_DIGIT;
6 Scanner Support—Chapter179700 Series Color Mobile Computer User’s ManualIS9CConfig::GetCode93This function retrieves the current settings of Code 93.SyntaxHRESULT IS9CConfig::GetCode93( ITC_CODE93_DECODING*peDecode, DWORD* pdwLength );ParameterspeDecode [out] Pointer to the ITC_CODE93_DECODINGlocation to receive the decoding for Code 93symbology.pdwLength [out] Pointer to the DWORD location to receive a valuefor bar code length.Return ValuesHRESULT that indicates success or failure.RemarksNone.See AlsoNone.IS9CConfig::SetCode93This function updates the Code 93 settings with new values.SyntaxHRESULT IS9CConfig::SetCode93( ITC_CODE93_DECODINGeDecode,DWORD dwLength );ParameterseDecode [in] Identifies the decoding for Code93 Symbology.dwLength [in] Identifies the bar code length.Return ValuesHRESULT that indicates success or failure.RemarksNone.See AlsoNone.Code 93 Default SettingsParameter Default Valid RangeDecoding Not Active ITC_CODE93_DECODINGBar Code Length Any Bar Code Length 0x00`0xFE ITC_BC_LENGTH_NO_CHANGE
Scanner SupportChapter —6180 700 Series Color Mobile Computer User’s ManualCode 93 EnumerationsUse this when the bar code length does not require any change.typedef enum tagCode93Decoding{ITC_CODE93_NOTACTIVE = 0, // DefaultITC_CODE93_ACTIVE = 1,ITC_CODE93_NO_CHANGE = 255} ITC_CODE93_DECODING;#define ITC_BC_LENGTH_NO_CHANGE 255.IS9CConfig::GetCode128This function retrieves the current settings of Code 128 symbology.SyntaxHRESULT IS9Cconfig::GetCode128( ITC_CODE128_DECODING*peDecode, ITC_EAN128_IDENTIFIER* peEan128Ident,ITC_CODE128_CIP128 peCip128State, BYTE* pbyFNC1, DWORD*pdwLength );ParameterspeDecode [out] Pointer to the ITC_CODE128_DECODINGlocation to receive the decoding for Code 128symbology.peEan128Ident [out] Pointer to the ITC_EAN128_IDENTIFIERlocation to receive the EAN 128 identifier.peCip128State [out] Pointer to the ITC_CODE128_CIP128location to receive the CIP 128.pbyFNC1 [out] Pointer to the BYTE location to receive theFNC1 separator character.pdwLength [out] Pointer to the DWORD location to receive avalue for bar code length.Return ValuesHRESULT that indicates success or failure.RemarksNone.See AlsoNone.
6 Scanner Support—Chapter181700 Series Color Mobile Computer User’s ManualIS9CConfig::SetCode128This function updates the Code 128 settings with new values.SyntaxHRESULT IS9CConfig::SetCode128( ITC_CODE128_DECODINGeDecode, ITC_EAN128_IDENTIFIER eEan128Ident,ITC_CODE128_CIP128 eCip128State, BYTE byFNC1, DWORD dwLength);ParameterseDecode [in] Identifies the decoding for Code 128 symbology.eEan128Ident [in] Identifies the EAN 128 identifier.eCip128State [in] Identifies the CIP 128.byFNC1 [in] Identifies the FNC1 separator character, usuallyany ASCII value.dwLength [in] Identifies the bar code length.Return ValuesHRESULT that indicates success or failure.RemarksNone.See AlsoNone.Code 128/EAN 128 Default SettingsParameter Default Valid RangeDecoding Not Active ITC_CODE128_DECODINGEAN 128 Identifier Include ]C1 ITC_EAN128_IDENTIFIERCIP 128 French PharmaceuticalCodesNot Active ITC_CODE128_CIP128FNC1 Separator Character (EAN128 norms)GS function CharASCII 29 or 0x1D0x00`0xFE ITC_CODE128_FNC1_NO_CHANGEBar Code Length Any Bar Code Length 0x00`0xFE ITC_BC_LENGTH_NO_CHANGE
Scanner SupportChapter —6182 700 Series Color Mobile Computer User’s ManualCode 128 Enumerationstypedef enum tagCode128Decoding{ITC_CODE128_NOTACTIVE = 0, // DefaultITC_CODE128_ACTIVE = 1,ITC_CODE128_NO_CHANGE = 255} ITC_CODE128_DECODING;typedef enum tagEan128Identifier{ITC_EAN128_ID_REMOVE,ITC_EAN128_ID_INCLUDE, // DefaultITC_EAN128_ID_NO_CHANGE = 255} ITC_EAN128_IDENTIFIER;typedef enum tagCode128Cip128{ITC_CODE128_CIP128_NOTACTIVE = 0, // DefaultITC_CODE128_CIP128_ACTIVE = 1,ITC_CODE128_CIP128_NO_CHANGE = 255} ITC_CODE128_CIP128;#define ITC_CODE128_FNC1_NO_CHANGE 255.This definition can be used when the Code128 FNC1 does not require any change.#define ITC_BC_LENGTH_NO_CHANGE 255. This definition can be used when the barcode length does not require any change.The table below shows what to be expected for EAN 128 labels for varioussymbology identifier transmit configurations and EAN 128 Identifier op-tions.Setup Application’s Expected ResultEAN 128 ]C1 ID Symbology ID option EAN 128 Label Other Labels1 Include ]C1 Disabled <data> <data>2Remove]C1Disabled <data> <data>3 Include ]C1 AIM ID Transmitted ]C1<data> ]XY<data>4Remove]C1AIDIDTransmitted ]C1<data> ]XY<data>5 Include ]C1 Custom ID Transmitted Z]C1<data> Z<data>6Remove]C1Custom ID Transmitted Z<data> Z<data>where “X” is the symbology identifier, “Y” is the modifier character, and “Z” is the 1-byte symbology identifier.
6 Scanner Support—Chapter183700 Series Color Mobile Computer User’s ManualIS9CConfig::GetI2of5This function retrieves the current settings of Interleaved 2 of 5.SyntaxHRESULT IS9CConfig::GetI2of5( ITC_INTERLEAVED2OF5_DECODING*peDecode, ITC_INTERLEAVED2OF5_CHECK_DIGIT* peCheck,ITC_BARCODE_LENGTH_ID* peLengthId, BYTE rbgLengthBuff[],DWORD* pdwNumBytes );ParameterspeDecode [out] Pointer to theITC_INTERLEAVED2OF5_DECODINGlocation to receive the decoding for Interleaved2 of 5 symbology.peCheck [out] Pointer to theITC_INTERLEAVED2OF5_CHECK_DIGITlocation to receive the check digit.peLengthId [out] Pointer to the ITC_BARCODE_LENGTH_IDlocation to receive an indicator of eitherITC_BARCODE_LENGTH orITC_BARCODE_FIXED_LENGTH.rgbLengthBuff [out,size_is(3)]An array of bytes to receives 1 byte of data forITC_BARCODE_LENGTH or 3 bytes of datafor ITC_BARCODE_FIXED_LENGTH.pdwNumBytes [out] Pointer to the DWORD location to receive anumber indicating number of bytes inrbgLengthBuff[]: 1 byte forITC_BARCODE_LENGTH or 3 bytes forITC_BARCODE_FIXED_LENGTH.Return ValuesHRESULT that indicates success or failure.RemarksNone.See AlsoNone.
Scanner SupportChapter —6184 700 Series Color Mobile Computer User’s ManualIS9CConfig::SetI2of5This function updates the Interleaved 2 of 5 settings with new values.SyntaxHRESULT IS9CConfig::SetI2of5( ITC_INTERLEAVED2OF5_DECODINGeDecode, ITC_INTERLEAVED2OF5_CHECK_DIGIT eCheck,ITC_BARCODE_LENGTH_ID eLengthId, BYTE rgbLengthBuff[], DWORDdwNumBytes );ParameterseDecode [in] Identifies the decoding for Interleaved 2 of 5symbology.eCheck [in] Identifies the check digit.eLengthId [in] UseITC_BARCODE_LENGTH_NO_CHANGE toindicate no change for bar code length. UseITC_BARCODE_LENGTH for any length andminimum length, and set rgbLengthBuff[0] to avalid length value. UseITC_BARCODE_FIXED_LENGTH to compose1 or 2 or 3 fixed lengths, and set 3 bytes:rgbLengthBuff[0],rgbLengthBuff[1],rgbLengthBuff[2] with valid values.rgbLengthBuff [in,size_is(dwNumBytes)]Contains bar code lengths when eLengthId =Use ITC_BARCODE_LENGTH orUse ITC_BARCODE_FIXED_LENGTH.dwNumBytes [in] Number of bytes in rbgLengthBuff[]. For S9C, thisvalue is 1 when eLengthId =ITC_BARCODE_LENGTH or 3 when eLengthId= ITC_BARCODE_FIXED_LENGTH.Return ValuesHRESULT that indicates success or failure.RemarksNone.See AlsoNone.Interleaved 2 of 5 Default SettingsParameter Default Valid RangeDecoding Not Active ITC_INTERLEAVED2OF5_DECODINGCheck Digit Not Used ITC_INTERLEAVED2OF5_CHECK_DIGITBar Code Length Minimum Length = 6 0x00`0xFE ITC_BC_LENGTH_NO_CHANGE
6 Scanner Support—Chapter185700 Series Color Mobile Computer User’s ManualInterleaved 2 of 5 Enumerationstypedef enum tagInterleaved2of5Decoding{ITC_INTERLEAVED2OF5_NOTACTIVE = 0, // DefaultITC_INTERLEAVED2OF5_ACTIVE = 1,ITC_INTERLEAVED2OF5_NO_CHANGE = 255} ITC_INTERLEAVED2OF5_DECODING;typedef enum tagInterleaved2of5CheckDigit{ITC_INTERLEAVED2OF5_CHECK_NOTUSED, // DefaultITC_INTERLEAVED2OF5_CHECK_MOD10_XMIT,ITC_INTERLEAVED2OF5_CHECK_MOD10_NOTXMIT,ITC_INTERLEAVED2OF5_CHECK_FRENCH_CIP_XMIT,ITC_INTERLEAVED2OF5_CHECK_FRENCH_CIP_NOTXMIT,ITC_INTERLEAVED2OF5_CHECK_NO_CHANGE = 255} ITC_INTERLEAVED2OF5_CHECK_DIGIT;typedef enum tagBarcodeLengthId{ITC_BARCODE_LENGTH = 0,ITC_BARCODE_FIXED_LENGTH,ITC_BARCODE_LENGTH_NO_CHANGE = 255} ITC_BARCODE_LENGTH_ID;IS9CConfig::GetMatrix2of5This function retrieves the current settings of Matrix 2 of 5.SyntaxHRESULT IS9CConfig::GetMatrix2of5( ITC_MATRIX2OF5_DECODING*peDecode, DWORD* pdwLength );ParameterspeDecode [out] Pointer to the ITC_MATRIX2OF5_DECODINGlocation to receive the decoding for Matrix 2 of 5symbology.pdwLength [out] Pointer to the DWORD location to receive a valuefor the bar code length.Return ValuesHRESULT that indicates success or failure.RemarksNone.See AlsoNone.
Scanner SupportChapter —6186 700 Series Color Mobile Computer User’s ManualIS9CConfig::SetMatrix2of5This function updates the Matrix 2 of 5 settings with new values.SyntaxHRESULT IS9CConfig::SetMatrix2of5( ITC_MATRIX2OF5_DECODINGeDecode, DWORD dwLength );ParameterseDecode [in] Identifies the decoding for Matrix 2 of 5 symbology.dwLength [in] Identifies the bar code length.Return ValuesHRESULT that indicates success or failure.RemarksNone.See AlsoNone.Matrix 2 of 5 Default SettingsParameter Default Valid RangeDecoding Not Active ITC_MATRIX2OF5_DECODINGBar Code Length Minimum Length = 6 0x00`0xFE ITC_BC_LENGTH_NO_CHANGEMatrix 2 of 5 Enumerationstypedef enum tagMatrix2of5Decoding{ITC_MATRIX2OF5_NOTACTIVE = 0, // DefaultITC_MATRIX2OF5_ACTIVE = 1,ITC_MATRIX2OF5_NO_CHANGE = 255} ITC_MATRIX2OF5_DECODING;#define ITC_BC_LENGTH_NO_CHANGE 255. This definition can be used when the barcode length does not require any change.
6 Scanner Support—Chapter187700 Series Color Mobile Computer User’s ManualIS9CConfig::GetMSIThis function retrieves the current MSI settings.SyntaxHRESULT IS9CConfig::GetMSI( ITC_MSI_DECODING* peDecode,ITC_MSI_CHECK_DIGIT* peCheck, DWORD* pdwLength );ParameterspeDecode [out] Pointer to the ITC_MSI_DECODING location toreceive the decoding for MSI symbology.peCheck [out] Pointer to the ITC_MSI_CHECK_DIGITlocation to receive the check digit.pdwLength [out] Pointer to the DWORD location to receive the barcode length.Return ValuesHRESULT that indicates success or failure.RemarksNone.See AlsoNone.IS9CConfig::SetMSIThis function updates the MSI settings with new values.SyntaxHRESULT IS9CConfig::SetMSI( ITC_MSI_DECODING eDecode,ITC_MSI_CHECK_DIGIT eCheck, DWORD dwLength );ParameterseDecode [in] Identifies the decoding for MSI symbology.eCheck [in] Identifies the check digit.dwLength [in] Identifies the bar code length.Return ValuesHRESULT that indicates success or failure.RemarksNone.See AlsoNone.MSI Default SettingsParameter Default Valid RangeDecoding Not Active ITC_MSI_DECODINGCheck Digit MOD 10 checked and transmitted ITC_MSI_CHECK_DIGITBar Code Length Minimum Length = 6 0x00`0xFE ITC_BC_LENGTH_NO_CHANGE
Scanner SupportChapter —6188 700 Series Color Mobile Computer User’s ManualMSI Enumerationstypedef enum tagMsiDecoding{ITC_MSI_NOTACTIVE = 0, // DefaultITC_MSI_ACTIVE = 1,ITC_MSI_NO_CHANGE = 255} ITC_MSI_DECODING;typedef enum tagMsiCheckDigit{ITC_MSI_CHECK_MOD10_XMIT, // DefaultITC_MSI_CHECK_MOD10_NOTXMIT,ITC_MSI_CHECK_DOUBLEMOD10_XMIT,ITC_MSI_CHECK_DOUBLEMOD10_NOTXMIT,ITC_MSI_CHECK_NO_CHANGE = 255} ITC_MSI_CHECK_DIGIT;#define ITC_BC_LENGTH_NO_CHANGE 255. This definition can be used when the barcode length does not require any change.IS9CConfig::GetPDF417This function retrieves the current PDF417 settings.SyntaxHRESULT IS9CConfig::GetPDF417( ITC_PDF417_DECODING*pePdf417Decode, ITC_PDF417_MACRO_PDF* peMacroPdf,ITC_PDF417_CTRL_HEADER* pePdfControlHeader,ITC_PDF417_FILE_NAME* pePdfFileName,ITC_PDF417_SEGMENT_COUNT* pePdfSegmentCount,ITC_PDF417_TIME_STAMP* pePdfTimeStamp, ITC_PDF417_SENDER*pePdfSender, ITC_PDF417_ADDRESSEE* pePdfAddressee,ITC_PDF417_FILE_SIZE* pePdfFileSize, ITC_PDF417_CHECKSUM*pePdfChecksum );ParameterspePdf417Decode [out] Pointer to theITC_PDF417_DECODING location toreceive the decoding for PDF417symbology.peMacroPdf [out] Pointer to theITC_PDF417_MACRO_PDF location toreceive the Macro PDF.pePdfControlHeader [out] Pointer to theITC_PDF417_CTRL_HEADER locationto receive the control header.pePdfFileName [out] Pointer to theITC_PDF417_FILE_NAME location toreceive the file name.pePdfSegmentCount [out] Pointer to theITC_PDF417_SEGMENT_COUNTlocation to receive the segment count.pePdfTimeStamp [out] Pointer to theITC_PDF417_TIME_STAMP location toreceive the time stamp.
6 Scanner Support—Chapter189700 Series Color Mobile Computer User’s ManualpePdfSender [out] Pointer to the ITC_PDF417_SENDERlocation to receive the sender.pePdfAddressee [out] Pointer to theITC_PDF417_ADDRESSEE location toreceive the addressee.pePdfFileSize [out] Pointer to the ITC_PDF417_FILE_SIZElocation to receive the file size.pePdfChecksum [out] Pointer to theITC_PDF417_CHECKSUM location toreceive the checksum.Return ValuesHRESULT that indicates success or failure.RemarksNone.See AlsoNone.IS9CConfig::SetPDF417This function updates the PDF417 settings with new values.SyntaxHRESULT IS9CConfig::SetPDF417( ITC_PDF417_DECODINGePdf417Decode, ITC_PDF417_MACRO_PDF eMacroPdf,ITC_PDF417_CTRL_HEADER ePdfControlHeader,ITC_PDF417_FILE_NAME ePdfFileName, ITC_PDF417_SEGMENT_COUNTePdfSegmentCount, ITC_PDF417_TIME_STAMP ePdfTimeStamp,ITC_PDF417_SENDER ePdfSender, ITC_PDF417_ADDRESSEEePdfAddressee, ITC_PDF417_FILE_SIZE ePdfFileSize,ITC_PDF417_CHECKSUM ePdfChecksum );ParametersePdf417Decode [in] Identifies the decoding for PDF417 symbology.eMacroPdf [in] Identifies the Macro PDF.ePdfControlHeader [in] Identifies the control header.ePdfFileName [in] Identifies the file name.ePdfSegmentCount [in] Identifies the segment count.ePdfTimeStamp [in] Identifies the time stamp.ePdfSender [in] Identifies the sender.ePdfAddressee [in] Identifies the addressee.ePdfFileSize [in] Identifies the file size.ePdfChecksum [in] Identifies the checksum.Return ValuesHRESULT that indicates success or failure.
Scanner SupportChapter —6190 700 Series Color Mobile Computer User’s ManualRemarksNone.See AlsoNone.PDF 417 Default SettingsParameter Default Valid RangeDecoding Not Active ITC_PDF417_DECODINGMacro PDF Macro PDF Buffered ITC_PDF417_MACRO_PDFControl Header Not Transmitted ITC_PDF417_CTRL_HEADER*File Name Not Transmitted ITC_PDF417_FILE_NAME*Segment Count Not Transmitted ITC_PDF417_SEGMENT_COUNT*Time Stamp Not Transmitted ITC_PDF417_TIME_STAMP*Sender Not Transmitted ITC_PDF417_SENDER*Address Not Transmitted ITC_PDF417_ADDRESSEE*File Size Not Transmitted ITC_PDF417_FILE_SIZE*Check Sum Not Transmitted ITC_PDF417_CHECKSUM* These are Macro PDF Optional Fields.PDF 417 Enumerationstypedef enum tagPdf417Decoding{ITC_PDF417_NOTACTIVE = 0,ITC_PDF417_ACTIVE = 1, // DefaultITC_PDF417_NO_CHANGE = 255} ITC_PDF417_DECODING;typedef enum tagPdf417MacroPdf{ITC_PDF417_MACRO_UNBUFFERED = 0,ITC_PDF417_MACRO_BUFFERED = 1, // DefaultITC_PDF417_MACRO_NO_CHANGE = 255} ITC_PDF417_MACRO_PDF;typedef enum tagPdf417ControlHeader{ITC_PDF417_CTRL_HEADER_NOTXMIT = 0, // DefaultITC_PDF417_CTRL_HEADER_XMIT = 1,ITC_PDF417_CTRL_HEADER_NO_CHANGE = 255} ITC_PDF417_CTRL_HEADER;typedef enum tagPdf417FileName{ITC_PDF417_FILE_NAME_NOTXMIT = 0, // DefaultITC_PDF417_FILE_NAME_XMIT = 1,ITC_PDF417_FILE_NAME_NO_CHANGE = 255} ITC_PDF417_FILE_NAME;typedef enum tagPdf417SegmentCount{ITC_PDF417_SEGMENT_COUNT_NOTXMIT = 0, // DefaultITC_PDF417_SEGMENT_COUNT_XMIT = 1,
6 Scanner Support—Chapter191700 Series Color Mobile Computer User’s ManualITC_PDF417_SEGMENT_COUNT_NO_CHANGE = 255} ITC_PDF417_SEGMENT_COUNT;typedef enum tagPdf417TimeStamp{ITC_PDF417_TIME_STAMP_NOTXMIT = 0, // DefaultITC_PDF417_TIME_STAMP_XMIT = 1,ITC_PDF417_TIME_STAMP_NO_CHANGE = 255} ITC_PDF417_TIME_STAMP;typedef enum tagPdf417Sender{ITC_PDF417_SENDER_NOTXMIT = 0, // DefaultITC_PDF417_SENDER_XMIT = 1,ITC_PDF417_SENDER_NO_CHANGE = 255} ITC_PDF417_SENDER;typedef enum tagPdf417Addressee{ITC_PDF417_ADDRESSEE_NOTXMIT = 0, // DefaultITC_PDF417_ADDRESSEE_XMIT = 1,ITC_PDF417_ADDRESSEE_NO_CHANGE = 255} ITC_PDF417_ADDRESSEE;typedef enum tagPdf417FileSize{ITC_PDF417_FILE_SIZE_NOTXMIT = 0, // DefaultITC_PDF417_FILE_SIZE_XMIT = 1,ITC_PDF417_FILE_SIZE_NO_CHANGE = 255} ITC_PDF417_FILE_SIZE;typedef enum tagPdf417Checksum{ITC_PDF417_CHECKSUM_NOTXMIT = 0, // DefaultITC_PDF417_CHECKSUM_XMIT = 1,ITC_PDF417_CHECKSUM_NO_CHANGE = 255} ITC_PDF417_CHECKSUM;
Scanner SupportChapter —6192 700 Series Color Mobile Computer User’s ManualIS9CConfig::GetPlesseyThis function retrieves the current Plessey settings.SyntaxHRESULT IS9CConfig::GetPlessey( ITC_PLESSEY_DECODING*peDecode, ITC_PLESSEY_CHECK_DIGIT* peCheck, DWORD* pdwLength);ParameterspeDecode [out] Pointer to the ITC_PLESSEY_DECODINGlocation to receive the decoding for Plesseysymbology.peCheck [out] Pointer to the ITC_PLESSEY_CHECK_DIGITlocation to receive the check digit.pdwLength [out] Pointer to the DWORD location to receive the barcode length.Return ValuesHRESULT that indicates success or failure.RemarksNone.See AlsoNone.IS9CConfig::SetPlesseyThis function updates the Plessey settings with new values.SyntaxHRESULT IS9CConfig::SetPlessey( ITC_PLESSEY_DECODINGeDecode, ITC_PLESSEY_CHECK_DIGIT eCheck, DWORD dwLength );ParameterseDecode [in] Identifies the decoding for Plessey symbology.eCheck [in] Identifies the check digit.dwLength [in] Identifies the bar code length.Return ValuesHRESULT that indicates success or failure.RemarksNone.See AlsoNone.
6 Scanner Support—Chapter193700 Series Color Mobile Computer User’s ManualPlessey Default SettingsParameter Default Valid RangeDecoding Not Active ITC_PLESSEY_DECODINGCheck Digit Not Transmitted ITC_PLESSEY_CHECK_DIGITBar Code Length Any Bar Code Length 0x00`0xFE ITC_BC_LENGTH_NO_CHANGEPlessey Enumerationstypedef enum tagPlesseyDecoding{ITC_PLESSEY_NOTACTIVE = 0, // DefaultITC_PLESSEY_ACTIVE = 1,ITC_PLESSEY_NO_CHANGE = 255} ITC_PLESSEY_DECODING;typedef enum tagPlesseyCheckDigit{ITC_PLESSEY_CHECK_NOTXMIT = 0, // DefaultITC_PLESSEY_CHECK_XMIT = 1,ITC_PLESSEY_CHECK_NO_CHANGE = 255} ITC_PLESSEY_CHECK_DIGIT;#define ITC_BC_LENGTH_NO_CHANGE 255. This definition can be used when the barcode length does not require any change.
Scanner SupportChapter —6194 700 Series Color Mobile Computer User’s ManualIS9CConfig::GetStandard2of5This function retrieves the current Standard 2 of 5 settings.SyntaxHRESULT IS9CConfig::GetStandard2of5(ITC_STANDARD2OF5_DECODING* peDecode,ITC_STANDARD2OF5_FORMAT* peFormat,ITC_STANDARD2OF5_CHECK_DIGIT* peCheck,ITC_BARCODE_LENGTH_ID* peLengthId, BYTE rgbLengthBuff,DWORD* pdwNumBytes );ParameterspeDecode [out] Pointer to theITC_STANDARD2OF5_DECODINGlocation to receive the decoding for Standard2 of 5 symbology.peFormat [out] Pointer to theITC_STANDARD2OF5_FORMAT locationto receive the format.peCheck [out] Pointer to theITC_STANDARD2OF5_CHECK_DIGITlocation to receive Modulo 10 check digit.peLengthId [out] Pointer to the ITC_BARCODE_LENGTH_IDlocation to receive an indicator of eitherITC_BARCODE_LENGTH orITC_BARCODE_FIXED_LENGTH.rgbLengthBuff [out,size_is(3)]An array of bytes to receives 1 byte of data forITC_BARCODE_LENGTH, or 3 bytes of datafor ITC_BARCODE_FIXED_LENGTH.pdwNumBytes [out] Pointer to the DWORD location to receive anumber indicating number of bytes inrbgLengthBuff[]: 1 byte forITC_BARCODE_LENGTH or 3 bytes forITC_BARCODE_FIXED_LENGTH.Return ValuesHRESULT that indicates success or failure.RemarksNone.See AlsoNone.
6 Scanner Support—Chapter195700 Series Color Mobile Computer User’s ManualIS9CConfig::SetStandard2of5This function updates the Standard 2 of 5 settings with new values.SyntaxHRESULT IS9CConfig::SetStandard2of5(ITC_STANDARD2OF5_DECODING eDecode, ITC_STANDARD2OF5_FORMATeFormat, ITC_STANDARD2OF5_CHECK_DIGIT eCheck,ITC_BARCODE_LENGTH_ID eLengthId, BYTE rgbLengthBuff[], DWORDdwNumBytes );ParameterseDecode [in] Identifies the decoding for Standard 2 of 5symbology.eFormat [in] Identifies the format.eCheck [in] Identifies the Modulo 10 check digit.eLengthId [in] UseITC_BARCODE_LENGTH_NO_CHANGE toindicate no change for bar code length. UseITC_BARCODE_LENGTH for any length andminimum length, and set rgbLengthBuff[0] to avalid length value. UseITC_BARCODE_FIXED_LENGTH to compose1 or 2 or 3 fixed lengths, and set 3 bytes:rgbLengthBuff[0],rgbLengthBuff[1],rgbLengthBuff[2] with valid values.rgbLengthBuff [in,size_is(dwNumBytes)]An array of bytes containing bar code lengths wheneLengthId = ITC_BARCODE_LENGTH orITC_BARCODE_FIXED_LENGTH.dwNumBytes [in] Number of bytes in rbgLengthBuff[]. For S9C, thisvalue is 1 when eLengthId =ITC_BARCODE_LENGTH or 3 when eLengthId= ITC_BARCODE_FIXED_LENGTH.Return ValuesHRESULT that indicates success or failure.RemarksNone.See AlsoNone.
Scanner SupportChapter —6196 700 Series Color Mobile Computer User’s ManualStandard 2 of 5 Default SettingsParameter Default Valid RangeDecoding Not Active ITC_STANDARD2OF5_DECODINGFormat Identicon (6 Start/Stop bars) ITC_STANDARD2OF5_FORMATCheck Digit Not Used ITC_STANDARD2OF5_CHECK_DIGITBar Code Length Minimum Length = 6 0x00-0xFE ITC_BC_LENGTH_NO_CHANGEStandard 2 of 5 Enumerationstypedef enum tagStandard2of5Decoding{ITC_STANDARD2OF5_NOTACTIVE = 0, // DefaultITC_STANDARD2OF5_ACTIVE = 1,ITC_STANDARD2OF5_NO_CHANGE = 255} ITC_STANDARD2OF5_DECODING;typedef enum tagStandard2of5Format{ITC_STANDARD2OF5_FORMAT_IDENTICON, // DefaultITC_STANDARD2OF5_FORMAT_COMPUTER_IDENTICS,ITC_STANDARD2OF5_FORMAT_NO_CHANGE = 255} ITC_STANDARD2OF5_FORMAT;typedef enum tagStandard2of5CheckDigit{ITC_STANDARD2OF5_CHECK_NOTUSED, // DefaultITC_STANDARD2OF5_CHECK_XMIT,ITC_STANDARD2OF5_CHECK_NOTXMIT,ITC_STANDARD2OF5_CHECK_NO_CHANGE = 255} ITC_STANDARD2OF5_CHECK_DIGIT;typedef enum tagBarcodeLengthId{ITC_BARCODE_LENGTH = 0,ITC_BARCODE_FIXED_LENGTH,ITC_BARCODE_LENGTH_NO_CHANGE = 255} ITC_BARCODE_LENGTH_ID;
6 Scanner Support—Chapter197700 Series Color Mobile Computer User’s ManualIS9CConfig::GetTelepenThis function retrieves the current Telepen settings.SyntaxHRESULT IS9CConfig::GetTelepen( ITC_TELEPEN_DECODING*peDecode, ITC_TELEPEN_FORMAT* peFormat );ParameterspeDecode [out] Pointer to the ITC_TELEPEN_DECODINGlocation to receive the decoding for TELEPENsymbology.peFormat [out] Pointer to the ITC_TELEPEN_FORMAT location toreceive the format.Return ValuesHRESULT that indicates success or failure.RemarksNone.See AlsoNone.IS9CConfig::SetTelepenThis function updates the Telepen settings with new values.SyntaxHRESULT IS9CConfig::SetTelepen( ITC_TELEPEN_DECODING*eDecode, ITC_TELEPEN_FORMAT* eFormat );ParameterseDecode [in] Identifies the decoding for Telepen symbology.eFormat [in] Identifies the format.Return ValuesHRESULT that indicates success or failure.RemarksNone.See AlsoNone.Telepen Default SettingsParameter Default Valid RangeDecoding Not Active ITC_TELEPEN_DECODINGFormat ASCII ITC_TELEPEN_FORMAT
Scanner SupportChapter —6198 700 Series Color Mobile Computer User’s ManualTelepen Enumerationstypedef enum tagTelepenDecoding{ITC_TELEPEN_NOTACTIVE = 0, // DefaultITC_TELEPEN_ACTIVE = 1,ITC_TELEPEN_NO_CHANGE = 255} ITC_TELEPEN_DECODING;typedef enum tagTelepenDecoding{ITC_TELEPEN_FORMAT_ASCII, // DefaultITC_TELEPEN_FORMAT_NUMERIC,ITC_TELEPEN_FORMAT_NO_CHANGE = 255} ITC_TELEPEN_FORMAT;IS9CConfig::GetUpcEanThis function retrieves the current UPC/EAN settings.SyntaxHRESULT IS9CConfig::GetUpcEan( ITC_UPCEAN_DECODING*upceanDecode, ITC_UPCA_SELECT* upcASelect, ITC_UPCE_SELECT*upcESelect, ITC_EAN8_SELECT* ean8Select, ITC_EAN13_SELECT*ean13Select, ITC_UPCEAN_ADDON_DIGITS* upcAddOnDigits,ITC_UPCEAN_ADDON_TWO* upcAddOn2, ITC_UPCEAN_ADDON_FIVE*upcAddOn5, ITC_UPCA_CHECK_DIGIT* upcACheck,ITC_UPCE_CHECK_DIGIT* upcECheck, ITC_EAN8_CHECK_DIGIT*ean8Check, ITC_EAN13_CHECK_DIGIT* ean13Check,ITC_UPCA_NUMBER_SYSTEM* upcANumSystem,ITC_UPCE_NUMBER_SYSTEM* upcENumSystem, ITC_UPCA_REENCODE*upcAReencode, ITC_UPCE_REENCODE* upcEReencode,ITC_EAN8_REENCODE* ean8Reencode );ParametersupceanDecode [out] Pointer to the ITC_UPCEAN_DECODINGlocation to receive the decoding for UPC/EANsymbology.upcASelect [out] Pointer to the ITC_UPCA_SELECT location toreceive the UPC-A selection state.upcESelect [out] Pointer to the ITC_UPCE_SELECT location toreceive the UPC-E selection state.ean8Select [out] Pointer to the ITC_EAN8_SELECT location toreceive the EAN-8 selection state.ean13Select [out] Pointer to the ITC_EAN13_SELECT locationto receive the EAN-13 selection state.upcAddOnDigits [out] Pointer to theITC_UPCEAN_ADDON_DIGITS location toreceive the add-on digits.upcAddOn2 [out] Pointer to theITC_UPCEAN_ADDON_TWO location toreceive the add-on 2 digits.upcAddOn5 [out] Pointer to the ITC_UPCEAN_ADDON_FIVElocation to receive the add-on 5 digits.
6 Scanner Support—Chapter199700 Series Color Mobile Computer User’s ManualupcACheck [out] Pointer to the ITC_UPCA_CHECK_DIGITlocation to receive the UPC-A check digit.upcECheck [out] Pointer to the ITC_UPCE_CHECK_DIGITlocation to receive the UPC-E check digit.ean8Check [out] Pointer to the ITC_EAN8_CHECK_DIGITlocation to receive the EAN-8 check digit.ean13Check [out] Pointer to the ITC_EAN13_CHECK_DIGITlocation to receive the EAN-13 check digit.upcANumSystem [out] Pointer to theITC_UPCA_NUMBER_SYSTEM location toreceive the UPC-A number system.upcENumSystem [out] Pointer to theITC_UPCE_NUMBER_SYSTEM location toreceive the UPC-E number system.upcAReencode [out] Pointer to the ITC_UPCA_REENCODElocation to receive the UPC-A reencoding.upcEReencode [out] Pointer to the ITC_UPCE_REENCODElocation to receive the UPC-E reencoding.ean8Reencode [out] Pointer to the ITC_EAN8_REENCODElocation to receive the EAN-8 reencoding.Return ValuesHRESULT that indicates success or failure.RemarksNone.See AlsoNone.
Scanner SupportChapter —6200 700 Series Color Mobile Computer User’s ManualIS9CConfig::SetUpcEanThis function updates the UPC/EAN settings with new values.SyntaxHRESULT IS9CConfig::SetUpcEan( ITC_UPCEAN_DECODINGupceanDecode, ITC_UPCA_SELECT upcASelect, ITC_UPCE_SELECTupcESelect, ITC_EAN8_SELECT ean8Select, ITC_EAN13_SELECTean13Select, ITC_UPCEAN_ADDON_DIGITS upcAddOnDigits,ITC_UPCEAN_ADDON_TWO upcAddOn2, ITC_UPCEAN_ADDON_FIVEupcAddOn5, ITC_UPCA_CHECK_DIGIT upcACheck,ITC_UPCE_CHECK_DIGIT upcECheck, ITC_EAN8_CHECK_DIGITean8Check, ITC_EAN13_CHECK_DIGIT ean13Check,ITC_UPCA_NUMBER_SYSTEM upcANumSystem, ITC_UPCE_NUMBER_SYSTEMupcENumSystem, ITC_UPCA_REENCODE upcAReencode,ITC_UPCE_REENCODE upcEReencode, ITC_EAN8_REENCODEean8Reencode );ParametersupceanDecode [in] Identifies the decoding for UPC/EAN symbology.upcASelect [in] Identifies the UPC-A selection state.upcESelect [in] Identifies the UPC-E selection state.ean8Select [in] Identifies the EAN-8 selection state.ean13Select [in] Identifies the EAN-13 selection state.upcAddOnDigits [in] Identifies the Add-on digits.upcAddOn2 [in] Identifies the Add-on 2 digits.upcAddOn5 [in] Identifies the Add-on 5 digits.upcACheck [in] Identifies the UPC-A check digit.upcECheck [in] Identifies the UPC-E check digit.ean8Check [in] Identifies the EAN-8 check digit.ean13Check [in] Identifies the EAN-13 check digit.upcANumSystem [in] Identifies the UPC-A number system.upcENumSystem [in] Identifies the UPC-E number system.upcAReencode [in] Identifies the UPC-A reencoding.upcEReencode [in] Identifies the UPC-E reencoding.ean8Reencode [in] Identifies the EAN-8 reencoding.Return ValuesHRESULT that indicates success or failure.RemarksNone.See AlsoNone.
6 Scanner Support—Chapter201700 Series Color Mobile Computer User’s ManualUPC/EAN Default SettingsParameter Default Valid RangeDecoding ITC_UPCEAN_NO_CHANGE This parameter is no longer used, set it to this value.UPC-A Active ITC_UPCA_SELECTUPC-E Active ITC_UPCE_SELECTEAN-8 Active ITC_EAN8_SELECTEAN-13 Active ITC_EAN13_SELECTAdd On Digits Not Required ITC_UPCEAN_ADDON_DIGITSAdd On 2 Digits Not Active ITC_UPCEAN_ADDON_TWOAdd On 5 Digits Not Active ITC_UPCEAN_ADDON_FIVEUPC-A Check Digit Transmitted ITC_UPCA_CHECK_DIGITUPC-E Check Digit Transmitted ITC_UPCE_CHECK_DIGITEAN-8 Check Digit Transmitted ITC_EAN8_CHECK_DIGITEAN-13 Check Digit Transmitted ITC_EAN13_CHECK_DIGITUPC-A Number System Transmitted ITC_UPCA_NUMBER_SYSTEMUPC-E Number System Transmitted ITC_UPCE_NUMBER_SYSTEMReencode UPC-A UPC-A transmitted as EAN-13 ITC_UPCA_REENCODEReencode UPC-E UPC-E transmitted as UPC-E ITC_UPCE_REENCODEReencode EAN-8 EAN-8 transmitted as EAN-8 ITC_EAN8_REENCODEUPC/EAN Enumerationstypedef enum tagUpcEanDecoding{ITC_UPCEAN_NOTACTIVE = 0,ITC_UPCEAN_ACTIVE = 1, // DefaultITC_UPCEAN_NO_CHANGE = 255} ITC_UPCEAN_DECODING;typedef enum tagUpcASelect{ITC_UPCA_DEACTIVATE,ITC_UPCA_ACTIVATE, // DefaultITC_UPCA_NO_CHANGE = 255} ITC_UPCA_SELECT;typedef enum tagUpcESelect{ITC_UPCE_DEACTIVATE,ITC_UPCE_ACTIVATE, // DefaultITC_UPCE_NO_CHANGE = 255} ITC_UPCE_SELECT;typedef enum tagEan8Select{ITC_EAN8_DEACTIVATE,ITC_EAN8_ACTIVATE, // DefaultITC_EAN8_NO_CHANGE = 255} ITC_EAN8_SELECT;typedef enum tagEan13Select{ITC_EAN13_DEACTIVATE,
Scanner SupportChapter —6202 700 Series Color Mobile Computer User’s ManualITC_EAN13_ACTIVATE, // DefaultITC_EAN13_NO_CHANGE = 255} ITC_EAN13_SELECT;typedef enum tagUpcEanAddonDigits{ITC_UPCEAN_ADDON_NOT_REQUIRED, // DefaultITC_UPCEAN_ADDON_REQUIRED,ITC_UPCEAN_ADDON_NO_CHANGE = 255} ITC_UPCEAN_ADDON_DIGITS;typedef enum tagUpcEanAddonTwo{ITC_UPCEAN_ADDON_TWO_NOTACTIVE = 0, // DefaultITC_UPCEAN_ADDON_TWO_ACTIVE = 1,ITC_UPCEAN_ADDON_TWO_NO_CHANGE = 255} ITC_UPCEAN_ADDON_TWO;typedef enum tagUpcEanAddonFive{ITC_UPCEAN_ADDON_FIVE_NOTACTIVE = 0, // DefaultITC_UPCEAN_ADDON_FIVE_ACTIVE = 1,ITC_UPCEAN_ADDON_FIVE_NO_CHANGE = 255} ITC_UPCEAN_ADDON_FIVE;typedef enum tagUpcACheckDigit{ITC_UPCA_CHECK_NOTXMIT = 0,ITC_UPCA_CHECK_XMIT = 1, // DefaultITC_UPCA_CHECK_NO_CHANGE = 255} ITC_UPCA_CHECK_DIGIT;typedef enum tagUpcECheckDigit{ITC_UPCE_CHECK_NOTXMIT = 0,ITC_UPCE_CHECK_XMIT = 1, // DefaultITC_UPCE_CHECK_NO_CHANGE = 255} ITC_UPCE_CHECK_DIGIT;typedef enum tagEan8CheckDigit{ITC_EAN8_CHECK_NOTXMIT = 0,ITC_EAN8_CHECK_XMIT = 1, // DefaultITC_EAN8_CHECK_NO_CHANGE = 255} ITC_EAN8_CHECK_DIGIT;typedef enum tagEan13CheckDigit{ITC_EAN13_CHECK_NOTXMIT = 0,ITC_EAN13_CHECK_XMIT = 1, // DefaultITC_EAN13_CHECK_NO_CHANGE = 255} ITC_EAN13_CHECK_DIGIT;typedef enum tagUpcANumberSystem{ITC_UPCA_NUM_SYS_NOTXMIT = 0,ITC_UPCA_NUM_SYS_XMIT = 1, // DefaultITC_UPCA_NUM_SYS_NO_CHANGE = 255} ITC_UPCA_NUMBER_SYSTEM;typedef enum tagUpcENumberSystem{ITC_UPCE_NUM_SYS_NOTXMIT = 0,ITC_UPCE_NUM_SYS_XMIT = 1, // DefaultITC_UPCE_NUM_SYS_NO_CHANGE = 255} ITC_UPCE_NUMBER_SYSTEM;typedef enum tagUpcAReencode{
6 Scanner Support—Chapter203700 Series Color Mobile Computer User’s ManualITC_UPCA_XMIT_AS_EAN13, // DefaultITC_UPCA_XMIT_AS_UPCA,ITC_UPCA_XMIT_NO_CHANGE = 255} ITC_UPCA_REENCODE;typedef enum tagUpcEReencode{ITC_UPCE_XMIT_AS_UPCE, // DefaultITC_UPCE_XMIT_AS_UPCA,ITC_UPCE_XMIT_NO_CHANGE = 255} ITC_UPCE_REENCODE;typedef enum tagEan8Reencode{ITC_EAN8_XMIT_AS_EAN8, //DefaultITC_EAN8_XMIT_AS_EAN13,ITC_EAN8_XMIT_NO_CHANGE = 255} ITC_EAN8_REENCODE;
Scanner SupportChapter —6204 700 Series Color Mobile Computer User’s ManualIS9CConfig2 FunctionsThis interface is derived from the IS9CConfig interface and provides addi-tional methods that can be used to set and retrieve the 700 Series Comput-er’ s bar code configuration. All supported symbologies are initialized totheir defaults when the S9C firmware is loaded.GET/SET functions use enumerations as their parameters. In most enu-merations, there is an enumerator xx_NO_CHANGE (such asITC_CODE39_NO_CHANGE), where xx refers to a particular enum-eration. This enumerator can be used during a call to a SET to indicatethat no change is to be made to that particular parameter. This preventsthe called function from having to format the same S9C command andsend it down to the scanner.To specify a bar code length of “any length,” use a value of “0” for the barcode length argument.IS9CConfig2 functions are the following. IS9CCONFIG.H is the headerfile and ITCUUID.LIB contains the IID_IADC Interface GUID valueused to obtain the interface.SIS9CConfig2::GetCode11 (page 205)SIS9CConfig2::SetCode11 (page 205)SIS9CConfig2::GetCustomSymIds (page 207)SIS9CConfig2::SetCustomSymIds (page 208)SIS9CConfig2::GetGlobalAmble (page 211)SIS9CConfig2::SetGlobalAmble (page 212)SIS9CConfig2::GetPDF417Ext (page 213)SIS9CConfig2::SetPDF417Ext (page 213)SIS9CConfig2::GetSymIdXmit (page 214)SIS9CConfig2::SetSymIdXmit (page 214)
6 Scanner Support—Chapter205700 Series Color Mobile Computer User’s ManualIS9CConfig2::GetCode11This function retrieves the current settings for Code 11.SyntaxHRESULT GetCode11( ITC_CODE11_DECODING* peDecode,ITC_CODE11_CHECK_DIGIT* peCheck,ITC_CODE11_CHECK_VERIFICATION* peVer );ParameterspeDecode [out] Pointer to ITC_CODE11_DECODING location toreceive Code 11 decoding.peCheck [out] Pointer to ITC_CODE11_CHECK_DIGIT locationto receive the check digit option.peVer [out] Pointer toITC_CODE11_CHECK_VERIFICATION locationto receive the check verification option.Return ValuesHRESULT that indicates success or failure.RemarksNone.See AlsoNone.IS9CConfig2::SetCode11This function updates the current setting of Code 11 symbology.SyntaxHRESULT SetCode11( ITC_CODE11_DECODING eDecode,ITC_CODE11_CHECK_DIGIT eCheck, ITC_CODE11_CHECK_VERIFICATIONeVer );ParameterseDecode [in] An enumeration that identifies decoding option forCode 11.eCheck [in] An enumeration that identifies the check digit option.eVer [in] An enumeration that identifies check verification option.Return ValuesHRESULT that indicates success or failure.RemarksNone.See AlsoNone.
Scanner SupportChapter —6206 700 Series Color Mobile Computer User’s ManualCode 11 Default SettingsParameter Default Valid RangeDecoding Not Active ITC_CODE11_DECODINGCheck Verification 1 Digit ITC_CODE11_CHECK_VERIFICATIONCheck Digit Enable ITC_CODE11_CHECK_DIGITCode 11 Enumerationstypedef enum tagCode11Decoding{ITC_CODE11_NOTACTIVE = 0,ITC_CODE11_ACTIVE = 1, // DefaultITC_CODE11_NO_CHANGE = 255} ITC_CODE11_DECODING;typedef enum tagCode11CheckVerification{ITC_CODE11_CHK_VERIFY_ONEDIGIT = 1,ITC_CODE11_CHK_VERIFY_TWODIGIT = 2, // DefaultITC_CODE11_CHK_VERIFY_NO_CHANGE = 255} ITC_CODE11_CHECK_VERIFICATION;typedef enum tagCode11CheckDigit{ITC_CODE11_CHECK_NOTXMIT = 0, // DefaultITC_CODE11_CHECK_XMIT = 1,ITC_CODE11_CHECK_NO_CHANGE = 255} ITC_CODE11_CHECK_DIGIT;
6 Scanner Support—Chapter207700 Series Color Mobile Computer User’s ManualIS9CConfig2::GetCustomSymIdsThis function retrieves all the custom symbology identifiers defined for thecurrently supported symbologies. This is not supported when using an imag-er on the 700 Series Computer.SyntaxHRESULT GetCustomSymIds( ITC_CUST_SYM_ID_PAIR*pStructSymIdPair,DWORD dwMaxNumElement, DWORD* pdwNumElement);ParameterspStructSymIdPair [out] Pointer to ITC_CUST_SYM_ID_PAIRlocation to receive the current definedsymbology identifiers for the supportedsymbologies. The caller must preallocatethis buffer with dwMaxNumElementelements.dwMaxNumElement [in] Maximum number of elements allocatedfor the pStructSymIdPair buffer whichshould always be equal to the last definedenumeration constant + 1 of theenumeration ITC_CUSTOM_ID. In thiscase, it isITC_CUSTOMID_LAST_ELEMENT.pdwNumElement [out] Pointer to DWORD location to receivethe actual number of elements returned inthe pStructSymIdPair buffer, which shouldbe the same as dwMaxNumElement.Return ValuesHRESULT that indicates success or failure.RemarksNone.See AlsoSCustom Identifier Assignments (page 209)SCustom Identifier Example (page 210)SCustom Identifier Default Settings (page 210)
Scanner SupportChapter —6208 700 Series Color Mobile Computer User’s ManualIS9CConfig2::SetCustomSymIdsThis function updates the symbology identifiers (any ASCII values) for thecurrently supported symbologies. This is not supported when using an imag-er on the 700 Series Computer.SyntaxHRESULT SetCustomSymIds( ITC_CUST_SYM_ID_PAIR*pStructSymIdPair, DWORD dwNumElement );ParameterspStructSymIdPair [in] Pointer to ITC_CUST_SYM_ID_PAIRlocation, containing the new symbologyidentifiers for any supported symbologies toupdate.dwNumElement [in] Identifies the number of symbology identifiersto update in the pStructSymIdPair buffer.Return ValuesHRESULT that indicates success or failure.RemarksNone.See AlsoNone.
6 Scanner Support—Chapter209700 Series Color Mobile Computer User’s ManualCustom Identifier AssignmentsEach custom identifier is a one byte ASCII value within the range from0x00 to 0xff. The enumerations in the ITC_CUSTOM_ID enumeratorcan be used as symbology identifications in the GetCustomSymIds() andSetCustomSymIds() functions.typedef enum tagCustomId{ITC_CUSTOMID_CODABAR = 0 Identifies the Codabar symbologyITC_CUSTOMID_CODE39 Identifies the Code 39 symbologyITC_CUSTOMID_CODE93 Identifies the Code 93 symbologyITC_CUSTOMID_CODE128_EAN_128 Identifies the Code 128 symbologyITC_CUSTOMID_EAN8 Identifies the EAN-8 symbologyITC_CUSTOMID_EAN13 Identifies the EAN-13 symbologyITC_CUSTOMID_I2OF5 Identifies the Interleaved 2 of 5 symbologyITC_CUSTOMID_MATRIX2OF5 Identifies the Matrix 2 of 5 symbologyITC_CUSTOMID_MSI Identifies the MSI symbologyITC_CUSTOMID_PDF417 Identifies the PDF 417 symbologyITC_CUSTOMID_PLESSEY Identifies the Plessey symbologyITC_CUSTOMID_CODE2OF5 Identifies the Standard 2 of 5 symbologyITC_CUSTOMID_TELEPEN Identifies the Telepen symbologyITC_CUSTOMID_UPCA Identifies the UPC-A symbologyITC_CUSTOMID_UPCE Identifies the UPC-E symbologyITC_CUSTOMID_CODE11 Identifies the Code 11 symbologyITC_CUSTOMID_LAST_ELEMENT Identifies the last element. Use to preallocatethe buffer on GetCustomSymIds}ITC_CUSTOM_ID;typedef struct tagCustSymbIdPair{ITC_CUSTOM_ID eSymbology; Identifies the symbology of interestBYTE byteId;ASCII value (1 byte within the range0x00 – 0xf)}ITC_CUST_SYM_ID_PAIR;
Scanner SupportChapter —6210 700 Series Color Mobile Computer User’s ManualCustom Identifier Default SettingsSymbology Default Valid RangeCodabar D0x00-0xFFCode 11 *0x00-0xFFCode 39 *0x00-0xFFCode 93 D0x00-0xFFCode128/EAN 128 D0x00-0xFFEAN-8 0xFF 0x00-0xFFEAN-13 F0x00-0xFFInterleaved 2 of 5 I0x00-0xFFMatrix 2 of 5 D0x00-0xFFMSI D0x00-0xFFPDF 417 *0x00-0xFFPlessey D0x00-0xFFStandard 2 of 5 D0x00-0xFFTelepen *0x00-0xFFUPC-A A0x00-0xFFUPC-E E0x00-0xFFCustom Identifier ExampleThe following code segment is an example of updating the UPC-E andUPC-A symbology identifiers with new values, and then retrieving thecurrently defined symbology identifiers for all the supported symbologies:ITC_CUST_SYM_ID_PAIR oStructSymIdPair [ITC_CUSTOMID_LAST_ELEMENT];oStructSymIdPair[0].eSymbology = ITC_CUSTOMID_UPCE;oStructSymIdPair[0].byteId = 0x41; // ASCII char AoStructSymIdPair[1].eSymbology = ITC_CUSTOMID_UPCA;oStructSymIdPair[1].byteId = 0x42; // ASCII char BHRESULT hr = pIS9CConfig2->SetCustomSymIds(&oStructSymIdPair[0], 2];DWORD dwNum = 0;HRESULT hr = pIS9CConfig2->GetCustomSymIds(&oStructSymIdPair[0],ITC_CUSTOMID_LAST_ELEMENT, &dwNum);
6 Scanner Support—Chapter211700 Series Color Mobile Computer User’s ManualIS9CConfig2::GetGlobalAmbleThis retrieves the scanner’ s current preamble or postamble setting.SyntaxHRESULT GetGlobalAmble( ITC_GLOBAL_AMBLE_ID eAmbleId, BYTErgbBuffer[], DWORD dwBufferSize, DWORD* pdwBufferSize );ParameterseAmbleId [in] An enumeration of typeITC_GLOBAL_AMBLE_ID identifies whetherthe preamble or postamble setting is to beretrieved. Only one setting can be queried at atime.rgbBuffer [in] Contains the buffer for the postamble orpreamble setting to be queried.dwBufferSize [in] The maximum number of bytes that rgbBuffercan store. Must be at leastITC_GLOBAL_AMBLE_MAX_CHARS bytes.pdwBufferSize [out] A pointer to DWORD location to store theactual number of returned bytes in rgbBuffer.Return ValuesHRESULT that indicates success or failure.RemarksNone.See AlsoNone.
Scanner SupportChapter —6212 700 Series Color Mobile Computer User’s ManualIS9CConfig2::SetGlobalAmbleThis function updates the scanner’ s current preamble or postamble settingdepending on the input parameters.SyntaxHRESULT SetGlobalAmble( ITC_GLOBAL_AMBLE_ID eAmbleId, BYTErgbBuffer[], DWORD dwBufferSize );ParameterseAmbleId [in] An enumeration of typeITC_GLOBAL_AMBLE_ID identifies whetherthe preamble or postamble setting is to be updated.Only one setting can be updated at a time.rgbBuffer [in] Contains the buffer for the postamble or preamblesetting to be updated.dwBufferSize [in] Identifies number of bytes in rgbBuffer.Return ValuesHRESULT that indicates success or failure.RemarksNone.See AlsoNone.Postamble and Preamble DefaultsParameter Default Valid RangePreamble Null 0to20ASCIIcharactersPostamble Null 0to20ASCIIcharacters
6 Scanner Support—Chapter213700 Series Color Mobile Computer User’s ManualIS9CConfig2::GetPDF417ExtThis function is an extended function for retrieving the PDF 417 settingsnot included in the IS9CConfig::GetPDF417.SyntaxHRESULT GetPDF417Ext( ITC_MICRO_PDF417_DECODING* peDecode,ITC_MICRO_PDF417_CODE128_EMULATION* peCode128 );ParameterspeDecode [out] Pointer to ITC_MICRO_PDF417_DECODINGlocation to receive the Micro PDF 417 decoding.peCode128 [out] Pointer toITC_MICRO_PDF417_CODE128_EMULATION*location to receive the Micro PDF 417 Code 128emulation option.Return ValuesHRESULT that indicates success or failure.RemarksNone.See AlsoNone.IS9CConfig2::SetPDF417ExtThis function is an extended function for updating the additional PDF417 settings not included in IS9CConfig::SetPDF417.SyntaxHRESULT SetPDF417Ext( ITC_MICRO_PDF417_DECODING eDecode,ITC_MICRO_PDF417_CODE128_EMULATION eCode128 );ParameterseDecode [in] An enumeration that identifies decoding option for theMicro PDF 417.eCode128 [in] An enumeration that identifies the Code 128 emulationoption for the Micro PDF 417.Return ValuesHRESULT that indicates success or failure.RemarksNone.See AlsoNone.
Scanner SupportChapter —6214 700 Series Color Mobile Computer User’s ManualPDF 417 Extended: Micro PDF 417 Default SettingsParameter Default Valid RangeDecoding Not Active ITC_MICRO_PDF417_DECODINGCode 128 Emulation Not Active ITC_MICRO_PDF417_CODE128_EMULATION* These are Micro PDF 417 parameters.IS9CConfig2::GetSymIdXmitThis function retrieves the current symbology ID transmission option asdescribed on the next page.SyntaxHRESULT GetSymIdXmit( ITC_SYMBOLOGY_ID_XMIT* peSymIdXmit );ParameterspeSymIdXmit [out] Pointer to ITC_SYMBOLOGY_ID_XMITlocation to receive the current symbologyidentifier transmission option.Return ValuesHRESULT that indicates success or failure.RemarksNone.See AlsoNone.IS9CConfig2::SetSymIdXmitThis updates the symbology ID transmission option shown next page.SyntaxHRESULT SetSymIdXmit( ITC_SYMBOLOGY_ID_XMIT eSymIdXmit );ParameterseSymIdXmit [in] Identifies the symbology identifier transmissionoption to update.Return ValuesHRESULT that indicates success or failure.RemarksNone.See AlsoNone.
6 Scanner Support—Chapter215700 Series Color Mobile Computer User’s ManualSymbology ID Transmission OptionThe symbology identifier (or code mark) concept provides a standardizedway for a device receiving data from a bar code reader to differentiate be-tween the symbologies.The following symbology ID transmission option specifies whether or notthe symbology ID should be transmitted as part of the scanned bar codelabel to all the connected data collection applications. Options for trans-mission are: do not transmit, transmit the standard AIM identifiers, ortransmit the one byte custom defined identifiers. AIM and custom identi-fiers cannot be selected to be transmitted at the same time; only the lastselected option will be active.typedef enum tagSymbologyIdXmit{ITC_ID_XMIT_DISABLE = 0 Symbology identifier will not be transmitted as part of thelabel. This is the default setting.ITC_ID_XMIT_CUSTOM = 1 Activate custom symbology identifier transmission for allsymbologies. Example of the transmitted label:[preamble] [Custom ID] <data> [postamble]ITC_ID_XMIT_AIM = 2 Activate AIM symbology identifier transmission for allsymbologies. Example of the transmitted label:[preamble] [AIM symbology ID] <data> [postamble]}ITC_SYMBOLOGY_ID_XMIT;
Scanner SupportChapter —6216 700 Series Color Mobile Computer User’s ManualIS9CConfig3 FunctionsThe IS9CConfig3 interface provides generic methods for retrieving andsetting configuration using ISCP commands.ISCP CommandsAn ISCP Command is composed of three or more bytes formatted as<SG><FID><parameters> where:SSG Setup group.SFID Function ID.Sparameters One or more configuration value bytes depending on theconfiguration.ISCP commands include the following:Imager SettingsThis dictates the start and end column positions for the image dimension.SG FID Parameter Description0x7B 80 Value [0..639] Start column position.0x7B 81 Value [0..639] End column position.Trigger SettingsThis sets the duration of the aiming beam before acquiring images to bedecoded.SG FID Parameter Description0x70 81 Value [0..65535] Number of milliseconds.QRCode SymbologyThis enables or disables the QRCode symbology.SG FID Parameter Description0x55 40 0 Disable this symbology.0x55 40 1 Enable this symbology.Data Matrix SymbologyThis enables or disables the Data Matrix symbology.SG FID Parameter Description0x54 40 0 Disable this symbology.0x54 40 1 Enable this symbology.
6 Scanner Support—Chapter217700 Series Color Mobile Computer User’s ManualISCP::GetConfigThis retrieves configurations using the ISCP commands format.SyntaxHRESULT ISCPGetConfig( BYTE rgbCommandBuff[], DWORDdwCommandBuffSize, BYTE rgbReplyBuff[], DWORDdwReplyBuffMaxSize, DWORD *pdwReplyBuffSize );ParametersrgbCommandBuff [in, size_is] Contains ISCP commands inarray of bytes.dwCommandBuffSize [in] Number of bytes inrgbCommandBuff.rgbReplyBuff [in, out, size_is] Results of query in array ofbytes.dwReplyBuffMaxSize [in] Maximum size of rgdReplyBuff.pdwReplyBuffSize [in, out] Number of bytes placed inrbfReplyBuff.Return ValuesNone.RemarksNone.See AlsoNone.
Scanner SupportChapter —6218 700 Series Color Mobile Computer User’s ManualISCP::SetConfigThis updates configurations using the ISCP commands format.SyntaxHRESULT ISCPSetConfig( BYTE rgbCommandBuff[], DWORDdwCommandBuffSize, BYTE rgbReplyBuff[], DWORDdwReplyBuffMaxSize, DWORD *pdwReplyBuffSize );ParametersrgbCommandBuff [in, size_is] Contains ISCP commands inarray of bytes.dwCommandBuffSize [in] Number of bytes inrgbCommandBuff.rgbReplyBuff [in, out, size_is] Results of request in array ofbytes.dwReplyBuffMaxSize [in] Maximum size of rgbReplyBuff.pdwReplyBuffSize [in, out] Number of bytes placed inrgbReplyBuff.Return ValuesNone.RemarksNone.See AlsoNone.
6 Scanner Support—Chapter219700 Series Color Mobile Computer User’s ManualAIM Symbology ID DefaultsRefer to the official AIM documentation on symbology identifiers for fullinformation on the different processing options supported.Symbology ID Character Modifier CharactersCodabar F 0 Standard Codabar symbol. No special processing.1 ABC Codabar (American Blood commission)concatenate/message append performed.2 Reader has validated the check character.4 Reader has stripped the check character before transmission.Code 11 H0 Single modulo 11 check character validated and transmitted.1 Two modulo 11 check characters validated and transmitted.3 Check characters validated but not transmitted.Code 39 A 0 No check character validation nor full ASCII processing. All datatransmitted as decoded.1 Modulo 43 check character validated and transmitted.3 Modulo 43 check character validated but not transmitted.4 Full ASCII character conversion performed. No check charactervalidation.5 Full ASCII character conversion performed. Modulo 43 checkcharacter validated and transmitted.7 Full ASCII character conversion performed. Modulo 43 checkcharacter validated but not transmitted.Code 93 G0 No options specified. Always transmit 0.Code128 C 0 Standard data packet. No FNC1 in first or second symbolcharacter position after start character.1 EAN/UCC-128 data packet. FNC1 in first symbol characterposition after start character.2 FNC1 in second symbol character position after start character.4 Concatenation according to International Society for BloodTransfusion specifications was performed. Concatenated datafollows.Interleaved 2 of 5 I0 No check character validation.1 Modulo 10 symbol check character validated and transmitted3 Modulo 10 symbol check character validated but not transmitted.Matrix 2 of 5 X0`FFor symbologies or symbology options not listed, a code characterwith the value 0-F may be assigned by the decoder manufacturerto identify those symbologies and options implemented in thereader.MSI M0 Modulo 10 symbol check character validated and transmitted.1 Modulo 10 symbol check character validated but not transmitted.
Scanner SupportChapter —6220 700 Series Color Mobile Computer User’s ManualModifier CharactersID CharacterSymbology (continued)PDF 417/Micro PDF 417L 0 Reader set to conform with protocol defined in 1994 PDF 417specifications.1 Reader set to follow protocol of ENV 12925 for ExtendedChannel Interpretation (all data characters 92 doubled).2 Reader set to follow protocol of ENV 12925 for Basic ChannelInterpretation (data characters 92 are not doubled).3 Code 128 emulation: implied FNC1 in first position.4 Code 128 emulation: implied FNC1 after initial letter or pair ofdigits.5 Code 128 emulation: no implied FNC1.Plessey P0 No options specified. Always transmit 0.Standard 2 of 5(2-bar start/stop)R 0 No check character validation.1 Modulo 7 check character validated and transmitted.3 Modulo 7 check character validated but not transmitted.Standard 2 of 5(3-bar start/stop)S0 No options specified. Always transmit 0.Telepen B0FullASCIImode1 Double density numeric only mode2 Double density numeric followed by full ASCII4 Full ASCII followed by double density numericUPC/EAN EConsider UPC/EAN symbols with supplements as two separate sym-bols. The first symbol is the main data packet, and the second symbolis the 2 or 5 digit supplement. Transmit these two symbols separately,each with its own symbology identifier. Provision is made for the op-tion of transmitting both symbols as a single data packet.0 Standard data packet in full EAN format (13 digits for EAN-13,UPC-A, and UPC-E; does not include add-on data).1 Two digit add-on data only.2 Five digit add-on data only.3 Combined data packet comprising 13 digits from EAN-13,UPC-A, or UPC-E symbol and 2 or 5 digits from add-on symbol.4EAN-8datapacketIMPORTANT: The “symbology_id” character letter must be uppercase for the above definitions.
6 Scanner Support—Chapter221700 Series Color Mobile Computer User’s ManualIImage InterfaceThe IImage interface gives the application the capability to acquire images.The image acquired can be either a raw image as captured by the digitalcamera or it can be normalized. A normalized image is presented the sameas if the picture were taken at right angles to the image and at the samedistance. The normalized image is commonly used for signature captureapplications.SIImage::ReadSigCapBuffer (page 221)SIImage::ReadSigCapFile (page 224)SIImage::ReadImage (page 225)SIImage::CancelReadImage (page 226)SIImage::Start (page 226)SIImage::Stop (page 227)SIImage::Open (page 227)SIImage::Close (page 228)IImage::ReadSigCapBufferSyntaxHRESULT IImage::ReadSigCapBuffer( ITC_SIGCAP_SPEC*pSigCapSpec, ITC_IMAGE_SPEC *pImgBuffer, DWORD nMaxBuffSize);ParametersParameters:pSigCapSpec [in] Pointer to the structure that identifies the signaturecapture region. This structure is defined as follows:typedef struct tagITCSigCapSpec{DWORD dwStructSize;INT iAspectRatio;INT iOffsetX;INT iOffsetY;UINT uiWidth;UINT uiHeight;INT iResolution;ITCFileFormat eFormat;DWORD eDepth;} ITC_SIGCAP_SPEC;where:SdwStructSize Size, in bytes, of this struct. This is for version control.SiAspectRatio Ratio of the bar code height (linear bar codes) or rowheight (2D bar codes) to the narrow element width.SiOffsetX Offset in X direction, relative to barcode center.Positive values are right of the bar code, negativevalues to the left.
Scanner SupportChapter —6222 700 Series Color Mobile Computer User’s ManualSiOffsetY Offset in Y direction, relative to barcode center.Positive values are higher than the bar code, negativevalues lower.SuiWidth Width of signature capture image region in intelligentbar code units.SuiHeight Height of the signature capture image region inintelligent bar code units.SiResolution Number of pixels per intelligent bar code unit.SeFormat Format of the image buffer returned as follows.Currently, only ITC_FILE_RAW is supported.ITC_FILE_KIM = 0, // Returns data a KIM fileITC_FILE_TIFF_BIN = 1, // TIFF Binary fileITC_FILE_TIFF_BIN_GROUP4 = 2, // TIFF Binary Group 4 compressedITC_FILE_TIFF_GRAY_SCALE = 3, // TIFF Gray ScaleITC_FILE_RAW = 4, // Raw imageITC_FILE_JPEG = 5, // JPEG imageSeDepth Number of bits per pixel. Currently, only one(monochrome) or eight (gray-scale) are supported.pImgBuffer [out] Pointer to the buffer in which the signature captureimage will be put.typedef struct tagITCImageSpec{DWORD dwStructSize;LONG biWidth;LONG biHeight;WORD biBitCount;ITC_FILE_FORMAT eFormat;DWORD biActualImageSize;DWORD biMaxImageBytes;BYTE rgbImageData[1];} ITC_IMAGE_SPEC;where:SdwStructSize Size, in bytes, of this struct. This is for versioncontrol.SbiWidth The width of each row in pixels.SbiHeight The number of rows in the image data.SbiBitCount The number of bits per pixel.SeFormat Identifies the image format.SbiActualImageSize Total bytes of image data returned.SbiMaxImageBytes Maximum bytes that can be stored inrgbImageData[].SrgbImageData Buffer containing the actual data, for example a640x480 uses a 307200-byte buffer. The array sizeof this buffer is arbitrary so do not use thisstructure directly to reserve memory. The actualdimension of the buffer is identified bybiMaxImageBytes.
6 Scanner Support—Chapter223700 Series Color Mobile Computer User’s ManualReturn ValuesHRESULT identifying success or error. On error, the following codes willbe returned:SS_OKImage successfully returned.SITC_RESULT_ERR_BADREGION_EThe specified region is not in the image.SITC_RESULT_NO_BC_DECODED_EA bar code has not yet been decoded or the last bar code decoded wasnot a signature capture symbology.SITC_IMGBUFF_TOO_SMALL_EpImgBuffer is too small to contain the signature captured image.SITC_INV_PARAMETER_EOne of the parameters is invalid.SS_DEVICE_NOT_OPENED_EThe device had not been opened.RemarksReadSigCapBuffer() will return the image from the last decoded label withdimensions identified by the calling parameter. This signature captureregion must include the signature capture bar code. The supported barcodes for signature capture are: PDF 417, Code 128, and Code 39. Thecaller specifies the width, height, and center of the image to be retrieved.This image is independent of any rotation of the bar code relative to theimager. Thus, if the bar code is decoded with the code itself upside downto the imager, the retrieved image will still be right side up. However, ifthe specified image is outside the field of view a result code ofITC_RESULT_ERR_BADREGION_E will be returned.This function uses the dimensions of the last decoded bar code as its coor-dinate system. Thus, all the parameters describing the image size and posi-tion are in units called “Intelligent Bar Code Units.” An Intelligent BarCode Unit is equivalent to the narrow element width of the bar code.The dimensions of the resulting image can be calculated with this formula:Resulting Width = Specified Width * Specified ResolutionResulting Height = Specified Height * Specified ResolutionSee AlsoNone.
Scanner SupportChapter —6224 700 Series Color Mobile Computer User’s ManualIImage::ReadSigCapFileNote: This has not been implemented as of this publication.SyntaxHRESULT IImage::ReadSigCapFile( ITC_SIGCAP_SPEC*pSigCapSpec, LPCTSTR pszFileName );ParameterspSigCapSpec [in] Pointer to the structure that identifies the signaturecapture region. See ReadSigCapFile (page 221) fora description of this structure.pszFileName [in] Name of the file in which to copy the image.Return ValuesHRESULT identifying success or error. On error, the following codes willbe returned:SS_OKImage successfully returned.SITC_RESULT_ERR_BADREGION_EThe specified region is not in the image.SITC_RESULT_NO_BC_DECODED_EA bar code has not yet been decoded or the last bar code decoded wasnot a signature capture symbology.SITC_FILE_OPEN_EThe file could not be opened.SITC_INV_PARAMETER_EOne of the parameters is invalid.SS_DEVICE_NOT_OPENED_EThe device had not been opened.RemarksReadSigCapFile() will write the image from the last decoded label with di-mensions identified by the calling parameter. If the file already exists, itscontents will be overwritten.This signature capture region must include the signature capture bar code.The supported bar codes for signature capture are: PDF 417, Code 128,and Code 39. The caller specifies the width, height, and center of theimage to be retrieved. This image is independent of any rotation of the barcode relative to the imager. Thus, if the bar code is decoded with the codeitself upside down to the imager, the retrieved image will still be right sideup. However, if the specified image is outside the field of view a resultcode of ITC_RESULT_ERR_BADREGION_E will be returned.This function uses the dimensions of the last decoded bar code as its coor-dinate system. Thus, all the parameters describing the image size and posi-tion are in units called “Intelligent Bar Code Units”. An Intelligent BarCode Unit is equivalent to the narrow element width of the bar code.
6 Scanner Support—Chapter225700 Series Color Mobile Computer User’s ManualThe dimensions of the resulting image can be calculated with this formula:Resulting Width = Specified Width * Specified ResolutionResulting Height = Specified Height * Specified ResolutionSee AlsoNone.IImage::ReadImageSyntaxHRESULT IImage::Read( ITCFileFormat eFormat, DWORD nDepth,ITC_IMAGE_SPEC *pImgBuffer, DWORD dwTimeout );ParameterseFormat [in] Format of the image buffer returned as follows.Currently, only ITC_FILE_RAW is supported.ITC_FILE_KIM = 0, // Returns data a KIM fileITC_FILE_TIFF_BIN = 1, // TIFF Binary fileITC_FILE_TIFF_BIN_GROUP4 = 2, // TIFF Binary Group 4 compressedITC_FILE_TIFF_GRAY_SCALE = 3, // TIFF Gray ScaleITC_FILE_RAW = 4, // Raw imageITC_FILE_JPEG = 5, // JPEG imagenDepth [in] Number of bits per pixel. Currently, only eight(gray-scale) are supported.pImgBuffer [in/out] Pointer to the buffer containing the image.dwTimeout [in] Milliseconds to wait for the image to be returned.Return ValuesHRESULT identifying success or error. On error, these will be returned:SS_OK Image successfully returned.SITC_IMGBUFF_TOO_SMALL_E pImgBuffer is too small to containthe signature captured image.SITC_TIMEOUT_E Timeout.SITC_INV_PARAMETER_E One of the parameters is invalid.SS_DEVICE_NOT_OPENED_E The device had not been opened.RemarksThe image is returned in pImgBuffer in the caller specified format.See AlsoNone.
Scanner SupportChapter —6226 700 Series Color Mobile Computer User’s ManualIImage::CancelReadImageSyntaxHRESULT IImage::CancelReadImage( );ParametersNone.Return ValuesStatus code indicating success or failure as follows:SS_OK Imager closed.SS_DEVICE_NOT_OPENED_E The device had not been opened.RemarksThis function causes a pending image read of IImage::ReadImage() to re-turn immediately with an error status. The purpose of this function is toallow the application to release a thread blocked on the ReadImage() call.See AlsoNone.IImage::StartSyntaxHRESULT IImage::Start( );ParametersNone.Return ValuesStatus code indicating success or failure as follows:SS_OK Imager started.SS_DEVICE_NOT_OPENED_E The device had not been opened.RemarksThis function starts the image continuously capturing images.See AlsoNone.
6 Scanner Support—Chapter227700 Series Color Mobile Computer User’s ManualIImage::StopSyntaxHRESULT IImage::Stop( );ParametersNone.Return ValuesStatus code indicating success or failure as follows:SS_OK Imager started.SS_IMG_NOT_PRESENT_E Unit does not contain an imager.SS_DEVICE_NOT_OPENED_E Device had not been opened.RemarksThis function stops the image continuously capturing images.See AlsoNone.IImage::OpenSyntaxHRESULT IImage::Open( BOOL fSigCapEnable );ParametersfSigCapEnable [in] When TRUE, signature capture is enabled. WhenFALSE, it is disabled. Bar code labels are decodedand images (via IImage::ReadImage) the same.Return ValuesStatus code indicating success or failure as follows:SS_OK Imager opened.SS_IMG_NOT_PRESENT_E Unit does not contain an imager.SS_DEVICE_CONTENTION_E Device has already been opened.RemarksThis function exclusively allocates the imager device so that the other IIm-age methods can be safely called.See AlsoNone.
Scanner SupportChapter —6228 700 Series Color Mobile Computer User’s ManualIImage::CloseSyntaxHRESULT IImage::Close( );ParametersNone.Return ValuesStatus code indicating success or failure as follows:SS_OK Imager closed.SS_DEVICE_NOT_OPENED_E The device had not been opened.RemarksThis function releases the imager device so that other applications canopen it. An IImage::Release() will also close the imager device.See AlsoNone.
6 Scanner Support—Chapter229700 Series Color Mobile Computer User’s ManualData Collection ConfigurationScanner settings for the 700 Series Computer can be configured via theData Collection control panel applet. From the 700 Series Computer, tapStart →Settings →the System tab →the Data Collection icon. See Ap-pendix A,“Control Panel Applets” for more information about the followingparameters. Note that these are in alphabetical order.SCodabar (page 292)SCode 11 (page 306)SCode 128 (page 295)SCode 128 Options (page 296)SCode 128 FNC1 Character (page 297)SCode 39 (page 290)SCode 93 (page 294)SCode 93 Length (page 294)SData Matrix (page 308)SInterleaved 2 of 5 (page 303)SMatrix 2 of 5 (page 304)SMSI (page 299)SPDF 417 (page 300)SMacro PDF (page 300)SMicro PDF 417 (page 302)SPlessey (page 298)SQR Code (page 307)SStandard 2 of 5 (page 291)STelepen (page 305)SUPC/EAN (page 293)
Scanner SupportChapter —6230 700 Series Color Mobile Computer User’s ManualTethered ScannerThe Intermec Tethered Scanner feature accepts data from the COM1 portwedges it to the keyboard interface, and allows some ADC. This featurecan be enabled or disabled from the Today Screen on the 700 Series Com-puter.Enabling and DisablingOn the 700 Series Computer, tap Start →Today. Tap the bar code scan-ner icon in the System Tray (circled in the following illustration). Initially,the bar code scanner icon indicates that this feature is disabled (shown tothe left).SSelect Comm Port Wedge to send any data, coming into the 700 SeriesComputer through the COM1 port from an external input device, askeyboard data to an application on the desktop.For example, if you have Pocket Word running on your 700 SeriesComputer desktop, information scanned with a scanner connected tothe COM1 port will appear in the Word document. If another datacollection application is running and is active on the 700 Series Com-puter, the scanned information will appear in that application.Note: When Comm Port Wedge is selected, regardless of the data sent bythe external input device, you cannot control the device or the data formatusing any of the Intermec scanner control or data transfer APIs from theSDK or the internal Data Collection software. The external input device isgoverned by what software it has onboard to tell it how to scan, take pic-tures, or send the data elsewhere.
6 Scanner Support—Chapter231700 Series Color Mobile Computer User’s ManualSSelect 1551/1553 to enable the Sabre 1551E or 1553 Tethered Scannerto scan, then send data as keyboard data. The 1551/1553 TetheredScanner has software onboard that translates scanned data into charac-ters, so the running/active application does not need to know how to dothat. All the scanner control and data transfer APIs will work with the1551/1553 Tethered Scanner, so you can control the device.SSelect Disable All to disable this feature and use the COM1 port foranother application, such as ActiveSync. An error message will result ifthis option were not selected, but this action was attempted. Similarly, ifActiveSync is using the COM1 port, and you select Comm Port Wedgeor 1551/1553, an error message will result. See “Error Message”onpage232 for more information.Changing Comm SettingsTap Change Comm Settings to configure the settings for the COM1 port.Current settings are restored after a warm-boot, but are lost after a cold-boot. When these settings have not been changed, the OK button is dis-abled (grayed out). When changes are made, tap OK after it is enabled toaccept these changes.SBaud Rate: 1200, 2400, 4800, 9600, 19200, 38400, 57600,115200SData Bits:7or8SParity: None, Odd, Even, Mark, SpaceSStop Bits:1or2SFlow Control: None or HardwareTethered ScannerThe default settings for the Tethered Scanner are shown in the followingillustration:
Scanner SupportChapter —6232 700 Series Color Mobile Computer User’s ManualSabre 1551E or 1553 Tethered ScannerThe default communication configuration for the Sabre 1551E or 1553Tethered Scanner is shown in the following illustration. Scan the EasySetReset Factory Defaults label to set the Sabre 1551E or 1553 tethered scan-ner communications settings to this configuration. The COM1 port con-figuration settings must also match those of the scanner to scan labels.Welch Allyn 1470 Imager SettingsThe Welch Allyn 1470 Imager can be set to this configuration by scanningthe Factory Default Settings label.Error MessageIf the COM1 port is used by another application, such as ActiveSync, nei-ther the Comm Port Wedge nor the 1551/1553 Tethered Scanner can beenabled. As a result, the following message may appear. Note that this mes-sage is for the Comm Port Wedge. You must disable that application to freeup the COM1 port before you can enable either the wedge or the scanner.Scanner CablingA null modem cable is required for the Welch Allyn 1470 Imager to com-municate with the 700 Series Computer when using the 700 Series SerialCable (P/N: 226-999-001).The Sabre 1551E / 1553 Cable connects directly to the Model 700 CommPort.
6 Scanner Support—Chapter233700 Series Color Mobile Computer User’s ManualLimitations and CapabilitiesThe Tethered Scanner has the following limitations:SNo auto detection of a scanner’ s physical connection to COM1 port.User needs to ensure the communication settings of COM1 portmatched the settings of the device.SThe Pocket PC Pocket Office applications misbehave when controlcharacters such as carriage return are wedged. This is a known PocketPC problem, which is being worked with Microsoft and for which awork around is being developed.SCommunications port is COM1 and cannot be changed.SA complete bar code label is detected when the time between bytes (theinter-byte gap) exceeds 100 ms. This allows that data could be concate-nated if two labels were received while the Comm Port Wedge or the1551/1553 Tethered Scanner was not performing a read. That is, itcould be wedging data just read or the read thread could be preempted.Also, the labels could appear concatenated if the scanner itself were tobuffer the labels before transmitting them.When enabled, the Comm Port Wedge menu option has the followinglimitation:SThere is no bar code API to get bar code data from the bar code scan-ner. The Comm Port Wedge transmits the data through the keyboardinterface only.When enabled, the 1551/1553 menu option has the following capabilities:SGrid Data Editing is available.SThe source of the symbology configurations is only available via theEasy Set command labels. Only the Virtual Wedge configurations can beconfigured via the Data Collection Control Panel Applet Virtual Wedgepage. See Appendix A, “Control Panel Applets,” for more information.SMay transmit the data through the keyboard interface (via the VirtualWedge).
Scanner SupportChapter —6234 700 Series Color Mobile Computer User’s ManualSThe bar code APIs, defined in the IADC interface, are available to getbar code data from the bar code scanner. The following example showshow to programmatically collects bar code data:#include “IADC.h” // Linked with ITCUUID.LIB#include “ITCAdcMgmt.h” // Linked with ITCAdcDevMgmt.libIADC* pIADC;HRESULT hrStatus = S_OK;// Create a ADC COM interface to collect bar code data from the 1551E/1553// when the 1551/1553 menu option is enabled.hrStatus =ITCDeviceOpen(TEXT(“ExtScanner”), // Name of the ADC device.IID_IADC, // COM interface to returnITC_DHDEVFLAG_READAHEAD, // Device’s Flags(LPVOID *) &pIADC); // the returned interfaceif( SUCCEEDED(hrStatus) ){BYTE byteBuffer[MAX_LABEL_SIZE];DWORD dwLength = 0;HRESULT hr = pIDC->Read(byteBuffer, // Buffer to put the ADC data.MAX_LABEL_SIZE, // Size of pDataBuffer in bytes.&dwLength, // Number bytes returned.NULL, // Time stamp of the received data. NULL.INFINITE // Number of milliseconds to wait.);}when done using this COM interface, delete it:ITCDeviceClose( (IUnknown **) pIADC);
235700 Series Color Mobile Computer User’s ManualProgramming7The following programming information pertains to the 700 Series ColorMobile Computer:SCreating CAB Files (page 236)SFTP Server (page 251)SFull Screen (page 262)SKernel I/O control functions (page 264)SReboot Functions (page 280)SRemapping the Keypad (page 281)
ProgrammingChapter —7236 700 Series Color Mobile Computer User’s ManualCreating CAB FilesThe Windows CE operating system uses a .CAB file to install an applica-tion on a Windows CE-based device. A .CAB file is composed of multiplefiles that are compressed into one file. Compressing multiple files into onefile provides the following benefits:SAll application files are present.SA partial installation is prevented.SThe application can be installed from several sources, such as a desktopcomputer or a Web site.Use the CAB Wizard application (CABWIZ.EXE) to generate a .CAB filefor your application.Creating Device-Specific CAB FilesDo the following to create a device-specific .CAB file for an application, inthe order provided:1Create an .INF file with Windows CE-specific modifications (page 236).2Optional Create a SETUP.DLL file to provide custom control of theinstallation process (page 248).3Use the CAB Wizard to create the .CAB file, using the .INF file, theoptional SETUP.DLL file, and the device-specific application files asparameters (page 249).Creating an .INF FileAn .INF file specifies information about an application for the CAB Wi-zard. Below are the sections of an .INF file:[Version]This specifies the creator of the file, version, and other relevant informa-tion.Required? YesSSignature:“signature_name”Must be “$Windows NT$” as Windows CE is not available on Win-dows 95.SProvider:“INF_creator”The company name of the application, such as “Microsoft.”SCESignature: “$Windows CE$”EXAMPLE:[Version]Signature = “$Windows NT$”Provider = “Microsoft”CESignature = “$Windows CE$”
Programming—Chapter 7237700 Series Color Mobile Computer User’s Manual[CEStrings]This specifies string substitutions for the application name and the defaultinstallation directory.Required? YesSAppName:app_nameName of the application. Other instances of %AppName% in the .INFfile will be replaced with this string value, such as RP32.SInstallDir:default_install_dirDefault installation directory on the device. Other instances of %Install-Dir% in the .INF file will be replaced with this string value. Example:\storage_card\%AppName%EXAMPLE:[CEStrings]AppName=“Game Pack”InstallDir=%CE1%\%AppName%[Strings]This section is optional and defines one or more string keys. A string keyrepresents a string of printable characters.Required? NoSstring_key:valueString consisting of letters, digits, or other printable characters. Enclosevalue in double quotation marks ““”” if the corresponding string key isused in an item that requires double quotation marks. No string_keys isokay.EXAMPLE:[Strings]reg_path = Software\Microsoft\My Test App
ProgrammingChapter —7238 700 Series Color Mobile Computer User’s Manual[CEDevice]Describes the platform for the targeted application. All keys in this sectionare optional. If a key is nonexistent or has no data, Windows CE does notperform any checking with the exception being UnsupportedPlatforms.Ifthe UnsupportedPlatforms key exists but no data, the previous value is notoverridden.Required? YesSProcessorType :processor_typeThe value that is returned by SYSTEMINFO.dwProcessorType. Forexample, the value for the SH3 CPU is 10003 and the MIPS CPU is4000.SUnsupportedPlatforms:platform_family_nameThis lists known unsupported platform family names. If the namespecified in the [CEDevice.xxx] section is different from that in the[CEDevice] section, both platform_family_name values are unsupportedfor the microprocessor specified by xxx. That is, the list of unsupportedplatform family names is appended to the previous list of unsupportednames. Application Manager will not display the application for anunsupported platform. Also, a user will be warned during the setupprocess if the .CAB file is copied to an unsupported device.EXAMPLE:[CEDevice]UnsupportedPlatforms = pltfrm1 ; pltfrm1 is unsupported[CEDevice.SH3]UnsupportedPlatforms = ; pltfrm1 is still unsupportedSVersionMin:minor_versionNumeric value returned by OSVERSIONINFO.dwVersionMinor. The.CAB file is valid for the currently connected device if the version of thisdevice is greater than or equal to VersionMin.ForWindowsCEJapa-nese language devices, set this to 2.01SVersionMax:major_versionNumeric value returned by OSVERSIONINFO.dwVersionMajor. The.CAB file is valid for the currently connected device if the version of thisdevice is less than or equal to VersionMax. For Windows CE Japaneselanguage devices, set this to 2.01Note: Supported Windows CE operating system versions include 1.0,1.01, 2.0, 2.01, and 2.10. When using these numbers, be sure to includeall significant digits.SBuildMin:build_numberNumeric value returned by OSVERSIONINFO.dwBuildNumber. The.CAB file is valid for the currently connected device if the version of thisdevice is greater than or equal to BuildMin.SBuildMax:build_numberNumeric value returned by OSVERSIONINFO.dwBuildNumber. The.CAB file is valid for the currently connected device if the version of thisdevice is less than or equal to BuildMax.
Programming—Chapter 7239700 Series Color Mobile Computer User’s ManualEXAMPLE:The following code example shows three [CEDevice] sections: one thatgives basic information for any CPU and two that are specific to the SH3and the MIPS microprocessors.[CEDevice] ; A “template” for all platformsUnsupportedPlatforms = pltfrm1 ; Does not support pltfrm1; The following specifies version 1.0 devices only.VersionMin = 1.0VersionMax = 1.0[CEDevice.SH3] ; Inherits all [CEDevice] settings; This will create a .CAB file specific to SH3 devices.ProcessorType = 10003 ; SH3 .cab file is valid for SH3 microprocessors.UnsupportedPlatforms = ; pltfrm1 is still unsupported; The following overrides the version settings so that no version checking isperformed.VersionMin =VersionMax =[CEDevice.MIPS] ; Inherits all [CEDevice] settings; This will create a .CAB file specific to “MIPS” devices.ProcessorType = 4000 ; MIPS .CAB file is valid for MIPS microprocessor.UnsupportedPlatforms =pltfrm2 ; pltfrm1,pltfrm2 unsupported for MIPs .CAB file.Note: To create the two CPU-specific .CAB files for the SETUP.INF filein the previous example, run the CAB Wizard with the “/cpu sh3 mips”parameter.
ProgrammingChapter —7240 700 Series Color Mobile Computer User’s Manual[DefaultInstall]This describes the default installation of your application. Note that underthis section, you will list items expanded upon later in this description.Required? YesSCopyfiles:copyfile_list_sectionMaps to files defined later in the .INF file, such as Files.App, Files.Font,and Files.Bitmaps.SAddReg:add_registry_sectionExample: RegSettings.AllSCEShortcuts:shortcut_list_sectionString that identifies one more section that defines shortcuts to a file, asdefined in the [CEShortcuts] section.SCESetupDLL:setup_DLLOptimal string that specifies a SETUP.DLL file. It is written by the In-dependent Software Vendor (ISV) and contains customized functionsfor operations during installation and removal of the application. Thefile must be specified in the [SourceDisksFiles] section.SCESelfRegister:self_reg_DLL_filenameString that identifies files that self-register by exporting the DllRegister-Server and DllUnregisterServer Component Object Model (COM)functions. Specify these files in the [SourceDiskFiles] section. Duringinstallation, if installation on the device fails to call the file’ s exportedDllRegisterServer function, the file’ s exported DllUnregisterServerfunction will not be called during removal.EXAMPLE:[DefaultInstall]AddReg = RegSettings.AllCEShortcuts = Shortcuts.All[SourceDiskNames]This section describes the name and path of the disk on which your ap-plication resides.Required? YesSdisk_ordinal:disk_label,,path1=,“App files” , C:\Appsoft\RP32\...2=,“Font files”,,C:\RpTools\...3=,“CE Tools” ,,C:\windows ce tools...SCESignature: “$Windows CE$”Example[SourceDisksNames] ; Required section1 = ,“Common files”,,C:\app\common ; Using an absolute path[SourceDisksNames.SH3]2 = ,“SH3 files”,,sh3 ; Using a relative path[SourceDisksNames.MIPS]2 = ,“MIPS files”,,mips ; Using a relative path
Programming—Chapter 7241700 Series Color Mobile Computer User’s Manual[SourceDiskFiles]This describes the name and path of the files in which your applicationresides.Required? YesSfilename:disk_number[,subdir]RPM.EXE = 1,c:\appsoft\...WCESTART.INI = 1RPMCE212.INI = 1TAHOMA.TTF = 2Note:[,subdir] is relative to the location of the INF file.Example[SourceDisksFiles] ; Required sectionbegin.wav = 1end.wav = 1sample.hlp = 1[SourceDisksFiles.SH3]sample.exe = 2 ; Uses the SourceDisksNames.SH3 identification of 2.[SourceDisksFiles.MIPS]sample.exe = 2 ; Uses the SourceDisksNames.MIPS identification of 2.
ProgrammingChapter —7242 700 Series Color Mobile Computer User’s Manual[DestinationDirs]This describes the names and paths of the destination directories for theapplication on the target device. Note Windows CE does not support directoryidentifiers.Required? YesSfile_list_section:0,subdirString that identifies the destination directory. The following list showsthe string substitutions supported by Windows CE. These can be usedonly for the beginning of the path. \%CE1% \Program Files%CE2% \Windows%CE3% \My Documents%CE4% \Windows\Startup%CE5% \My Documents%CE6% \Program Files\Accessories%CE7% \Program Files\Communication%CE8% \Program Files\Games%CE9% \Program Files\Pocket Outlook%CE10% \Program Files\Office%CE11% \Windows\Start Menu\Programs%CE12% \Windows\Start Menu\Programs\Accessories%CE13% \Windows\Start Menu\Programs\Communications%CE14% \Windows\Start Menu\Programs\Games%CE15% \Windows\Fonts%CE16% \Windows\Recent%CE17% \Windows\Start Menu%InstallDir%Contains the path to the target directory selected during installation. Itis declared in the [CEStrings] section%AppName%Contains the application name defined in the [CEStrings] section.Example[DestinationDirs]Files.Common = 0,%CE1%\My Subdir ; \Program Files\My SubdirFiles.Shared = 0,%CE2% ; \Windows
Programming—Chapter 7243700 Series Color Mobile Computer User’s Manual[CopyFiles]This section, under the [DefaultInstall] section, describes the default filesto copy to the target device. Within the [DefaultInstall] section, files werelisted that must be defined elsewhere in the INF file. This section identi-fies that mapping and may contain flags.Required? YesScopyfile_list_section:destination_filename,[source_filename]The source_filename parameter is optional if it is the same as destina-tion_filename.Scopyfile_list_section:flagsThe numeric value that specifies an action to be done while copying fi-les. The following table shows values supported by Windows CE.Flag Value DescriptionCOPYFLG_WARN_IF_SKIP 0x00000001 Warn user if skipping a file is attempted after error.COPYFLG_NOSKIP 0x00000002 Do not allow a user to skip copying a file.COPYFLG_NO_OVERWRITE 0x00000010 Do not overwrite files in destination directory.COPYFLG_REPLACEONLY 0x00000400 Copy the source file to the destination directory only if thefile is already in the destination directory.CE_COPYFLG_NO_DATE_DIALOG 0x20000000 Do not copy files if the target file is newer.CE_COPYFLG_NODATECHECK 0x40000000 Ignore date while overwriting the target file.CE_COPYFLG_SHARED 0x80000000 Create a reference when a shared DLL is counted.Example[DefaultInstall.SH3]CopyFiles = Files.Common, Files.SH3[DefaultInstall.MIPS]CopyFiles = Files.Common, Files.MIPS
ProgrammingChapter —7244 700 Series Color Mobile Computer User’s Manual[AddReg]This section, under the [DefaultInstall] section, is optional and describesthe keys and values that the .CAB file adds to the device registry. Withinthe [DefaultInstall] section, a reference may have been made to thissection, such as “AddReg=RegSettings.All”. This section defines theoptions for that setting.Required? NoSadd_registry_section:registry_root_stringString that specifies the registry root location. The following list showsthe values supported by Windows CE.SHKCR Same as HKEY_CLASSES_ROOTSHKCU Same as HKEY_CURRENT_USERSHKLM Same as HKEY_LOCAL_MACHINESadd_registry_section:value_nameRegistry value name. If empty, the “default” registry value name is used.Sadd_registry_section:flagsNumeric value that specifies information about the registry key. Thefollowing table shows the values that are supported by Window CE.Flag Value DescriptionFLG_ADDREG_NOCLOBBER 0x00000002 If the registry key exists, do not overwrite it. Can be usedwith any of the other flags in this table.FLG_ADDREG_TYPE_SZ 0x00000000 REG_SZ registry data type.FLG_ADDREG_TYPE_MULTI_SZ 0x00010000 REG_MULTI_SZ registry data type. Value field that followscan be a list of strings separated by commas.FLG_ADDREG_TYPE_BINARY 0x00000001 REG_BINARY registry data type. Value field that followsmust be a list of numeric values separated by commas, onebyte per field, and must not use the 0x hexadecimal prefix.FLG_ADDREG_TYPE_DWORD 0x00010001 REG_DWORD data type. The noncompatible format in theWin32 Setup .INF documentation is supported.ExampleAddReg = RegSettings.All[RegSettings.All]HKLM,%reg_path%,,0x00000000,alpha ; <default> = “alpha”HKLM,%reg_path%,test,0x00010001,3 ; Test = 3HKLM,%reg_path%\new,another,0x00010001,6 ; New\another = 6
Programming—Chapter 7245700 Series Color Mobile Computer User’s Manual[CEShortCuts]This section, a Windows CE-specific section under the [DefaultInstall]section, is optional and describes the shortcuts that the installation applica-tion creates on the device. Within the [DefaultInstall] section, a referencemay have been made to this section, such as “ShortCuts.All”. This sectiondefines the options for that setting.Required? NoSshortcut_list_section:shortcut_filenameString that identifies the shortcut name. It does not require the .LNKextension.Sshortcut_list_section:shortcut_type_flagNumeric value. Zero or empty represents a shortcut to a file; any non-zero numeric value represents a shortcut to a folder.Sshortcut_list_section:target_file_pathString value that specifies the destination location. Use the target filename for a file, such as MyApp.exe, that must be defined in a file copylist. For a path, use a file_list_section name defined in the [Destination-Dirs] section, such as DefaultDestDir,orthe%InstallDir% string.Sshortcut_list_section:standard_destination_pathOptional string value. A standard %CEx% path or %InstallDir%.Ifnovalue is specified, the shortcut_list_section name of the current section orthe DefaultDestDir value from the [DestinationDirs] section is used.ExampleCEShortcuts = Shortcuts.All[Shortcuts.All]Sample App,0,sample.exe ; Uses the path in DestinationDirs. SampleApp,0,sample.exe,%InstallDir% ; The path is explicitly specified.Sample .INF File[Version] ; Required sectionSignature = “$Windows NT$”Provider = “Intermec Technologies Corporation”CESignature = “$Windows CE$”;[CEDevice];ProcessorType =[DefaultInstall] ; Required sectionCopyFiles = Files.App, Files.Fonts, Files.BitMaps, Files.Intl,Files.TelecomNcsCE, Files.Windows, Files.Import, Files.Export, Files.Work,Files.Database, Files.WinCE AddReg = RegSettings.All ;CEShortcuts =Shortcuts.All[SourceDisksNames] ; Required section1 = ,“App files” ,,c:\appsoft\...2 = ,”Font files” ,,c:\WinNT\Fonts3 = ,”CE Tools” ,,c:\windows ce tools\wce212\6110ie\mfc\lib\x86[SourceDisksFiles] ; Required sectionrpm.exe = 1,C:\Appsoft\program\wce212\WCEX86Rel6110wcestart.ini = 1
ProgrammingChapter —7246 700 Series Color Mobile Computer User’s Manualrpmce212.ini = 1intermec.bmp = 1rpmlogo.bmp = 1rpmname.bmp = 1import.bmp = 1export.bmp = 1clock.bmp = 1printer.bmp = 1filecopy.bmp = 1readme.txt = 1lang_eng.bin = 1rpmdata.dbd = 1,database\wce1tahoma.ttf = 2mfcce212.dll = 3olece212.dll = 3olece211.dll = 1,c:\windows ce tools\wce211\NMSD61102.11\mfc\lib\x86rdm45wce.dll = 1,c:\rptools\rdm45wce\4_50\lib\wce212\wcex86relpicfmt.dll = 1,c:\rptools\picfmt\1_00\wce212\wcex86rel6110fmtctrl.dll = 1,c:\rptools\fmtctrl\1_00\wce212\wcex86rel6110ugrid.dll = 1,c:\rptools\ugrid\1_00\wce212\wcex86rel6110simple.dll = 1,c:\rptools\pspbm0c\1_00\wce211\wcex86relpsink.dll = 1,c:\rptools\psink\1_00\wce211\WCEX86RelMinDependencypslpwce.dll =1,c:\rptools\pslpm0c\1_00\wce211\WCEX86RelMinDependencynpcpport.dll = 1,c:\rptools\cedk\212_03\installable drivers\printer\npcp;dexcom.dll = 1,c:\rptools\psdxm0c\1_00\x86ncsce.exe = 1,c:\rptools\ncsce\1_04nrinet.dll = 1,c:\rptools\ncsce\1_04[DestinationDirs] ; Required section;Shortcuts.All = 0,%CE3% ; \Windows\DesktopFiles.App = 0,%InstallDir%Files.DataBase = 0,%InstallDir%\DataBaseFiles.BitMaps = 0,%InstallDir%\BitmapsFiles.Fonts = 0,%InstallDir%\FontsFiles.Intl = 0,%InstallDir%\IntlFiles.TelecomNcsCE = 0,%InstallDir%\Telecom\NcsCEFiles.Windows = 0,%InstallDir%\WindowsFiles.Import = 0,%InstallDir%\ImportFiles.Export = 0,%InstallDir%\ExportFiles.Work = 0,%InstallDir%\WorkFiles.WinCE = 0,\storage_card\wince[CEStrings] ; Required sectionAppName = Rp32InstallDir = \storage_card\%AppName%[Strings] ; Optional section;[Shortcuts.All];Sample App,0,sample.exe ; Uses the path in DestinationDirs.;Sample App,0,sample.exe,%InstallDir% ; The path is explicitly specified.[Files.App]rpm.exe,,,0rpm.ini,rpmce212.ini,,0mfcce212.dll,,,0olece212.dll,,,0olece211.dll,,,0rdm45wce.dll,,,0picfmt.dll,,,0
Programming—Chapter 7247700 Series Color Mobile Computer User’s Manualfmtctrl.dll,,,0ugrid.dll,,,0simple.dll,,,0psink.dll,,,0pslpwce.dll,,,0npcpport.dll,,,0;dexcom.dll,,,0[Files.DataBase]rpmdata.dbd,,,0[Files.Fonts]tahoma.ttf,,,0[Files.BitMaps]intermec.bmp,,,0rpmlogo.bmp,,,0rpmname.bmp,,,0import.bmp,,,0export.bmp,,,0clock.bmp,,,0printer.bmp,,,0filecopy.bmp,,,0[Files.Intl]lang_eng.bin,,,0[Files.TelecomNcsCE]ncsce.exe,,,0nrinet.dll,,,0[Files.Windows]readme.txt,,,0[Files.Import]readme.txt,,,0[Files.Export]readme.txt,,,0[Files.Work]readme.txt,,,0[Files.WinCE]wcestart.ini,,,0[RegSettings.All]HKLM,”SOFTWARE\Microsoft\Shell\AutoHide”,,0x00010001,1; Autohide the taskbar HKLM,”SOFTWARE\Microsoft\Shell\OnTop”,,0x00010001,0; Shell is not on top HKLM,”SOFTWARE\Microsoft\Clock”,SHOW_CLOCK,0x00010001,0; Clock is not on taskbar
ProgrammingChapter —7248 700 Series Color Mobile Computer User’s ManualUsing Installation Functions in SETUP.DLLSETUP.DLL is an optional file that enables you to perform custom opera-tions during installation and removal of your application. The followinglist shows the functions that are exported by SETUP.DLL.SInstall_InitCalled before installation begins. Use this function to check the applica-tion version when reinstalling an application and to determine if a de-pendent application is present.SInstall_ExitCalled after installation is complete. Use this function to handle errorsthat occur during application installation.SUninstall_InitCalled before the removal process begins. Use this function to close theapplication, if the application is running.SUninstall_ExitCalled after the removal process is complete. Use this function to savedatabase information to a file and delete the database and to tell the userwhere the user data files are stored and how to reinstall the application.Note;Use[DefaultInstall] →CESelfRegister (page 240) in the .INF fileto point to SETUP.DLL.After the CAB File ExtractionCab files that need to cause a warm reset after cab extraction will need tocreate the __RESETMEPLEASE__.TXT file in the “\Windows” directory.The preferred method to create this file is within the DllMain portion ofthe SETUP.DLL file. It looks like this:BOOL APIENTRY DllMain( HANDLE hModule, DWORD ul_reason_for_call, LPVOIDlpReserved ){switch (ul_reason_for_call){case DLL_PROCESS_ATTACH:break;case DLL_THREAD_ATTACH:break;case DLL_THREAD_DETACH:break;case DLL_PROCESS_DETACH:if (bInstallSuccessful) {HANDLE h;h = CreateFile(L”\\Windows\\__resetmeplease__.txt”,GENERIC_READ|GENERIC_WRITE, 0, NULL, CREATE_ALWAYS,FILE_ATTRIBUTE_HIDDEN, NULL);if (h != INVALID_HANDLE_VALUE)CloseHandle(h);}break;}return TRUE;}
Programming—Chapter 7249700 Series Color Mobile Computer User’s ManualThe system software looks for the following directory structure and files onthe installed media card whether it be an SD card or CF card or embeddedflash file system. No other folders need exist.\2577\autorun.exe\2577\autorun.dat\2577\autocab.exe\2577\autocab.dat\cabfiles\*.cabCreating CAB Files with CAB WizardAfter you create the .INF file and the optional SETUP.DLL file, use theCAB Wizard to create the .CAB file. The command-line syntax for theCAB Wizard is as follows:cabwiz.exe “inf_file” [/dest dest_directory] [/err error_file] [/cpu cpu_type[cpu_type]]A batch file, located in <program> directory, with the following com-mands, works well:cd\“Windows CE Tools”\WCE211\”MS HPC Pro”\support\appinst\bincabwiz.exe c:\appsoft\<program>\<inf_file_name>cd \appsoft\<program>S“inf_file”The SETUP.INF file path.Sdest_directoryThe destination directory for the .CAB files. If no directory is specified,the .CAB files are created in the “inf_file” directory.Serror_fileThe file name for a log file that contains all warnings and errors that areencountered when the .CAB files are compiled. If no file name is speci-fied, errors are displayed in message boxes. If a file name is used, theCAB Wizard runs without the user interface (UI); this is useful for au-tomated builds.Scpu_typeCreates a .CAB file for each specified microprocessor tag. A micropro-cessor tag is a label used in the Win32 SETUP.INF file to differentiatebetween different microprocessor types. The /cpu parameter, followed bymultiple cpu_type values, must be the last qualifier in the command line.ExampleThis example creates .CAB files for the SH3 and MIPS microprocessors,assuming that the Win32 SETUP.INF file contains the SH3 and MIPStags:cabwiz.exe “c:\myfile.inf” /err myfile.err /cpu sh3 mipsNote: CABWIZ.EXE, MAKECAB.EXE, and CABWIZ.DDF (WindowsCE files available on the Windows CE Toolkit) must be installed in thesame directory on the desktop computer. Call CABWIZ.EXE using its fullpath for the CAB Wizard application to run correctly.
ProgrammingChapter —7250 700 Series Color Mobile Computer User’s ManualTroubleshooting the CAB WizardTo identify and avoid problems that might occur when using the CABWizard, follow these guidelines:SUse %% for a percent sign (%) character when using this character inan .INF file string, as specified in Win32 documentation. This will notwork under the [Strings] section.SDo not use .INF or .CAB files created for Windows CE to install ap-plications on Windows-based desktop platforms.SEnsure the MAKECAB.EXE and CABWIZ.DDF files, included withWindows CE, are in the same directory as CABWIZ.EXE.SUse the full path to call CABWIZ.EXE.SDo not create a .CAB file with the MAKECAB.EXE file included withWindows CE. You must use CABWIZ.EXE, which uses MAKE-CAB.EXE to generate the .CAB files for Windows CE.SDo not set the read-only attribute for .CAB files.
Programming—Chapter 7251700 Series Color Mobile Computer User’s ManualFTP ServerFTP support is provided through the FTP Server applicationFTPDCE.EXE (MS Windows CE Versions) which is provided as part thebase system.FTPDCE is the Internet File Transfer Protocol (FTP) server process. Theserver can be invoked from an application or command line. Besides ser-vicing FTP client requests the FTP Server also send a “network announce-ment” to notify prospective clients of server availability.Synopsisftpdce [options ]OptionsS-AaddrSets the single target address to which to send the network announce-ment. Default is broadcast.S-BbyteSets the FTP data block size. Smaller sizes may be useful over slowerlinks. Default is 65536.S-CnameSets the device name. Used by Intermec management software.S-FvalueDisables the default Intermec account. A value of “0” disables the ac-count. Default is “1”.Note: Disabling the default account without providing a working accesscontrol list on the server will result in a device that will not accept anyFTP connections.S-HsecSets the interval between network announcements in seconds.A value of“0” turns the network announcement off. Default is 30 seconds.S-IipSets the preferred 6920 Communications Server (optional).S-LlogSets the state of logging. Default is 0 (disabled).S-NsecSpecifies the number of seconds to wait before starting FTP server ser-vices.S-PportSets the UDP port on which the network announcement will be sent.Default port is 52401.S-QportSets the port on which the FTP Server will listen for connections.Default port is 21.
ProgrammingChapter —7252 700 Series Color Mobile Computer User’s ManualS-RdirSets the FTP mount point to this directory. Default is the rootdirectoryof the drive from which the FTP Server program was executed.S-TscriptSets the script name for the 6920 Communications Server to process.S-UurlSets the default URL for this device.S-Z“parms”Sets extended parameters to be included in the network announcement.Configurable Parameters Via the Registry EditorThe following parameters receive default values during the installation ofthe Intermec FTP Server components. A few of the parameters are visiblein the registry by default, but most must be created in order to modify thedefault behavior of the FTP server.BlockSizeSetting this parameter forces the Intermec FTP Server to transmit and re-ceive Ethernet packets using the specified data block size. By default, theFTP server transmits and receives data using a 64K data block size. Adjust-ing this value may be useful in certain wireless TCP/IP installations.KeyHKLM\Software\Intermec\IFTPValue TypeREG_DWORD - data block size, in bytes.Valid Range0x100-0x10000 (256-65536 decimal).Default65536
Programming—Chapter 7253700 Series Color Mobile Computer User’s ManualDeviceNameThis parameter forces the Intermec FTP Server to include the specifieddevice name in the Intermec Device Network Announcement (IDNA).Adjusting this value may be useful in assigning a symbolic name to thisdevice for asset tracking.KeyHKLM\Software\Intermec\IFTPValue TypeREG_SZValid RangeNone.DefaultNone.DeviceURLThis parameter forces the Intermec FTP Server to transmit the specifiedURL in the IDNA. This can be used by Intermec management softwarefor asset management.KeyHKLM\Software\Intermec\IFTPValue TypeREG_SZValid RangeNone.DefaultNone.
ProgrammingChapter —7254 700 Series Color Mobile Computer User’s ManualIDNATargetThis parameter forces the Intermec FTP Server to transmit the IDNA to aspecific destination instead of a general UDP broadcast. This parameter isuseful on networks that do not allow UDP broadcasts to be routed be-tween subnets. The use of this parameter will restrict the reception of theIDNA to the target destination only.KeyHKLM\Software\Intermec\IFTPValue TypeREG_SZValid RangeNone.DefaultNone.ManifestNameThis parameter forces the Intermec FTP Server to transmit the specifiedmanifest name in the IDNA. This parameter is used by the Intermec 6920Communications Server for communication transactions. See the 6920Communications Server documentation for proper use of this parameter.KeyHKLM\Software\Intermec\IFTPValue TypeREG_SZValid RangeNone.Defaultiftp.ini
Programming—Chapter 7255700 Series Color Mobile Computer User’s ManualPauseAtStartupThis parameter forces the Intermec FTP Server to sleep for the specifiednumber of seconds before making the FTP service available on the device.KeyHKLM\Software\Intermec\IFTPValue TypeREG_DWORD - stored in seconds.Valid RangeNone.Default0RootThis parameter forces the Intermec FTP Server to set the root of the FTPmount point to the specified value. Note that this must map to an existingdirectory or you will not be able to log into the FTP Server.KeyHKLM\Software\Intermec\IFTPValue TypeREG_SZValid RangeNone.Default\
ProgrammingChapter —7256 700 Series Color Mobile Computer User’s ManualTransferring Files Over TCP/IP NetworksThe File Transfer Protocol (FTP) server transfers files over TCP/IP net-works. The FTPDCE.EXE program is a version that does not display awindow, but can run in the background.FTPDCE is the Internet File Transfer Protocol (FTP) server process. Theserver can be invoked from an application or command line. Besides ser-vicing FTP client requests, the FTP Server also sends a “network an-nouncement” to notify prospective clients of server availability.RemarksThe FTP Server currently supports the following FTP requests:SCDUPChanges to the parent directory of the current working directory.SCWDChanges working directory.SDELEDeletes a file.SHELPGives help information.SLIST (This FTP request is the same as the ls -lgA command).Gives list files in a directory.SMKDMakes a directory.SMODE (Always Uses Binary).Specifies data transfer mode.SNLSTGives a name list of files in directory (this FTP request is the same asthe ls command).SNOOPDoes nothing.SPASSSpecifies a password.SPWDPrints the current working directory.SQUITTerminates session.SRETRRetrieves a file.SRMDRemoves a directory.SRNFRSpecifies rename-from file name.
Programming—Chapter 7257700 Series Color Mobile Computer User’s ManualSRNTOSpecifies rename-to file name.SSTORStores a file.SSYSTShows the operating system type of server system.STYPE (Binary transfers only.)Specifies the data transfer type with the Type parameter.SUSERSpecifies user name.SXCUP (Not Normally Used)Changes the parent directory of the current working directory.SXCWD (Not Normally Used)Changes the current directory.SXMKD (Not Normally Used)Creates a directory.SXPWD (Not Normally Used)Prints the current working directory.SXRMD (Not Normally Used)Removes a directory.SSITEThe following nonstandard or operating system (OS)-specific com-mands are supported by the SITE request. For Microsoft FTP clients,you can send site commands by preceding the command with “quote”such as “quote site status.”SATTRIBGets or sets the attributes of a given file. (SITE ATTRIB)Usage:QUOTE SITE ATTRIB [+R |-R][+A |-A ][+S |-S][+H |-H][[path]filename]+Sets an attribute.`Clears an attribute.RRead-only file attribute.AArchive file attribute.SSystem file attribute.HHidden file attribute.To retrieve the attributes of a file, only specify the file. The server re-sponse will be: 200-AD SHRCEIX filenameIf the flag exists in its position shown above, it is set. Also, in additionto the values defined above, there is also defined:CCompressed file attribute.EEncrypted file attribute.IINROM file attribute.XXIP file attribute (execute in ROM, not shadowed in RAM).
ProgrammingChapter —7258 700 Series Color Mobile Computer User’s ManualSBOOTReboots the server OS. This will cause the system on which the serv-er is executing to reboot. The FTP Server will shut down cleanly be-fore reboot. All client connections will be terminated. Cold boot isdefault except for the PocketPC build in which the default is warmboot.(SITE BOOT)Usage:QUOTE SITE BOOT [WARM |COLD]SCOPYCopies a file from one location to another. (SITE COPY)Usage:QUOTE SITE COPY [source][destination]ExampleQUOTE SITE COPY ‘\Storage Card\one.dat’ ‘\StorageCard\two.dat’SEXITExits the FTP Server. This command will shut down the FTP Serverthus terminating all client connections. (SITE EXIT)Usage:QUOTE SITE EXITSHELPGives site command help information. (SITE HELP)Usage:QUOTE SITE HELP [command]SKILLTerminates a running program. (SITE KILL)Usage:QUOTE SITE KILL [program |pid]SLOGOpens or closes the program log. (SITE LOG)Usage:QUOTE SITE LOG [open [filename]| close]SPLISTLists the running processes (not supported on all platforms).(SITE PLIST)Usage:QUOTE SITE PLISTSRUNStarts a program running. If the program to run has spaces in path orfilename, wrapping the name with single quotes is required.Usage:QUOTE SITE RUN [program]ExampleQUOTE SITE RUN ‘\Storage Card\app.exe’
Programming—Chapter 7259700 Series Color Mobile Computer User’s ManualSSTATUSReturns the current settings of the FTP Server. MAC, serial number,model, IP address, network announcement information as well as OSmemory usage are returned. (SITE STATUS)Usage:QUOTE SITE STATUSSTIMEOUTToggles idle timeout between 120 to 1200 seconds (2 to 20 minutes).If this timer expires with no activity between the client and the server,the client connection will be disconnected. If the optional secondsargument is supplied, the server will set the connection timeout tothe number of seconds specified. Default is 120 seconds or 2 minutes.(SITE TIMEOUT)Usage:QUOTE SITE TIMEOUT [seconds]The remaining FTP requests specified in RFC 959 are recognized, but notimplemented.The banner returned in the parenthetical portion of its greeting shows theversion number of the FTP Server as well as the MAC address, serial num-ber and OS of the machine hosting the server.The FTP Server supports browsing from the latest Netscape and Microsoftweb browsers. Drag-and-drop capability is available using this environ-ment.The FTPDCMDS subdirectory contains commands that can be used fromthe web browser.SClick EXITME.BIN to execute a SITE EXIT command.SClick REBOOTME.BIN to execute SITE BOOT command.SUse the GET command on these files to have the FTP Server executethese commands.SSecurity:A customer configurable access control list may be installed on the700 Series Computer. This list will allow customers to restrict accessvia the FTP Server to the users they wish. This is in addition to thedefault Intermec account which can be disabled using the -F0 optionat runtime.The access control list is named FTPDCE.TXT and is placed in thesame directory on the 700 Series Computer as the FTPDCE.EXEserver. The FTP Server will encrypt this file to keep the informationsafe from unauthorized users. This file is encrypted when the FTPServer is started so a file that is placed onto the 700 Series Computerafter the FTP Server starts will require a restart of the FTP Server totake effect.The format of the FTPDCE.TXT is as follows:FTPDCE:user1!passwd1<cr><lf>user2!passwd2<cr><lf>user3!passwd3<cr><lf>...
ProgrammingChapter —7260 700 Series Color Mobile Computer User’s ManualNote: The user accounts and passwords are case sensitive.Once the access control list is encrypted on the 700 Series Computer, theFTP Server will hide this file from users. Once an access control list hasbeen installed on the 700 Series Computer, a new one will not be acceptedby the FTP Server until the previous one is removed.Encrypted access control lists are not portable between 700 Series Com-puters.Stopping the FTP Server from Your ApplicationTo allow application programmers the ability to programmatically shutdown the FTP Server, the FTP Server periodically tests to see if a namedevent is signaled. The name for this event is “ITC_IFTP_STOP” (noquotes).For examples on how to use this event, consult the Microsoft DeveloperNetwork Library at http://www.msdn.com. The MSDN Library is an essen-tial resource for developers using Microsoft tools, products, and technolo-gies. It contains a bounty of technical programming information, includ-ing sample code, documentation, technical articles, and reference guides.Autostart FTPThis automatically starts the FTP Server (FTPDCE.EXE) when the 700Series Computer is powered on. This is provided with the NDISTRAYprogram, which displays the popup menu that currently allows you to loadand unload the network drivers. Tap the antenna icon in the System Trayof the Today screen (a sample antenna icon is circled below) to get this pop-up menu.
Programming—Chapter 7261700 Series Color Mobile Computer User’s ManualThe default is to start the FTP Server at boot time, unless the followingregistry entry is defined and set to “0” which disables AutoFTP. “1” enablesthe AutoFTP. The entry can be set from the NDISTRAY pop-up menu byselecting either AutoFTP On or AutoFTP Off.HKEY_LOCAL_MACHINE\Software\Intermec\Ndistray\StartupIFTPThese new entries are located below the selections to load the networkdrivers. If the StartupIFTP registry key is not defined, the FTP Server isloaded by default, to provide “out-of-the-box” capability for customerswho want to begin loading files to the 700 Series Computer without anyprior configuration.Note: If a network driver is unloaded using the NDISTRAY popup menu,and the FTP Server is running, the FTP Server is stopped.On a resume, if AutoFTP is enabled and the FTP Server is running, it isstopped and restarted. NDISTRAY uses a helper application named RESE-TIFTP to implement the restart on resume feature. To do an AutoFTPInstallation Check:1Ensure the FTP Server is running “out-of-the-box” the first time.2Tap Start →Today to access the Today screen, then tap the antennaicon in the System Tray to bring up the NDISTRAY pop-up menu.Select AutoFTP Off to disable AutoFTP. Do a warm boot and confirmthe FTP Server is not running.3Tap Start →Today to access the Today screen, then tap the antennaicon in the System Tray to bring up the NDISTRAY pop-up menu.Select AutoFTP On to enable AutoFTP, reboot and confirm it isrunning.4Unload the network driver when the FTP Server is running and confirmthat it is not running any more.5Load the FTP Server, establish a connection, then suspend and resume.The server should still be running, but the FTP connection to the clientshould be dropped.
ProgrammingChapter —7262 700 Series Color Mobile Computer User’s ManualFull ScreenPocket PC is a hardware specification created by Microsoft Corporation.Devices that wish to carry the Pocket PC logo must meet the minimumhardware requirements set in the Pocket PC specification. Manufacturersare free to add extra hardware functionality.Pocket PC 2002 devices also use a specialized version of the CE operatingsystem. This OS is built from Windows CE 3.0 but contains customiza-tions, most notably the lack of a desktop and the addition of the TodayScreen.To carry the Pocket PC logo, all devices must be tested at an IndependentTest Laboratory. The ITL testing is done based on Microsoft requirements.The test lab then reports the findings back to Microsoft Corporation andIntermec Technologies. If the 700 Series Computer passed all tests, Inter-mec is allowed to ship the device with the Pocket PC logo. Each time theoperating system is modified, Intermec must resubmit to ITL testing.This means we cannot change the operating system much and still be aPocket PC device. For example, if we remove Word from the Start menu,the device would fail ITL testing and we would not be able to ship deviceswith the Pocket PC logo.Although many customers want a Pocket PC device, some customerswould prefer that their users not have access to all of the Pocket PC featu-res. Intermec cannot customize the operating system in any way but a cus-tom application can:SDelete items from the Start menu, and Programs folder. These items arejust shortcuts in the file system so the application is not really beingdeleted. Cold booting the device will bring these items back so the ap-plication will need to be run on every cold boot.SUse the RegFlushKey() API to save a copy of the registry to a storagedevice. See the Recovery CD Help for more information on how to dothis. Saving a copy of the registry will allow most system settings to berestored in a cold boot situation.SUse the SHFullScreen() API in conjunction with other APIs to make theapplication take up the entire display and prevent the start menu frombeing available.SRemap keys and disable keys on the keypad.SCreate a custom SIP.SMake changes to the registry to configure the device.
Programming—Chapter 7263700 Series Color Mobile Computer User’s ManualShould you want your 700 Series Computer to display a full screen, keepin mind that your computer is Pocket-PC certified by Microsoft Corpora-tion. Check out resources on programming for the Pocket PC, using thefollowing links. These instructions give full instructions on how to displayfull screen.SInstructions on how to create a full screen application for eVC++ ap-plications using an SHFullScreen() API:http://support.microsoft.com/support/kb/articles/Q266/2/44.ASPSInstructions on how to create a full screen application for eVB applica-tions also using the SHFullScreen() API:http://support.microsoft.com/support/kb/articles/Q265/4/51.ASP
ProgrammingChapter —7264 700 Series Color Mobile Computer User’s ManualKernel I/O ControlsThis describes the KernelIoControl() functions available to applicationprogrammers. Most C++ applications will need to prototype the functionas the following to avoid link and compile errors.extern “C” BOOL KernelIoControl(DWORD dwIoControlCode, LPVOID lpInBuf, DWORDnInBufSize, LPVOID lpOutBuf, DWORD nOutBufSize, LPDWORD lpBytesReturned);IOCTL_HAL_GET_DEVICE_INFOThis IOCTL returns either the platform type or the OEMPLATFORMname based on an input value.SyntaxBOOL KernelIoControl( IOCTL_HAL_GET_DEVICE_INFO, LPVOIDlpInBuf, DWORD nInBufSize, LPVOID lpOutBuf, DWORDnOutBufSize, LPDWORD lpBytesReturned );ParameterslpInBuf Points to a DWORD containing either theSPI_GETPLATFORMTYPE or SPI_GETOEMINFOvalue.lpInBufSize Must be set to sizeof(DWORD).lpOutBuf Must point to a buffer large enough to hold the returndata of the function. If SPI_GETPLATFORMTYPE isspecified in lpInBuf, then the “PocketPC\0” Unicodestring is returned. If SPI_GETOEMINFO is specified inlpInBuf, then the “Intermec 700\0” Unicode string isreturned.nOutBufSize The size of lpOutBuf in bytes. Must be large enough tohold the string returned.lpBytesReturned The actual number of bytes returned by the function forthe data requested.Return ValuesReturns TRUE if function succeeds. Returns FALSE if the function fails.GetLastError() may be used to get the extended error value.
Programming—Chapter 7265700 Series Color Mobile Computer User’s ManualIOCTL_HAL_ITC_READ_PARMUsage#include “oemioctl.h”SyntaxBOOL KernelIoControl( IOCTL_HAL_ITC_READ_PARM,LPVOIDlpInBuf,DWORD nInBufSize,LPVOID lpOutBuf,DWORDnOutBufSize,LPDWORD lpBytesReturned );ParameterslpInBuf Points to this structure. See “ID Field Values”below.struct PARMS {BYTE id;BYTE ClassId;};nInBufSize Must be set to the size of the PARMS structure.lpOutBuf Must point to a buffer large enough to hold the returndata of the function. If this field is set to NULL andnOutBufSize is set to zero when the function is called thefunction will return the number bytes required by thebuffer.nOutBufSize The size of lpOutBuf in bytes.lpBytesReturned The number of bytes returned by the function for thedata requested.Return ValuesReturns TRUE if function succeeds. Returns FALSE if the function fails.GetLastError() may be used to get the error value. EitherERROR_INVALID_PARAMETER orERROR_INSUFFICIENT_BUFFER may be returned when this functionis used to get the error.ID Field ValuesThe id field of the PARMS structure may be one of the following values:SITC_NVPARM_ETHERNET_IDThis IOCTL returns the Ethernet 802.11 MAC Address. Six bytes arereturned in the buffer pointed to by the lpOutBuffer parameter.SITC_NVPARM_SERIAL_NUMThis IOCTL returns the serial number of the device in BCD format.Six bytes are returned in the buffer pointed to by the lpOutBuffer pa-rameter.SITC_NVPARM_MANF_DATEThis IOCTL returns the device date of manufacture in theBCD YYYY/MM/DD format. Four bytes are returned in the bufferpointed to by the lpOutBuffer parameter.
ProgrammingChapter —7266 700 Series Color Mobile Computer User’s ManualSITC_NVPARM_SERVICE_DATEThis IOCTL returns the device’ s date of last service in BCD YYYY/MM/DD format. Four bytes are returned in the buffer pointed to bythe lpOutBuffer parameter.SITC_NVPARM_DISPLAY_TYPEThis IOCTL returns the device’ s display type. One byte is returned inthe buffer pointed to by the lpOutBuffer parameter.SITC_NVPARM_EDG_IPThis IOCTL returns the device Ethernet debug IP address. Four bytesare returned in the buffer pointed to by the lpOutBuffer parameter.SITC_NVPARM_EDBG_SUBNETThis IOCTL returns the device Ethernet debug subnet mask. Four by-tes are returned in the buffer pointed to by the lpOutBuffer parameter.SITC_NVPARM_ECNThis IOCTL returns ECNs applied to the device in a bit array format.Four bytes are returned in the buffer pointed to by the lpOutBuffer pa-rameter.SITC_NVPARM_CONTRASTThis IOCTL returns the device default contrast setting. Two bytes arereturned in the buffer pointed to by the lpOutBuffer parameter.SITC_NVPARM_MCODEThis IOCTL returns the manufacturing configuration code for the de-vice. Sixteen bytes are returned in the buffer pointed to by the lpOut-Buffer parameter.SITC_NVPARM_VERSION_NUMBERThis IOCTL returns the firmware version for various system compo-nents. These values for the ClassId field of the PARMS structure are al-lowed when ITC_NVPARM_VERSION_NUMBER is used in the idfield:SVN_CLASS_KBDReturns a five-byte string, including null terminator, that contains anASCII value which represents the keyboard microprocessor version inthe system. The format of the string is x.xx with a terminating nullcharacter.SVN_CLASS_ASICReturns a five-byte string, including null terminator, that contains anASCII value which represents the version of the FPGA firmware inthe system. The format of the string is x.xx with a terminating nullcharacter.SVN_CLASS_BOOTSTRAPReturns a five-byte string, including null terminator, that contains anASCII value which represents the version of the Bootstrap Loaderfirmware in the system. The format of the string is x.xx with a termi-nating null character.
Programming—Chapter 7267700 Series Color Mobile Computer User’s ManualSITC_NVPARM_INTERMEC_SOFTWARE_CONTENTThis IOCTL reads the manufacturing flag bits from the non-volatiledata store that dictates certain software parameters. A BOOLEANDWORD is returned in the buffer pointed to by lpOutBuffer that indi-cates if Intermec Content is enabled in the XIP regions. TRUE indicatesthat it is enabled. FALSE indicates that it is not enabled.SITC_NVPARM_ANTENNA_DIVERSITYThis IOCTL reads the state of the antenna diversity flag. A BOOLEANDWORD is returned in the buffer pointed to by lpOutBuffer that indi-cates if there is a diversity antenna installed. TRUE indicates that it isinstalled. FALSE indicates that it is not installed.SITC_NVPARM_WAN_RIThis IOCTL reads the state of the WAN ring indicator flag. A BOOL-EAN DWORD is returned in the buffer pointed to by lpOutBuffer thatindicates the polarity of the WAN RI signal. TRUE indicates activehigh. FALSE indicates active low.SITC_NVPARM_RTC_RESTOREThis IOCTL reads the state of the real-time clock restore flag. ABOOLEAN DWORD is returned in the buffer pointed to by lpOutBuf-fer. TRUE indicates that the RTC will be restored upon a cold boot.FALSE indicates that the RTC will not be restored.SITC_NVPARM_INTERMEC_DATACOLLECTION_SWThis IOCTL reads the state of the data collection software enabled flag.A BOOLEAN DWORD is returned in the buffer pointer to by lpOut-Buffer that indicates the data collection software is to be installed at boottime. FALSE indicates the data collection software should not beinstalled.SITC_NVPARM_INTERMEC_DATACOLLECTION_HWThis IOCTL reads the data collection hardware flags. A BYTE is re-turned in the buffer pointer to by lpOutBuffer that indicates the type ofdata collection hardware installed. The maximum possible value re-turned is ITC_DEVID_SCANHW_MAX.SITC_DEVID_SCANHW_NONENo scanner hardware is installed.SITC_DEVID_OEM2D_IMAGEROEM 2D imager is installed.SITC_DEVID_INTERMEC2D_IMAGERIntermec 2D imager is installed.SITC_DEVID_SE900_LASERSE900 laser is installed.SITC_DEVID_SE900HS_LASERSE900HS laser is installed.The high bit indicates whether the S6 scanning engine is installed. Thebit mask for this is ITC_DEVID_S6ENGINE_MASK. A non-zero val-ue indicates that the S6 scanning engine is installed.
ProgrammingChapter —7268 700 Series Color Mobile Computer User’s ManualSITC_NVPARM_WAN_INSTALLEDThis IOCTL reads the state of the WAN radio installed flag. A BOOL-EAN DWORD is returned in the buffer pointed to by lpOutBuffer.TRUE indicates that the WAN radio is installed. FALSE indicates thatno WAN radio is installed.SITC_NVPARM_WAN_FREQUENCYThis IOCTL reads the state of the WAN radio frequency flag. ABOOLEAN DWORD is returned in the buffer pointed to by lpOutBuf-fer. TRUE indicates that the WAN radio frequency is United States.FALSE indicates that the WAN radio frequency is European.SITC_NVPARM_WAN_RADIOTYPEThis IOCTL reads the WAN radio ID installed by manufacturing. ABYTE is returned in the buffer pointer to by lpOutBuffer which indi-cates the type of WAN radio hardware installed. The maximum possiblevalue returned is ITC_DEVID_WANRADIO_MAX. The current defi-nitions are:SITC_DEVID_WANRADIO_NONENo WAN radio installed.SITC_DEVID_WANRADIO_SIERRA_SB555CDMA Sierra Wireless radio.SITC_DEVID_WANRADIO_XIRCOM_GEM3503GSM/GPRS Intel (Xircom) radio.SITC_DEVID_WANRADIO_SIEMENS_MC45GSM/GPRS Siemens radio.SITC_NVPARM_80211_INSTALLEDThis IOCTL reads the state of the 802.11b radio installed flag. ABOOLEAN DWORD is returned in the buffer pointed to by lpOutBuf-fer. TRUE indicates that the 802.11b radio is installed. FALSE indicatesthat no 802.11b radio is installed.SITC_NVPARM_80211_RADIOTYPEThis IOCTL reads the 802.11b radio ID installed by manufacturing. ABYTE is returned in the buffer pointer to by lpOutBuffer that indicatesthe type of 802.11b radio hardware installed. The maximum possiblevalue returned is ITC_DEVID_80211RADIO_MAX. The current defi-nitions are:SITC_DEVID_80211RADIO_NONENo 802.11b radio installed.SITC_DEVID_80211RADIO_INTEL_2011BIntel 2011B radio installed.SITC_NVPARM_BLUETOOTH_INSTALLEDThis IOCTL reads the state of the Bluetooth radio installed flag. ABOOLEAN DWORD is returned in the buffer pointed to by lpOutBuf-fer. TRUE indicates that the Bluetooth radio is installed. FALSE indi-cates that no Bluetooth radio is installed.
Programming—Chapter 7269700 Series Color Mobile Computer User’s ManualSITC_NVPARM_SERIAL2_INSTALLEDThis IOCTL reads the state of the serial 2 (COM2) device installedflag. A BOOLEAN DWORD is returned in the buffer pointed to bylpOutBuffer. TRUE indicates that the serial 2 device is installed. FALSEindicates that no serial 2 device is installed.SITC_NVPARM_VIBRATE_INSTALLEDThis IOCTL reads the state of the vibrate device installed flag. ABOOLEAN DWORD is returned in the buffer pointed to by lpOutBuf-fer. TRUE indicates that the vibrate device is installed. FALSE indicatesthat no vibrate device is installed.SITC_NVPARM_LAN9000_INSTALLEDThis IOCTL reads the state of the Ethernet device installed flag. ABOOLEAN DWORD is returned in the buffer pointed to by lpOutBuf-fer. TRUE indicates that the Ethernet device is installed. FALSE indi-cates that no Ethernet device is installed.SITC_NVPARM_SIM_PROTECT_HW_INSTALLEDThis IOCTL reads the state of the SIM card protection hardwareinstalled flag. A BOOLEAN DWORD is returned in the buffer pointedto by lpOutBuffer. TRUE indicates that the SIM card protection hard-ware is installed. FALSE indicates that no SIM card protection hardwareis installed.SITC_NVPARM_SIM_PROTECT_SW_INSTALLEDThis IOCTL reads the state of the SIM card protection softwareinstalled flag. A BOOLEAN DWORD is returned in the buffer pointedto by lpOutBuffer. TRUE indicates that the SIM card protection soft-ware is installed. FALSE indicates that no SIM card protection softwareis installed.
ProgrammingChapter —7270 700 Series Color Mobile Computer User’s ManualIOCTL_HAL_ITC_WRITE_SYSPARMDescribes and enables the registry save location.Usage#include “oemioctl.h”SyntaxBOOL KernelIoControl( IOCTL_HAL_ITC_WRITE_SYSPARM,LPVOIDlpInBuf,DWORD nInBufSize, LPVOID lpOutBuf, DWORDnOutBufSize, LPDWORD lpBytesReturned );ParameterslpInBuf A single byte that may be one of the id values.See “ID Field Values”below.nInBufSize Must be set to the size of the lpInBuf in bytes.lpOutBuf Must point to a buffer large enough to hold the data tobe written to the non-volatile data store.nOutBufSize The size of lpOutBuf in bytes.lpBytesReturned The number of bytes returned by the function.Return ValuesReturns TRUE if function succeeds. Returns FALSE if the function fails.GetLastError() may be used to get the error value. EitherERROR_INVALID_PARAMETER orERROR_INSUFFICIENT_BUFFER may be returned when this functionis used to get the error.ID Field ValuesThe id field of lpInBuf may be one of the following values:SITC_REGISTRY_LOCATIONThis IOCTL sets the default location for where to write the registrywhen RegFlushKey() is called by an application. The registry may besaved to Flash, a CompactFlash storage card or a SecureDigital storagecard. lpOutBuf must point to a buffer that contains a byte value of “1”for the CompactFlash card or “2” for the SecureDigital card to specifythe location.SITC_REGISTRY_SAVE_ENABLEThis function enables or disables the save registry to non-volatile mediafeature of the RegFlushKey() function. lpOutBuf must be set to zero(FALSE) if the feature is to be disabled or one (TRUE) if the feature isto be enabled.SITC_ DOCK_SWITCHThis IOCTL sets a position of the dock switch. The dock switch maybe set to either “modem” or “serial” positions. lpOutBuf must point to abuffer that contains a byte value of either DOCK_MODEM orDOCK_SERIAL as defined in OEMIOCTL.H; the value specifies theposition the switch is to be set.
Programming—Chapter 7271700 Series Color Mobile Computer User’s ManualSITC_ WAKEUP_MASKThis IOCTL sets a bit mask that represents the mask for the five pro-grammable wakeup keys. The I/O key is not a programmable wakeupkey. By default it is always the system resume key and all other keys areset to disable key wakeup. A zero in a bit position masks the wakeup forthat key. A one in a bit position enables wakeup for that key. lpOutBufmust point to a buffer that contains a byte value of a wakeup mask con-sisting of the OR’ ed constants as defined in OEMIOCTL.H. Only thefollowing keys are programmable as wakeup events.#define SCANNER_TRIGGER 1#define SCANNER_LEFT 2#define SCANNER_RIGHT 4#define GOLD_A1 8#define GOLD_A2 0x10SITC_AMBIENT_KEYBOARDThis IOCTL sets the threshold for the keyboard ambient sensor. Thiscan be a value from 0 (always off ) to 255 (always on). lpOutBuf mustpoint to a buffer that contains a byte value of the desired setting.SITC_AMBIENT_FRONTLIGHTThis IOCTL sets the threshold for the frontlight ambient sensor. Thiscan be a value from 0 (always off ) to 255. lpOutBuf must point to abuffer that contains a byte value of the desired setting.
ProgrammingChapter —7272 700 Series Color Mobile Computer User’s ManualIOCTL_HAL_GET_DEVICEIDThis IOCTL returns the device ID. There are two types of device IDs sup-ported, which are differentiated based on the size of the output buffer. TheUUID is returned if the buffer size is set to sizeof(UNIQUE_DEVICEID),otherwise the oldstyle device ID is returned.Usage#include “pkfuncs.h”#include “deviceid.h”SyntaxBOOL KernelIoControl( IOCTL_HAL_GET_DEVICEID,LPVOIDlpInBuf,DWORD nInBufSize,LPVOID lpOutBuf,DWORDnOutBufSize,LPDWORD lpBytesReturned );ParameterslpInBuf Should be set to NULL. STRICT_ID settings are notsupported.lpInBufSize Should be set to zero.lpOutBuf Must point to a UNIQUE_DEVICEID structure asdefined by DEVICEID.H if the UUID is to be returned.nOutBufSize The size of the UNIQUE_DEVICEID in bytes if theUUID is to be returned. A DEVICE_ID as defined byPKFUNCS.H is returned if the size in bytes is greaterthan or equal to sizeof(DEVICE_ID).lpBytesReturned The number of bytes returned by the function.Return ValuesReturns TRUE if function succeeds. Returns FALSE if the function fails.GetLastError() may be used to get the extended error value.
Programming—Chapter 7273700 Series Color Mobile Computer User’s ManualIOCTL_HAL_GET_OAL_VERINFOReturns the HAL version information of the Pocket PC image.Usage#include “oemioctl.h”SyntaxBOOL KernelIoControl( IOCTL_HAL_GET_OAL_VERINFO,LPVOIDlpInBuf,DWORD nInBufSize,LPVOID lpOutBuf,DWORDnOutBufSize,LPDWORD lpBytesReturned );ParameterslpInBuf Should be set to NULL.lpInBufSize Should be set to zero.lpOutBuf Must point to a VERSIONINFO structure as defined byOEMIOCTL.H. The fields should have these values:Scboemverinfo sizeof (tagOemVerInfo);Sverinfover 1Ssig; “ITC\0”Sid; ‘N’Stgtcustomer “”Stgtplat SeaRayStgtplatversion Current build version numberStgtcputype[8]; “Intel\0”Stgtcpu “PXA250\0”;Stgtcoreversion “”Sdate Build timeStime Build datenOutBufSize The size of VERSIONINFO in bytes.lpBytesReturned Returns sizeof(PVERSIONINFO).Return ValuesReturns TRUE if function succeeds. Returns FALSE if the function fails.GetLastError() may be used to get the extended error value.
ProgrammingChapter —7274 700 Series Color Mobile Computer User’s ManualIOCTL_HAL_GET_BOOTLOADER_VERINFOReturns the HAL version information of the Pocket PC image.Usage#include “oemioctl.h”SyntaxBOOL KernelIoControl( IOCTL_HAL_GET_OAL_VERINFO,LPVOIDlpInBuf, DWORD nInBufSize,LPVOID lpOutBuf,DWORDnOutBufSize,LPDWORD lpBytesReturned );ParameterslpInBuf Should be set to NULL.lpInBufSize Should be set to zero.lpOutBuf Must point to a VERSIONINFO structure as defined byOEMIOCTL.H. The fields should have these values:Scboemverinfo Sizeof (tagOemVerInfo);Sverinfover 1Ssig; “ITC\0”Sid; ‘B’Stgtcustomer “”Stgtplat SeaRayStgtplatversion Current build version number ofthe bootstrap loaderStgtcputype[8]; “Intel\0”;Stgtcpu “PXA250\0”Stgtcoreversion “”Sdate Build timeStime Build datenOutBufSize The size of VERSIONINFO in bytes.lpBytesReturned The number of bytes returned to lpOutBuf.Return ValuesReturns TRUE if function succeeds. Returns FALSE if the function fails.GetLastError() may be used to get the extended error value.
Programming—Chapter 7275700 Series Color Mobile Computer User’s ManualIOCTL_HAL_WARMBOOTCauses the system to perform a warm-boot. The object store is retained.Usage#include “oemioctl.h”SyntaxBOOL KernelIoControl( IOCTL_HAL_WARMBOOT,LPVOIDlpInBuf,DWORD nInBufSize,LPVOID lpOutBuf,DWORDnOutBufSize,LPDWORD lpBytesReturned );ParameterslpInBuf Should be set to NULL.lpInBufSize Should be set to zero.lpOutBuf Should be NULL.nOutBufSize Should be zero.Return ValuesNone.IOCTL_HAL_COLDBOOTCauses the system to perform a cold-boot. The object store is cleared.Usage#include “oemioctl.h”SyntaxBOOL KernelIoControl( IOCTL_HAL_COLDBOOT,LPVOIDlpInBuf,DWORD nInBufSize,LPVOID lpOutBuf,DWORDnOutBufSize,LPDWORD lpBytesReturned );ParameterslpInBuf Should be set to NULL.lpInBufSize Should be set to zero.lpOutBuf Should be NULL.nOutBufSize Should be zero.Return ValuesNone.
ProgrammingChapter —7276 700 Series Color Mobile Computer User’s ManualIOCTL_HAL_GET_RESET_INFOThis IOCTL code allows software to check the type of the most recent re-set.Usage#include “oemioctl.h”SyntaxBOOL KernelIoControl( IOCTL_HAL_GET_RESET_INFO,LPVOIDlpInBuf,DWORD nInBufSize,LPVOID lpOutBuf,DWORDnOutBufSize,LPDWORD lpBytesReturned );ParameterslpInBuf Should be set to NULL.lpInBufSize Should be set to zero.lpOutBuf Must point to a HAL_RESET_INFO structure:typedef struct {DWORD ResetReason; // most recent reset typeDWORD ObjectStoreState; // state of object store} HAL_RESET_INFO, * PHAL_RESET_INFO;// Reset reason types#define HAL_RESET_TYPE_UNKNOWN 0#define HAL_RESET_REASON_HARDWARE 1 // cold#define HAL_RESET_REASON_SOFTWARE 2 // suspend#define HAL_RESET_REASON_WATCHDOG 4#define HAL_RESET_BATT_FAULT 8 // power fail#define HAL_RESET_VDD_FAULT 16 // warm boot// Object store state flags#define HAL_OBJECT_STORE_STATE_UNKNOWN 0#define HAL_OBJECT_STORE_STATE_CLEAR 1nOutBufSize The size of HAL_RESET_INFO in bytes.lpBytesReturned The number of bytes returned by the function.Return ValuesReturns TRUE if function succeeds. Returns FALSE if the function fails.GetLastError() may be used to get the extended error value.
Programming—Chapter 7277700 Series Color Mobile Computer User’s ManualIOCTL_HAL_GET_BOOT_DEVICEThis IOCTL code allows software to check which device CE booted from.Usage#include “oemioctl.h”SyntaxBOOL KernelIoControl( IOCTL_HAL_GET_BOOT_DEVICE,LPVOIDlpInBuf,DWORD nInBufSize,LPVOID lpOutBuf,DWORDnOutBufSize,LPDWORD lpBytesReturned );ParameterslpInBuf Should be set to NULL.lpInBufSize Should be set to zero.lpOutBuf Must point to a buffer large enough to hold a DWORD(4 bytes) that contains the boot device. The followingboot devices are supported:#define HAL_BOOT_DEVICE_UNKNOWN 0#define HAL_BOOT_DEVICE_ROM_XIP 1#define HAL_BOOT_DEVICE_ROM 2#define HAL_BOOT_DEVICE_PCMCIA_ATA 3#define HAL_BOOT_DEVICE_PCMCIA_LINEAR 4#define HAL_BOOT_DEVICE_IDE_ATA 5#define HAL_BOOT_DEVICE_IDE_ATAPI 6nOutBufSize The size of lpOutBuf in bytes (4).lpBytesReturned The number of bytes returned by the function.Return ValuesReturns TRUE if function succeeds. Returns FALSE if the function fails.GetLastError() may be used to get the extended error value.
ProgrammingChapter —7278 700 Series Color Mobile Computer User’s ManualIOCTL_HAL_REBOOTCauses the system to perform a warm-boot. The object store is retained.Usage#include “oemioctl.h”SyntaxBOOL KernelIoControl( IOCTL_HAL_REBOOT,LPVOID lpInBuf,DWORDnInBufSize,LPVOID lpOutBuf,DWORD nOutBufSize,LPDWORDlpBytesReturned );ParameterslpInBuf Should be set to NULL.lpInBufSize Should be set to zero.lpOutBuf Should be NULL.nOutBufSize Should be zero.Return ValuesNone.
Programming—Chapter 7279700 Series Color Mobile Computer User’s ManualIOCTL_PROCESSOR_INFORMATIONReturns processor information.Usage#include “pkfuncs.h”SyntaxBOOL KernelIoControl( IOCTL_PROCESSOR_INFORMATION,LPVOIDlpInBuf,DWORD nInBufSize,LPVOID lpOutBuf,DWORDnOutBufSize,LPDWORD lpBytesReturned );ParametersParameters:lpInBuf Should be set to NULL.lpInBufSize Should be set to zero.lpOutBuf Should be a pointer to the PROCESSOR_INFOstructure. The PROCESSOR_INFO structure storesinformation that describes the CPU more descriptively.typedef __PROCESSOR_INFO {WORD wVersion; // Set to value 1WCHAR szProcessorCore[40]; // “ARM\0”WORD wCoreRevision; // 4WCHAR szProcessorName[40]; // “PXA250\0”WORD wProcessorRevision; // 0WCAHR szCatalogNumber[100]; // 0WCHAR szVendor[100]; // “Intel Corporation\0”DWORD dwInstructionSet; // 0DWORD dwClockSpeed; // 400}nOutBufSize Should be set to sizeof(PROCESSOR_INFO) in bytes.lpBytesReturned Returns sizeof(PROCESSOR_INFO);Return ValuesReturns TRUE if function succeeds. Returns FALSE if the function fails.GetLastError() may be used to get the extended error value.
ProgrammingChapter —7280 700 Series Color Mobile Computer User’s ManualIOCTL_GET_CPU_IDReturns Xscale processor ID.Usage#include “oemioctl.h”SyntaxBOOL KernelIoControl( IOCTL_GET_CPU_ID,LPVOID lpInBuf, DWORDnInBufSize,LPVOID lpOutBuf,DWORD nOutBufSize,LPDWORDlpBytesReturned );ParameterslpInBuf Should point to a CPUIdInfo structure defined inOEMIOCTL.H.lpInBufSize Should be sizeof(CPUIdInfo).lpOutBuf Should be NULL.nOutBufSize Should be set to 0.lpBytesReturned Returns sizeof(PROCESSOR_INFO);Return ValuesReturns TRUE if function succeeds. Returns FALSE if the function fails.GetLastError() may be used to get the extended error value.Reboot FunctionsThere are several methods, via Kernel I/O Control functions, that an ap-plication program can use to force the 700 Series Computer to reboot.IOCTL_HAL_REBOOTIOCTL_HAL_REBOOT performs a warm-boot. See page 278.IOCTL_HAL_COLDBOOTInvoking the KernelIOControl function withIOCTL_HAL_COLDBOOT forces a cold reboot. This resets the 700Series Computer and reloads Windows CE as if a power-up had beenperformed. The contents of the Windows CE RAM-based object store arediscarded. See page 275.IOCTL_HAL_WARMBOOTThis function is supported on the 700 Series Computers. It performs awarm boot of the system, preserving the object store. See page 275.
Programming—Chapter 7281700 Series Color Mobile Computer User’s ManualRemapping the KeypadNote; Use caution when remapping the keypad. Improper remapping mayrender the keypad unusable. Data within the 700 Series Computer couldalso be lost, should any problems occur.Applications have the ability to remap keys on the 700 Color Keypad. Thiswill allow applications to enable keys that would otherwise not be availa-ble, such as the [F1] function key. Also, to disable keys that should not beavailable, such as the alpha key because no alpha entry is required. Careshould be exercised when attempting to remap the keypad because im-proper remapping may cause the keypad to become unusable. This can becorrected by cold booting the device which will cause the default keymapto be loaded again.Note that remapping the keys in this way affects the key mapping for theentire system, not just for the application that does the remapping.There are three “planes” supported for the 740 Keypad. Keys that are to beused in more than one shift plane must be described in each plane.Unshifted PlaneThe unshifted plane contains values from the keypad when not pressedwith other keys, such as the following:S[1] 1S[5] 5S[9] 9Gold PlaneThe gold plane contains values from the keypad when a key is simulta-neously pressed with the [Gold] key, such as the following:S[Gold] +[1] SendS[Gold] +[5] A3S[Gold] +[9] PageDownAlpha PlaneThe alpha plane contains values from the keypad when the keypad hasbeen placed in alpha mode by pressing the blue alpha key, such as the fol-lowing:S[Alpha] +[1] CapsS[Alpha] +[5] JKLS[Alpha] +[9] WXYZ
ProgrammingChapter —7282 700 Series Color Mobile Computer User’s ManualKey ValuesKey values for each plane are stored in the registry. All units ship with adefault key mapping already loaded in the registry. Applications that wishto change the default mapping need to read the appropriate key from theregistry into an array of Words, modify the values required and then writethe updated values back into the registry. The registry access can be donewith standard Microsoft API calls, such as RegOpenKeyEx(), RegQuery-ValueEx(), and RegSetValueEx().SThe unshifted plane mapping can be found in the registry at:HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\KEYBD\VkeySThe gold plane mapping can be found in the registry at:HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\KEYBD\VkeyGoldSThe alpha plane mapping can be found in the registry at:HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\KEYBD\VkeyAlphaHow Key Values Are Stored in RegistryTo know which fields to update in the registry, you must know what ScanCodes are assigned to each physical key (see the table below). The ScanCode is used at the lowest level of the system to let the keypad driver knowwhich physical key has been pressed. The keypad driver takes that scancode and looks it up in a table (a copy of the one stored in the registry) todetermine which values to pass on to the operating system.Each registry key is just an array that describes to the keypad driver whatvalue needs to be passed for each physical key. The key values are indexedby the scan code, this is a zero-based index. For example in the unshiftedplane, the [4] key has a scan code of 0x06. This means that the seventhword under the “Vkey” registry key will have the value for the [4] key.Taking a sample of the “Vkey” registry key shows the following values:00,00,0B,05,02,03,C1,07,04,03,BE,00,34,00,00,00,. . .The value is 34,00. The values are in reverse byte order because that is theway the processor handles data. When writing an application, nothingneeds to be done to swap the bytes, as this will happen automatically whenthe data is read into a byte value. This is something you just need to beaware of this when looking at the registry. Knowing this, we can see thatthe value that the keypad driver will pass to the system is a hex 34. Look-ing that up on an UNICODE character chart, we see that it maps to a “4”.If you wanted the key, labeled “4”, to output the letter “A” instead, youwould need to change the seventh word to “41” (the hexadecimal represen-tation of “A” from the UNICODE chart), then put the key back into theregistry.Note: Do not remap scan codes 0x01, 0x41, 0x42, 0x43, 0x44. Remap-ping these scan codes could render your 700 Series Computer unusableuntil a cold-boot is performed.If you wish to disable a certain key, remap its scan code to 0x00.
Programming—Chapter 7283700 Series Color Mobile Computer User’s ManualChange NotificationJust changing the registry keys will not immediately change the keymappings. To notify the keypad driver that the registry has been updated,signal the “ITC_KEYBOARD_CHANGE” named event using theCreateEvent() API.Advanced Keypad RemappingIt is also possible to map multiple key presses to one button and to mapnamed system events to a button. The multiple key press option could beuseful to cut down on the number of keys needed to press in a given situa-tion or to remap which key behaves like the action key. Mapping events toa button could be useful to change which buttons will fire the scanner,control volume, and allow for suspending and resuming the device. If youneed help performing one of these advanced topics please contact IntermecTechnical Support.Scan CodesAt the lowest driver level, the 740 Keypad identifies keys as scan codes.These scan codes are sent via the keypad microcontroller, and cannot bechanged without modifying the keypad firmware.Key/Meaning ScancodeReserved 0x00I/O Button 0x01Scanner Trigger 0x02Scanner Left 0x03Scanner Right 0x04.0x0540x06None 0x07Left Arrow 0x08None 0x09Backspace 0x0AGold Key 0x0BNone 0x0CESC 0x0DDown Arrow 0x0E10x0F70x10Alpha Key 0x11None 0x12Up Arrow 0x13Right Arrow 0x1420x1580x1600x1750x18None 0x19
ProgrammingChapter —7284 700 Series Color Mobile Computer User’s ManualKey/Meaning ScancodeAction Key 0x1A30x1B90x1CENTER 0x1D60x1ENone 0x1F-0x40Charge Detect 0x41LCD Frontlight 0x42Ambient Light 0x42Threshold Crossed 0x42Headset Detected 0x43Keypad Backlight 0x44Ambient Light 0x44Threshold Crossed 0x44Sample View of Registry KeysThe following is a sample view of the current default key mapping. See theregistry on your device for the latest key mappings.[HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\KEYBD]”ResumeMask”=dword:7”Vkey”=hex: 00,00,0B,05,02,03,C1,07,04,03,BE,00,34,00,00,00,\25,00,00,00,08,00,03,02,00,00,1B,00,28,00,31,00,\37,00,01,02,00,00,26,00,27,00,32,00,38,00,30,00,\35,00,00,00,01,03,33,00,39,00,0D,00,36,00,00,00,\00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\00,00,07,05,01,05,03,05,02,05”VkeyGold”=hex: 00,00,0B,05,02,03,C1,07,04,03,BE,00,34,00,00,00,\09,01,00,00,BF,00,03,02,00,00,BD,00,75,00,72,00,\21,00,01,02,00,00,76,00,09,00,73,00,38,01,5B,00,\35,00,00,00,BB,01,09,05,22,00,32,01,36,00,00,00,\00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\00,00,07,05,01,05,03,05,02,05”VkeyAlpha”=hex: 00,00,0B,05,02,03,C1,07,04,03,BE,00,47,00,00,00,\25,00,00,00,08,00,03,02,00,00,1B,00,28,00,02,02,\50,00,01,02,00,00,26,00,27,00,41,00,54,00,20,00,\4A,00,00,00,01,03,44,00,57,00,0D,00,4D,00,00,00,\00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\00,00,07,05,01,05,03,05,02,05

Navigation menu