Intermec Technologies ABTM3-3 User Manual

Exhibit L: User Manual - Part 2 of 2
FCC ID: HN2ABTM3-3
Scanner SupportChapter 6
Code 128 Enumerations
typedef enum tagCode128Decoding { ITC_CODE128_NOTACTIVE = 0, // Default ITC_CODE128_ACTIVE = 1, ITC_CODE128_NO_CHANGE = 255 } ITC_CODE128_DECODING; typedef enum tagEan128Identifier { ITC_EAN128_ID_REMOVE, ITC_EAN128_ID_INCLUDE, // Default ITC_EAN128_ID_NO_CHANGE = 255 } ITC_EAN128_IDENTIFIER; typedef enum tagCode128Cip128 { ITC_CODE128_CIP128_NOTACTIVE = 0, // Default ITC_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 bar code length does not require any change.
The table below shows what to be expected for EAN 128 labels for various symbology identifier transmit configurations and EAN 128 Identifier op­tions.
Setup Application’s Expected Result
EAN 128 ]C1 ID Symbology ID option EAN 128 Label Other Labels
1 Include ]C1 Disabled <data> <data>
2Remove]C1 Disabled <data> <data>
3 Include ]C1 AIM ID Transmitted ]C1<data> ]XY<data>
4Remove]C1 AIDIDTransmitted ]C1<data> ]XY<data>
5 Include ]C1 Custom ID Transmitted Z]C1<data> Z<data>
6Remove]C1 Custom 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.
182 700 Series Color Mobile Computer User’s Manual
6 Scanner SupportChapter
IS9CConfig::GetI2of5
This function retrieves the current settings of Interleaved 2 of 5.
Syntax
HRESULT IS9CConfig::GetI2of5( ITC_INTERLEAVED2OF5_DECODING* peDecode, ITC_INTERLEAVED2OF5_CHECK_DIGIT* peCheck, ITC_BARCODE_LENGTH_ID* peLengthId, BYTE rbgLengthBuff[], DWORD* pdwNumBytes );
Parameters
peDecode [out] Pointer to the
ITC_INTERLEAVED2OF5_DECODING location to receive the decoding for Interleaved 2 of 5 symbology.
peCheck [out] Pointer to the
ITC_INTERLEAVED2OF5_CHECK_DIGIT location to receive the check digit.
peLengthId [out] Pointer to the ITC_BARCODE_LENGTH_ID
location to receive an indicator of either ITC_BARCODE_LENGTH or ITC_BARCODE_FIXED_LENGTH.
rgbLengthBuff [out,size_is(3)]
An array of bytes to receives 1 byte of data for ITC_BARCODE_LENGTH or 3 bytes of data for ITC_BARCODE_FIXED_LENGTH.
pdwNumBytes [out] Pointer to the DWORD location to receive a
number indicating number of bytes in rbgLengthBuff[]: 1 byte for ITC_BARCODE_LENGTH or 3 bytes for ITC_BARCODE_FIXED_LENGTH.
Return Values
HRESULT that indicates success or failure.
Remarks
None.
See Also
None.
183700 Series Color Mobile Computer User’s Manual
Scanner SupportChapter 6
IS9CConfig::SetI2of5
This function updates the Interleaved 2 of 5 settings with new values.
Syntax
HRESULT IS9CConfig::SetI2of5( ITC_INTERLEAVED2OF5_DECODING eDecode, ITC_INTERLEAVED2OF5_CHECK_DIGIT eCheck, ITC_BARCODE_LENGTH_ID eLengthId, BYTE rgbLengthBuff[], DWORD
dwNumBytes );
Parameters
eDecode [in] Identifies the decoding for Interleaved 2 of 5
symbology.
eCheck [in] Identifies the check digit.
eLengthId [in] Use
ITC_BARCODE_LENGTH_NO_CHANGE to indicate no change for bar code length. Use ITC_BARCODE_LENGTH for any length and minimum length, and set rgbLengthBuff[0] to a valid length value. Use ITC_BARCODE_FIXED_LENGTH to compose 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)]
Contains bar code lengths when eLengthId = Use ITC_BARCODE_LENGTH or Use ITC_BARCODE_FIXED_LENGTH.
dwNumBytes [in] Number of bytes in rbgLengthBuff[]. For S9C, this
value is 1 when eLengthId = ITC_BARCODE_LENGTH or 3 when eLengthId = ITC_BARCODE_FIXED_LENGTH.
Return Values
HRESULT that indicates success or failure.
Remarks
None.
See Also
None.
Interleaved 2 of 5 Default Settings
Parameter Default Valid Range
Decoding Not Active ITC_INTERLEAVED2OF5_DECODING
Check Digit Not Used ITC_INTERLEAVED2OF5_CHECK_DIGIT
Bar Code Length Minimum Length = 6 0x00`0xFE ITC_BC_LENGTH_NO_CHANGE
184 700 Series Color Mobile Computer User’s Manual
Interleaved 2 of 5 Enumerations
typedef enum tagInterleaved2of5Decoding { ITC_INTERLEAVED2OF5_NOTACTIVE = 0, // Default ITC_INTERLEAVED2OF5_ACTIVE = 1, ITC_INTERLEAVED2OF5_NO_CHANGE = 255 } ITC_INTERLEAVED2OF5_DECODING; typedef enum tagInterleaved2of5CheckDigit { ITC_INTERLEAVED2OF5_CHECK_NOTUSED, // Default ITC_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;
6 Scanner SupportChapter
IS9CConfig::GetMatrix2of5
This function retrieves the current settings of Matrix 2 of 5.
Syntax
HRESULT IS9CConfig::GetMatrix2of5( ITC_MATRIX2OF5_DECODING* peDecode, DWORD* pdwLength );
Parameters
peDecode [out] Pointer to the ITC_MATRIX2OF5_DECODING
location to receive the decoding for Matrix 2 of 5 symbology.
pdwLength [out] Pointer to the DWORD location to receive a value
for the bar code length.
Return Values
HRESULT that indicates success or failure.
Remarks
None.
See Also
None.
185700 Series Color Mobile Computer User’s Manual
Scanner SupportChapter 6
IS9CConfig::SetMatrix2of5
This function updates the Matrix 2 of 5 settings with new values.
Syntax
HRESULT IS9CConfig::SetMatrix2of5( ITC_MATRIX2OF5_DECODING eDecode, DWORD dwLength );
Parameters
eDecode [in] Identifies the decoding for Matrix 2 of 5 symbology.
dwLength [in] Identifies the bar code length.
Return Values
HRESULT that indicates success or failure.
Remarks
None.
See Also
None.
Matrix 2 of 5 Default Settings
Parameter Default Valid Range
Decoding Not Active ITC_MATRIX2OF5_DECODING
Bar Code Length Minimum Length = 6 0x00`0xFE ITC_BC_LENGTH_NO_CHANGE
Matrix 2 of 5 Enumerations
typedef enum tagMatrix2of5Decoding { ITC_MATRIX2OF5_NOTACTIVE = 0, // Default ITC_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 bar code length does not require any change.
186 700 Series Color Mobile Computer User’s Manual
6 Scanner SupportChapter
IS9CConfig::GetMSI
This function retrieves the current MSI settings.
Syntax
HRESULT IS9CConfig::GetMSI( ITC_MSI_DECODING* peDecode, ITC_MSI_CHECK_DIGIT* peCheck, DWORD* pdwLength );
Parameters
peDecode [out] Pointer to the ITC_MSI_DECODING location to
receive the decoding for MSI symbology.
peCheck [out] Pointer to the ITC_MSI_CHECK_DIGIT
location to receive the check digit.
pdwLength [out] Pointer to the DWORD location to receive the bar
code length.
Return Values
HRESULT that indicates success or failure.
Remarks
None.
See Also
None.
IS9CConfig::SetMSI
This function updates the MSI settings with new values.
Syntax
HRESULT IS9CConfig::SetMSI( ITC_MSI_DECODING eDecode, ITC_MSI_CHECK_DIGIT eCheck, DWORD dwLength );
Parameters
eDecode [in] Identifies the decoding for MSI symbology. eCheck [in] Identifies the check digit. dwLength [in] Identifies the bar code length.
Return Values
HRESULT that indicates success or failure.
Remarks
None.
See Also
None.
MSI Default Settings
Parameter Default Valid Range
Decoding Not Active ITC_MSI_DECODING
Check Digit MOD 10 checked and transmitted ITC_MSI_CHECK_DIGIT
Bar Code Length Minimum Length = 6 0x00`0xFE ITC_BC_LENGTH_NO_CHANGE
187700 Series Color Mobile Computer User’s Manual
Scanner SupportChapter 6
MSI Enumerations
typedef enum tagMsiDecoding { ITC_MSI_NOTACTIVE = 0, // Default ITC_MSI_ACTIVE = 1, ITC_MSI_NO_CHANGE = 255 } ITC_MSI_DECODING; typedef enum tagMsiCheckDigit { ITC_MSI_CHECK_MOD10_XMIT, // Default ITC_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 bar code length does not require any change.
IS9CConfig::GetPDF417
This function retrieves the current PDF417 settings.
Syntax
HRESULT 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 );
Parameters
pePdf417Decode [out] Pointer to the
ITC_PDF417_DECODING location to receive the decoding for PDF417 symbology.
peMacroPdf [out] Pointer to the
ITC_PDF417_MACRO_PDF location to receive the Macro PDF.
pePdfControlHeader [out] Pointer to the
ITC_PDF417_CTRL_HEADER location to receive the control header.
pePdfFileName [out] Pointer to the
ITC_PDF417_FILE_NAME location to receive the file name.
pePdfSegmentCount [out] Pointer to the
ITC_PDF417_SEGMENT_COUNT location to receive the segment count.
pePdfTimeStamp [out] Pointer to the
ITC_PDF417_TIME_STAMP location to receive the time stamp.
188 700 Series Color Mobile Computer User’s Manual
6 Scanner SupportChapter
pePdfSender [out] Pointer to the ITC_PDF417_SENDER
location to receive the sender.
pePdfAddressee [out] Pointer to the
ITC_PDF417_ADDRESSEE location to receive the addressee.
pePdfFileSize [out] Pointer to the ITC_PDF417_FILE_SIZE
location to receive the file size.
pePdfChecksum [out] Pointer to the
ITC_PDF417_CHECKSUM location to receive the checksum.
Return Values
HRESULT that indicates success or failure.
Remarks
None.
See Also
None.
IS9CConfig::SetPDF417
This function updates the PDF417 settings with new values.
Syntax
HRESULT IS9CConfig::SetPDF417( ITC_PDF417_DECODING ePdf417Decode, ITC_PDF417_MACRO_PDF eMacroPdf, ITC_PDF417_CTRL_HEADER ePdfControlHeader, ITC_PDF417_FILE_NAME ePdfFileName, ITC_PDF417_SEGMENT_COUNT ePdfSegmentCount, ITC_PDF417_TIME_STAMP ePdfTimeStamp, ITC_PDF417_SENDER ePdfSender, ITC_PDF417_ADDRESSEE ePdfAddressee, ITC_PDF417_FILE_SIZE ePdfFileSize, ITC_PDF417_CHECKSUM ePdfChecksum );
Parameters
ePdf417Decode [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 Values
HRESULT that indicates success or failure.
189700 Series Color Mobile Computer User’s Manual
Scanner SupportChapter 6
Remarks
None.
See Also
None.
PDF 417 Default Settings
Parameter Default Valid Range
Decoding Not Active ITC_PDF417_DECODING
Macro PDF Macro PDF Buffered ITC_PDF417_MACRO_PDF
Control 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 Enumerations
typedef enum tagPdf417Decoding { ITC_PDF417_NOTACTIVE = 0, ITC_PDF417_ACTIVE = 1, // Default ITC_PDF417_NO_CHANGE = 255 } ITC_PDF417_DECODING; typedef enum tagPdf417MacroPdf { ITC_PDF417_MACRO_UNBUFFERED = 0, ITC_PDF417_MACRO_BUFFERED = 1, // Default ITC_PDF417_MACRO_NO_CHANGE = 255 } ITC_PDF417_MACRO_PDF; typedef enum tagPdf417ControlHeader { ITC_PDF417_CTRL_HEADER_NOTXMIT = 0, // Default ITC_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, // Default ITC_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, // Default ITC_PDF417_SEGMENT_COUNT_XMIT = 1,
190 700 Series Color Mobile Computer User’s Manual
ITC_PDF417_SEGMENT_COUNT_NO_CHANGE = 255 } ITC_PDF417_SEGMENT_COUNT;
typedef enum tagPdf417TimeStamp { ITC_PDF417_TIME_STAMP_NOTXMIT = 0, // Default ITC_PDF417_TIME_STAMP_XMIT = 1, ITC_PDF417_TIME_STAMP_NO_CHANGE = 255 } ITC_PDF417_TIME_STAMP; typedef enum tagPdf417Sender { ITC_PDF417_SENDER_NOTXMIT = 0, // Default ITC_PDF417_SENDER_XMIT = 1, ITC_PDF417_SENDER_NO_CHANGE = 255 } ITC_PDF417_SENDER; typedef enum tagPdf417Addressee { ITC_PDF417_ADDRESSEE_NOTXMIT = 0, // Default ITC_PDF417_ADDRESSEE_XMIT = 1, ITC_PDF417_ADDRESSEE_NO_CHANGE = 255 } ITC_PDF417_ADDRESSEE; typedef enum tagPdf417FileSize { ITC_PDF417_FILE_SIZE_NOTXMIT = 0, // Default ITC_PDF417_FILE_SIZE_XMIT = 1, ITC_PDF417_FILE_SIZE_NO_CHANGE = 255 } ITC_PDF417_FILE_SIZE; typedef enum tagPdf417Checksum { ITC_PDF417_CHECKSUM_NOTXMIT = 0, // Default ITC_PDF417_CHECKSUM_XMIT = 1, ITC_PDF417_CHECKSUM_NO_CHANGE = 255 } ITC_PDF417_CHECKSUM;
6 Scanner SupportChapter
191700 Series Color Mobile Computer User’s Manual
Scanner SupportChapter 6
IS9CConfig::GetPlessey
This function retrieves the current Plessey settings.
Syntax
HRESULT IS9CConfig::GetPlessey( ITC_PLESSEY_DECODING* peDecode, ITC_PLESSEY_CHECK_DIGIT* peCheck, DWORD* pdwLength
);
Parameters
peDecode [out] Pointer to the ITC_PLESSEY_DECODING
location to receive the decoding for Plessey symbology.
peCheck [out] Pointer to the ITC_PLESSEY_CHECK_DIGIT
location to receive the check digit.
pdwLength [out] Pointer to the DWORD location to receive the bar
code length.
Return Values
HRESULT that indicates success or failure.
Remarks
None.
See Also
None.
IS9CConfig::SetPlessey
This function updates the Plessey settings with new values.
Syntax
HRESULT IS9CConfig::SetPlessey( ITC_PLESSEY_DECODING eDecode, ITC_PLESSEY_CHECK_DIGIT eCheck, DWORD dwLength );
Parameters
eDecode [in] Identifies the decoding for Plessey symbology.
eCheck [in] Identifies the check digit.
dwLength [in] Identifies the bar code length.
Return Values
HRESULT that indicates success or failure.
Remarks
None.
See Also
None.
192 700 Series Color Mobile Computer User’s Manual
6 Scanner SupportChapter
Plessey Default Settings
Parameter Default Valid Range
Decoding Not Active ITC_PLESSEY_DECODING
Check Digit Not Transmitted ITC_PLESSEY_CHECK_DIGIT
Bar Code Length Any Bar Code Length 0x00`0xFE ITC_BC_LENGTH_NO_CHANGE
Plessey Enumerations
typedef enum tagPlesseyDecoding { ITC_PLESSEY_NOTACTIVE = 0, // Default ITC_PLESSEY_ACTIVE = 1, ITC_PLESSEY_NO_CHANGE = 255 } ITC_PLESSEY_DECODING; typedef enum tagPlesseyCheckDigit { ITC_PLESSEY_CHECK_NOTXMIT = 0, // Default ITC_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 bar code length does not require any change.
193700 Series Color Mobile Computer User’s Manual
Scanner SupportChapter 6
IS9CConfig::GetStandard2of5
This function retrieves the current Standard 2 of 5 settings.
Syntax
HRESULT IS9CConfig::GetStandard2of5( ITC_STANDARD2OF5_DECODING* peDecode, ITC_STANDARD2OF5_FORMAT* peFormat, ITC_STANDARD2OF5_CHECK_DIGIT* peCheck, ITC_BARCODE_LENGTH_ID* peLengthId, BYTE rgbLengthBuff, DWORD* pdwNumBytes );
Parameters
peDecode [out] Pointer to the
ITC_STANDARD2OF5_DECODING location to receive the decoding for Standard 2 of 5 symbology.
peFormat [out] Pointer to the
ITC_STANDARD2OF5_FORMAT location to receive the format.
peCheck [out] Pointer to the
ITC_STANDARD2OF5_CHECK_DIGIT location to receive Modulo 10 check digit.
peLengthId [out] Pointer to the ITC_BARCODE_LENGTH_ID
location to receive an indicator of either ITC_BARCODE_LENGTH or ITC_BARCODE_FIXED_LENGTH.
rgbLengthBuff [out,size_is(3)]
An array of bytes to receives 1 byte of data for ITC_BARCODE_LENGTH, or 3 bytes of data for ITC_BARCODE_FIXED_LENGTH.
pdwNumBytes [out] Pointer to the DWORD location to receive a
number indicating number of bytes in rbgLengthBuff[]: 1 byte for ITC_BARCODE_LENGTH or 3 bytes for ITC_BARCODE_FIXED_LENGTH.
Return Values
HRESULT that indicates success or failure.
Remarks
None.
See Also
None.
194 700 Series Color Mobile Computer User’s Manual
6 Scanner SupportChapter
IS9CConfig::SetStandard2of5
This function updates the Standard 2 of 5 settings with new values.
Syntax
HRESULT IS9CConfig::SetStandard2of5( ITC_STANDARD2OF5_DECODING eDecode, ITC_STANDARD2OF5_FORMAT eFormat, ITC_STANDARD2OF5_CHECK_DIGIT eCheck, ITC_BARCODE_LENGTH_ID eLengthId, BYTE rgbLengthBuff[], DWORD
dwNumBytes );
Parameters
eDecode [in] Identifies the decoding for Standard 2 of 5
symbology.
eFormat [in] Identifies the format.
eCheck [in] Identifies the Modulo 10 check digit.
eLengthId [in] Use
ITC_BARCODE_LENGTH_NO_CHANGE to indicate no change for bar code length. Use ITC_BARCODE_LENGTH for any length and minimum length, and set rgbLengthBuff[0] to a valid length value. Use ITC_BARCODE_FIXED_LENGTH to compose 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 when eLengthId = ITC_BARCODE_LENGTH or ITC_BARCODE_FIXED_LENGTH.
dwNumBytes [in] Number of bytes in rbgLengthBuff[]. For S9C, this
value is 1 when eLengthId = ITC_BARCODE_LENGTH or 3 when eLengthId = ITC_BARCODE_FIXED_LENGTH.
Return Values
HRESULT that indicates success or failure.
Remarks
None.
See Also
None.
195700 Series Color Mobile Computer User’s Manual
Scanner SupportChapter 6
Standard 2 of 5 Default S ettings
Parameter Default Valid Range
Decoding Not Active ITC_STANDARD2OF5_DECODING
Format Identicon (6 Start/Stop bars) ITC_STANDARD2OF5_FORMAT
Check Digit Not Used ITC_STANDARD2OF5_CHECK_DIGIT
Bar Code Length Minimum Length = 6 0x00-0xFE ITC_BC_LENGTH_NO_CHANGE
Standard 2 of 5 Enumerations
typedef enum tagStandard2of5Decoding { ITC_STANDARD2OF5_NOTACTIVE = 0, // Default ITC_STANDARD2OF5_ACTIVE = 1, ITC_STANDARD2OF5_NO_CHANGE = 255 } ITC_STANDARD2OF5_DECODING; typedef enum tagStandard2of5Format { ITC_STANDARD2OF5_FORMAT_IDENTICON, // Default ITC_STANDARD2OF5_FORMAT_COMPUTER_IDENTICS, ITC_STANDARD2OF5_FORMAT_NO_CHANGE = 255 } ITC_STANDARD2OF5_FORMAT; typedef enum tagStandard2of5CheckDigit { ITC_STANDARD2OF5_CHECK_NOTUSED, // Default ITC_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;
196 700 Series Color Mobile Computer User’s Manual
6 Scanner SupportChapter
IS9CConfig::GetTelepen
This function retrieves the current Telepen settings.
Syntax
HRESULT IS9CConfig::GetTelepen( ITC_TELEPEN_DECODING* peDecode, ITC_TELEPEN_FORMAT* peFormat );
Parameters
peDecode [out] Pointer to the ITC_TELEPEN_DECODING
location to receive the decoding for TELEPEN symbology.
peFormat [out] Pointer to the ITC_TELEPEN_FORMAT location to
receive the format.
Return Values
HRESULT that indicates success or failure.
Remarks
None.
See Also
None.
IS9CConfig::SetTelepen
This function updates the Telepen settings with new values.
Syntax
HRESULT IS9CConfig::SetTelepen( ITC_TELEPEN_DECODING* eDecode, ITC_TELEPEN_FORMAT* eFormat );
Parameters
eDecode [in] Identifies the decoding for Telepen symbology.
eFormat [in] Identifies the format.
Return Values
HRESULT that indicates success or failure.
Remarks
None.
See Also
None.
Telepen Default Settings
Parameter Default Valid Range
Decoding Not Active ITC_TELEPEN_DECODING
Format ASCII ITC_TELEPEN_FORMAT
197700 Series Color Mobile Computer User’s Manual
Scanner SupportChapter 6
Telepen Enumerations
typedef enum tagTelepenDecoding { ITC_TELEPEN_NOTACTIVE = 0, // Default ITC_TELEPEN_ACTIVE = 1, ITC_TELEPEN_NO_CHANGE = 255 } ITC_TELEPEN_DECODING; typedef enum tagTelepenDecoding { ITC_TELEPEN_FORMAT_ASCII, // Default ITC_TELEPEN_FORMAT_NUMERIC, ITC_TELEPEN_FORMAT_NO_CHANGE = 255 } ITC_TELEPEN_FORMAT;
IS9CConfig::GetUpcEan
This function retrieves the current UPC/EAN settings.
Syntax
HRESULT 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 );
Parameters
upceanDecode [out] Pointer to the ITC_UPCEAN_DECODING
location to receive the decoding for UPC/EAN symbology.
upcASelect [out] Pointer to the ITC_UPCA_SELECT location to
receive the UPC-A selection state.
upcESelect [out] Pointer to the ITC_UPCE_SELECT location to
receive the UPC-E selection state.
ean8Select [out] Pointer to the ITC_EAN8_SELECT location to
receive the EAN-8 selection state.
ean13Select [out] Pointer to the ITC_EAN13_SELECT location
to receive the EAN-13 selection state.
upcAddOnDigits [out] Pointer to the
ITC_UPCEAN_ADDON_DIGITS location to receive the add-on digits.
upcAddOn2 [out] Pointer to the
ITC_UPCEAN_ADDON_TWO location to receive the add-on 2 digits.
upcAddOn5 [out] Pointer to the ITC_UPCEAN_ADDON_FIVE
location to receive the add-on 5 digits.
198 700 Series Color Mobile Computer User’s Manual
6 Scanner SupportChapter
upcACheck [out] Pointer to the ITC_UPCA_CHECK_DIGIT
location to receive the UPC-A check digit.
upcECheck [out] Pointer to the ITC_UPCE_CHECK_DIGIT
location to receive the UPC-E check digit.
ean8Check [out] Pointer to the ITC_EAN8_CHECK_DIGIT
location to receive the EAN-8 check digit.
ean13Check [out] Pointer to the ITC_EAN13_CHECK_DIGIT
location to receive the EAN-13 check digit.
upcANumSystem [out] Pointer to the
ITC_UPCA_NUMBER_SYSTEM location to receive the UPC-A number system.
upcENumSystem [out] Pointer to the
ITC_UPCE_NUMBER_SYSTEM location to receive the UPC-E number system.
upcAReencode [out] Pointer to the ITC_UPCA_REENCODE
location to receive the UPC-A reencoding.
upcEReencode [out] Pointer to the ITC_UPCE_REENCODE
location to receive the UPC-E reencoding.
ean8Reencode [out] Pointer to the ITC_EAN8_REENCODE
location to receive the EAN-8 reencoding.
Return Values
HRESULT that indicates success or failure.
Remarks
None.
See Also
None.
199700 Series Color Mobile Computer User’s Manual
Scanner SupportChapter 6
IS9CConfig::SetUpcEan
This function updates the UPC/EAN settings with new values.
Syntax
HRESULT IS9CConfig::SetUpcEan( 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 );
Parameters
upceanDecode [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 Values
HRESULT that indicates success or failure.
Remarks
None.
See Also
None.
200 700 Series Color Mobile Computer User’s Manual
6 Scanner SupportChapter
UPC/EAN Default Settings
Parameter Default Valid Range
Decoding ITC_UPCEAN_NO_CHANGE This parameter is no longer used, set it to this value.
UPC-A Active ITC_UPCA_SELECT
UPC-E Active ITC_UPCE_SELECT
EAN-8 Active ITC_EAN8_SELECT
EAN-13 Active ITC_EAN13_SELECT
Add On Digits Not Required ITC_UPCEAN_ADDON_DIGITS
Add On 2 Digits Not Active ITC_UPCEAN_ADDON_TWO
Add On 5 Digits Not Active ITC_UPCEAN_ADDON_FIVE
UPC-A Check Digit Transmitted ITC_UPCA_CHECK_DIGIT
UPC-E Check Digit Transmitted ITC_UPCE_CHECK_DIGIT
EAN-8 Check Digit Transmitted ITC_EAN8_CHECK_DIGIT
EAN-13 Check Digit Transmitted ITC_EAN13_CHECK_DIGIT
UPC-A Number System Transmitted ITC_UPCA_NUMBER_SYSTEM
UPC-E Number System Transmitted ITC_UPCE_NUMBER_SYSTEM
Reencode UPC-A UPC-A transmitted as EAN-13 ITC_UPCA_REENCODE
Reencode UPC-E UPC-E transmitted as UPC-E ITC_UPCE_REENCODE
Reencode EAN-8 EAN-8 transmitted as EAN-8 ITC_EAN8_REENCODE
UPC/EAN Enumerations
typedef enum tagUpcEanDecoding { ITC_UPCEAN_NOTACTIVE = 0, ITC_UPCEAN_ACTIVE = 1, // Default ITC_UPCEAN_NO_CHANGE = 255 } ITC_UPCEAN_DECODING; typedef enum tagUpcASelect { ITC_UPCA_DEACTIVATE, ITC_UPCA_ACTIVATE, // Default ITC_UPCA_NO_CHANGE = 255 } ITC_UPCA_SELECT; typedef enum tagUpcESelect { ITC_UPCE_DEACTIVATE, ITC_UPCE_ACTIVATE, // Default ITC_UPCE_NO_CHANGE = 255 } ITC_UPCE_SELECT; typedef enum tagEan8Select { ITC_EAN8_DEACTIVATE, ITC_EAN8_ACTIVATE, // Default ITC_EAN8_NO_CHANGE = 255 } ITC_EAN8_SELECT; typedef enum tagEan13Select { ITC_EAN13_DEACTIVATE,
201700 Series Color Mobile Computer User’s Manual
Scanner SupportChapter 6
ITC_EAN13_ACTIVATE, // Default ITC_EAN13_NO_CHANGE = 255 } ITC_EAN13_SELECT; typedef enum tagUpcEanAddonDigits { ITC_UPCEAN_ADDON_NOT_REQUIRED, // Default ITC_UPCEAN_ADDON_REQUIRED, ITC_UPCEAN_ADDON_NO_CHANGE = 255 } ITC_UPCEAN_ADDON_DIGITS; typedef enum tagUpcEanAddonTwo { ITC_UPCEAN_ADDON_TWO_NOTACTIVE = 0, // Default ITC_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, // Default ITC_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, // Default ITC_UPCA_CHECK_NO_CHANGE = 255 } ITC_UPCA_CHECK_DIGIT; typedef enum tagUpcECheckDigit { ITC_UPCE_CHECK_NOTXMIT = 0, ITC_UPCE_CHECK_XMIT = 1, // Default ITC_UPCE_CHECK_NO_CHANGE = 255 } ITC_UPCE_CHECK_DIGIT; typedef enum tagEan8CheckDigit { ITC_EAN8_CHECK_NOTXMIT = 0, ITC_EAN8_CHECK_XMIT = 1, // Default ITC_EAN8_CHECK_NO_CHANGE = 255 } ITC_EAN8_CHECK_DIGIT; typedef enum tagEan13CheckDigit { ITC_EAN13_CHECK_NOTXMIT = 0, ITC_EAN13_CHECK_XMIT = 1, // Default ITC_EAN13_CHECK_NO_CHANGE = 255 } ITC_EAN13_CHECK_DIGIT; typedef enum tagUpcANumberSystem { ITC_UPCA_NUM_SYS_NOTXMIT = 0, ITC_UPCA_NUM_SYS_XMIT = 1, // Default ITC_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, // Default ITC_UPCE_NUM_SYS_NO_CHANGE = 255 } ITC_UPCE_NUMBER_SYSTEM; typedef enum tagUpcAReencode {
202 700 Series Color Mobile Computer User’s Manual
ITC_UPCA_XMIT_AS_EAN13, // Default ITC_UPCA_XMIT_AS_UPCA, ITC_UPCA_XMIT_NO_CHANGE = 255 } ITC_UPCA_REENCODE; typedef enum tagUpcEReencode { ITC_UPCE_XMIT_AS_UPCE, // Default ITC_UPCE_XMIT_AS_UPCA, ITC_UPCE_XMIT_NO_CHANGE = 255 } ITC_UPCE_REENCODE; typedef enum tagEan8Reencode { ITC_EAN8_XMIT_AS_EAN8, //Default ITC_EAN8_XMIT_AS_EAN13, ITC_EAN8_XMIT_NO_CHANGE = 255 } ITC_EAN8_REENCODE;
6 Scanner SupportChapter
203700 Series Color Mobile Computer User’s Manual
Scanner SupportChapter 6
IS9CConfig2 Functions
This 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 to their 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 as ITC_CODE39_NO_CHANGE), where xx refers to a particular enum­eration. This enumerator can be used during a call to a SET to indicate that no change is to be made to that particular parameter. This prevents the called function from having to format the same S9C command and send it down to the scanner.
To specify a bar code length of “any length,” use a value of “0” for the bar code length argument.
IS9CConfig2 functions are the following. IS9CCONFIG.H is the header file and ITCUUID.LIB contains the IID_IADC Interface GUID value used to obtain the interface.
S IS9CConfig2::GetCode11 (page 205)
S IS9CConfig2::SetCode11 (page 205)
S IS9CConfig2::GetCustomSymIds (page 207)
S IS9CConfig2::SetCustomSymIds (page 208)
S IS9CConfig2::GetGlobalAmble (page 211)
S IS9CConfig2::SetGlobalAmble (page 212)
S IS9CConfig2::GetPDF417Ext (page 213)
S IS9CConfig2::SetPDF417Ext (page 213)
S IS9CConfig2::GetSymIdXmit (page 214)
S IS9CConfig2::SetSymIdXmit (page 214)
204 700 Series Color Mobile Computer User’s Manual
6 Scanner SupportChapter
IS9CConfig2::GetCode11
This function retrieves the current settings for Code 11.
Syntax
HRESULT GetCode11( ITC_CODE11_DECODING* peDecode, ITC_CODE11_CHECK_DIGIT* peCheck, ITC_CODE11_CHECK_VERIFICATION* peVer );
Parameters
peDecode [out] Pointer to ITC_CODE11_DECODING location to
receive Code 11 decoding.
peCheck [out] Pointer to ITC_CODE11_CHECK_DIGIT location
to receive the check digit option.
peVer [out] Pointer to
ITC_CODE11_CHECK_VERIFICATION location to receive the check verification option.
Return Values
HRESULT that indicates success or failure.
Remarks
None.
See Also
None.
IS9CConfig2::SetCode11
This function updates the current setting of Code 11 symbology.
Syntax
HRESULT SetCode11( ITC_CODE11_DECODING eDecode, ITC_CODE11_CHECK_DIGIT eCheck, ITC_CODE11_CHECK_VERIFICATION
eVer );
Parameters
eDecode [in] An enumeration that identifies decoding option for
Code 11.
eCheck [in] An enumeration that identifies the check digit option.
eVer [in] An enumeration that identifies check verification option.
Return Values
HRESULT that indicates success or failure.
Remarks
None.
See Also
None.
205700 Series Color Mobile Computer User’s Manual
Scanner SupportChapter 6
Code 11 Default Settings
Parameter Default Valid Range
Decoding Not Active ITC_CODE11_DECODING
Check Verification 1 Digit ITC_CODE11_CHECK_VERIFICATION
Check Digit Enable ITC_CODE11_CHECK_DIGIT
Code 11 Enumerations
typedef enum tagCode11Decoding { ITC_CODE11_NOTACTIVE = 0, ITC_CODE11_ACTIVE = 1, // Default ITC_CODE11_NO_CHANGE = 255 } ITC_CODE11_DECODING; typedef enum tagCode11CheckVerification { ITC_CODE11_CHK_VERIFY_ONEDIGIT = 1, ITC_CODE11_CHK_VERIFY_TWODIGIT = 2, // Default ITC_CODE11_CHK_VERIFY_NO_CHANGE = 255 } ITC_CODE11_CHECK_VERIFICATION; typedef enum tagCode11CheckDigit { ITC_CODE11_CHECK_NOTXMIT = 0, // Default ITC_CODE11_CHECK_XMIT = 1, ITC_CODE11_CHECK_NO_CHANGE = 255 } ITC_CODE11_CHECK_DIGIT;
206 700 Series Color Mobile Computer User’s Manual
6 Scanner SupportChapter
IS9CConfig2::GetCustomSymIds
This function retrieves all the custom symbology identifiers defined for the currently supported symbologies. This is not supported when using an imag-
er on the 700 Series Computer.
Syntax
HRESULT GetCustomSymIds( ITC_CUST_SYM_ID_PAIR* pStructSymIdPair,DWORD dwMaxNumElement, DWORD* pdwNumElement
);
Parameters
pStructSymIdPair [out] Pointer to ITC_CUST_SYM_ID_PAIR
location to receive the current defined symbology identifiers for the supported symbologies. The caller must preallocate this buffer with dwMaxNumElement elements.
dwMaxNumElement [in] Maximum number of elements allocated
for the pStructSymIdPair buffer which should always be equal to the last defined enumeration constant + 1 of the enumeration ITC_CUSTOM_ID. In this case, it is ITC_CUSTOMID_LAST_ELEMENT.
pdwNumElement [out] Pointer to DWORD location to receive
the actual number of elements returned in the pStructSymIdPair buffer, which should be the same as dwMaxNumElement.
Return Values
HRESULT that indicates success or failure.
Remarks
None.
See Also
S Custom Identifier Assignments (page 209)
S Custom Identifier Example (page 210)
S Custom Identifier Default Settings (page 210)
207700 Series Color Mobile Computer User’s Manual
Scanner SupportChapter 6
IS9CConfig2::SetCustomSymIds
This function updates the symbology identifiers (any ASCII values) for the currently supported symbologies. This is not supported when using an imag-
er on the 700 Series Computer.
Syntax
HRESULT SetCustomSymIds( ITC_CUST_SYM_ID_PAIR* pStructSymIdPair, DWORD dwNumElement );
Parameters
pStructSymIdPair [in] Pointer to ITC_CUST_SYM_ID_PAIR
location, containing the new symbology identifiers for any supported symbologies to update.
dwNumElement [in] Identifies the number of symbology identifiers
to update in the pStructSymIdPair buffer.
Return Values
HRESULT that indicates success or failure.
Remarks
None.
See Also
None.
208 700 Series Color Mobile Computer User’s Manual
6 Scanner SupportChapter
Custom Identifier Assignments
Each custom identifier is a one byte ASCII value within the range from 0x00 to 0xff. The enumerations in the ITC_CUSTOM_ID enumerator can be used as symbology identifications in the GetCustomSymIds() and SetCustomSymIds() functions.
typedef enum tagCustomId { ITC_CUSTOMID_CODABAR = 0 Identifies the Codabar symbology ITC_CUSTOMID_CODE39 Identifies the Code 39 symbology ITC_CUSTOMID_CODE93 Identifies the Code 93 symbology ITC_CUSTOMID_CODE128_EAN_128 Identifies the Code 128 symbology ITC_CUSTOMID_EAN8 Identifies the EAN-8 symbology ITC_CUSTOMID_EAN13 Identifies the EAN-13 symbology ITC_CUSTOMID_I2OF5 Identifies the Interleaved 2 of 5 symbology ITC_CUSTOMID_MATRIX2OF5 Identifies the Matrix 2 of 5 symbology ITC_CUSTOMID_MSI Identifies the MSI symbology ITC_CUSTOMID_PDF417 Identifies the PDF 417 symbology ITC_CUSTOMID_PLESSEY Identifies the Plessey symbology ITC_CUSTOMID_CODE2OF5 Identifies the Standard 2 of 5 symbology ITC_CUSTOMID_TELEPEN Identifies the Telepen symbology ITC_CUSTOMID_UPCA Identifies the UPC-A symbology ITC_CUSTOMID_UPCE Identifies the UPC-E symbology ITC_CUSTOMID_CODE11 Identifies the Code 11 symbology ITC_CUSTOMID_LAST_ELEMENT Identifies the last element. Use to preallocate the buffer on GetCustomSymIds }ITC_CUSTOM_ID; typedef struct tagCustSymbIdPair {
ITC_CUSTOM_ID eSymbology; Identifies the symbology of interest
BYTE byteId;
ASCII value (1 byte within the range0x00 – 0xf)
}ITC_CUST_SYM_ID_PAIR;
209700 Series Color Mobile Computer User’s Manual
Scanner SupportChapter 6
Custom Identifier Default Settings
Symbology Default Valid Range
Codabar D0x00-0xFF
Code 11 * 0x00-0xFF
Code 39 *0x00-0xFF
Code 93 D 0x00-0xFF
Code128/EAN 128 D0x00-0xFF
EAN-8 0xFF 0x00-0xFF
EAN-13 F0x00-0xFF
Interleaved 2 of 5 I 0x00-0xFF
Matrix 2 of 5 D0x00-0xFF
MSI D 0x00-0xFF
PDF 417 *0x00-0xFF
Plessey D 0x00-0xFF
Standard 2 of 5 D0x00-0xFF
Tel e p e n * 0x00-0xFF
UPC-A A0x00-0xFF
UPC-E E 0x00-0xFF
Custom Identifier Example
The following code segment is an example of updating the UPC-E and UPC-A symbology identifiers with new values, and then retrieving the currently 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 A oStructSymIdPair[1].eSymbology = ITC_CUSTOMID_UPCA; oStructSymIdPair[1].byteId = 0x42; // ASCII char B HRESULT hr = pIS9CConfig2->SetCustomSymIds(&oStructSymIdPair[0], 2]; DWORD dwNum = 0; HRESULT hr = pIS9CConfig2->GetCustomSymIds(&oStructSymIdPair[0], ITC_CUSTOMID_LAST_ELEMENT, &dwNum);
210 700 Series Color Mobile Computer User’s Manual
6 Scanner SupportChapter
IS9CConfig2::GetGlobalAmble
This retrieves the scanner’ s current preamble or postamble setting.
Syntax
HRESULT GetGlobalAmble( ITC_GLOBAL_AMBLE_ID eAmbleId, BYTE rgbBuffer[], DWORD dwBufferSize, DWORD* pdwBufferSize );
Parameters
eAmbleId [in] An enumeration of type
ITC_GLOBAL_AMBLE_ID identifies whether the preamble or postamble setting is to be retrieved. Only one setting can be queried at a time.
rgbBuffer [in] Contains the buffer for the postamble or
preamble setting to be queried.
dwBufferSize [in] The maximum number of bytes that rgbBuffer
can store. Must be at least ITC_GLOBAL_AMBLE_MAX_CHARS bytes.
pdwBufferSize [out] A pointer to DWORD location to store the
actual number of returned bytes in rgbBuffer.
Return Values
HRESULT that indicates success or failure.
Remarks
None.
See Also
None.
211700 Series Color Mobile Computer User’s Manual
Scanner SupportChapter 6
IS9CConfig2::SetGlobalAmble
This function updates the scanner’ s current preamble or postamble setting depending on the input parameters.
Syntax
HRESULT SetGlobalAmble( ITC_GLOBAL_AMBLE_ID eAmbleId, BYTE rgbBuffer[], DWORD dwBufferSize );
Parameters
eAmbleId [in] An enumeration of type
ITC_GLOBAL_AMBLE_ID identifies whether the 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 preamble
setting to be updated.
dwBufferSize [in] Identifies number of bytes in rgbBuffer.
Return Values
HRESULT that indicates success or failure.
Remarks
None.
See Also
None.
Postamble and Preamble Defaults
Parameter Default Valid Range
Preamble Null 0to20ASCIIcharacters
Postamble Null 0to20ASCIIcharacters
212 700 Series Color Mobile Computer User’s Manual
6 Scanner SupportChapter
IS9CConfig2::GetPDF417Ext
This function is an extended function for retrieving the PDF 417 settings not included in the IS9CConfig::GetPDF417.
Syntax
HRESULT GetPDF417Ext( ITC_MICRO_PDF417_DECODING* peDecode, ITC_MICRO_PDF417_CODE128_EMULATION* peCode128 );
Parameters
peDecode [out] Pointer to ITC_MICRO_PDF417_DECODING
location to receive the Micro PDF 417 decoding.
peCode128 [out] Pointer to
ITC_MICRO_PDF417_CODE128_EMULATION*
location to receive the Micro PDF 417 Code 128 emulation option.
Return Values
HRESULT that indicates success or failure.
Remarks
None.
See Also
None.
IS9CConfig2::SetPDF417Ext
This function is an extended function for updating the additional PDF 417 settings not included in IS9CConfig::SetPDF417.
Syntax
HRESULT SetPDF417Ext( ITC_MICRO_PDF417_DECODING eDecode, ITC_MICRO_PDF417_CODE128_EMULATION eCode128 );
Parameters
eDecode [in] An enumeration that identifies decoding option for the
Micro PDF 417.
eCode128 [in] An enumeration that identifies the Code 128 emulation
option for the Micro PDF 417.
Return Values
HRESULT that indicates success or failure.
Remarks
None.
See Also
None.
213700 Series Color Mobile Computer User’s Manual
Scanner SupportChapter 6
PDF 417 Extended: Micro PDF 417 Default Settings
Parameter Default Valid Range
Decoding Not Active ITC_MICRO_PDF417_DECODING
Code 128 Emulation Not Active ITC_MICRO_PDF417_CODE128_EMULATION
* These are Micro PDF 417 parameters.
IS9CConfig2::GetSymIdXmit
This function retrieves the current symbology ID transmission option as described on the next page.
Syntax
HRESULT GetSymIdXmit( ITC_SYMBOLOGY_ID_XMIT* peSymIdXmit );
Parameters
peSymIdXmit [out] Pointer to ITC_SYMBOLOGY_ID_XMIT
location to receive the current symbology identifier transmission option.
Return Values
HRESULT that indicates success or failure.
Remarks
None.
See Also
None.
IS9CConfig2::SetSymIdXmit
This updates the symbology ID transmission option shown next page.
Syntax
HRESULT SetSymIdXmit( ITC_SYMBOLOGY_ID_XMIT eSymIdXmit );
Parameters
eSymIdXmit [in] Identifies the symbology identifier transmission
option to update.
Return Values
HRESULT that indicates success or failure.
Remarks
None.
See Also
None.
214 700 Series Color Mobile Computer User’s Manual
6 Scanner SupportChapter
Symbology ID Transmission Option
The symbology identifier (or code mark) concept provides a standardized way 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 not the symbology ID should be transmitted as part of the scanned bar code label to all the connected data collection applications. Options for trans­mission are: do not transmit, transmit the standard AIM identifiers, or transmit the one byte custom defined identifiers. AIM and custom identi­fiers cannot be selected to be transmitted at the same time; only the last selected option will be active.
typedef enum tagSymbologyIdXmit
{
ITC_ID_XMIT_DISABLE = 0 Symbology identifier will not be transmitted as part of the
label. This is the default setting.
ITC_ID_XMIT_CUSTOM = 1 Activate custom symbology identifier transmission for all
symbologies. Example of the transmitted label: [preamble] [Custom ID] <data> [postamble]
ITC_ID_XMIT_AIM = 2 Activate AIM symbology identifier transmission for all
symbologies. Example of the transmitted label: [preamble] [AIM symbology ID] <data> [postamble]
}ITC_SYMBOLOGY_ID_XMIT;
215700 Series Color Mobile Computer User’s Manual
Scanner SupportChapter 6
IS9CConfig3 Functions
The IS9CConfig3 interface provides generic methods for retrieving and setting configuration using ISCP commands.
ISCP Commands
An ISCP Command is composed of three or more bytes formatted as <SG><FID><parameters> where:
S SG Setup group.
S FID Function ID.
S parameters One or more configuration value bytes depending on the
configuration.
ISCP commands include the following:
Imager Settings
This dictates the start and end column positions for the image dimension.
SG FID Parameter Description 0x7B 80 Value [0..639] Start column position. 0x7B 81 Value [0..639] End column position.
Trigger Settings
This sets the duration of the aiming beam before acquiring images to be decoded.
SG FID Parameter Description 0x70 81 Value [0..65535] Number of milliseconds.
QRCode Symbology
This enables or disables the QRCode symbology.
SG FID Parameter Description 0x55 40 0 Disable this symbology. 0x55 40 1 Enable this symbology.
Data Matrix Symbology
This enables or disables the Data Matrix symbology.
SG FID Parameter Description 0x54 40 0 Disable this symbology. 0x54 40 1 Enable this symbology.
216 700 Series Color Mobile Computer User’s Manual
6 Scanner SupportChapter
ISCP::GetConfig
This retrieves configurations using the ISCP commands format.
Syntax
HRESULT ISCPGetConfig( BYTE rgbCommandBuff[], DWORD dwCommandBuffSize, BYTE rgbReplyBuff[], DWORD dwReplyBuffMaxSize, DWORD *pdwReplyBuffSize );
Parameters
rgbCommandBuff [in, size_is] Contains ISCP commands in
array of bytes.
dwCommandBuffSize [in] Number of bytes in
rgbCommandBuff.
rgbReplyBuff [in, out, size_is] Results of query in array of
bytes.
dwReplyBuffMaxSize [in] Maximum size of rgdReplyBuff.
pdwReplyBuffSize [in, out] Number of bytes placed in
rbfReplyBuff.
Return Values
None.
Remarks
None.
See Also
None.
217700 Series Color Mobile Computer User’s Manual
Scanner SupportChapter 6
ISCP::SetConfig
This updates configurations using the ISCP commands format.
Syntax
HRESULT ISCPSetConfig( BYTE rgbCommandBuff[], DWORD dwCommandBuffSize, BYTE rgbReplyBuff[], DWORD dwReplyBuffMaxSize, DWORD *pdwReplyBuffSize );
Parameters
rgbCommandBuff [in, size_is] Contains ISCP commands in
array of bytes.
dwCommandBuffSize [in] Number of bytes in
rgbCommandBuff.
rgbReplyBuff [in, out, size_is] Results of request in array of
bytes.
dwReplyBuffMaxSize [in] Maximum size of rgbReplyBuff.
pdwReplyBuffSize [in, out] Number of bytes placed in
rgbReplyBuff.
Return Values
None.
Remarks
None.
See Also
None.
218 700 Series Color Mobile Computer User’s Manual
6 Scanner SupportChapter
AIM Symbology ID Defaults
Refer to the official AIM documentation on symbology identifiers for full information on the different processing options supported.
Symbology ID Character Modifier Characters
Codabar 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 H 0 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 data
transmitted 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 character
validation. 5 Full ASCII character conversion performed. Modulo 43 check
character validated and transmitted. 7 Full ASCII character conversion performed. Modulo 43 check
character validated but not transmitted.
Code 93 G 0 No options specified. Always transmit 0.
Code128 C 0 Standard data packet. No FNC1 in first or second symbol
character position after start character. 1 EAN/UCC-128 data packet. FNC1 in first symbol character
position after start character. 2 FNC1 in second symbol character position after start character. 4 Concatenation according to International Society for Blood
Transfusion specifications was performed. Concatenated data
follows.
Interleaved 2 of 5 I 0 No check character validation.
1 Modulo 10 symbol check character validated and transmitted 3 Modulo 10 symbol check character validated but not transmitted.
Matrix 2 of 5 X0`F
For symbologies or symbology options not listed, a code character
with the value 0-F may be assigned by the decoder manufacturer
to identify those symbologies and options implemented in the
reader.
MSI M 0 Modulo 10 symbol check character validated and transmitted.
1 Modulo 10 symbol check character validated but not transmitted.
219700 Series Color Mobile Computer User’s Manual
Scanner SupportChapter 6
Modifier CharactersID CharacterSymbology (continued)
PDF 417/ Micro PDF 417
L 0 Reader set to conform with protocol defined in 1994 PDF 417
specifications. 1 Reader set to follow protocol of ENV 12925 for Extended
Channel Interpretation (all data characters 92 doubled). 2 Reader set to follow protocol of ENV 12925 for Basic Channel
Interpretation (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 of
digits. 5 Code 128 emulation: no implied FNC1.
Plessey P 0 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
S 0 No options specified. Always transmit 0.
(3-bar start/stop)
Tel e p e n B0FullASCIImode
1 Double density numeric only mode 2 Double density numeric followed by full ASCII 4 Full ASCII followed by double density numeric
UPC/EAN E Consider UPC/EAN symbols with supplements as two separate sym-
bols. The first symbol is the main data packet, and the second symbol is 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-8datapacket
IMPORTANT
: The “symbology_id” character letter
be uppercase for the above definitions.
must
220 700 Series Color Mobile Computer User’s Manual
IImage Inter face
6 Scanner SupportChapter
The IImage interface gives the application the capability to acquire images. The image acquired can be either a raw image as captured by the digital camera or it can be normalized. A normalized image is presented the same as if the picture were taken at right angles to the image and at the same distance. The normalized image is commonly used for signature capture applications.
S IImage::ReadSigCapBuffer (page 221)
S IImage::ReadSigCapFile (page 224)
S IImage::ReadImage (page 225)
S IImage::CancelReadImage (page 226)
S IImage::Start (page 226)
S IImage::Stop (page 227)
S IImage::Open (page 227)
S IImage::Close (page 228)
IImage::ReadSigCapBuffer
Syntax
HRESULT IImage::ReadSigCapBuffer( ITC_SIGCAP_SPEC *pSigCapSpec, ITC_IMAGE_SPEC *pImgBuffer, DWORD nMaxBuffSize
);
Parameters
Parameters:
pSigCapSpec [in] Pointer to the structure that identifies the signature
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:
capture region. This structure is defined as follows:
S dwStructSize Size, in bytes, of this struct. This is for version control.
S iAspectRatio Ratio of the bar code height (linear bar codes) or row
height (2D bar codes) to the narrow element width.
S iOffsetX Offset in X direction, relative to barcode center.
Positive values are right of the bar code, negative values to the left.
221700 Series Color Mobile Computer User’s Manual
Scanner SupportChapter 6
S iOffsetY Offset in Y direction, relative to barcode center.
Positive values are higher than the bar code, negative values lower.
S uiWidth Width of signature capture image region in intelligent
bar code units.
S uiHeight Height of the signature capture image region in
intelligent bar code units.
S iResolution Number of pixels per intelligent bar code unit. S eFormat Format of the image buffer returned as follows.
Currently, only ITC_FILE_RAW is supported.
ITC_FILE_KIM = 0, // Returns data a KIM file ITC_FILE_TIFF_BIN = 1, // TIFF Binary file ITC_FILE_TIFF_BIN_GROUP4 = 2, // TIFF Binary Group 4 compressed ITC_FILE_TIFF_GRAY_SCALE = 3, // TIFF Gray Scale ITC_FILE_RAW = 4, // Raw image ITC_FILE_JPEG = 5, // JPEG image
S eDepth 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 capture
image 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:
S dwStructSize Size, in bytes, of this struct. This is for version
control.
S biWidth The width of each row in pixels. S biHeight The number of rows in the image data. S biBitCount The number of bits per pixel. S eFormat Identifies the image format. S biActualImageSize Total bytes of image data returned. S biMaxImageBytes Maximum bytes that can be stored in
rgbImageData[].
S rgbImageData Buffer containing the actual data, for example a
640x480 uses a 307200-byte buffer. The array s ize of this buffer is arbitrary so do not use this structure directly to reserve memory. The actual dimension of the buffer is identified by biMaxImageBytes.
222 700 Series Color Mobile Computer User’s Manual
6 Scanner SupportChapter
Return Values
HRESULT identifying success or error. On error, the following codes will be returned:
S S_OK
Image successfully returned.
S ITC_RESULT_ERR_BADREGION_E
The specified region is not in the image.
S ITC_RESULT_NO_BC_DECODED_E
A bar code has not yet been decoded or the last bar code decoded was not a signature capture symbology.
S ITC_IMGBUFF_TOO_SMALL_E
pImgBuffer is too small to contain the signature captured image.
S ITC_INV_PARAMETER_E
One of the parameters is invalid.
S S_DEVICE_NOT_OPENED_E
The device had not been opened.
Remarks
ReadSigCapBuffer() will return the image from the last decoded label with dimensions identified by the calling parameter. 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 the image to be retrieved. This image is independent of any rotation of the bar code relative to the imager. Thus, if the bar code is decoded with the code itself upside down to the imager, the retrieved image will still be right side up. However, if the specified image is outside the field of view a result code 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 Bar Code 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 Resolution Resulting Height = Specified Height * Specified Resolution
See Also
None.
223700 Series Color Mobile Computer User’s Manual
Scanner SupportChapter 6
IImage::ReadSigCapFile
Note: This has not been implemented as of this publication.
Syntax
HRESULT IImage::ReadSigCapFile( ITC_SIGCAP_SPEC *pSigCapSpec, LPCTSTR pszFileName );
Parameters
pSigCapSpec [in] Pointer to the structure that identifies the signature
pszFileName [in] Name of the file in which to copy the image.
Return Values
HRESULT identifying success or error. On error, the following codes will be returned:
S S_OK
capture region. See ReadSigCapFile (page 221) for a description of this structure.
Image successfully returned.
S ITC_RESULT_ERR_BADREGION_E
The specified region is not in the image.
S ITC_RESULT_NO_BC_DECODED_E
A bar code has not yet been decoded or the last bar code decoded was not a signature capture symbology.
S ITC_FILE_OPEN_E
The file could not be opened.
S ITC_INV_PARAMETER_E
One of the parameters is invalid.
S S_DEVICE_NOT_OPENED_E
The device had not been opened.
Remarks
ReadSigCapFile() will write the image from the last decoded label with di­mensions identified by the calling parameter. If the file already exists, its contents 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 the image to be retrieved. This image is independent of any rotation of the bar code relative to the imager. Thus, if the bar code is decoded with the code itself upside down to the imager, the retrieved image will still be right side up. However, if the specified image is outside the field of view a result code 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 Bar Code Unit is equivalent to the narrow element width of the bar code.
224 700 Series Color Mobile Computer User’s Manual
6 Scanner SupportChapter
The dimensions of the resulting image can be calculated with this formula:
Resulting Width = Specified Width * Specified Resolution Resulting Height = Specified Height * Specified Resolution
See Also
None.
IImage::ReadImage
Syntax
HRESULT IImage::Read( ITCFileFormat eFormat, DWORD nDepth, ITC_IMAGE_SPEC *pImgBuffer, DWORD dwTimeout );
Parameters
eFormat [in] Format of the image buffer returned as follows.
Currently, only ITC_FILE_RAW is supported.
ITC_FILE_KIM = 0, // Returns data a KIM file ITC_FILE_TIFF_BIN = 1, // TIFF Binary file ITC_FILE_TIFF_BIN_GROUP4 = 2, // TIFF Binary Group 4 compressed ITC_FILE_TIFF_GRAY_SCALE = 3, // TIFF Gray Scale ITC_FILE_RAW = 4, // Raw image ITC_FILE_JPEG = 5, // JPEG image
nDepth [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 Values
HRESULT identifying success or error. On error, these will be returned:
S S_OK Image successfully returned.
S ITC_IMGBUFF_TOO_SMALL_E pImgBuffer is too small to contain
the signature captured image.
S ITC_TIMEOUT_E Timeout.
S ITC_INV_PARAMETER_E One of the parameters is invalid.
S S_DEVICE_NOT_OPENED_E The device had not been opened.
Remarks
The image is returned in pImgBuffer in the caller specified format.
See Also
None.
225700 Series Color Mobile Computer User’s Manual
Scanner SupportChapter 6
IImage::CancelReadImage
Syntax
HRESULT IImage::CancelReadImage( );
Parameters
None.
Return Values
Status code indicating success or failure as follows:
S S_OK Imager closed.
S S_DEVICE_NOT_OPENED_E The device had not been opened.
Remarks
This function causes a pending image read of IImage::ReadImage() to re­turn immediately with an error status. The purpose of this function is to allow the application to release a thread blocked on the ReadImage() call.
IImage::Start
See Also
None.
Syntax
HRESULT IImage::Start( );
Parameters
None.
Return Values
Status code indicating success or failure as follows:
S S_OK Imager started.
S S_DEVICE_NOT_OPENED_E The device had not been opened.
Remarks
This function starts the image continuously capturing images.
See Also
None.
226 700 Series Color Mobile Computer User’s Manual
IImage::Stop
6 Scanner SupportChapter
Syntax
HRESULT IImage::Stop( );
Parameters
None.
Return Values
Status code indicating success or failure as follows:
S S_OK Imager started.
S S_IMG_NOT_PRESENT_E Unit does not contain an imager.
S S_DEVICE_NOT_OPENED_E Device had not been opened.
Remarks
This function stops the image continuously capturing images.
See Also
None.
IImage::Open
Syntax
HRESULT IImage::Open( BOOL fSigCapEnable );
Parameters
fSigCapEnable [in] When TRUE, signature capture is enabled. When
FALSE, it is disabled. Bar code labels are decoded and images (via IImage::ReadImage) the same.
Return Values
Status code indicating success or failure as follows:
S S_OK Imager opened.
S S_IMG_NOT_PRESENT_E Unit does not contain an imager.
S S_DEVICE_CONTENTION_E Device has already been opened.
Remarks
This function exclusively allocates the imager device so that the other IIm­age methods can be safely called.
See Also
None.
227700 Series Color Mobile Computer User’s Manual
Scanner SupportChapter 6
IImage::Close
Syntax
HRESULT IImage::Close( );
Parameters
None.
Return Values
Status code indicating success or failure as follows:
S S_OK Imager closed.
S S_DEVICE_NOT_OPENED_E The device had not been opened.
Remarks
This function releases the imager device so that other applications can open it. An IImage::Release() will also close the imager device.
See Also
None.
228 700 Series Color Mobile Computer User’s Manual
Data Collection Configuration
Scanner settings for the 700 Series Computer can be configured via the
Data Collection control panel applet. From the 700 Series Computer, tap Start Settings the System tab the Data Collection icon. See Ap-
pendix A,“Control Panel Applets” for more information about the following parameters. Note that these are in alphabetical order.
S Codabar (page 292)
S Code 11 (page 306)
S Code 128 (page 295)
S Code 128 Options (page 296)
S Code 128 FNC1 Character (page 297)
S Code 39 (page 290)
S Code 93 (page 294)
S Code 93 Length (page 294)
6 Scanner SupportChapter
S Data Matrix (page 308)
S Interleaved 2 of 5 (page 303)
S Matrix 2 of 5 (page 304)
S MSI (page 299)
S PDF 417 (page 300)
S Macro PDF (page 300)
S Micro PDF 417 (page 302)
S Plessey (page 298)
S QR Code (page 307)
S Standard 2 of 5 (page 291)
S Telepen (page 305)
S UPC/EAN (page 293)
229700 Series Color Mobile Computer User’s Manual
Scanner SupportChapter 6
Tethered Scanner
The Intermec Tethered Scanner feature accepts data from the COM1 port wedges it to the keyboard interface, and allows some ADC. This feature can be enabled or disabled from the Today Screen on the 700 Series Com­puter.
Enabling and Disabling
On 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 to the left).
S Select Comm Port Wedge to send any data, coming into the 700 Series
Computer through the COM1 port from an external input device, as keyboard data to an application on the desktop.
For example, if you have Pocket Word running on your 700 Series Computer desktop, information scanned with a scanner connected to the COM1 port will appear in the Word document. If another data collection 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 by the external input device, you cannot control the device or the data format using any of the Intermec scanner control or data transfer APIs from the SDK or the internal Data Collection software. The external input device is governed by what software it has onboard to tell it how to scan, take pic­tures, or send the data elsewhere.
230 700 Series Color Mobile Computer User’s Manual
6 Scanner SupportChapter
S Select 1551/1553 to enable the Sabre 1551E or 1553 Tethered Scanner
to scan, then send data as keyboard data. The 1551/1553 Tethered Scanner has software onboard that translates scanned data into charac­ters, so the running/active application does not need to know how to do that. All the scanner control and data transfer APIs will work with the 1551/1553 Tethered Scanner, so you can control the device.
S Select Disable All to disable this feature and use the COM1 port for
another application, such as ActiveSync. An error message will result if this option were not selected, but this action was attempted. Similarly, if ActiveSync is using the COM1 port, and you select Comm Port Wedge or 1551/1553, an error message will result. See “Error Message”onpage 232 for more information.
Changing Comm Settings
Tap 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 to accept these changes.
S Baud Rate: 1200, 2400, 4800, 9600, 19200, 38400, 57600,
S Data Bits:7or8 S Parity: None, Odd, Even, Mark, Space S Stop Bits:1or2 S Flow Control: None or Hardware
Tethered Scanner
The default settings for the Tethered Scanner are shown in the following illustration:
115200
231700 Series Color Mobile Computer User’s Manual
Scanner SupportChapter 6
Sabre 1551E or 1553 Tethered Scanner
The default communication configuration for the Sabre 1551E or 1553 Tethered Scanner is shown in the following illustration. Scan the EasySet Reset 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.
Error Message
Scanner Cabling
Welch Allyn 1470 Imager Settings
The Welch Allyn 1470 Imager can be set to this configuration by scanning the Factory Default Settings label.
If the COM1 port is used by another application, such as ActiveSync, nei­ther the Comm Port Wedge nor the 1551/1553 Tethered Scanner can be enabled. 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 free up the COM1 port before you can enable either the wedge or the scanner.
A null modem cable is required for the Welch Allyn 1470 Imager to com­municate with the 700 Series Computer when using the 700 Series Serial Cable (P/N: 226-999-001).
The Sabre 1551E / 1553 Cable connects directly to the Model 700 Comm Port.
232 700 Series Color Mobile Computer User’s Manual
Limitations and Capabilities
The Tethered Scanner has the following limitations:
S No auto detection of a scanner’ s physical connection to COM1 port.
User needs to ensure the communication settings of COM1 port matched the settings of the device.
S The Pocket PC Pocket Office applications misbehave when control
characters such as carriage return are wedged. This is a known Pocket PC problem, which is being worked with Microsoft and for which a work around is being developed.
S Communications port is COM1 and cannot be changed.
S A complete bar code label is detected when the time between bytes (the
inter-byte gap) exceeds 100 ms. This allows that data could be concate­nated if two labels were received while the Comm Port Wedge or the 1551/1553 Tethered Scanner was not performing a read. That is, it could be wedging data just read or the read thread could be preempted. Also, the labels could appear concatenated if the scanner itself were to buffer the labels before transmitting them.
6 Scanner SupportChapter
When enabled, the Comm Port Wedge menu option has the following limitation:
S There 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 keyboard interface only.
When enabled, the 1551/1553 menu option has the following capabilities:
S Grid Data Editing is available.
S The source of the symbology configurations is only available via the
Easy Set command labels. Only the Virtual Wedge configurations can be configured via the Data Collection Control Panel Applet Virtual Wedge page. See Appendix A, “Control Panel Applets,” for more information.
S May transmit the data through the keyboard interface (via the Virtual
Wedge).
233700 Series Color Mobile Computer User’s Manual
Scanner SupportChapter 6
S The bar code APIs, defined in the IADC interface, are available to get
bar code data from the bar code scanner. The following example shows how to programmatically collects bar code data:
#include “IADC.h” // Linked with ITCUUID.LIB #include “ITCAdcMgmt.h” // Linked with ITCAdcDevMgmt.lib
IADC* 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 return ITC_DHDEVFLAG_READAHEAD, // Device’s Flags (LPVOID *) &pIADC); // the returned interface
if( 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);
234 700 Series Color Mobile Computer User’s Manual
Programming
7
The following programming information pertains to the 700 Series Color Mobile Computer:
S Creating CAB Files (page 236)
S FTP Server (page 251)
S Full Screen (page 262)
S Kernel I/O control functions (page 264)
S Reboot Functions (page 280)
S Remapping the Keypad (page 281)
235700 Series Color Mobile Computer User’s Manual
ProgrammingChapter 7
Creating CAB Files
The 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 multiple files that are compressed into one file. Compressing multiple files into one file provides the following benefits:
S All application files are present.
S A partial installation is prevented.
S The application can be installed from several sources, such as a desktop
computer or a Web site.
Use the CAB Wizard application (CABWIZ.EXE) to generate a .CAB file for your application.
Creating Device-Specific CAB Files
Do the following to create a device-specific .CAB file for an application, in the order provided:
1 Create an .INF file with Windows CE-specific modifications (page 236).
2 Optional Create a SETUP.DLL file to provide custom control of the
3 Use the CAB Wizard to create the .CAB file, using the .INF file, the
Creating an .INF File
An .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? Ye s
S Signature:“signature_name
S Provider:“INF_creator
installation process (page 248).
optional SETUP.DLL file, and the device-specific application files as parameters (page 249).
Must be “$Windows NT$” as Windows CE is not available on Win­dows 95.
The company name of the application, such as “Microsoft.”
S CESignature: “$Windows CE$”
EXAMPLE:
[Version]
Signature = “$Windows NT$” Provider = “Microsoft” CESignature = “$Windows CE$”
236 700 Series Color Mobile Computer User’s Manual
[CEStrings]
This specifies string substitutions for the application name and the default installation directory.
Required? Ye s
S AppName: app_name
S InstallDir: default_install_dir
EXAMPLE:
[CEStrings]
AppName=“Game Pack” InstallDir=%CE1%\%AppName%
[Strings]
This section is optional and defines one or more string keys. A string key represents a string of printable characters.
ProgrammingChapter 7
Name of the application. Other instances of %AppName% in the .INF file will be replaced with this string value, such as RP32.
Default 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%
Required? No
S string_key: value
EXAMPLE:
[Strings]
reg_path = Software\Microsoft\My Test App
String consisting of letters, digits, or other printable characters. Enclose value in double quotation marks ““”” if the corresponding string key is used in an item that requires double quotation marks. No string_keys is okay.
237700 Series Color Mobile Computer User’s Manual
ProgrammingChapter 7
[CEDevice]
Describes the platform for the targeted application. All keys in this section are optional. If a key is nonexistent or has no data, Windows CE does not perform any checking with the exception being UnsupportedPlatforms.If the UnsupportedPlatforms key exists but no data, the previous value is not overridden.
Required? Ye s
S ProcessorType : processor_type
S UnsupportedPlatforms: platform_family_name
The value that is returned by SYSTEMINFO.dwProcessorType. For example, the value for the SH3 CPU is 10003 and the MIPS CPU is
4000.
This lists known unsupported platform family names. If the name specified in the [CEDevice.xxx] section is different from that in the [CEDevice] section, both platform_family_name values are unsupported for the microprocessor specified by xxx. That is, the list of unsupported platform family names is appended to the previous list of unsupported names. Application Manager will not display the application for an unsupported platform. Also, a user will be warned during the setup process if the .CAB file is copied to an unsupported device.
EXAMPLE:
[CEDevice]
UnsupportedPlatforms = pltfrm1 ; pltfrm1 is unsupported
[CEDevice.SH3]
UnsupportedPlatforms = ; pltfrm1 is still unsupported
S VersionMin: minor_version
Numeric value returned by OSVERSIONINFO.dwVersionMinor. The .CAB file is valid for the currently connected device if the version of this device is greater than or equal to VersionMin.ForWindowsCEJapa­nese language devices, set this to 2.01
S VersionMax: major_version
Numeric value returned by OSVERSIONINFO.dwVersionMajor. The .CAB file is valid for the currently connected device if the version of this device is less than or equal to VersionMax. For Windows CE Japanese language devices, set this to 2.01
Note: 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 include all significant digits.
S BuildMin: build_number
Numeric value returned by OSVERSIONINFO.dwBuildNumber. The .CAB file is valid for the currently connected device if the version of this device is greater than or equal to BuildMin.
S BuildMax: build_number
Numeric value returned by OSVERSIONINFO.dwBuildNumber. The .CAB file is valid for the currently connected device if the version of this device is less than or equal to BuildMax.
238 700 Series Color Mobile Computer User’s Manual
ProgrammingChapter 7
EXAMPLE:
The following code example shows three [CEDevice] sections: one that gives basic information for any CPU and two that are specific to the SH3 and the MIPS microprocessors.
[CEDevice] ; A “template” for all platforms UnsupportedPlatforms = pltfrm1 ; Does not support pltfrm1
; The following specifies version 1.0 devices only. VersionMin = 1.0 VersionMax = 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 is performed. 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 file in the previous example, run the CAB Wizard with the “/cpu sh3 mips” parameter.
239700 Series Color Mobile Computer User’s Manual
ProgrammingChapter 7
[DefaultInstall]
This describes the default installation of your application. Note that under this section, you will list items expanded upon later in this description.
Required? Ye s
S Copyfiles: copyfile_list_section
S AddReg: add_registry_section
S CEShortcuts: shortcut_list_section
S CESetupDLL: setup_DLL
Maps to files defined later in the .INF file, such as Files.App, Files.Font, and Files.Bitmaps.
Example: RegSettings.All
String that identifies one more section that defines shortcuts to a file, as defined in the [CEShortcuts] section.
Optimal string that specifies a SETUP.DLL file. It is written by the In­dependent Software Vendor (ISV) and contains customized functions for operations during installation and removal of the application. The file must be specified in the [SourceDisksFiles] section.
S CESelfRegister: self_reg_DLL_filename
EXAMPLE:
[DefaultInstall]
AddReg = RegSettings.All CEShortcuts = Shortcuts.All
[SourceDiskNames]
This section describes the name and path of the disk on which your ap­plication resides.
Required? Ye s
S disk_ordinal: disk_label,,path
S CESignature: “$Windows CE$”
String 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. During installation, if installation on the device fails to call the file’ s exported DllRegisterServer function, the file’ s exported DllUnregisterServer function will not be called during removal.
1=,“App files” , C:\Appsoft\RP32\... 2=,“Font files”,,C:\RpTools\... 3=,“CE Tools” ,,C:\windows ce tools...
Example
[SourceDisksNames] ; Required section 1 = ,“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
240 700 Series Color Mobile Computer User’s Manual
ProgrammingChapter 7
[SourceDiskFiles]
This describes the name and path of the files in which your application resides.
Required? Ye s
S filename: disk_number[,subdir]
RPM.EXE = 1,c:\appsoft\... WCESTART.INI = 1 RPMCE212.INI = 1 TAHOMA.TTF = 2
Note: [,subdir] is relative to the location of the INF file.
Example
[SourceDisksFiles] ; Required section begin.wav = 1 end.wav = 1 sample.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.
241700 Series Color Mobile Computer User’s Manual
ProgrammingChapter 7
[DestinationDirs]
This describes the names and paths of the destination directories for the application on the target device. Note Windows CE does not support directory
identifiers.
Required? Ye s
S file_list_section: 0,subdir
String that identifies the destination directory. The following list shows the string substitutions supported by Windows CE. These can be used only 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. It is 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 Subdir Files.Shared = 0,%CE2% ; \Windows
242 700 Series Color Mobile Computer User’s Manual
ProgrammingChapter 7
[CopyFiles]
This section, under the [DefaultInstall] section, describes the default files to copy to the target device. Within the [DefaultInstall] section, files were listed that must be defined elsewhere in the INF file. This section identi­fies that mapping and may contain flags.
Required? Ye s
S copyfile_list_section : destination_filename,[source_filename]
The source_filename parameter is optional if it is the same as destina- tion_filename.
S copyfile_list_section : flags
The numeric value that specifies an action to be done while copying fi­les. The following table shows values supported by Windows CE.
Flag Value Description
COPYFLG_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 the
file 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
243700 Series Color Mobile Computer User’s Manual
ProgrammingChapter 7
[AddReg]
This section, under the [DefaultInstall] section, is optional and describes the keys and values that the .CAB file adds to the device registry. Within the [DefaultInstall] section, a reference may have been made to this section, such as “AddReg=RegSettings.All”. This section defines the options for that setting.
Required? No
S add_registry_section : registry_root_string
S add_registry_section : value_name
S add_registry_section : flags
String that specifies the registry root location. The following list shows the values supported by Windows CE.
S HKCR Same as HKEY_CLASSES_ROOT
S HKCU Same as HKEY_CURRENT_USER
S HKLM Same as HKEY_LOCAL_MACHINE
Registry value name. If empty, the “default” registry value name is used.
Numeric value that specifies information about the registry key. The following table shows the values that are supported by Window CE.
Flag Value Description
FLG_ADDREG_NOCLOBBER 0x00000002 If the registry key exists, do not overwrite it. Can be used
with 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 follows
can be a list of strings separated by commas.
FLG_ADDREG_TYPE_BINARY 0x00000001 REG_BINARY registr y data type. Value field that follows
must be a list of numeric values separated by commas, one byte per field, and must not use the 0x hexadecimal prefix.
FLG_ADDREG_TYPE_DWORD 0x00010001 REG_DWORD data type. The noncompatible format in the
Win32 Setup .INF documentation is supported.
Example
AddReg = RegSettings.All
[RegSettings.All]
HKLM,%reg_path%,,0x00000000,alpha ; <default> = “alpha” HKLM,%reg_path%,test,0x00010001,3 ; Test = 3 HKLM,%reg_path%\new,another,0x00010001,6 ; New\another = 6
244 700 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 reference may have been made to this section, such as “ShortCuts.All”. This section defines the options for that setting.
Required? No
S shortcut_list_section: shortcut_filename
S shortcut_list_section: shortcut_type_flag
S shortcut_list_section: target_file_path
ProgrammingChapter 7
String that identifies the shortcut name. It does not require the .LNK extension.
Numeric value. Zero or empty represents a shortcut to a file; any non­zero numeric value represents a shortcut to a folder.
String value that specifies the destination location. Use the target file name for a file, such as MyApp.exe, that must be defined in a file copy list. For a path, use a file_list_section name defined in the [Destination- Dirs] section, such as DefaultDestDir,orthe%InstallDir% string.
S shortcut_list_section: standard_destination_path
Optional string value. A standard %CEx% path or %InstallDir%.Ifno value is specified, the shortcut_list_section name of the current section or the DefaultDestDir value from the [DestinationDirs] section is used.
Example
CEShortcuts = Shortcuts.All
[Shortcuts.All]
Sample App,0,sample.exe ; Uses the path in DestinationDirs. Sample App,0,sample.exe,%InstallDir% ; The path is explicitly specified.
Sample .INF File
[Version] ; Required section Signature = “$Windows NT$” Provider = “Intermec Technologies Corporation” CESignature = “$Windows CE$”
;[CEDevice] ;ProcessorType =
[DefaultInstall] ; Required section CopyFiles = 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 section 1 = ,“App files” ,,c:\appsoft\... 2 = ,”Font files” ,,c:\WinNT\Fonts 3 = ,”CE Tools” ,,c:\windows ce tools\wce212\6110ie\mfc\lib\x86
[SourceDisksFiles] ; Required section rpm.exe = 1,C:\Appsoft\program\wce212\WCEX86Rel6110 wcestart.ini = 1
245700 Series Color Mobile Computer User’s Manual
ProgrammingChapter 7
rpmce212.ini = 1 intermec.bmp = 1 rpmlogo.bmp = 1 rpmname.bmp = 1 import.bmp = 1 export.bmp = 1 clock.bmp = 1 printer.bmp = 1 filecopy.bmp = 1 readme.txt = 1 lang_eng.bin = 1 rpmdata.dbd = 1,database\wce1 tahoma.ttf = 2 mfcce212.dll = 3 olece212.dll = 3 olece211.dll = 1,c:\windows ce tools\wce211\NMSD61102.11\mfc\lib\x86 rdm45wce.dll = 1,c:\rptools\rdm45wce\4_50\lib\wce212\wcex86rel picfmt.dll = 1,c:\rptools\picfmt\1_00\wce212\wcex86rel6110 fmtctrl.dll = 1,c:\rptools\fmtctrl\1_00\wce212\wcex86rel6110 ugrid.dll = 1,c:\rptools\ugrid\1_00\wce212\wcex86rel6110 simple.dll = 1,c:\rptools\pspbm0c\1_00\wce211\wcex86rel psink.dll = 1,c:\rptools\psink\1_00\wce211\WCEX86RelMinDependency pslpwce.dll =1,c:\rptools\pslpm0c\1_00\wce211\WCEX86RelMinDependency npcpport.dll = 1,c:\rptools\cedk\212_03\installable drivers\printer\npcp ;dexcom.dll = 1,c:\rptools\psdxm0c\1_00\x86 ncsce.exe = 1,c:\rptools\ncsce\1_04 nrinet.dll = 1,c:\rptools\ncsce\1_04
[DestinationDirs] ; Required section ;Shortcuts.All = 0,%CE3% ; \Windows\Desktop Files.App = 0,%InstallDir% Files.DataBase = 0,%InstallDir%\DataBase Files.BitMaps = 0,%InstallDir%\Bitmaps Files.Fonts = 0,%InstallDir%\Fonts Files.Intl = 0,%InstallDir%\Intl Files.TelecomNcsCE = 0,%InstallDir%\Telecom\NcsCE Files.Windows = 0,%InstallDir%\Windows Files.Import = 0,%InstallDir%\Import Files.Export = 0,%InstallDir%\Export Files.Work = 0,%InstallDir%\Work Files.WinCE = 0,\storage_card\wince
[CEStrings] ; Required section AppName = Rp32 InstallDir = \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,,,0 rpm.ini,rpmce212.ini,,0 mfcce212.dll,,,0 olece212.dll,,,0 olece211.dll,,,0 rdm45wce.dll,,,0 picfmt.dll,,,0
246 700 Series Color Mobile Computer User’s Manual
fmtctrl.dll,,,0 ugrid.dll,,,0 simple.dll,,,0 psink.dll,,,0 pslpwce.dll,,,0 npcpport.dll,,,0 ;dexcom.dll,,,0
[Files.DataBase] rpmdata.dbd,,,0
[Files.Fonts] tahoma.ttf,,,0
[Files.BitMaps] intermec.bmp,,,0 rpmlogo.bmp,,,0 rpmname.bmp,,,0 import.bmp,,,0 export.bmp,,,0 clock.bmp,,,0 printer.bmp,,,0 filecopy.bmp,,,0
ProgrammingChapter 7
[Files.Intl] lang_eng.bin,,,0
[Files.TelecomNcsCE] ncsce.exe,,,0 nrinet.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
247700 Series Color Mobile Computer User’s Manual
ProgrammingChapter 7
Using Installation Functions in SETUP.DLL
SETUP.DLL is an optional file that enables you to perform custom opera­tions during installation and removal of your application. The following list shows the functions that are exported by SETUP.DLL.
S Install_Init
Called 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.
S Install_Exit
Called after installation is complete. Use this function to handle errors that occur during application installation.
S Uninstall_Init
Called before the removal process begins. Use this function to close the application, if the application is running.
S Uninstall_Exit
Called after the removal process is complete. Use this function to save database information to a file and delete the database and to tell the user where the user data files are stored and how to reinstall the application.
Note;Use[DefaultInstall] CESelfRegister (page 240) in the .INF file to point to SETUP.DLL.
After the CAB File Extraction
Cab files that need to cause a warm reset after cab extraction will need to create the __RESETMEPLEASE__.TXT file in the “\Windows” directory. The preferred method to create this file is within the DllMain portion of the SETUP.DLL file. It looks like this:
BOOL APIENTRY DllMain( HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved ) {
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;
}
248 700 Series Color Mobile Computer User’s Manual
ProgrammingChapter 7
The system software looks for the following directory structure and files on the installed media card whether it be an SD card or CF card or embedded flash file system. No other folders need exist.
\2577\autorun.exe \2577\autorun.dat \2577\autocab.exe \2577\autocab.dat \cabfiles\*.cab
Creating CAB Files with CAB Wizard
After you create the .INF file and the optional SETUP.DLL file, use the CAB Wizard to create the .CAB file. The command-line syntax for the CAB 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\bin cabwiz.exe c:\appsoft\<program>\<inf_file_name> cd \appsoft\<program>
S “inf_file”
The SETUP.INF file path.
S dest_directory
The destination directory for the .CAB files. If no directory is specified, the .CAB files are created in the “inf_file” directory.
S error_file
The file name for a log file that contains all warnings and errors that are encountered 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, the CAB Wizard runs without the user interface (UI); this is useful for au­tomated builds.
S cpu_type
Creates a .CAB file for each specified microprocessor tag. A micropro­cessor tag is a label used in the Win32 SETUP.INF file to differentiate between different microprocessor types. The /cpu parameter, followed by multiple cpu_type values, must be the last qualifier in the command line.
Example
This example creates .CAB files for the SH3 and MIPS microprocessors, assuming that the Win32 SETUP.INF file contains the SH3 and MIPS tags:
cabwiz.exe “c:\myfile.inf” /err myfile.err /cpu sh3 mips
Note: CABWIZ.EXE, MAKECAB.EXE, and CABWIZ.DDF (Windows CE files available on the Windows CE Toolkit) must be installed in the same directory on the desktop computer. Call CABWIZ.EXE using its full path for the CAB Wizard application to run correctly.
249700 Series Color Mobile Computer User’s Manual
ProgrammingChapter 7
Troubleshooting the CAB Wizard
To identify and avoid problems that might occur when using the CAB Wizard, follow these guidelines:
S Use %% for a percent sign (%) character when using this character in
an .INF file string, as specified in Win32 documentation. This will not work under the [Strings] section.
S Do not use .INF or .CAB files created for Windows CE to install ap-
plications on Windows-based desktop platforms.
S Ensure the MAKECAB.EXE and CABWIZ.DDF files, included with
Windows CE, are in the same directory as CABWIZ.EXE.
S Use the full path to call CABWIZ.EXE.
S Do not create a .CAB file with the MAKECAB.EXE file included with
Windows CE. You must use CABWIZ.EXE, which uses MAKE­CAB.EXE to generate the .CAB files for Windows CE.
S Do not set the read-only attribute for .CAB files.
250 700 Series Color Mobile Computer User’s Manual
FTP Server
ProgrammingChapter 7
FTP support is provided through the FTP Server application FTPDCE.EXE (MS Windows CE Versions) which is provided as part the base system.
FTPDCE is the Internet File Transfer Protocol (FTP) server process. The server 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.
Synopsis
ftpdce [ options ]
Options
S -Aaddr
Sets the single target address to which to send the network announce­ment. Default is broadcast.
S -Bbyte
Sets the FTP data b lock size. Smaller sizes may be useful over slower links. Default is 65536.
S -Cname
Sets the device name. Used by Intermec management software.
S -Fvalue
Disables the default Intermec account. A value of “0” disables the ac­count. Default is “1”.
Note: Disabling the default account without providing a working access control list on the server will result in a device that will not accept any FTP connections.
S -Hsec
Sets the interval between network announcements in seconds.A value of “0” turns the network announcement off. Default is 30 seconds.
S -Iip
Sets the preferred 6920 Communications Server (optional).
S -Llog
Sets the state of logging. Default is 0 (disabled).
S -Nsec
Specifies the number of seconds to wait before starting FTP server ser­vices.
S -Pport
Sets the UDP port on which the network announcement will be sent.
Default port is 52401.
S -Qport
Sets the port on which the FTP Server will listen for connections.
Default port is 21.
251700 Series Color Mobile Computer User’s Manual
ProgrammingChapter 7
S -Rdir
Sets the FTP mount point to this directory. Default is the rootdirectory of the drive from which the FTP Server program was executed.
S -Tscript
Sets the script name for the 6920 Communications Server to process.
S -Uurl
Sets the default URL for this device.
S -Z“ p arms”
Sets extended parameters to be included in the network announcement.
Configurable Parameters Via the Registry Editor
The following parameters receive default values during the installation of the Intermec FTP Server components. A few of the parameters are visible in the registry by default, but most must be created in order to modify the default behavior of the FTP server.
BlockSize
Setting this parameter forces the Intermec FTP Server to transmit and re­ceive Ethernet packets using the specified data block size. By default, the FTP server transmits and receives data using a 64K data block size. Adjust­ing this value may be useful in certain wireless TCP/IP installations.
Key
HKLM\Software\Intermec\IFTP
Value Type
REG_DWORD - data block size, in bytes.
Valid Range
0x100-0x10000 (256-65536 decimal).
Default
65536
252 700 Series Color Mobile Computer User’s Manual
ProgrammingChapter 7
DeviceName
This parameter forces the Intermec FTP Server to include the specified device name in the Intermec Device Network Announcement (IDNA). Adjusting this value may be useful in assigning a symbolic name to this device for asset tracking.
Key
HKLM\Software\Intermec\IFTP
Value Type
REG_SZ
Valid Range
None.
Default
None.
DeviceURL
This parameter forces the Intermec FTP Server to transmit the specified URL in the IDNA. This can be used by Intermec management software for asset management.
Key
HKLM\Software\Intermec\IFTP
Value Type
REG_SZ
Valid Range
None.
Default
None.
253700 Series Color Mobile Computer User’s Manual
ProgrammingChapter 7
IDNATarget
This parameter forces the Intermec FTP Server to transmit the IDNA to a specific destination instead of a general UDP broadcast. This parameter is useful on networks that do not allow UDP broadcasts to be routed be­tween subnets. The use of this parameter will restrict the reception of the IDNA to the target destination only.
Key
HKLM\Software\Intermec\IFTP
Value Type
REG_SZ
Valid Range
None.
Default
None.
ManifestName
This parameter forces the Intermec FTP Server to transmit the specified manifest name in the IDNA. This parameter is used by the Intermec 6920 Communications Server for communication transactions. See the 6920 Communications Server documentation for proper use of this parameter.
Key
HKLM\Software\Intermec\IFTP
Value Type
REG_SZ
Valid Range
None.
Default
iftp.ini
254 700 Series Color Mobile Computer User’s Manual
ProgrammingChapter 7
PauseAtStartup
This parameter forces the Intermec FTP Server to sleep for the specified number of seconds before making the FTP service available on the device.
Key
HKLM\Software\Intermec\IFTP
Value Type
REG_DWORD - stored in seconds.
Valid Range
None.
Default
0
Root
This parameter forces the Intermec FTP Server to set the root of the FTP mount point to the specified value. Note that this must map to an existing
directory or you will not be able to log into the FTP Server.
Key
HKLM\Software\Intermec\IFTP
Value Type
REG_SZ
Valid Range
None.
Default
\
255700 Series Color Mobile Computer User’s Manual
ProgrammingChapter 7
Transferring Files Over TCP/IP Networks
The File Transfer Protocol (FTP) server transfers files over TCP/IP net­works. The FTPDCE.EXE program is a version that does not display a window, but can run in the background.
FTPDCE is the Internet File Transfer Protocol (FTP) server process. The server 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.
Remarks
The FTP Server currently supports the following FTP requests:
S CDUP
Changes to the parent directory of the current working directory.
S CWD
Changes working directory.
S DELE
Deletes a file.
S HELP
Gives help information.
S LIST (This FTP request is the same as the ls -lgA command).
Gives list files in a directory.
S MKD
Makes a directory.
S MODE (Always Uses Binary).
Specifies data transfer mode.
S NLST
Gives a name list of files in directory (this FTP request is the same as the ls command).
S NOOP
Does nothing.
S PASS
Specifies a password.
S PWD
Prints the current working directory.
S QUIT
Terminates session.
S RETR
Retrieves a file.
S RMD
Removes a directory.
S RNFR
Specifies rename-from file name.
256 700 Series Color Mobile Computer User’s Manual
S RNTO
Specifies rename-to file name.
S STOR
Stores a file.
S SYST
Shows the operating system type of server system.
S TYPE (Binary transfers only.)
Specifies the data transfer type with the Type parameter.
S USER
Specifies user name.
S XCUP (Not Normally Used)
Changes the parent directory of the current working directory.
S XCWD (Not Normally Used)
Changes the current directory.
S XMKD (Not Normally Used)
Creates a directory.
ProgrammingChapter 7
S XPWD (Not Normally Used)
Prints the current working directory.
S XRMD (Not Normally Used)
Removes a directory.
S SITE
The 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.”
S ATTRIB
Gets 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. R Read-only file attribute. A Archive file attribute. S System file attribute. H Hidden file attribute.
To retrieve the attributes of a file, only specify the file. The server re­sponse will be: 200-AD SHRCEIX filename
If the flag exists in its position shown above, it is set. Also, in addition to the values defined above, there is also defined:
C Compressed file attribute. E Encrypted file attribute. I INROM file attribute. X XIP file attribute (execute in ROM, not shadowed in RAM).
257700 Series Color Mobile Computer User’s Manual
ProgrammingChapter 7
S BOOT
Reboots 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 is default except for the PocketPC build in which the default is warm boot. (SITE BOOT)
Usage: QUOTE SITE BOOT [ WA RM | COLD]
S COPY
Copies a file from one location to another. (SITE COPY)
Usage: QUOTE SITE COPY [source][destination]
Example
QUOTE SITE COPY ‘\Storage Card\one.dat’ ‘\Storage Card\two.dat’
S EXIT
Exits the FTP Server. This command will shut down the FTP Server thus terminating all client connections. (SITE EXIT)
Usage: QUOTE SITE EXIT
S HELP
Gives site command help information. (SITE HELP)
Usage: QUOTE SITE HELP [command]
S KILL
Terminates a running program. (SITE KILL)
Usage: QUOTE SITE KILL [program | pid]
S LOG
Opens or closes the program log. (SITE LOG)
Usage: QUOTE SITE LOG [open [filename]| close]
S PLIST
Lists the running processes (not supported on all platforms). (SITE PLIST)
Usage: QUOTE SITE PLIST
S RUN
Starts a program running. If the program to run has spaces in path or filename, wrapping the name with single quotes is required.
Usage: QUOTE SITE RUN [program]
Example
QUOTE SITE RUN ‘\Storage Card\app.exe’
258 700 Series Color Mobile Computer User’s Manual
ProgrammingChapter 7
S STATUS
Returns the current settings of the FTP Server. MAC, serial number, model, IP address, network announcement information as well as OS memory usage are returned. (SITE STATUS)
Usage: QUOTE SITE STATUS
S TIMEOUT
Toggles 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 seconds argument is supplied, the server will set the connection timeout to the 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 not implemented.
The banner returned in the parenthetical portion of its greeting shows the version 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 Microsoft web browsers. Drag-and-drop capability is available using this environ­ment.
The FTPDCMDS subdirectory contains commands that can be used from the web browser.
S Click EXITME.BIN to execute a SITE EXIT command.
S Click REBOOTME.BIN to execute SITE BOOT command.
S Use the GET command on these files to have the FTP Server execute
these commands.
S Security:
A customer configurable access control list may be installed on the 700 Series Computer. This list will allow customers to restrict access via the FTP Server to the users they wish. This is in addition to the default Intermec account which can be disabled using the -F0 option at runtime.
The access control list is named FTPDCE.TXT and is placed in the same directory on the 700 Series Computer as the FTPDCE.EXE server. The FTP Server will encrypt this file to keep the information safe from unauthorized users. This file is encrypted when the FTP Server is started so a file that is placed onto the 700 Series Computer after the FTP Server starts will require a restart of the FTP Server to take effect.
The format of the FTPDCE.TXT is as follows:
FTPDCE:user1!passwd1<cr><lf>user2!passwd2<cr><lf>user3!passw d3<cr><lf>...
259700 Series Color Mobile Computer User’s Manual
ProgrammingChapter 7
Note: The user accounts and passwords are case sensitive. Once the access control list is encrypted on the 700 Series Computer, the FTP Server will hide this file from users. Once an access control list has been installed on the 700 Series Computer, a new one will not be accepted by 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 Application
To allow application programmers the ability to programmatically shut down the FTP Server, the FTP Server periodically tests to see if a named event is signaled. The name for this event is “ITC_IFTP_STOP” (no quotes).
For examples on how to use this event, consult the Microsoft Developer Network 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 FTP
This automatically starts the FTP Server (FTPDCE.EXE) when the 700 Series Computer is powered on. This is provided with the NDISTRAY program, which displays the popup menu that currently allows you to load and unload the network drivers. Tap the antenna icon in the System Tray of the Today screen (a sample antenna icon is circled below) to get this pop- up menu.
260 700 Series Color Mobile Computer User’s Manual
ProgrammingChapter 7
The default is to start the FTP Server at boot time, unless the following registry entry is defined and set to “0” which disables AutoFTP. “1” enables the AutoFTP. The entry can be set from the NDISTRAY pop-up menu by selecting either AutoFTP On or AutoFTP Off.
HKEY_LOCAL_MACHINE\Software\Intermec\Ndistray\StartupIFTP
These new entries are located below the selections to load the network drivers. If the StartupIFTP registry key is not defined, the FTP Server is loaded by default, to provide “out-of-the-box” capability for customers who want to begin loading files to the 700 Series Computer without any prior 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 is stopped and restarted. NDISTRAY uses a helper application named RESE­TIFTP to implement the restart on resume feature. To do an AutoFTP Installation Check:
1 Ensure the FTP Server is running “out-of-the-box” the first time.
2 Ta p Start Today to access the Today screen, then tap the antenna
icon in the System Tray to bring up the NDISTRAY pop-up menu. Select AutoFTP Off to disable AutoFTP. Do a warm boot and confirm the FTP Server is not running.
3 Ta p Start Today to access the Today screen, then tap the antenna
icon in the System Tray to bring up the NDISTRAY pop-up menu. Select AutoFTP On to enable AutoFTP, reboot and confirm it is running.
4 Unload the network driver when the FTP Server is running and confirm
that it is not running any more.
5 Load the FTP Server, establish a connection, then suspend and resume.
The server should still be running, but the FTP connection to the client should be dropped.
261700 Series Color Mobile Computer User’s Manual
ProgrammingChapter 7
Full Screen
Pocket PC is a hardware specification created by Microsoft Corporation. Devices that wish to carry the Pocket PC logo must meet the minimum hardware requirements set in the Pocket PC specification. Manufacturers are free to add extra hardware functionality.
Pocket PC 2002 devices also use a specialized version of the CE operating system. 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 Today Screen.
To carry the Pocket PC logo, all devices must be tested at an Independent Test Laboratory. The ITL testing is done based on Microsoft requirements. The test lab then reports the findings back to Microsoft Corporation and Intermec Technologies. If the 700 Series Computer passed all tests, Inter­mec is allowed to ship the device with the Pocket PC logo. Each time the operating system is modified, Intermec must resubmit to ITL testing.
This means we cannot change the operating system much and still be a Pocket 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 devices with the P ocket PC logo.
Although many customers want a Pocket PC device, some customers would 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:
S Delete items from the Start menu, and Programs folder. These items are
just shortcuts in the file system so the application is not really being deleted. Cold booting the device will bring these items back so the ap­plication will need to be run on every cold boot.
S Use the RegFlushKey() API to save a copy of the registry to a storage
device. See the Recovery CD Help for more information on how to do this. Saving a copy of the registry will allow most system settings to be restored in a cold boot situation.
S Use the SHFullScreen() API in conjunction with other APIs to make the
application take up the entire display and prevent the start menu from being available.
S Remap keys and disable keys on the keypad.
S Create a custom SIP.
S Make changes to the registry to configure the device.
262 700 Series Color Mobile Computer User’s Manual
ProgrammingChapter 7
Should you want your 700 Series Computer to display a full screen, keep in mind that your computer is Pocket-PC certified by Microsoft Corpora­tion. Check out resources on programming for the Pocket PC, using the following links. These instructions give full instructions on how to display full screen.
S Instructions 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.ASP
S Instructions 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
263700 Series Color Mobile Computer User’s Manual
ProgrammingChapter 7
Kernel I/O Controls
This describes the KernelIoControl() functions available to application programmers. Most C++ applications will need to prototype the function as the following to avoid link and compile errors.
extern “C” BOOL KernelIoControl(DWORD dwIoControlCode, LPVOID lpInBuf, DWORD nInBufSize, LPVOID lpOutBuf, DWORD nOutBufSize, LPDWORD lpBytesReturned);
IOCTL_HAL_GET_DEVICE_INFO
This IOCTL returns either the platform type or the OEMPLATFORM name based on an input value.
Syntax
BOOL KernelIoControl( IOCTL_HAL_GET_DEVICE_INFO, LPVOID
lpInBuf, DWORD nInBufSize, LPVOID lpOutBuf, DWORD nOutBufSize, LPDWORD lpBytesReturned );
Parameters
lpInBuf Points to a DWORD containing either the
SPI_GETPLATFORMTYPE or SPI_GETOEMINFO value.
lpInBufSize Must be set to sizeof(DWORD).
lpOutBuf Must point to a buffer large enough to hold the return
data of the function. If SPI_GETPLATFORMTYPE is specified in lpInBuf, then the “PocketPC\0” Unicode string is returned. If SPI_GETOEMINFO is specified in lpInBuf, then the “Intermec 700\0” Unicode string is returned.
nOutBufSize The size of lpOutBuf in bytes. Must be large enough to
hold the string returned.
lpBytesReturned The actual number of bytes returned by the function for
the data requested.
Return Values
Returns TRUE if function succeeds. Returns FALSE if the function fails. GetLastError() may be used to get the extended error value.
264 700 Series Color Mobile Computer User’s Manual
IOCTL_HAL_ITC_READ_PARM
Usage
#include “oemioctl.h”
Syntax
BOOL KernelIoControl( IOCTL_HAL_ITC_READ_PARM,LPVOID
lpInBuf,DWORD nInBufSize,LPVOID lpOutBuf,DWORD nOutBufSize,LPDWORD lpBytesReturned );
Parameters
lpInBuf 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 return
ProgrammingChapter 7
data of the function. If this field is set to NULL and nOutBufSize is set to zero when the function is called the function will return the number bytes required by the buffer.
nOutBufSize The size of lpOutBuf in bytes.
lpBytesReturned The number of bytes returned by the function for the
data requested.
Return Values
Returns TRUE if function succeeds. Returns FALSE if the function fails. GetLastError() may be used to get the error value. Either ERROR_INVALID_PARAMETER or ERROR_INSUFFICIENT_BUFFER may be returned when this function is used to get the error.
ID Field Values
The id field of the PARMS structure may be one of the following values:
S ITC_NVPARM_ETHERNET_ID
This IOCTL returns the Ethernet 802.11 MAC Address. Six bytes are returned in the buffer pointed to by the lpOutBuffer parameter.
S ITC_NVPARM_SERIAL_NUM
This 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.
S ITC_NVPARM_MANF_DATE
This IOCTL returns the device date of manufacture in the BCD YYYY/MM/DD format. Four bytes are returned in the buffer pointed to by the lpOutBuffer parameter.
265700 Series Color Mobile Computer User’s Manual
ProgrammingChapter 7
S ITC_NVPARM_SERVICE_DATE
This IOCTL returns the device’ s date of last service in BCD YYYY/ MM/DD format. Four bytes are returned in the buffer pointed to by the lpOutBuffer parameter.
S ITC_NVPARM_DISPLAY_TYPE
This IOCTL returns the device’ s display type. One byte is returned in the buffer pointed to by the lpOutBuffer parameter.
S ITC_NVPARM_EDG_IP
This IOCTL returns the device Ethernet debug IP address. Four bytes are returned in the buffer pointed to by the lpOutBuffer parameter.
S ITC_NVPARM_EDBG_SUBNET
This IOCTL returns the device Ethernet debug subnet mask. Four by­tes are returned in the buffer pointed to by the lpOutBuffer parameter.
S ITC_NVPARM_ECN
This 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.
S ITC_NVPARM_CONTRAST
This IOCTL returns the device default contrast setting. Two bytes are returned in the buffer pointed to by the lpOutBuffer parameter.
S ITC_NVPARM_MCODE
This IOCTL returns the manufacturing configuration code for the de­vice. Sixteen bytes are returned in the buffer pointed to by the lpOut- Buffer parameter.
S ITC_NVPARM_VERSION_NUMBER
This 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 id field:
S VN_CLASS_KBD
Returns a five-byte string, including null terminator, that contains an ASCII value which represents the keyboard microprocessor version in the system. The format of the string is x.xx with a terminating null character.
S VN_CLASS_ASIC
Returns a five-byte string, including null terminator, that contains an ASCII value which represents the version of the FPGA firmware in the system. The format of the string is x.xx with a terminating null character.
S VN_CLASS_BOOTSTRAP
Returns a five-byte string, including null terminator, that contains an ASCII value which represents the version of the Bootstrap Loader firmware in the system. The format of the string is x.xx with a termi­nating null character.
266 700 Series Color Mobile Computer User’s Manual
ProgrammingChapter 7
S ITC_NVPARM_INTERMEC_SOFTWARE_CONTENT
This IOCTL reads the manufacturing flag bits from the non-volatile data store that dictates certain software parameters. A BOOLEAN DWORD is returned in the buffer pointed to by lpOutBuffer that indi­cates if Intermec Content is enabled in the XIP regions. TRUE indicates that it is enabled. FALSE indicates that it is not enabled.
S ITC_NVPARM_ANTENNA_DIVERSITY
This IOCTL reads the state of the antenna diversity flag. A BOOLEAN DWORD is returned in the buffer pointed to by lpOutBuffer that indi­cates if there is a diversity antenna installed. TRUE indicates that it is installed. FALSE indicates that it is not installed.
S ITC_NVPARM_WAN_RI
This IOCTL reads the state of the WAN ring indicator flag. A BOOL­EAN DWORD is returned in the buffer pointed to by lpOutBuffer that indicates the polarity of the WAN RI signal. TRUE indicates active high. FALSE indicates active low.
S ITC_NVPARM_RTC_RESTORE
This IOCTL reads the state of the real-time clock restore flag. A BOOLEAN 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.
S ITC_NVPARM_INTERMEC_DATACOLLECTION_SW
This 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 boot time. FALSE indicates the data collection software should not be installed.
S ITC_NVPARM_INTERMEC_DATACOLLECTION_HW
This IOCTL reads the data collection hardware flags. A BYTE is re­turned in the buffer pointer to by lpOutBuffer that indicates the type of data collection hardware installed. The maximum possible value re­turned is ITC_DEVID_SCANHW_MAX.
S ITC_DEVID_SCANHW_NONE
No scanner hardware is installed.
S ITC_DEVID_OEM2D_IMAGER
OEM 2D imager is installed.
S ITC_DEVID_INTERMEC2D_IMAGER
Intermec 2D imager is installed.
S ITC_DEVID_SE900_LASER
SE900 laser is installed.
S ITC_DEVID_SE900HS_LASER
SE900HS laser is installed.
The high bit indicates whether the S6 scanning engine is installed. The bit mask for this is ITC_DEVID_S6ENGINE_MASK. A non-zero val­ue indicates that the S6 scanning engine is installed.
267700 Series Color Mobile Computer User’s Manual
ProgrammingChapter 7
S ITC_NVPARM_WAN_INSTALLED
This 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 that no WAN radio is installed.
S ITC_NVPARM_WAN_FREQUENCY
This IOCTL reads the state of the WAN radio frequency flag. A BOOLEAN 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.
S ITC_NVPARM_WAN_RADIOTYPE
This IOCTL reads the WAN radio ID installed by manufacturing. A BYTE is returned in the buffer pointer to by lpOutBuffer which indi­cates the type of WAN radio hardware installed. The maximum possible value returned is ITC_DEVID_WANRADIO_MAX. The current defi­nitions are:
S ITC_DEVID_WANRADIO_NONE
No WAN radio installed.
S ITC_DEVID_WANRADIO_SIERRA_SB555
CDMA Sierra Wireless radio.
S ITC_DEVID_WANRADIO_XIRCOM_GEM3503
GSM/GPRS Intel (Xircom) radio.
S ITC_DEVID_WANRADIO_SIEMENS_MC45
GSM/GPRS Siemens radio.
S ITC_NVPARM_80211_INSTALLED
This IOCTL reads the state of the 802.11b radio installed flag. A BOOLEAN DWORD is returned in the buffer pointed to by lpOutBuf- fer. TRUE indicates that the 802.11b radio is installed. FALSE indicates that no 802.11b radio is installed.
S ITC_NVPARM_80211_RADIOTYPE
This IOCTL reads the 802.11b radio ID installed by manufacturing. A BYTE is returned in the buffer pointer to by lpOutBuffer that indicates the type of 802.11b radio hardware installed. The maximum possible value returned is ITC_DEVID_80211RADIO_MAX. The current defi­nitions are:
S ITC_DEVID_80211RADIO_NONE
No 802.11b radio installed.
S ITC_DEVID_80211RADIO_INTEL_2011B
Intel 2011B radio installed.
S ITC_NVPARM_BLUETOOTH_INSTALLED
This IOCTL reads the state of the Bluetooth radio installed flag. A BOOLEAN 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.
268 700 Series Color Mobile Computer User’s Manual
ProgrammingChapter 7
S ITC_NVPARM_SERIAL2_INSTALLED
This IOCTL reads the state of the serial 2 (COM2) device installed flag. A BOOLEAN DWORD is returned in the buffer pointed to by lpOutBuffer. TRUE indicates that the serial 2 device is installed. FALSE indicates that no serial 2 device is installed.
S ITC_NVPARM_VIBRATE_INSTALLED
This IOCTL reads the state of the vibrate device installed flag. A BOOLEAN DWORD is returned in the buffer pointed to by lpOutBuf- fer. TRUE indicates that the vibrate device is installed. FALSE indicates that no vibrate device is installed.
S ITC_NVPARM_LAN9000_INSTALLED
This IOCTL reads the state of the Ethernet device installed flag. A BOOLEAN 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.
S ITC_NVPARM_SIM_PROTECT_HW_INSTALLED
This IOCTL reads the state of the SIM card protection hardware installed flag. A BOOLEAN DWORD is returned in the buffer pointed to by lpOutBuffer. TRUE indicates that the SIM card protection hard- ware is installed. FALSE indicates that no SIM card protection hardware is installed.
S ITC_NVPARM_SIM_PROTECT_SW_INSTALLED
This IOCTL reads the state of the SIM card protection software installed flag. A BOOLEAN DWORD is returned in the buffer pointed to by lpOutBuffer. TRUE indicates that the SIM card protection soft- ware is installed. FALSE indicates that no SIM card protection s oftware is installed.
269700 Series Color Mobile Computer User’s Manual
ProgrammingChapter 7
IOCTL_HAL_ITC_WRITE_SYSPARM
Describes and enables the registry save location.
Usage
#include “oemioctl.h”
Syntax
BOOL KernelIoControl( IOCTL_HAL_ITC_WRITE_SYSPARM,LPVOID
lpInBuf,DWORD nInBufSize, LPVOID lpOutBuf, DWORD nOutBufSize, LPDWORD lpBytesReturned );
Parameters
lpInBuf A single byte that may be one of the id values.
nInBufSize Must be set to the size of the lpInBuf in bytes.
lpOutBuf Must point to a buffer large enough to hold the data to
nOutBufSize The size of lpOutBuf in bytes.
See “ID Field Values”below.
be written to the non-volatile data store.
lpBytesReturned The number of bytes returned by the function.
Return Values
Returns TRUE if function succeeds. Returns FALSE if the function fails. GetLastError() may be used to get the error value. Either ERROR_INVALID_PARAMETER or ERROR_INSUFFICIENT_BUFFER may be returned when this function is used to get the error.
ID Field Values
The id field of lpInBuf may be one of the following values:
S ITC_REGISTRY_LOCATION
This IOCTL sets the default location for where to write the registry when RegFlushKey() is called by an application. The registry may be saved to Flash, a CompactFlash storage card or a SecureDigital storage card. lpOutBuf must point to a buffer that contains a byte value of “1” for the CompactFlash card or “2” for the SecureDigital card to specify the location.
S ITC_REGISTRY_SAVE_ENABLE
This function enables or disables the save registry to non-volatile media feature of the RegFlushKey() function. lpOutBuf must be set to zero (FALSE) if the feature is to be disabled or one (TRUE) if the feature is to be enabled.
S ITC_ DOCK_SWITCH
This IOCTL sets a position of the dock switch. The dock switch may be set to either “modem” or “serial” positions. lpOutBuf must point to a buffer that contains a byte value of either DOCK_MODEM or DOCK_SERIAL as defined in OEMIOCTL.H; the value specifies the position the switch is to be set.
270 700 Series Color Mobile Computer User’s Manual
ProgrammingChapter 7
S ITC_ WAKEUP_MASK
This IOCTL sets a bit mask that represents the mask for the five pro­grammable wakeup keys. The I/O key is not a programmable wakeup key. By default it is always the system resume key and all other keys are set to disable key wakeup. A zero in a bit position masks the wakeup for that key. A one in a bit position enables wakeup for that key. lpOutBuf must 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 the following 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 0x10
S ITC_AMBIENT_KEYBOARD
This IOCTL sets the threshold for the keyboard ambient sensor. This can be a value from 0 (always off ) to 255 (always on). lpOutBuf must point to a buffer that contains a byte value of the desired setting.
S ITC_AMBIENT_FRONTLIGHT
This IOCTL sets the threshold for the frontlight ambient sensor. This can be a value from 0 (always off ) to 255. lpOutBuf must point to a buffer that contains a byte value of the desired setting.
271700 Series Color Mobile Computer User’s Manual
ProgrammingChapter 7
IOCTL_HAL_GET_DEVICEID
This 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. The UUID 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”
Syntax
BOOL KernelIoControl( IOCTL_HAL_GET_DEVICEID,LPVOID
lpInBuf,DWORD nInBufSize,LPVOID lpOutBuf,DWORD nOutBufSize,LPDWORD lpBytesReturned );
Parameters
lpInBuf Should be set to NULL. STRICT_ID settings are not
lpInBufSize Should be set to zero.
supported.
lpOutBuf Must point to a UNIQUE_DEVICEID structure as
defined by DEVICEID.H if the UUID is to be returned.
nOutBufSize The size of the UNIQUE_DEVICEID in bytes if the
UUID is to be returned. A DEVICE_ID as defined by PKFUNCS.H is returned if the size in bytes is greater than or equal to sizeof(DEVICE_ID).
lpBytesReturned The number of bytes returned by the function.
Return Values
Returns TRUE if function succeeds. Returns FALSE if the function fails. GetLastError() may be used to get the extended error value.
272 700 Series Color Mobile Computer User’s Manual
IOCTL_HAL_GET_OAL_VERINFO
Returns the HAL version information of the Pocket PC image.
Usage
#include “oemioctl.h”
Syntax
BOOL KernelIoControl( IOCTL_HAL_GET_OAL_VERINFO,LPVOID
lpInBuf,DWORD nInBufSize,LPVOID lpOutBuf,DWORD nOutBufSize,LPDWORD lpBytesReturned );
Parameters
lpInBuf Should be set to NULL.
lpInBufSize Should be set to zero.
lpOutBuf Must point to a VERSIONINFO structure as defined by
ProgrammingChapter 7
OEMIOCTL.H. The fields should have these values:
cboemverinfo
S
verinfover
S
sig;
S
id;
S
tgtcustomer
S
tgtplat
S
tgtplatversion
S
tgtcputype[8];
S
tgtcpu
S
tgtcoreversion
S
date
S
time
S
sizeof (tagOemVerInfo); 1 “ITC\0” ‘N’ “” SeaRay Current build version number “Intel\0” “PXA250\0”; “” Build time Build date
nOutBufSize The size of VERSIONINFO in bytes.
lpBytesReturned Returns sizeof(PVERSIONINFO).
Return Values
Returns TRUE if function succeeds. Returns FALSE if the function fails. GetLastError() may be used to get the extended error value.
273700 Series Color Mobile Computer User’s Manual
ProgrammingChapter 7
IOCTL_HAL_GET_BOOTLOADER_VERINFO
Returns the HAL version information of the Pocket PC image.
Usage
#include “oemioctl.h”
Syntax
BOOL KernelIoControl( IOCTL_HAL_GET_OAL_VERINFO,LPVOID
lpInBuf, DWORD nInBufSize,LPVOID lpOutBuf,DWORD nOutBufSize,LPDWORD lpBytesReturned );
Parameters
lpInBuf Should be set to NULL.
lpInBufSize Should be set to zero.
lpOutBuf Must point to a VERSIONINFO structure as defined by
OEMIOCTL.H. The fields should have these values:
cboemverinfo
S
verinfover
S
sig;
S
id;
S
tgtcustomer
S
tgtplat
S
tgtplatversion
S
tgtcputype[8];
S
tgtcpu
S
tgtcoreversion
S
date
S
time
S
Sizeof (tagOemVerInfo); 1 “ITC\0” ‘B’ “” SeaRay Current build version number of the bootstrap loader “Intel\0”; “PXA250\0” “” Build time Build date
nOutBufSize The size of VERSIONINFO in bytes.
lpBytesReturned The number of bytes returned to lpOutBuf.
Return Values
Returns TRUE if function succeeds. Returns FALSE if the function fails. GetLastError() may be used to get the extended error value.
274 700 Series Color Mobile Computer User’s Manual
IOCTL_HAL_WARMBOOT
Causes the system to perform a warm-boot. The object store is retained.
Usage
#include “oemioctl.h”
Syntax
BOOL KernelIoControl( IOCTL_HAL_WARMBOOT,LPVOID
lpInBuf,DWORD nInBufSize,LPVOID lpOutBuf,DWORD nOutBufSize,LPDWORD lpBytesReturned );
Parameters
lpInBuf Should be set to NULL.
lpInBufSize Should be set to zero.
lpOutBuf Should be NULL.
nOutBufSize Should be zero.
Return Values
None.
ProgrammingChapter 7
IOCTL_HAL_COLDBOOT
Causes the system to perform a cold-boot. The object store is cleared.
Usage
#include “oemioctl.h”
Syntax
BOOL KernelIoControl( IOCTL_HAL_COLDBOOT,LPVOID
lpInBuf,DWORD nInBufSize,LPVOID lpOutBuf,DWORD nOutBufSize,LPDWORD lpBytesReturned );
Parameters
lpInBuf Should be set to NULL.
lpInBufSize Should be set to zero.
lpOutBuf Should be NULL.
nOutBufSize Should be zero.
Return Values
None.
275700 Series Color Mobile Computer User’s Manual
ProgrammingChapter 7
IOCTL_HAL_GET_RESET_INFO
This IOCTL code allows software to check the type of the most recent re­set.
Usage
#include “oemioctl.h”
Syntax
BOOL KernelIoControl( IOCTL_HAL_GET_RESET_INFO,LPVOID
lpInBuf,DWORD nInBufSize,LPVOID lpOutBuf,DWORD nOutBufSize,LPDWORD lpBytesReturned );
Parameters
lpInBuf 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 type DWORD 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 1
nOutBufSize The size of HAL_RESET_INFO in bytes.
lpBytesReturned The number of bytes returned by the function.
Return Values
Returns TRUE if function succeeds. Returns FALSE if the function fails. GetLastError() may be used to get the extended error value.
276 700 Series Color Mobile Computer User’s Manual
IOCTL_HAL_GET_BOOT_DEVICE
This IOCTL code allows software to check which device CE booted from.
Usage
#include “oemioctl.h”
Syntax
BOOL KernelIoControl( IOCTL_HAL_GET_BOOT_DEVICE,LPVOID
lpInBuf,DWORD nInBufSize,LPVOID lpOutBuf,DWORD nOutBufSize,LPDWORD lpBytesReturned );
Parameters
lpInBuf Should be set to NULL.
lpInBufSize Should be set to zero.
lpOutBuf Must point to a buffer large enough to hold a DWORD
#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 6
ProgrammingChapter 7
(4 bytes) that contains the boot device. The following boot devices are supported:
nOutBufSize The size of lpOutBuf in bytes (4).
lpBytesReturned The number of bytes returned by the function.
Return Values
Returns TRUE if function succeeds. Returns FALSE if the function fails. GetLastError() may be used to get the extended error value.
277700 Series Color Mobile Computer User’s Manual
ProgrammingChapter 7
IOCTL_HAL_REBOOT
Causes the system to perform a warm-boot. The object store is retained.
Usage
#include “oemioctl.h”
Syntax
BOOL KernelIoControl( IOCTL_HAL_REBOOT,LPVOID lpInBuf,DWORD nInBufSize,LPVOID lpOutBuf,DWORD nOutBufSize,LPDWORD lpBytesReturned );
Parameters
lpInBuf Should be set to NULL.
lpInBufSize Should be set to zero.
lpOutBuf Should be NULL.
nOutBufSize Should be zero.
Return Values
None.
278 700 Series Color Mobile Computer User’s Manual
IOCTL_PROCESSOR_INFORMATION
Returns processor information.
Usage
#include “pkfuncs.h”
Syntax
BOOL KernelIoControl( IOCTL_PROCESSOR_INFORMATION,LPVOID
lpInBuf,DWORD nInBufSize,LPVOID lpOutBuf,DWORD nOutBufSize,LPDWORD lpBytesReturned );
Parameters
Parameters:
lpInBuf Should be set to NULL.
lpInBufSize Should be set to zero.
lpOutBuf Should be a pointer to the PROCESSOR_INFO
ProgrammingChapter 7
structure. The PROCESSOR_INFO structure stores information that describes the CPU more descriptively.
typedef __PROCESSOR_INFO { WORD wVersion; // Set to value 1 WCHAR szProcessorCore[40]; // “ARM\0” WORD wCoreRevision; // 4 WCHAR szProcessorName[40]; // “PXA250\0” WORD wProcessorRevision; // 0 WCAHR szCatalogNumber[100]; // 0 WCHAR szVendor[100]; // “Intel Corporation\0” DWORD dwInstructionSet; // 0 DWORD dwClockSpeed; // 400 }
nOutBufSize Should be set to sizeof(PROCESSOR_INFO) in bytes.
lpBytesReturned Returns sizeof(PROCESSOR_INFO);
Return Values
Returns TRUE if function succeeds. Returns FALSE if the function fails. GetLastError() may be used to get the extended error value.
279700 Series Color Mobile Computer User’s Manual
ProgrammingChapter 7
IOCTL_GET_CPU_ID
Returns Xscale processor ID.
Usage
#include “oemioctl.h”
Syntax
BOOL KernelIoControl( IOCTL_GET_CPU_ID,LPVOID lpInBuf, DWORD nInBufSize,LPVOID lpOutBuf,DWORD nOutBufSize,LPDWORD lpBytesReturned );
Parameters
lpInBuf Should point to a CPUIdInfo structure defined in
OEMIOCTL.H.
lpInBufSize Should be sizeof(CPUIdInfo).
lpOutBuf Should be NULL.
nOutBufSize Should be set to 0.
lpBytesReturned Returns sizeof(PROCESSOR_INFO);
Return Values
Returns TRUE if function succeeds. Returns FALSE if the function fails. GetLastError() may be used to get the extended error value.
Reboot Func tions
There 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_REBOOT
IOCTL_HAL_REBOOT performs a warm -boot. See page 278.
IOCTL_HAL_COLDBOOT
Invoking the KernelIOControl function with IOCTL_HAL_COLDBOOT forces a cold reboot. This resets the 700 Series Computer and reloads Windows CE as if a power-up had been performed. The contents of the Windows CE RAM-based object store are discarded. See page 275.
IOCTL_HAL_WARMBOOT
This function is supported on the 700 Series Computers. It performs a warm boot of the system, preserving the object store. See page 275.
280 700 Series Color Mobile Computer User’s Manual
Loading...