Summary of the content on the page No. 1
™
IMAGETEAM 4X00 Series
For Adaptus Imaging Technology Imagers:
IT4000, IT4100, and IT4300
Hardware Interface Layer Specification
User’s Guide
Summary of the content on the page No. 2
Disclaimer Hand Held Products, Inc. d/b/a Hand Held Products (“Hand Held Products”) reserves the right to make changes in specifications and other information contained in this document without prior notice, and the reader should in all cases consult Hand Held Products to determine whether any such changes have been made. The information in this publication does not represent a commitment on the part of Hand Held Products. Hand Held Products shall not be liable for technical or editorial err
Summary of the content on the page No. 3
Laser Eye Safety Statement for IT4300 Series Engines The IT4300 is intended for use in CDRH/IEC Class 2 devices. Note: It is the OEM manufacturer’s responsibility to comply with applicable regulation(s) in regard to standards for specific equipment combinations. Caution: Use of controls or adjustment or performance of procedures other than those specified herein may result in hazardous radiation exposure.
Summary of the content on the page No. 4
Summary of the content on the page No. 5
Table of Contents Chapter 1 - Introduction and Overview Design Overview .................................................................................................................................... 1 User Layer........................................................................................................................................ 1 OEM API Layer ............................................................................................................................... 1
Summary of the content on the page No. 6
ii IMAGETEAM™ 4X00 Series Hardware Interface Layer Specification User’s Guide
Summary of the content on the page No. 7
Introduction and Overview This document is an overview of the structure of the IT4X00 Series OEM imaging software provided by Hand Held Products. Detailed information that describes the Hand Held Products OEM Application Programming Interface (IMAGETEAM 4X00 SDK User’s Guide) is provided as a part of that imaging software. Design Overview The Hand Held Products OEM imaging software supports a number of different Hand Held Products imaging engines while exposing the user to a common programmi
Summary of the content on the page No. 8
Alphabetic Function List The following is a list of functions that the ImagerHardware DLL must export to support the imaging device driver. The functions described below are specific to the IC Media imager and the ICMedia product specification and should be reviewed for coherency with this document. AimIsOnICMedia This function returns the state of the aimer. BOOL AimIsOnICMedia( void ) Returns Zero if OFF, non-zero if ON. AimOffICMedia This function turns off the aimer. BOOL TurnAimerOffICMed
Summary of the content on the page No. 9
BindPhysicalMemoryToVirtualMemoryICMedia This function binds the physical memory of an image, specified by "hPhysical," to a virtual memory location specified by "pVirtual." Note: It is possible that multiple calls to this function may be made with the same physical pseudo-handle, but a different virtual address, i.e., binding multiple virtual addresses to the same physical space at the same time. This is normal. DWORD BindPhysicalMemoryToVirtualMemoryICMedia( DWORD hPhysical, void *pVirtual
Summary of the content on the page No. 10
Returns Zero on failure, non-zero on success. DisableImageLineDataProcessingICMedia This function disables the calling of the ImageLineDataCallback function registered with RegisterImageLineDataNotificationICMedia (see page 1-11). DWORD DisableImageLineDataInterruptICMedia( void ) Returns Zero on failure, non-zero on success. DisableVsyncInterruptICMedia This function disables the calling of the Vsync call-back function, registered with RegisterVsyncNotificationICMedia (see page 11), on rece
Summary of the content on the page No. 11
FreePhysicalScanSpaceICMedia This function frees the physical memory for a single image. DWORD FreePhysicalScanSpaceICMedia( DWORD hImage ) Passed Arguments Description DWORD hImage A "pseudo-handle" to a reserved physical memory slot. This was the value returned by AllocatePhysicalScanSpaceICMedia when the space was allocated. Returns DWORD - This function returns non-zero on success, zero on failure. GetFrequencyPerFrameOfLineDataCallbackICMedia This function returns the number of calls made
Summary of the content on the page No. 12
GetImagerPropertiesICMedia This function requests the properties of the imager currently interfacing to the hardware layer. BOOL GetImagerPropertiesICMedia( const DWORD * pBuffIn, DWORD * pBuffOut, DWORD dwLen ) Passed Arguments Description pBuffIn Pointer to a buffer of DWORDs that are TAGs to the properties the scan driver is requesting. pBuffOut Pointer to output buffer that has corresponding values and order to TAGs in pBuffin. dwLen Length of both pBuffin and pBuffOut. Tags: typedef
Summary of the content on the page No. 13
GetRegisterSettingsForHHPExposureControlICMedia This function is used for the hardware DLL to give the driver access to the register settings needed for its hardware platform. The structure below represents the array data type the GetRegisterSettingsForHHPExposureControlICMedia function returns to the driver via the ppRegisterEntries pointer: typedef struct { unsigned char nRegister; unsigned char nValue; } ICMediaRegisterEntry_t; DWORDGetRegisterSettingsForHHPExposureControlICMedia( ICMediaRe
Summary of the content on the page No. 14
IllumOffICMedia This function turns off the illumination LEDs. BOOL TurnLEDsOffICMedia( void ) Returns Zero on failure, non-zero on success. IllumOnICMedia This function turns on the illumination LEDs. BOOL TurnLEDsOnICMedia( void ) Returns Zero on failure, non-zero on success. ImagerIsPoweredICMedia This function indicates whether or not the image engine is currently in powerdown mode. BOOL ImagerIsPoweredICMedia( void ) Returns Zero if the engine is currently in powerdown mode, non-zero if it
Summary of the content on the page No. 15
Returns TRUE if successful, FALSE otherwise. ImagerPowerOnAndResumeICMedia This function controls a physical switch to cycle power on the imager. This is typically implemented for Win CE suspend/resume. DWORD ImagerPowerOnAndSuspendICMedia( DWORD ) Passed Arguments Description 0 Normal case. Win 32 API functions are still allowed. 1 Suspend/Resume. (For example, in Win CE this implies that it is not safe to call Win32 or user layer functions.) 2 Resume, but don't power on. To be powered on
Summary of the content on the page No. 16
InitCaptureICMedia This function indicates that a transfer will begin on the next Vsync pulse, and the image data will go into the physical memory location referenced by "hPhysical." This function can be called at any time during a frame, and the driver relies on the hardware DLL and associated functionality to synchronize to the next Vsync to begin a frame. The Vsync is the border. Anything that comes in before the front edge of a Vsync will initiate a transfer on the next Vsync. Anythin
Summary of the content on the page No. 17
ReadIIC_ICMedia 2 This function uses the i c interface protocol to read data from 'ucSubaddress' register location and places it at the location specified by 'pucBuffer'. unsigned int ReadIIC_ICMedia( unsigned char ucSubaddress, unsigned char *pucBuffer ) Passed Arguments Description unsigned char ucSubaddress The register location where the data will be read from. unsigned char *pucBuffer A pointer to the location where the data from the imager will be stored. Returns Non-zero if data is succ
Summary of the content on the page No. 18
Returns None. ResetTransferHardwareICMedia This function stops a transfer that is either ready to run, or currently running. It also resets the system making it ready for the next call to InitCaptureICMedia. void ResetTransferHardwareICMedia( void ) Returns None. SynchronizedPowerDownICMedia This function puts the imager in power down mode upon receiving the next front edge of Vsync. The IC Media imager freezes when it goes into power down mode, so one of the checks after the power down is t
Summary of the content on the page No. 19
WaitMillisecondsICMedia This function waits the number of milliseconds indicated before returning. void WaitMillisecondsICMedia( DWORD nTime ) Passed Arguments Description NTime The number of milliseconds to delay. Returns None. WriteIIC_ICMedia 2 This function uses the i c interface protocol to write the 'ucBuffer' data to the imager at the 'ucSubaddress' location. DWORD WriteIIC_ICMedia( unsigned char ucSubaddress, const unsigned char *pucBuffer ) Passed Arguments Description unsigned char uc
Summary of the content on the page No. 20
Programming Notes 1. It is essential that callbacks for Vsync processing and Image Line Data processing not run at the same time, for example, with 2 separate threads. It is essential that checks are made in the Hardware Interface DLL to ensure that a call to one callback is complete before a second call to that callback, or a call to the other callback is made. To avoid this, use ISRs that do not allow nesting. Or, if using ISTs in the Windows CE model, use the same thread to process both