Metrologic IS4910 Series Programmer's Manual
Metrologic IS4910 Series Programmer's Manual

Metrologic IS4910 Series Programmer's Manual

Metrologic instruments area imaging engine programmer's manual
Table of Contents

Advertisement

Quick Links

METROLOGIC INSTRUMENTS, INC.
IS4910 Series
Area Imaging Engine
Programmer's Manual

Advertisement

Table of Contents
loading
Need help?

Need help?

Do you have a question about the IS4910 Series and is the answer not in the manual?

Questions and answers

Subscribe to Our Youtube Channel

Summary of Contents for Metrologic IS4910 Series

  • Page 1 METROLOGIC INSTRUMENTS, INC. IS4910 Series Area Imaging Engine Programmer’s Manual...
  • Page 2 Copyright © 2008 by Metrologic Instruments, Inc. All rights reserved. No part of this work may be reproduced, transmitted, or stored in any form or by any means without prior written consent, except by reviewer, who may quote brief passages in a review, or provided for in the Copyright Act of 1976.
  • Page 3: Table Of Contents

    ABLE OF ONTENTS IS4910 S YSTEM ARDWARE RCHITECTURE IS4910 S VERVIEW OF THE OFTWARE IS4910 Device Driver and Its Configuration Parameters ... 3 Minimum and Maximum Illumination Times ... 4 Image Sensor Gain... 4 Pixel Clock ... 4 Data Readout Order ... 5 Image Size...
  • Page 4 ABLE OF ONTENTS Window of Interest... 11 camSetCenteredWOI...12 camSetWOI ...12 camGetWOI ...12 camGetImageSize ...13 Gain ... 13 camSetGain_db ...13 camGetGain_db...13 camSetAutoGainRange_db ...14 camGetAutoGainRange_db...14 Image Integration Time (Exposure)... 14 camSetIntegrationDuration ...15 camGetIntegrationDuration...15 camSetAutoExpoRange...15 camGetAutoExpoRange ...16 Readout Order... 16 camSetReadoutOrder ...16 camGetReadoutOrder...16 Illumination ...
  • Page 5 ABLE OF ONTENTS Aiming APIs ... 22 camTurnAimingOn... 22 camTurnAimingOff... 22 camGetAimingStatus... 22 Automatic Brightness Adjustment APIs... 23 camAdjustBrightness... 23 camSetAutoBrightnessControl ... 23 camGetAutoBrightnessControl ... 24 IS4910 D ... 25 EVICE RIVER Installation Procedure... 25 Installing Driver in the Running OS ... 25 Including Driver in the Target OS Image ...
  • Page 7: Is4910 System Hardware Architecture

    IS4910 S YSTEM ARDWARE Figure 1: Communication with the image sensor is done over two buses – the control bus (I The control bus is used to send commands to the image sensor, and the data bus is used to transfer images from the image sensor to the host system.
  • Page 8 VERVIEW OF THE The IS4910 camera engine cannot operate on its own and must be supported by the underlying hardware and software systems. The IS4910 user system software architecture is shown on Figure 2. Metrologic is currently targeting user systems that run Microsoft Windows CE Metrologic is fully supporting an Intel PXA270 processing platform.
  • Page 9: Overview Of The Is4910 Software Components

    VERVIEW OF THE IS4910 Device Driver and Its Configuration Parameters IS4910 Device Driver is a software component that does all the physical communications with IS4910 camera device. It is pre-compiled as a DLL (vuqdrv.dll) for Windows CE OS and a particular processing platform and must be properly installed on the target device –...
  • Page 10: Minimum And Maximum Illumination Times

    VERVIEW OF THE Minimum and Maximum Illumination Times These values, specified in microseconds, control the IS4910 illumination system in the snapshot mode. The minimum illumination time specifies the minimum time the illumination flash should last when the camera is operating in the snapshot mode. The maximum illumination time specifies the maximum time the illumination flash should last when the camera is operating in the snapshot mode.
  • Page 11: Data Readout Order

    Omniplanar Barcode Decoding Library SwiftDecoder An optional decoding library SwiftDecoder is available upon request under a license agreement. Please contact your sales representative at Metrologic Instruments, Inc. (www.metrologic.com), or Omniplanar, Inc. (www.omniplanar.com) for details. Metrologic Demo Application The Metrologic Demo Application is a pre-compiled executable program demonstrating the basic capabilities of the IS4910 camera.
  • Page 12: Installing Is4910 Software

    IS4910 S NSTALLING Installation of the IS4910 software is a two-stage process. In the first stage, the IS4910 software development kit (SDK) must be installed on a Windows PC. To perform the first-stage installation, insert the IS4910 CD into the CD drive of the Windows PC and follow the on-screen instructions. (If the auto- run feature is disabled on your Windows PC, run setup.exe from the root directory on the CD.) Upon installation of the IS4910 SDK, the folder “VuQuest2D SDK”...
  • Page 13: Easy Downloading Using Device Setup Tool And Ms Activesync Connection

    IS4910 S NSTALLING Easy Downloading Using Device Setup Tool and MS ActiveSync Connection The easiest way to download software to the target device is to use the installation program "Device Setup Tool", which is installed on the host Windows PC during the first-stage installation of the IS4910 SDK.
  • Page 14: Manual Downloading Using Ms Activesync Connection

    IS4910 S NSTALLING Manual Downloading Using MS ActiveSync Connection Alternatively to using the Device Setup Tool, the IS4910 target device-specific software components can be manually transferred to the target device by following the procedure described below. 1. Make sure that Microsoft ActiveSync software is installed on your Windows PC. Note that the IS4910 Software Installation CD contains MS ActiveSync installation package and provides an option to install it on your PC during the IS4910 software installation procedure.
  • Page 15: Camera Support Library Cam Lib

    AMERA UPPORT The IS4910 Camera Support Library CamLib provides convenient interface between an application and the IS4910 Device Driver. The library is available in two versions: static library (camlib.dll) and dynamic- link library (camdll.dll). Both versions provide exactly the same set of high-level APIs to acquire images, program, re-program or inquire the status of the camera device.
  • Page 16: Camopen

    AMERA UPPORT camOpen This function establishes communication with the specified camera device. Note: The target OS must support the MultiByteToWideChar function in order for the camera support library to open the device driver properly. Prototype: int camOpen (char *device_name, char *ctl_bus_name, int *p_dev_type); Parameters: device_name - [in] must be a valid IS4910 camera device name registered in the operating system.
  • Page 17: Clocks

    AMERA UPPORT Clocks The IS4910 camera has the master and pixel clocks. The master clock provides the image sensor with the input clock. The pixel clock used by the host system to sample the sensor data. The master clock is provided by the onboard oscillator and its frequency is 48 MHz. Allowed pixel clock frequencies on PXA270 platform are: 12 and 24 MHz.
  • Page 18: Camsetcenteredwoi

    AMERA UPPORT camSetCenteredWOI This function sets the window of interest (WOI) of the given size centered horizontally and vertically in the field of view of the camera. Prototype: int camSetCenteredWOI (int cam_handle, int img_width, int img_height); Parameters: cam_handle - [in] handle to the camera device returned by the camOpen function. img_width - [in] image width, in pixels (should be a multiple of 16, the maximum value is 1280).
  • Page 19: Camgetimagesize

    AMERA UPPORT camGetImageSize This function returns the size of the window of interest (WOI). Prototype: int camGetImageSize (int cam_handle, int *img_width, int *img_height, int *num_bytes_per_row); Parameters: cam_handle - [in] handle to the camera device returned by the camOpen function. img_width - [out] image width, in pixels.
  • Page 20: Camsetautogainrange_Db

    AMERA UPPORT Parameters: cam_handle - [in] handle to the camera device returned by the camOpen function. gain - [out] the gain value, in dB. Can be in the range from 0 to 24 dB. Return Value: 0: Success; -1: Failure camSetAutoGainRange_db This function sets the minimum and maximum boundaries for the gain value during an execution of the automatic brightness adjustment, see the function camAdjustBrightness() for more details.
  • Page 21: Camsetintegrationduration

    AMERA UPPORT For the purposes of automatic brightness adjustments, an application can specify the minimum and maximum boundaries for the image integration time. By default, the minimum image integration time is set to 10 µs and the maximum is set to 8000 µs. If the camera is running in the video mode, it must be stopped or paused before changing the image integration time.
  • Page 22: Camgetautoexporange

    AMERA UPPORT camGetAutoExpoRange This function returns the minimum and maximum boundaries for the image integration time during an execution of the automatic brightness adjustment, see the function camAdjustBrightness() for more details. Prototype: int camGetAutoExpoRange (int cam_handle, long *min_time_µs, long *max_time_µs); Parameters: cam_handle - [in] handle to the camera device returned by the camOpen function.
  • Page 23: Illumination

    AMERA UPPORT Parameters: cam_handle - [in] handle to the camera device returned by the camOpen function. reverse_left_right - [out] 0 if normal readout from left to right, or 1 if inverted. reverse_top_bottom - [out] 0 if normal readout from top to bottom, or 1 if inverted. Return Value: 0: Success;...
  • Page 24: Camgetminflashtimer

    AMERA UPPORT Prototype: int camSetMinFlashTime(int cam_handle, long min_time_µs); Parameters: cam_handle - [in] handle to the camera device returned by the camOpen function. min_time_µs - [in] minimum illumination time, in microseconds. Return Value: 0: Success; -1: Failure camGetMinFlashTime This function returns the minimum illumination flash time for the snapshot mode of camera operation. Prototype: int camGetMinFlashTime(int cam_handle, long *min_time_µs);...
  • Page 25: Camacquireimage

    AMERA UPPORT camAcquireImage This function performs an image acquisition and delivers the image data to the application. If called when the camera is running in the video mode, the function delivers the image of the most recent video frame. The image buffer of the size sufficient to hold at least one frame of the entire image (1280 x 960 eight-bit pixels maximum) should be allocated by the application prior to calling the function, and the pointer to it along with the information about the buffer’s size should be passed to the function.
  • Page 26: Camstartvideo

    AMERA UPPORT Parameters: cam_handle - [in] handle to the camera device returned by the camOpen function. image_buf - [out] image data buffer (optional in the video mode). image_buf_size - [in] image data buffer’s size, in bytes (optional in the video mode). frame_offset - [out] if not NULL, the frame offset, in bytes, starting with 0.
  • Page 27: Camstopvideo

    AMERA UPPORT camStopVideo This function stops video mode and turns the camera back into snapshot mode. Prototype: int camStopVideo (int cam_handle); Parameters: cam_handle - [in] handle to the camera device returned by the camOpen function. Return Value: 0: Success; -1: Failure camPauseVideo This function pauses the video mode.
  • Page 28: Aiming Apis

    AMERA UPPORT Aiming APIs The camera’s aiming system can be turned on or off by calling camTurnAimingOn() or camTurnAimingOff() respectively. Note, however, that even if the aiming is turned on, the function camStartVideo() turns the aiming off until the video is stopped. camTurnAimingOn This function turns the IS4910 camera’s aiming system on.
  • Page 29: Automatic Brightness Adjustment Apis

    AMERA UPPORT Automatic Brightness Adjustment APIs The set of automatic brightness adjustment APIs allows an application to automatically adjust the camera’s gain and image integration time based on the quality of the previous images. camAdjustBrightness This function adjusts the IS4910 camera’s gain and/or image integration time (exposure) based on the known quality of the last image and the desired correction, in dB, to this quality.
  • Page 30: Camgetautobrightnesscontrol

    AMERA UPPORT The flags parameter indicates whether the gain and/or image integration time (exposure) are allowed to be adjusted, and whether the new values should be applied to the camera immediately after taking the current image or postponed until and applied upon the next image acquisition. Note that in the snapshot mode adjustment of the image integration time is not allowed regardless of the flags parameter.
  • Page 31: Is4910 Device Driver

    IS4910 D EVICE RIVER The device driver is a software component that provides the low-level interface between operating system and the IS4910 camera module. It is strongly recommended that the applications use CamLib APIs to communicate with the IS4910 camera instead of calling the IS4910 Device Driver directly. The CamLib APIs provide an easier and more convenient way of communicating with the camera.
  • Page 32: Registry Settings

    IS4910 D EVICE RIVER Registry Settings The registry settings allow to load and to configure the driver. The driver must be properly configured on the target device in order to work properly. For that purpose the driver reads the configuration parameters from the registry during loading.
  • Page 33 IS4910 D EVICE RIVER Value Type GPIO_CIF_FV DWORD GPIO_CIF_LV DWORD GPIO_CIF_PCLK DWORD GPIO_CIF_DD0 DWORD GPIO_CIF_DD1 DWORD GPIO_CIF_DD2 DWORD GPIO_CIF_DD3 DWORD GPIO_CIF_DD4 DWORD GPIO_CIF_DD5 DWORD GPIO_CIF_DD6 DWORD GPIO_CIF_DD7 DWORD GPIO_TRIGGER DWORD GPIO_ILLUM DWORD GPIO_AIMER DWORD Description Specifies the GPIO pin connected to the “VSYNC” signal. If it’s not specified the driver fails to load.
  • Page 34 IS4910 D EVICE RIVER Value Type DWORD POLARITY_TRIGGER DWORD POLARITY_ILLUM POLARITY_AIMER DWORD PixelClock DWORD I2CBusClock DWORD IntegrationTime DWORD MinFlashTime DWORD IllumControl DWORD Gain1000 DWORD DWORD ReverseRows ReverseCols DWORD ImgWidth DWORD DWORD ImgHeight Description (Optional) Defines the polarity (active “high” or “low”) of the “Trigger”...
  • Page 35: Power Management

    VuQuest2D.ini. If the I2C_PowerOff setting is 1, then the IS4910 device driver disables I drives I C lines low as required by the IS4910 specification (see IS4910 Series Area Imaging Engine Integration Guide for details), making I 0, then the driver does not change the status of I in the host system.
  • Page 36: Appendix A: Driver Registration Application

    A: D PPENDIX RIVER The driver registration application allows to install or to uninstall the IS4900 device driver into the operating system running on the target device. It is a simple console application. The installed device name is constructed from the VUQ prefix appended the index number. On success the application exits with zero value, otherwise the exit code is the system error value.
  • Page 37: Appendix B: Is4910 Driver Initialization File

    B: IS4910 D PPENDIX RIVER NITIALIZATION The IS4910 Driver initialization file VuQuest2D.ini contains the driver configuration settings. The file uses the following format: [Device] SubKey= Index= DLL= Path= [Pins] GPIO_CIF_FV= GPIO_CIF_LV= GPIO_CIF_PCLK= GPIO_CIF_DD0= GPIO_CIF_DD1= GPIO_CIF_DD2= GPIO_CIF_DD3= GPIO_CIF_DD4= GPIO_CIF_DD5= GPIO_CIF_DD6= GPIO_CIF_DD7= GPIO_TRIGGER= GPIO_ILLUM= GPIO_AIMER=...
  • Page 38 B: IS4910 D PPENDIX RIVER NITIALIZATION Index (optional) defines the instance number of the device and can be a single decimal digit starting from 1 (first instance) to 9 (ninth instance) and 0 (tenth instance). The Index number is appended to the VUQ prefix to construct the device name.
  • Page 39: Initialization File

    B: IS4910 D PPENDIX RIVER NITIALIZATION Gain1000 (optional) defines the image sensor absolute gain multiplied by 1000. It ranges from 1000 (Gain = 1 or 0 dB) to 1600 (Gain = 16 or 24.08 dB). Default is 1000 (Gain = 1 or 0 dB). PixelClock (optional) defines the image sensor pixel clock frequency, in Hz.
  • Page 40: Appendix C: Demo Application

    C: D PPENDIX The demo application CamTest is simple and easy to use. Just follow the on-screen instructions. The Push me button starts/stops or continues image acquisition and real-time displaying. The currently displayed image can be stored in BMP file (\My Documents\My Pictures\vuq.bmp) by pressing the Save button.
  • Page 42 January 2008 Revision 2.0 0 0 - 0 2 2 9 1 A...

Table of Contents