============================================================================== ============================================================================== ============================================================================== X X V V LLL LLL IIIII BBBBBB X X V V L L III B B X X V V L L I B B X V V L L I BBBBB X X V V L L I B B X X V V L L L L III B B X X V LLLLLLL LLLLLLL IIIII BBBBBB ============================================================================== ============================================================================== Notes: A) The release requires 42 megs of disk space on a disk with 16K block size. B) Compiler versions: DSP: TMS320 C/ASM - 4.7 XVL Software: xpg.out, xpg.lib, fpg.out, fpg.lib and DSP samples. DOS: MSVC 1.0 (Microsoft C/C++ Compiler 8.0) and ML 6.1 (Assembler) XVL Software: xpgmlib.lib. Borland C 4.5 and Tasm 3.1 (Borland Assembler) XVL Software: xpgblib.lib, inter.exe, ppmhist.exe, pdemo.exe, rtdemo.exe and PC samples. Windows 3.1: MSVC 1.0 (Microsoft C/C++ Compiler) 8.0 and ML 6.1 XVL Software: wxpgmlib.lib, wxpgmlib.dll and wdemo.exe. Windows NT and Windows 95: MSVC 4.0 (Microsoft C/C++ Compiler 10.0) XVL Software: w32xpgml.dll, w32xpgml.lib and w32demo.exe. - Borland 5.0 XVL Software: w32xpgbl.lib, w32xpgbl.dll Direct Draw: DirectX V3.0 C) Note to DSP programmers using the DIPIX xpg.lib. The library uses the TMS320C40 Parallel Runtime Support Library and some of it's header files. This library and it's header files are stored in the PRTS40.SRC file of the TI software package. To build this library read chapter 1 of the "TMS320C4x Parallel Runtime Support Library" manual. Use maker instead of make if using make from BORLAND 4.0. D) The DSP DIPIX printf functions are not currently supported. E) The JPEG image compression software is not currently supported. F) PCI board notes: - emm386.exe must be version 4.49 or greater for use under DOS. - Use of the 16 bit DLL under Windows 95 is not tested or officially supported. Use of the 32 bit DLL is recommended. ============================================================================== XVL-Library Software Revisions ============================================================================== For latest revision information see file Readme.txt ============================================================================== Revision 3.21-09 (02-Dec-1997) 1. New A1) Colour Camera Module (CCM) support. - Defined a new set of Camera Parameter File (CPF) parameters for supporting features built into CCM. Two new CPF sections have been added: [COLOUR CAMERAMODULE] and [COLOUR DECODER]. NOTE: Not all CCM features are implemented presently. LUT-s, Colour Space Converter (CSC), and Hue Saturation Value (HSV) converter are not supported. - DOS and Windows display functions are supporting colour display modes. Display under Windows is limited to the DirectDraw library only. - Defined new image data formats: P_16_BIT_PACKED_555, P_16_BIT_PACKED_565, P_16_BIT_YCRCB_422, P_24_BIT_PACKED_888, P_24_BIT_YCRCB_444, P_32_BIT_PACKED_888X, P_3X8_BIT_COLOUR, P_3X8_BIT_MONOCHROME, and P_2X8_BIT_MONOCHROME. - Added a new image data size: P_DATA_SIZE_24BITS. - An uncompressed colour image storage in TIFF format is supported. (Currently our colour tif files cannot be read by other tiff readers) - A Windows (NT and 95 only) demo in DIPXPG\wdemo called wccm32.exe which uses Direct Draw to display colour images. Note that Windows may not support all the possible colour modes for displaying the image, it worked for P_16_BIT_PACKED_555, P_24_BIT_PACKED_888 and P_32_BIT_PACKED_888X. The source for this demo is in DIPXPG\wdemo\wccm. - CCM samples in DIPXPG\pc\samples\ccm - CCM interpreter scripts rgb555.scr and rgb32.scr. - The following processing function return the error P_ERROR_UNABLE_PROC_DATATYPE if trying to processs a colour image of type (P_8_BIT_PACKED_332, P_16_BIT_PACKED_555, P_16_BIT_PACKED_565, P_16_BIT_YCRCB_422, P_24_BIT_PACKED_888, P_24_BIT_YCRCB_444 or P_32_BIT_PACKED_888X): DBG_DrawBox DBI_ConvertData DBI_GetPixelHistory DBG_DrawCircle DBI_ImageRemap DBI_GetPixelValue DBG_DrawLine DBI_PutPixelValue DBG_WriteText DBI_Label DBI_LineProfile DBI_XYProfile DBI_Fft DBI_InverseFft DBI_Warp DBI_Average DBI_Filter DBI_WarpWithTable DBI_FrameAveraging DBI_FilterMorphology DBI_RealTimeFrameAveraging DBI_FilterSlice DBI_Moment DBI_PatternMatch DPT_TestImage DBI_DrawHistogram DBI_Histogram DBI_Arith DBI_Statistics DBI_ArithBitPlane - The DBK_MmtCreateImage function now returns the error P_ERROR_DS_DT_MISMATCH if the data size specified does not match the colour packed type: P_16_BIT_PACKED_555 expects lDataSize = P_DATA_SIZE_WORD P_16_BIT_PACKED_565 expects lDataSize = P_DATA_SIZE_WORD P_16_BIT_YCRCB_422 expects lDataSize = P_DATA_SIZE_WORD P_24_BIT_PACKED_888 expects lDataSize = P_DATA_SIZE_24BITS P_24_BIT_YCRCB_444 expects lDataSize = P_DATA_SIZE_24BITS P_32_BIT_PACKED_888X expects lDataSize = P_DATA_SIZE_LONGWORD A2) PPM-GEN (APA) - (Description of new functionality) - Numerous samples are included in DIPXPG\pc\samples\ppmgen. The samples are described in a readme.txt within that directory. A3) The samples in DIPXPG\pc\samples are now provided with .exe and with .out files from DIPXPG\dsp\samples A4) Added #ifdef for Linux compiler. 2. Bug fixes. A) PC code: A1) In DPW_DDDisplayImageInWindows added logic to try and recuperate from LOST_SURFACE error (Direct Draw error code). This was happening occasionally when popping out of Windows 95 to a full screen Dos box. B) DSP code: C) Drivers: C1) Fixed multiple PCI bridges support in the Windows NT driver. If you had a Power Grabber board on the other side of a PCI bridge you were not able to see it. ============================================================================== Revision 3.20-42 (20-Nov-1997) 1. New A1) The Windows NT and Windows 95 DLL have been combined into a single DLL, w32xpgml.dll. The same version of 32 bit applications can be run with either operating system. The following files have been deleted: DIPXPG\pc\lib: - wntxpgml.dll, wntxpgml.lib DIPXPG\pc\source: - wntxpgml.def, wntxpgml.mak DIPXPG\wdemo\source: - wntdemo.mak, wntdemo.exe All PCDirect samples contained in the DIPXPG\samples\pcdirect directory structure have been recompiled to a single version that runs under both Windows NT and 95. The new samples are: DIPXPG\samples\pcdirect\rtauto\RTAUTO32.EXE DIPXPG\samples\pcdirect\rtmanual\RTMAN32.EXE DIPXPG\samples\pcdirect\rtprcess\RTPROC32.EXE The Dipix Windows demo is now a single executable for Windows NT and 95. The new demo is called: DIPXPG\wdemo\W32DEMO.EXE A2) The function DPW_AppDDDisplayImageInWindow has been added to the DLL. It uses the Driver to copy data to the Direct Draw surface. It expects the data to have already been sent by the DSP via the user application. Available for 32 Windows applications only. Calling Sequence: long DPW_AppDDDisplayImageInWindows (HWND hWnd, long lWindowWidth, long lWindowHeight) A3) Added function DPV_XDCToVesaDisplay. This function is the same as DPV_VesaDisplayImage except the data is already queued up in the XDC and no call to DPK_XDCGetImage is required. A4) Drivers files and driver setup files are now in: DIPXPG\pc\drivers\nt DIPXPG\pc\drivers\w95 DIPXPG\pc\drivers\setupdpg The setup utility setupdpg is now used for both NT and Windows 95. See DIPXPG\pc\drivers\nt\ntdriver.txt and DIPXPG\pc\drivers\w95\instal95.txt for new installation notes. A5) Driver enhancements: - The NT driver was modified to work around problems with Matrox Digimix boards with MGA chips. - Changes were made to the Windows NT and 95 drivers resulting in improved stabiliy and error handling under PCDirect. - Windows NT and Windows 95 drivers now support the FPG-ISA. A6) Function DBK_SetDspClockSpeed. This function should only be used if the clock speed of the processor is not 50 megahertz. Calling sequence: LONG DBK_SetDspClockSpeed (LONG lProcessorFrequency) Parameters: lProcessorFrequency One of P_PROCFREQ_40MHZ, P_PROCFREQ_45MHZ, P_PROCFREQ_50MHZ or P_PROCFREQ_60MHZ. A7) Borland 5.0 make files for Windows NT deleted along with it's resulting LIB and DLL. Now there is a single 32 bit Borland LIB and DLL, w32xpgbl.lib and w32xpgbl.dll. Note that the w32xpgbl.mak file contains specific paths and should be edited to match the system on which it is to be used. A8) The Windows demo program now includes the warp, slice and label functions. The Filtering dialog box allows the editing of the convolution kernel. The arith function can now use two images operations. A text file wdemo.txt has been included in the wdemo source directory describing all the options available in the demo and how to use them. A9) The STATINFO has a new member, lNumSamples, which is the number of pixels in the calculation window used to compute the statistics. A10)Under Windows NT/95, the XVL now provides support for multiple boards being accessed through a single DLL and Windows driver. This functionality requires one application process for each board used, a single application cannot access multiple boards concurrently in seperate threads. A single application can still access multiple boards in a sequential fashion. Modifications have been made to DPK_InitPCK to support multiple boards. Applications should not fail on error P_ERROR_XPG_NOT_AVAILABLE if more than 1 board was found in the call to DPK_InitPCK. If more than one board is found, the user should use the function DPK_PCKSelectXPG to select the desired board explicitly. The code can alternatively make a call to the new function DPW_PCKSelectBoard to generate a dialog box which allows the user to select between boards. Refer to the Windows Demo sample code in the DIPXPG/WDEMO/SOURCE directory, file WDSETUP.C for an example of this initialization. A11) Added drivers.txt to DIPXPG\pc\drivers. This file introduces the drivers for Windows NT and Windows 95. A12) The install.bat file now detects if Windows NT is running and copies the Dipix NT driver to the NT system directory. 2. Bug fixes. A) PC code: A1) Modified DPW_DisplayImageInWindows to handle images with bit depth greater than 8. A2) setupdpg.exe no longer requires msvcrt40.dll to run. B) DSP code: B1) Fixed DBI_LineProfile make sure that the StartX is <= to the EndX value, and that the StartY <= to the EndY value. B2) - In DBI_RealTimeFrameAveraging, check for errors from the grab function. - Make sure that the buffer being used is a frame averaging buffer. B3) The DBI_Label function now performs a non-destructive slice of the input image. The slice results are stored in the output image instead of back into the input image. B4) Functions DBF_MIOSetVideoSource DBF_MIOSetGain and DBF_MIOSetOffset now return an error if the lMasterSlaveFlag is set to P_SLAVE and there is no slave module defined for that setup. B5) The CPF reader now allows the ClockSelect parameter to be set to P_CLOCKSRC_1 and P_CLOCKSRC_1_MODIFIED on an FPG digital. B6) DBF_GetTriggerInfo now only modified the structure elements of the TriggerInfo parameter specified by the lTrigFieldsMask parameter. B7) Fixed bug that did not allow the exposure/linesync out pulse to exit a DCM module when using the function DBF_StartLineScanOut or DBF_StartExposurePeriodic followed by DBF_QuickGrabHardwareInit. B8) DBF_StartLineScanOut and DBF_StartExposurePeriodic now return an error if the required timer resource is in use by another process. B9) If the CPF parameter OutputPixelDepth is set to P_PIXEL_DEPTH_BYTE for a greater than 8 bit camera, the function DBF_GetCameraDataSize now returns returns a pixel data size of 8. B10) In DBI_SetImageBuffer change the image size in longword computation as it was incorrect for 24 bit data. B11) Fix to DBF_GetBoardConfig to preserve the LUT selection on DCM modules. This utility function was always leaving the DCM with the LUT enabled. This problem appeared in the DIPIX sample W32DEMO and WDEMO when using an XPG/DCM combination. The symptom is that all images acquired appeared as a solid shade on boards with no LUT installed. On boards that contain a LUT, the image may be arbitrarily incorrect depending on the power up contents of the DCM's LUT. B12) Fixed bug introduced inn version 3.10 which caused large grab sequences (200+ images) to hang. B13) Fixed DBK_GetBoardConfig to report LPG correctly (not as an FPG). B14) Fixed DBK_MmtSetCalculationWindow to allow 1 line window. 3. PCDirect New A1) Added support for 2 com port transfers on the XDC A2) Added support for image buffering on both global and local bus if the memory is populated. Bug Fixes B1) In PC Direct when grabbing to VGA, if moving the mouse accross window borders, when the operating system writes information to disk or after performing a resize, move or scroll, there was an occasional flicker in the top 32K of the image, this has been reduced to flicker on a portion of the top line. The effect occurs much less frequenly than the flicker of Ver 3.11. B2) When starting the RT Display Window, occasionally the following message would appear: "Critical Real Time Tansfer Error: -223033387". B3) When moving any window (except the RT Window), the RT Display Window had a blitting effect.(Windows NT only) B4) When minimizing the RT Window it occasionally crashed. (Windows 95 only) B5) Possible erratic mouse cursor behavior for the Auto RT Window. B6) For Manual RT Window, if entire Transfer Window was occluded on the right side of screen and then the RT Window is moved back to display the entire Transfer Portion, the data transfer to the RT Window halted. B7) When entire Transfer Portion of Manual RT Window was occluded by resizing the window vertically, the following error appeared: "Critical Real Time Transfer Error: -11450". B8) For RT Window (Manual and Auto), when performing a suspend the last frame was erased from the RT Window. (Windows 95 only) B9) PCDirect 16 bit transfers to memory were transferring twice as much data as was present in each image. This bug gives the illusion that PCDirect is acquiring at half the frame rate of the camera. The bug appears when acquiring to memory in raster format, if grabbing in interlace format (only valid for interlace cameras), the error code -11106 may have been encountered. B10)PCDirct samples RTAUTO32.EXE and RTMAN32.EXE now restore the palette with a grey scale palette when the applications regains the Windows focus. If another application gains focus and modifies the palette, images running in a PCDirect window may appear pseudo-colored until focus is returned to the PCDirect process. Camera Restrictions C1) A maximum of 2 com ports are supported for grab transfers on any camera type (LinePair not supported in PC Direct). The majority of testing in this release was performed with single com port using RS170 and CCIR cameras. C2) The maximum camera bandwidth tested for FPG and LPG is: 17 million bytes per second using 2 XDC com ports 15 million bytes per second using 1 XDC com port Test performed on a Pentium 133MHz with Windows NT, Windows 95 performance was in the 13-14 Mb/s range. 2 com port does not apply to the FPG analog. C3) The maximum camera bandwidth tested for XPG populated with memory on both buses. global and local bus and using 2 XDC com ports for transfers. 15 million bytes per second to VGA 12.5 million bytes per second to memory. Test performed on a Pentium 133MHz with WindowsNT, Windows 95 measurement was not performed. C4) The following grab features have been tested with PC direct, Frame Holdoff and Frame Skip. Triggering, Exposure, LineSyncOut and Reset have had minimal testing. ============================================================================== Revision 3.10-30 (05-Jun-1997) 1. New A1) A new communications mechanism has been introduced to replace and enhance the XPG Communications Channel (XCC). This new interface replaces the single, polled-I/O, bi-directional XCC FIFO mechanism with a Packet transfer mechanism supporting multiple, interrupt-driven(*), bi-directional communications channels. This new interface provides formal support for asynchronous communications with DSP User functions without the need to detach and re-attach the XCC FIFOs as was the case in previous releases. In addition, the use of interrupt-driven(*) communications reduces CPU usage on the PC by eliminating polling. Furthermore, the blocking I/O provided by the interrupt mechanism lends itself readily for use in multi-threaded applications that can harness the power of the WIN32 Operating System and the powerfull CPU platforms that it runs on. (*) - Interrupt support is provided only under WIN32 compliant Operating Systems. (Currently, Windows 95 and Windows NT). Updated Windows NT and Windows 95 drivers are provided and have to be installed. These drivers now support shared interrupts on PCI boards. A2) PC Direct software. (Direct grab from the DSP to the PC.) Restrictions , Hints, Tests/Tasks still to be performed: ======================================================== 1) PCDirect only supports single com port XDC transfers from DSP to PC. Setting the XDC to 2 comm ports prior to calling PCDirect may cause PCDirect applications to fail. Note: The XDC can not be set for 1 com port transfers after being used for 2 com port transfers without reinitializing the board. 2) Samples program for Windows NT and Windows 95 in DIPXPG\pc\samples\pcdirect 3) The multi threading capabilities of PCDirect is a new addition to our XVL library. The performance of PCDirect can be affected by other processes running in the NT and 95 OS environments. Both the disk drivers and mouse drivers on these platforms have high enough priorities to affect PCDirect's operation. 4) All Win RT Samples have not been tested with Line Scan camera. Only minimal testing has been done with Areascan and Linepair cameras. 5) When creating image buffers in PC memory, the PC Direct S/W will only allow the allocation of (Total available PC memory - 8MB). This is done to reserve some memory for the operating system to run adequately. 6) Only function calls labelled DPW_RT* may be called while using the PC Direct functionality. 7) When using the Grab and Process Sample (RTPROC95 or RTPROCNT), if the Number of Frames processed increments very slowly or Error -1910 occurs, the CPF HVideoActive and VVideoActive values need to be decreased. Here's a list of outstanding bugs currently found in the PCDirect Application Samples: Known PCDirect Bugs ------------------- 1) Moving/scrolling window with XPG with 1 memory bank will occasionally cause frames to shift horizontally and vertically. 2) When starting the RT Display Window, occasionally the following message will appear: "Critical Real Time Tansfer Error: -223033387". 3) There is occasionally a problem loading a CPF file in the PCDirect samples. If this problem is encountered, restart the application. 4) When moving any window (except the RT Window), the RT Display Window has a blitting effect.(Windows NT only) 5) When minimizing the RT Window it may crash. (Windows 95 only) 6) For Manual RT Window, if entire Transfer Window is occluded on right side of screen and then the RT Window is moved back to display the entire Transfer Portion, the data transfer to the RT Window halts. 7) When entire Transfer Portion of Manual RT Window is occluded by resizing the window vertically, the following error will appear: "Critical Real Time Transfer Error: -11450". 8) For RT Window (Manual and Auto), when performing a suspend the last frame gets erased from the RT Window. (Windows 95 only) PCDirect Camera Restrictions ---------------------------- 1) A maximum of 2 com ports are supported for grab transfers on any camera type. (Linepair requires 2 com ports). 2) The maximum camera bandwidth tested for FPG and LPG is 14-15 Mb/s. This rate is sufficient for both RS170 and CCIR data rates. 3) The maximum camera bandwidth tested for XPG is RS170 full frame rate when both global and local bus memory resides on the board. With only one bank of memory on the global bus, the maximum attained was 25fps. 4) In PC Direct when grabbing to VGA, if moving the mouse accross window borders, when the operating system writes information to disk or after performing a resize, move or scroll, you may see a flicker in the top 32K of the image for a period of 1 frame. These events all cause the PC to temporarily stop receiving data from the frame grabber resulting in a 32K block that is partially transferred being over wriitten with image data. If grabbing to PC memory, this condition will be reported as an error. A3) Added Borland 5.0 make files for Windows 95 / Windows NT. A4) The CPF directory now include cpflist.txt which list all the cpf files and the camera supported by each CPF file. ============================================================================== Revision 3.02-24 (18-Mar-1997) 1. New A) Added functionality. A1) PC library updated to detect FPG-ISA under DOS and Windows 3.1. The Windows 95 and Windows NT drivers have not yet been updated to detect this board. A2) The libraries have been updated to detect LPG-PCI. LPG.OUT is provided. A3) The DPS_TiffCopyImageBufferToDisk and DPS_TiffCopyDiskToImageBuffer functions now support 16 bit data. A4) AVI file output support. This is a prelimary release of functions to allow writing a sequence of images from the Power Grabber into an AVI format file. These files can then be played by many standard utilities provided by Microsoft and others. This first implementation provides only file output capability. No reading of these files is supported. Additionally files are written in un-compressed format only. Note that unlike many AVI functions these operate equaly well under DOS and Windows. High level (user callable): DPS_AVIWriteSequence: Writes a sequence of images in DSP memory to AVI file. DPS_AVIGrabAndWriteSequence: Grabs a frame at a time and writes it to an AVI file. Low level: DPS_AVIWriteHeader: Writes header for the file. DPS_AVIWriteFrame: Writes one frame to the file. DPS_AVIWriteIndex: Writes index at the end of the file. This software should be considered as beta software and the functions provided may change in a future release. A5) Added DBS_SerialPort functions for the FPG-ISA board. The functions available are: DBS_SerialPortInit DBS_SerialPortGetChar DBS_SerialPortSendChar DBS_SerialPortSendString A6) The windows demo (WDEMO.EXE, W32DEMO.EXE and WNTDEMO.EXE) now supports the PPM. A7) New CPF files: - EGG9128.cpf for the EG&G MC9128 analog area scan camera. - DALCAD4A.cpf for the Dalsa CA-D4-1024A digital camera. - PROVIEW.cpf for the Amber 12 bit infrared Proview camera. - KODES1.cpf for the Kodak Megaplus ES 1.0 camera. This cpf can also be used with the Kodak XHF camera. - KOD16.cpf for the Kodak Megaplus 1.6/1.6i camera. - DALCAD7T.cpf cpf for single Dalsa CA-D7-1024T. - TM9701.cpf for the Pulnix TM9700/TM9701 camera. A8) The sample provided in DIPXPG\wdemo now has the capability of selecting different boards. A9) Added DPW_DDDisplayPCImageInWindows to copy an image from the PC memory to Windows using DirectDraw. This functionality is available for the Windows 95 and Windows NT dlls. B) Modified B1) Changed BOARD_CONFIG_STRUCT used by DBK_GetBoardConfig. B2) Dipix functions that use .INI parameter files have had the following problems fixed. Problems fixed: 1. If a line was greater than 80 chars, it would get very confused. Now a line can be up to 512 characterss. All characters beyond 512 are discarded. 2. Trailing spaces or comments on a section line would cause it to fail. 3. Comments on string parameters were not stripped. 4. The INI file reader assumed the value was after the last '=' on the line, so an '=' in a string, or in a comment would get picked up. Now it is the first '=' on the line. B3) New features for DPU_GetIni* functions: 1. Functions to get an integer, boolean, or float. 2. Leading and trailing white spaces are stripped. 3. Boolean function accepts "true", "false", "t", "f", "yes", "no", "y", "n", "1", "0" (not case sensitive) all as valid inputs. B3) Changes to initializations of the PCK: - The function DPK_PCKSetIOBase allows you to change IO base before calling DPK_InitPCK. Previously when initializing the PCK the boards were detected in the following manner: XPG-PCI, FPG-PCI Analog, FPG-PCI Digital and the rest of the boards to be initialized were assumed to be XGP-ISA, a user could then modify the IO base for any of the XPG-ISA. With the addition of an FPG-ISA to the product line it is now necessary to detect the type of ISA board and to do that some register (offset from the IO base) must be read, hence the software must know before initializing the PCK the correct IO base of the ISA boards. The boards are now detected as follows: all the PCI boards, FPG-ISA and then XPG-ISA. Example: A system with 3 boards, XPG-PCI, FPG-PCI and XPG-ISA at IO base 0x310. lStatus = DPK_PCKSetIOBase (iBoardNumber = 2, iIOBase = 0x310); lStatus = DPK_InitPCK (iBoardCount = 3); - The function DPK_InitPCK now returns a warning if the number of board found is smaller than the number of boards specified in the call. P_WARNING_FBOARDS_TEXPECTED - The number of boards detected can be inquired from DPU_GetHostInfo with the parameter P_HOST_INFO_NUM_BOARDS B4) Updates to CPF files: EG&G2040.cpf: - Changed CameraName. Update jed file list - Changed HVideoStart value from 0 to 1 in [FRAME TIMING] section. RS170ANA.cpf - Correction to ICPLFile entries. File name changes: EG&G1911.CPF to EGG1911.CPF EG&G1950.CPF to EGG1950.CPF EG&G2040.CPF to EGG2040.CPF EG&G4013.CPF to EGG4013.CPF EG&G4922.CPF to EGG4922.CPF KODAK14.CPF to KOD14.CPF Replaced DALCADXD.CPF by DALCADXA.CPF. B5) The text files provided in the various directory have been given a consistent name extension .TXT. Also the file names have been changed to indicate the part of the product they belong to. From: To (path unchanged): DIPXPG\readme.doc readme.txt DIPXPG\pc\ntdriver\readme.txt ntdriver.txt DIPXPG\pc\samples\readme.1st pcsamps.txt DIPXPG\pc\samples\rtsamp\read.me rtsamp.txt DIPXPG\pc\samples\visbasic\readme.txt visbasic.txt DIPXPG\pc\demos\read.me pcdemos.txt DIPXPG\pc\demos\ppmhist\readme.1st ppmhist.txt DIPXPG\pc\demos\rtdemo\read.me rtdemo.txt DIPXPG\dsp\samples\readme.1st dspsamps.txt DIPXPG\dsp\samples\app1\readme.txt dspapp1.txt DIPXPG\dsp\samples\app2\readme.txt dspapp2.txt B6) The board samples link files have been modified to account for the new communication FIFO size. The DSP\SAMPLES\APP1 application has been modified to account for the packet IO communication mechanism. B7) Added PRO_lDataType to the PROCESSINGINFO structure. B8) In ccir.cpf and rs170ana.cpf added commented out CameraInputLutLoad=P_LUT_WINDOWS_OPTIMIZE in Camera Control section. This allows easy adaptation of the CPF file to scale the input data for display under Windows. B9) The samples in DIPXPG\pc\samples have been modified to call the DPK_SetIOBase function before calling DPK_InitPCK. - Similarly DIPXPG\pc\samples\rtsamp, DIPXPG\pc\demos\ppm and DIPXPG\pc\demos\rtdemo. B10) DBF_SetInterlaceOutput now correctly processed the flags P_IMAGE_FORMAT_INTERLACE and P_IMAGE_FORMAT_RASTER. The flags P_INTERLACE_OUTPUT and P_RASTER_OUTPUT should not be used. 2. Bug fixes. A) PC library: A1) Corrected the parameter count for DBF_MIOSetSyncGenValue. A2) The CPF files now support CameraInputLutLoad parameter in the [CAMERA CONTROL] section. Using this parameter with the value P_LUT_WINDOWS_OPTIMIZE will load a linear lut reduced to 20-247 so that the data is displayed properly in Windows. A3) Fixes affecting DPF_LoadCPF: - Modified DPF_LoadDefaultLUT such that the load lut linear case works for two tap cameras. - Added new lut case for windows that reduces 0-255 to 20-247 and also works for 2 tap cameras. - Changed the function so that it calls CreateLutBuffer instead of CreateWarpBuffer. A4) The getini functions are now available in the DLLs and support case insensitivity for the section names and parameter names. B) DSP code: B1) Fixed DBK_MmtCreateBuffer so that for an XPG it allows a buffer to be created in SRAM as well as DRAM. B2) - Fixed PPM software to account for different PPM revisions. - Updated PC PPF reader to account for 2 new parameters for the PPF entry PBDataFormat. These new parameters are: - P_PB_FORMAT_PIX_1B_LP (1 byte per pixel clock linepair format). - P_PB_FORMAT_PING_1B_LP (1 byte per pixel clock linepair format ping clock). Note this functionality is supported in rev X2 issue 13 and greater hardware only. - LinePair: The LinePair mode is now working with the PPM-GEN. It is tested with the 12 bit Amber camera and 16 bit BBOB only. - Mask RAM buffer size: Because the PPM-GEN incurs a minimum of a 4 pixel delay (shift) of the pixel grab mask and a 1 line (minimum) delay of the pixel grab mask, the mask RAM buffer size calculation to take this into account. The mask RAM buffer stored in the QGS was not being allocated large enough to account for these shifts in the case of line pair cameras. - Convolver horizontal delay: The convolver on the PPM-GEN incurs a vertical delay which is accounted for depending on the kernel size being used. The convolver also incurs a similar horizontal delay which wasn't being accounted for. This has now been fixed. B3) Fixed DBI_PatternMatch DSP to PC interface function to return the correct error status (it was always returning P_SUCCESS). If there was an error in the function it would not be reported and the PC would try to extract return parameters when they were none. B4) In DBI_PackRGB fixed Masks values for 3 16-bit input images to a 16-bit output. B5) Fixed 3 com port continuous grab for area scan and linescan cameras so that it now works for the cases where the number of bytes per line is a multiple of twelve and the image buffer and the acquire windows are the same. B6) Fixed bug where FPG with only global bus memory may not have been able to grab multi images or continuously to the EDB. B7) In DBI_XYProfile fixed stack leak problem which caused system to hang if this function was called a two hundred times or so. B8) Fixed memory detection for XPG-PCI with 256 megs of memory. B9) Fixed a problem with the median filtering function which occured on FPGs. If the a median value happened to be 255 the board would hang. This is because the histogram used for the median function is at the end of the internal chip memory. The algorythm which computes the median uses a branch delayed loop which when the median value is 255 it cause a read past the end of the memory. The FPG does not return a ready signal when reading undecoded memory hence hanging the DSP. This has been corrected by moving the histogram buffer by a few words. B10) Fixed DBI_Moment P_MOMENT_GREY_CENTRE_MASS case to return parameters correctly. B11) Fixed DBI_RealTimeFrameAveraging and DBI_FrameAverage which were not correctly checking the size of the FrameAveraging buffer. B12) In the DBI_Zoom function return errors from call to DBK_MmtGetImageInfo. B13) Fixed calculating interlace DMA lists, the list were being created at half required size in the horizontal direction for P_DUAL_IMAGE_GRAB mode. B14) In the function DBI_PatternMatch correct the error return if the pattern image was not found from P_ERROR_IMAGE_NOT_FOUND to P_ERROR_PM_PATTERN_IMG_NFOUND. B15) Fixid DBK_MmtSetCalculationWindow which did not check for invalid window (ie: a start coordinate is larger or equal to the associated end coordinate), error P_ERROR_INVALID_CWINDOW. B16) Fixed DBK_MmtSetValidBits so that it does not allow bit depth of less than 1. Notes: The name of the .zip files on the distribution diskettes have been modified from xpgv????.zip to xvlv????.zip. ============================================================================== Revision 3.01-35 (02-Nov-1996) 1. New A) Added functionality: A1) PPM: - Added support for QUAD_MODE Memory operation. - New functions: - DBP_PPMUpload2PointLUTs - DBP_PPMClearMemory A2) Windows 95 Virtual Device Driver : DPGRAB.VXD DPGRAB.VXD, the WIN32 virtual device driver (VxD), has been upgraded to support Bus Master DMA operation for the PCI bus based products. The "instal95.txt" file (on disk 4) contains the installation and upgrade procedures. A3) Support for DirectDraw under Windows 95, PCI boards only. New functions: - DPW_DDStartup - DPW_DDCopyDspToWindows - DPW_DDDisplayImageInWindows - DPW_DDLiveGrabDisplay - DPW_DDShutdown Note that the w32xpgml.dll provided includes the DirectDraw function and that if this dll is recompiled it requires ddraw.lib. If you do not have this lib then the w32xpgml.mak can be edited to use the compile and link commands which exclude the DirectDraw software. - The Japanese Direct Draw software kit is not included. Contact Dipix's customer support if you require this software. A4) Support for Windows 95 Real-Time Display Window for PCI PowerGrabbers: This consists of a display window which performs continuous grab and display in a Windows 95 window. To create the display window and initialize the grab and display thread the function DPW_RTCreateDisplay must be called. Then the function DPW_RTStart must be called to start the grab and display thread. To suspend or resume the grab and display the DPW_RTSuspend and DPW_RTResume must be used. The DPW_RTKill destroys the window and the associated thread. The display window only operates with area scan cameras. It does not work with line scan cameras. The frame rate for the display window was benchmarked on the following CPUs: 486 DX4-100 : 13 Frames/Sec with a Mach 64 1 Meg video card (640x480) Pentium-100 : 27 Frames/Sec with a Mach 64 1 Meg video card (640x480) The display window will only operate with video card drivers that supports Microsoft's Direct Draw API. DirectX v2.0 API must be installed: Installation Notes for Windows 95 DirectDraw: 1) Run the program DXSETUP.EXE which is in the \DIRECTX subdirectory. 2) Select "ReInstall Direct X" command button. 3) After done installing the files press Ok to reboot Windows 95. - To control the size of the RT Display Window you need to modify the following values within the CPF: HVideoActive -> controls the width of the RT Display Window VVideoActive -> controls the heigth of the RT Display Window - It is adviseable to keep the RT Display Window as small as possible for two reasons: 1) The frame rate is faster for a smaller RT Display Window. 2) Since the RT Display Window is top-most, it will obstruct other windows. - It is also adviseable not to use the 2 COM Ports to transfer from PCI to Host when using the RT Display Window. The behavior noticed with 2 COM Ports is that the image display shifts horizontally. In order to get it working with 2 COM Ports with this release, it is required to decrease the number of lines on the frame (i.e. Decrease VVideoActive in the CPF). - It is important to note that the RT Display Window DOES NOT function with ISA PowerGrabber Devices. A5) - In addition to the real time grab and display DOS sample there is now a real time grab, process and display DOS demo and it is in DIPXPG\pc\demos\rtdemo. - The ppm demo has been moved from DIPXPG\samples\ppm\pdemo to DIPXPG\pc\demos\ppm. - A ppm histogram demo has been added, in DIPXPG\pc\demos\ppmhist. A6) - Modifications were made in order to speed up data (XDC) transfers from the DSP to the Host PC for the PCI bus based products. - Use "NOSYNC" DMA from DSP memory to the XDC ComPorts. The SYNCronized DMA used Destination synchronization to write to the ComPorts. The NOSYNC DMA will not lose data as the write to the ComPort FIFO will not complete until there is space in the FIFO to write to as the C40 peripheral bus will lock-up until the write completes. The practical upshot is that the NOSYNC transfers are faster than the SYNChronized ones. - Addition of a PIO (Programmed I/O) mode on the DSP side of the XDC software. Using DMA to the ComPorts from DRAM tops out at 32 MBytes/sec on XPG-PCI due to the way the C40's DMA controller interfaces with the DRAM. Using Local Bus SRAM provides a transfer rate 47 Mbytes/sec. The new PIO mode replaces the DMA lists and performs direct access to the ComPorts. The result is that the XDC transfers can proceed at 47 MBytes/sec regardless of the source memory bank. (Note : The FPG tops out at around 29 MBytes/sec regardless of PIO mode or the normal DMA mode due to the lack of an external FIFO for transferring to the AMCC PCI interface chip.) This mode can be set by ANDing P_XDC_DSPPIO_MODE (in dbdefs.h) with the number of comports to use and calling DBK_XDCSetComPortNumber. A7) New board initialization function. - DPK_InitBoard A8) Added CPF file for DVC 10 bit camera DVC10.CPF A9) Grab - Added support for 2 and 3 comm port grab for interlace cameras. - Added functions DBF_SetOutputPixelDepth and related CPF parameter to allow greater than 8 bit cameras to be grabbed as 8bit for display purposes. This function is only available for digital boards. - Created new CPF parameter CameraInputLutLoad which can be used to automatically load and select a LUT to a camera module. Currently linear luts are supported. A shifted LUT format is also supported to be used in conjunction with the new feature OutputPixelDepth for reducing camera data. - Created new function DBF_MIOLoadModuleLUT to replace DBF_MIOLoadLUT. This function takes a buffer number as input and expects LUT values to be stored as 1 value per 32bit word. This was done to adhere to the format used in all other DIPIX LUT related functions. DBF_MIOLoadLUT will remain in the library for existing code implementations. A10) Added ICE memory definition files for user debugging DSP user functions. The files are xpg.cmd and fpg.cmd and are found in DIPXPG\dsp\ice A11) File mkwatcom.txt in DIPXPG\pc\source directory explains how to develop an application for Windows 3.1 with Watcom and link it to the Dipix dll. A12) The sample found in DIPXPG\pc\samples\rtgd is now in DIPXPG\pc\samples\rtsamp. A13) Added pci.exe in the top level directory DIPXPG. This program detects and reports Dipix PCI boards. 2. Bug fixes. A) PC library: A1) In the function DPW_DisplayImageInWindows replace the calls to malloc by calls to GlobalAlloc. A2) Fixed a few problems in the new DPV_VesaDisplayImage. A3) Fixed the allocation of DisplayInfo for the microsoft DOS lib. A4) In DPK_EndPCK reset G_lImageInfoWindowHeight. A5) In DPK_InportLongwordStream and DPK_OutportLongwordStream check for 64k boundary as the .asm functions do not. This caused various problems when transferring larger than 64k blocks of data between the PC and DSP in programmed IO mode. A6) - DMADESCR modified for scatter/gather structure. - DPK_XDCReadData and DPK_XDCWriteData now use scatter/gather list. - Modified DPK_PCIXDCBeforeDma to do Scatter/Gather and also along with DPK_PCIXDCAfterDma no longer check for VDS services. A7) In DPK_InitXPG fixed warm boot sequence to return proper error. A8) Fix in initpck.c for compile problem which caused the xpgmlib.lib to be incomplete in the last release. A9) When doing data transfers between the PC and the DSP on a PCI board, only return the P_WARNING_NOT32BIT_ALIGNED status if the buffer provided by the user is not 32 bit aligned and the bus mastering mode is on. A10) Fixes to ddlinfo.rc in DIPXPG\pc\source. B) DSP code: B1) In DBK_MmtInitialize added a call to DDK_XDCInitializeStatus so that if there was a DMA list buffer created for an XDC transfer it's number is cleared from the variable that keeps track of it. B2) Optimize the DBI_FilterSlice algorithm to run a bit faster. B3) The FPG now works with the EDB in dual screen mode. B4) Fixed list of urgent functions, some were out of order with the list in dpiop.h. B5) Fixed bug in DCM that did not allow the LUT to operate properly for an 8 bit camera if it was preceded by an acquisition from a greater than 8 bit camera. B6) Changed size of FIFO memory from 0x300 to 0x400 in all DSP link files. This was causing the software to allow only 192 parameters to be sent back to the PC. B7) The functions DBI_Histogram and DBI_DrawHistogram now return P_ERROR_BUFFER_NOT_HISTTYPE error if the histogram buffer supplied is not of type P_BUFFER_TYPE_HISTOGRAM. B8) Modified DBF_QuickGrab so that the TimeOut timer is not initiated if the MultiImageGrab mode is set to P_CONTINUOUS_IMAGE_GRAB. B9) Fixed bug that did not allow Linepair cameras to operate in P_CONTINUOUS_IMAGE_GRAB mode. B10) In DBI_GetPixelHistory. If the first image was not found the error returned was P_ERROR_PHISTORY_NE_IMAGES, this has been corrected to returning P_ERROR_IMAGE_NOT_FOUND. B11) The DBI_Label function no longer includes the background in the label count. C) CPF Files: C1) In xpgppm.cpf. ICPLFile2 = G11619.JED has been commented out. It is only required for XPG-1000 boards prior to rev A issue 32. D) Samples: D1) The samples that call DPV_VesaDisplayImage now ignore the warnings returned by the function. E) EDB VGA Windows 3.1 Driver P/N 964-11777-000-03-01 The driver for windows 3.1 now provides additional VGA modes for use in programs which do not use VGA passthru. These modes are provided as a convienience to users who want these modes for applications unrelated to the frame grabber. Additional modes are not fully tested or supported. Only the 256 color modes are fully supported for pass-through applications. Eliminates problems with missing fonts after installing the EDB drivers. Also corrects problems with display of accented characters in other languages. ============================================================================== Revision 3.00-30 (24-Jun-1996) 1. New A) Added functionality: A1) Support for the PPM. - PPM sample code in DIPXPG\pc\samples\ppm\pdemo - Default CPF is RS170ANA.CPF - Modify PDEMO.INI to reference your CPF - Modify your CPF to reduce image size as follows: - for 2MB PPM, image size must be to less than 256k pixels. - for 1MB PPM, image size must be to less than 128k pixels. - PPM PPF files in DIPXPG\ppf - PPF files included only support ACTIVE_GRAB operations (see manual) - Interpreter script files: pconv.scr, pfrmsubt.scr and pfrmavg.scr. - Default CPF is RS170ANA.CPF It is suggested that the customer use the following functions to begin developing their application. Additional functionality will be provided in later versions of software. For more information please contact DIPIX Board Products Support. DPP_LoadPPF DBP_PPMSetGrabConfiguration DBP_PPMSetupWALUTs NOTE that the PPM has only been tested with rs170 and ccir cameras, support and testing for other cameras is in progress. A2) Windows 95 Virtual Device Driver : DPGRAB.VXD DPGRAB.VXD is a WIN32 virtual device driver (VxD) that supports the ISA/VL and PCI PowerGrabber products. It performs the underlyng device accesses for the WIN32 DLL (w32xpgml.dll). The VxD supports the WIN32 DeviceIOControl interface that is also used by the PowerGrabber driver for Windows NT (dpgrab.sys). The VxD performs only programmed I/O (PIO) to and from the devices at this time. Bus Mastering DMA transfer are planned in a future release. Installation instructions are found in the file "instal95.txt". ISASetup.exe Utility Program for Windows 95 This program (ISASetup.exe) is used to set up the Windows 95 registry with information about the ISA/VL PowerGrabber board. Our ISA/VL boards are not Plug-and-Play compatible and need to be identified to Windows 95. ISASetup prepares entries in the registry so that, on the next boot-up, Windows 95 detects the ISA/VL board as new hardware and issues the standard Plug-and-Play dialogs in order to configure the driver (VxD) for the board. In order to perform this configuration cleanly (and much more easily) , any existing entries for PowerGrabber devices (both the ISA/VL and PCI boards) are initially removed from the registry by ISASetup. This is acceptable in that the ISASetup program will then enter the new information aboout the ISA/VL boards in the registry and the PCI boards will be automatically detected on the next boot. The ISASetup utility resides on the installation disk which is Disk 1 of the 2 disk XVL Software distribution. The files of interest for both ISA/VL and PCI driver installation are : ISASetup.exe : The Setup program itself. mscomstf.dll : The Setup dll's. mscuistf.dll : " " " msdetstf.dll : " " " msinsstf.dll : " " " msshlstf.dll : " " " msuilstf.dll : " " " DPGRAB.VXD : The virtual device driver for ISA/VL and PCI PowerGrabber boards. Dipix.inf : Setup INF file for PowerGrabber devices. A3) PCI bus mastering data transfers for DOS and Windows 3.1. A4) New function DPK_UseBusMasteringMode. This function allows a user to turn on or off the use of the PCI bus mastering mode. Calling sequence: VOID DPK_UseBusMasteringMode (LONG lUseBusMasteringFlag) where lUseBusMasteringFlag is TRUE to use (turn on) the PCI bus mastering mode or FALSE to turn off. In addition the following functions were modified to return warnings to indicate any problems while in bus mastering mode. The warning indicates why bus mastering was not used and that the data transfer was done using polled IO. DPK_XDCPutData, DPKXDCPutImage, DPC_CopyDiskToDsp, DPC_CopyDiskYoImageBuffer, DPC_CopyMemToDsp, DPS_JpegCopyDiskToBuffer, DPS_TiffCopyDiskToImageBuffer, DPS_TiffCopyDiskToDsp, DPK_XDCGetData, DPK_XDCGetImage, DPC_CopyImageBufferToDisk, DPC_CopyDspToDisk, DPC_CopyDspToMem, DPS_JpegCopyBufferToDisk, DPS_TiffCopyDspToDisk, DPS_TiffCopyImageBufferToDisk, DPV_VesaDspMemToVga, DPV_VesaDisplayImage, DPW_CopyDspToWindows and DPW_DisplayImageInWindows. #define P_WARNING_BUFFER_NOT32BIT_ALIGNED -81L The buffer address passed in by the calling function is not aligned on a 32 bit boundary hence the data transfer is done without using the PCI bus mastering mode. #define P_WARNING_VDS_NOT_RUNNING -82L The virtual DMA services are not running hence the data transfer is done without using the PCI bus mastering mode. The error checking for these functions should be modified to reflect these changes. Example. Before: if ((lStatus = DPK_XDCGetData (..,..)) != P_SUCCESS) { /* Error handling */ } Now: if ((lStatus = DPK_XDCGetData (..,..)) < P_ERROR) { /* Error handling */ } else if (lStatus != P_SUCCESS) { /* Warning handling */ } A5) - The function DPK_LoadCOFFFile (which is called from DPK_InitXPG) now takes the out file name "default". The function translates "default" to xpg.out or fpg.out depending on the current board type. - The interpreter script files now all use "default". - The pc samples which used xpg.out or fpg.out have also been modified to use "default". - initxpg.scr and initfpg.scr are no longer needed and combined to init.scr. A6) GRAB - Added support for DUAL image grab on interlaced cameras in the following grab modes, P_DUAL_IMAGE_GRAB and P_DUAL_MULTI_IMAGE_GRAB. The DBF_SetSecondImageID function is used to specify the second buffer. This functionality is not available for the EDB. - On XPG boards please note that 3 COM port grabs for areascan works properly in all modes if the horizontal acquire widths are kept to a multiple of 12 bytes. If only using P_SINGLE_IMAGE grabs, it operates on multiples of 4 bytes. A7) A live grab and display sample has been placed in DIPXPG\pc\samples\rtgd. It demonstrate double buffer grabs and displaying the images to the VGA screen at live video rates. This sample is an alpha version. 2. Bug fixes. A) PC library: A1) The coff loaded now makes sure that the type of coff file loaded matches the type of board it is being loaded to. In case of mismatch is returns P_ERROR_INVALID_COFF_LOAD. A2) The DPV_VesaDisplay image function has been speeded up. It shows significant speed improvement if the screen resolution and the screen output position and the image window to be displayed are kept the same for each image to be displayed. B) DSP code: B1) Fixed problem with the CopyImage function when copying to and from an EDB. On an FPG this caused the XDC transfer to and from the PC to hang and similarly on the XPG in two com port mode. C) Interpreter: C1) Fixed interface to DPK_InitPCK so that initializing with NumBoards = 0, returns the proper error code. C2) Added to information displayed in the ReportBuffer function. C3) Fixed interface to DBF_SetTriggerInfo, the structure parameters TRIG_lTriggerIn and TRIG_lTriggerPeriod were not properly extracted from the command line. C4) The error status report after each function call now also displays the error code mnemonic from dberrors.h. ie status = 0 (P_SUCCESS). D) CPF Files: D1) dalclg1g.cpf: Corrected error in SlaveSDIBBusID. D2) ccir.cpf: Moved clamp pulse to occur after color burst for color cameras. E) Samples: E1) Fixed the app1 sample ISR function. The function was not saving the DP register. ============================================================================== Revision 2.50-11 (09-May-1996) 1. New A) Added functionality: A0) FPG-44 Analog and FPG-44 Digital support. A1) Windows NT support for: - PCI XPG and FPG boards. - Multiple boards. - Bus mastering XDC data transfers. The driver installation procedure is included in the %DIPXPG%\pc\ntdriver directory in readme.txt. A2) Windows 32 bit support, for Windows 95 (ISA boards only). w32xpgml.lib and w32xpgml.dll. B) Interpreter: B1) The XPG script file init.scr has been renamed to initxpg.scr. A new script file for the fpg initialization has been provided and is called initfpg.scr. C) Sample code: C1) The sample programs have been modified to account for an FPG or and XPG. The DSP samples have FPG link files to make FPG compatible out files. C2) A version of the Windows sample program in 32 bit mode has been added for use with Windows 95. w32demo.exe with w32demo.res. C3) The windows sample programs (wdemo, wntdemo and w32demo) account for the FPG board. D) CPF Changes: D1) A new section called [FPG] has been added. This section requires the same parameters as the [XPG] section. The DPF_LoadCPF function will detect whether the board is and FPG or XPG and access the appropriate section of the CPF file. All CPF files of this release have been updated to contain both sections, such that the CPF file may be loaded on either board type. D2) The ModuleType parameter has been moved from the [CAMERA MODULE] section of the CPF file to the [XPG]/[FPG] sections. In the FPG section the new ModuleType definitions P_MODULE_TYPE_FPGACM and P_MODULE_TYPE_FPGDCM should be used to indicate analog and digital FPGs respectively. These new definitions allow the CPF loader to allow or restrict parameters or parameter values in accordance with the functional characteristics of the FPGs. D3) The following CPF files have XPG ComPortCount values larger than the number of available com ports on the respective analog or digital FPG boards. EG&G1950.CPF EG&G2040.CPF EG&G4013.CPF TM6701.CPF In the [FPG] sections of these files the ComPortCount was reduced to the maximum available for the analog or digital FPG. With the reduced number of comm ports, the FPGs will likely not be able to sustain the data rate of these cameras. It is recomended that the data rate be reduced if it is under the control of the user or the acquire window be reduced to a size which permits proper acquisition from these cameras. E) JED FILES: The following JED files have been added for programming of the Analog and Digital FPG GDS switches. The "x" in the filenames below denote the firmware revision and may vary from one software release to the next, however only one revision for each base number will be present on any one software release. As new firmware files appear, the older revisions will be deleted requiring the user to upgrade. FPG Analog (JED files related to FPG Analog firmware) x11997.JED GDS switch 1 (default) x11998.JED GDS switch 2 (default - exposure/line sync - active high) x1199801.JED GDS switch 2 (exposure/line sync - active low) x1199802.JED GDS switch 2 (outputs connected to general purpose output register) FPG Digital (JED files related to FPG Digital firmware) x12080.JED GDS switch 1 (default) x12081.JED GDS switch 2 (default) x12082.JED GDS switch 3 (default - exposure/line sync - active high) x1208201.JED GDS switch 3 (exposure/line sync - active low) The following pair of JED files can be used to access all 8 data outputs with the DBF_MIODataWrite function. Features such as exposure, linesync out and reset are not available when using all 8 data outputs. x1208101.JED GDS switch 2 x1208202.JED GDS switch 3 EXAMPLES: These examples detail the possible JED file combinations for an FPG board. These lines are placed in the [FPG] section of the CPF file. 1. Digital FPG: A) Configuration for active high exposure. [FPG] ... ICPLFile1 =A12080.JED ICPLFile2 =A12081.JED ICPLFile3 =A12082.JED B) Configuration for active low exposure. [FPG] ... ICPLFile1 =A12080.JED ICPLFile2 =A12081.JED ICPLFile3 =A1208201.JED C) Configuration to attach 8 outputs to the Digital FPGs module output register. [FPG] ... ICPLFile1 =A12080.JED ICPLFile2 =A1208101.JED ICPLFile3 =A1208202.JED 2. Analog FPG: A) Configuration for active high exposure. [FPG] ... ICPLFile1 =A11997.JED ICPLFile2 =A11998.JED B) Configuration for active low exposure. [FPG] ... ICPLFile1 =A11997.JED ICPLFile2 =A1199801.JED C) Configuration to attach 7 of the Analog FPG's 8 outputs to it's module output register replace the following line. Output 3 of the general purpose output register is not available to the Analog FPG's output in this release of S/W. [FPG] ... ICPLFile1 =A11997.JED ICPLFile2 =A1199802.JED 2. Bug fixes. A) PC library: A1) Fixed DBD_DispEnablePassthru for Windows NT so that it does not access VGA registers directly, thus avoiding hangup in single screen mode with EDB. B) DSP code: B1) Fixed 2 Com Port DSP to PC transfers to handle calculation windows properly. B2) Fixed DBI_Label to delete first temporary buffer if the memory allocation for the second temporary buffer failed. C) Interpreter: C1) Corrected short form for DPK_SetComPortNumber from scompnum to xdcscpn. E) Samples: E1) Fixed tcamsamp.c which was running out of stack space. ============================================================================== Revision 2.40-34 (09-Apr-1996) 1. New A) Added functionality: A0) The XPG software now supports a PCI XPG. The use of this board is the same as the ISA XPG. The library has the following new functions to take advantage of the PCI bus: - DBK_XDCSetComPortNumber Note that image transfer from disk to a calculation window on the DSP has some unresolved problems. - DPK_XDCHostTransferMode - DPK_XDCHostTransferReady A1) Support of Windows NT. PC lib: wntxpgml.dll, wntxpgml.lib, wntxpgml.def and wntxpgml.mak demo : wntdemo.exe, wntdemo.mak and wntdemo.res Driver: genport.sys with genport.ini. Installation procedure provided. A2) New for grab: - Modified the programmable oscillator software to choose device paramater which produces less oscillator jitter. The actual frequency produced by the oscillator is a close approximation of the desired frequency. - Added function DBF_MIOGetOscFreq which will return an approximation of the desired frequency specified in a call to DBF_MIOSetOscFreq or in a CPF file. This approximation is the closest frequency that can be generated by the programmable oscillator without significant signal jitter. - Also added: - DBF_QuickGrabAbort - DBF_SetTriggerInfo - DBF_GetTriggerInfo - Added optional parameter TimeOutPeriod to the CPF loader. TimeOutPeriod is used to interrupt the grab process if TimeOutPeriod microseconds (us) elapses between camera frames, this is used by DBF_Grab and DBF_QuickGrab. This parameter may be added to the CAMERA CONTROL section of the CPF file. - For linescan cameras there was previously a restriction on the period between line pulses of 32K pixel clocks. In this release, if the EndOfLine parameter is specified in the CPF file, the line period can exceed this limit. If using this feature, you must ensure that the EndOfLine pulse is defined to occur before the the line valid from the camera. (ie: (LineSize + EndOfLine) < Line Period in pixel clocks) A3) A function to properly initialize Comm Port linked XPGs in a master slave mode has been added to the library. - DPK_InitCPLinkedXPGs A4) A function to resize an image, DBK_MmtResizeImage, to allow a user to change an image's dimension (the image size must remain the same). A5) DBK_GetBoardConfig returns the configuration of the currently selected board. The coff file must be loaded before this function. B) Interpreter: C) Sample code: C1) Sample code dxpgsamp to demonstrate using the Com Ports, linking XPGs in Master Slave mode and some asynchronous processing. It uses xpguser4.out from the DSP sample directory. D) New CPF files: eg&g1950.cpf for EG&G 1950 camera eg&g2040.cpf for EG&G LD2040 camera using cameras pixel clock eg&g4922.cpf for EG&G LD4922 camera (TDI) E) Misc: E1) The wxpgblib.def, wxpgmlib.def, wntxpgml.def and wdemo.def files now contain the company name, def info and version number in the DESCRIPTION parameter. E2) The dlls have the product information, extracted by the resource compiler from dllinfo.rc found in DIPXPG\pc\source. E3) Updated Visual Basic samples with added support for VB 4.0, 16 and 32 bit. 2. Bug fixes. A) PC library: A1) The DPU_Delay function will use _bios_timeofday for both Microsoft and Borland libs. A2) The functions DPC_CopyImageBufferToDisk, DPC_CopyDiskToImageBuffer, DPS_TiffCopyImageBufferToDisk and DPS_TiffCopyDiskToImageBuffer have been speeded up. A3) Fixed prototype for DBF_LookupCPS, DBS_JpegCompress and DBS_JpegDecompress in dbptypes.h (was missing PTRTYPE for pointer parameters). B) DSP code: B1) Fixed DBF_LookupCPS to properly handle input camera name. B2) In DBK_MmtCreateImage check that the number of images to be created is greater than 0. B3) Fixed positioning of 2nd and subsequent EDB images when grabbing. B4) Fixed problem when QuickGrabbing to different images in succession. B5) Account for cache in the DSP components of the DPK_XDCPutImage and DPK_XDCPutData functions. B6) The FFT functions and the filter MEDIAN function now return an error if the image data size is anything but 8 bits per pixel. B7) For DSP programmers: The functions DDK_XDCRcvData and DDK_XDCSndData have had their calling sequence changed. The data address variable is now a ULONG instead of an ULONG *, as the value was never used as a pointer. B8) The DBI_XYProfile function runs faster. B9) Fixed bug that did not allow external triggering on an ACM. B10) Fixed bug that did not allow the selection P_TRIGGER_EXTERNAL_HARDWARE to work properly. Note: This form of triggering triggers based on the signal level, not the edge. When the frame count is greater than one, in this mode all frames will be acquired consecutively after the first trigger. This works similar to P_TRIGGER_EXTERNAL_ONE for software triggering. B11) Fixed bug where the grab did not reset the grab status flag after aborting due to insufficient hardware resources. This bug would only occur if a user was writing DSP code which made use of the IIOF0 interrupt while trying to use the external triggering feature of the grab. B12) DBI_PatternMatch: - Modified method of calculating pattern and feature variance to use histogram/mean method to minimize floating point precision loss. - Added new variable, fFeatureVarThreshold, to eliminate divide by zero problem that can occur when calculating the NormalizedCorrelation value when the Feature variance is close to zero. This can occur in an image with a uniform background. B13) The DBF_QuickGrabHardwareInit function no longer starts the linescan out pulse. This pulse is now initiated from the DBF_QuickGrab function. This is to ensure that the LineSync out pulse will be present when calling DBF_QuickGrab with the P_GRAB_NO_INIT option. B14) Fixed bug that caused the reset pulse to be twice the desired duration (ResetDuration) when generated from within a triggered grab sequence. The reset pulse still has a fixed 25 us overhead. B15) When using the features trigger, reset and exposure features of grab, the reset used to be generated before the activation of the exposure pulse. The exposure is now activated before the reset when using trigger. This provides more flexibility because as the start of exposure can be delayed with the ExposureStart in the CPF file allowing it to occur after reset if desired. B16) Fix bug in DBI_PackRGB which under certain circumstances caused the output to be incorrect and overwrote some buffer headers. B17) Fixed frame holdoff/skip problem when triggering on P_EXTERNAL_ONE. B18) Fixed assembly files to use .Data for local variables. This was causing crashes when adding user code which moved some of these variable at addresses over offset 0x10000, which ended remapped to offset 0x0 and overwrote the trap and vector tables. C) Interpreter: C1) Fixed error return sequence for the interface to the function DPC_GetDiskImageSize. D) CPF Files: D1) In rs170ana.cpf - Adjusted clamping to occur after the color burst for color cameras. - Adjusted the variable oscillator frequency to 12.0 to match the value of the default fixed oscillator. D2) In tm6701.cpf - Removed the EndOfFrame parameter. D3) The CPF loader no longer has any mandatory JED file entries. The following JED files have been removed from all CPF files on the release: E11617.JED, E1161701.JED, E11619.JED If you are using an ISA based XPG board and you are upgrading from a release prior to V2.31 then you should include the replacement JED files (F11617.JED, F1161701.JED and G11619.JED) in your CPF file for one loading of the CPF file. During this load, your board's firmware will be upgraded to the latest release (this initial load of the CPF will take up to 30 seconds). After this has been done, you may remove these JED file entries from the CPF file. If you are using a new PCI based XPG board, the CPF loader will not allow you to load the above mentioned JED files and will produce the error (-1865) P_ERROR_JEDFILE_WRONG_BOARD. If you get this error, remove the above mentioned JED files from your CPF file and the CPF will load. The remaining JED files in the CPFs are for programming signal connection switches on the XPG and it's associated modules (ACM/DCM). These switches are identical on the ISA and PCI versions of the XPG. E) Samples: E1) Fixed all PC samples to correctly check for the error status after the call to DPV_GetVgaPalette. E2) Fixed DSP APP1 sample for a bug in selecting the buffer to be used and fixed the camera offset parameter in the CPF file. ============================================================================== Revision 2.31-01 (15-Nov-1995) 1. A) To fix problem in S/W release 2.30 on board assembly revisions (X10 Issue 6 through X13 Issue 15) where the error code P_ERROR_CIM_NOT_FOUND (-1822) occured when trying to grab. Summary of Changes: - The following JED files: - D11617.JED - D1161701.JED - B11620.JED have been replaced by: - E11617.JED - E1161701.JED - C11620.JED. - All the CPF files have been modified to account for these changes. ============================================================================== Revision 2.30-11 (07-Nov-1995) 1. New A) Added functionality: A1) Added the ability to detach the DIPIX XCC command interpreter and use the XCC as an asynchronous data transfer mechanism. Related Functions: DDK_XCCDetach DDK_XCCAttach DDK_XCCPushOutFifo DDK_XCCPopInFifo DDK_XCCFIFOStatus A2) Increased the number of loadable CPFs, and QGSs from 5 to 16. A3) Changes to grab to allow concurrent grab and process. Sample application in xpg\dsp\samples\app1. B) Interpreter: B1) Previously the function DPV_VesaGraphicsMode just set an internal variable with the selected mode, and then when calling the DPV_VesaDisplayImage function the intepreter would actually make the call to DPV_VesaGraphicsMode. Now DPV_VesaGraphicsMode sets the graphics mode immediately. To set up the graphics mode for the DPV_VesaDisplayImage function use DPV_VesaSelectGraphicsMode. The EDB_GraphicsMode (interpreter only) function has been removed. B2) Replaced edbdcohu.scr with edbdrs17.scr. C) Sample code: C1) A sample function has been added to demonstrates how to convert a buffer of floating point data (in this case fft data) from TMS320 format to IEEE. The sample then reads the data from the converted buffer, processes it on the PC and sends it back to the DSP. It converts this processed data from IEEE floating point format to TMS320 format and does an inverse FFT and displays the results. D) New CPF files: D1) dalclg1g.cpf for Dalsa CL-G1-2098G cameras. D2) All CPF files have new jed file list. See JED FILES note at the end of the release 2.30 section of this file. D3) tm6701.cpf for PULNIX TM-6701AN (option 7-2) cameras operating in progressive scanning double speed mode (normal mode, 60 Hz). E) Misc: E1) Performance improvement for the DBI_Filter function, P_FILTER_SOBEL option. On a 512 x 512 the function now runs in 0.25 seconds, old time was 0.60 seconds. E2) Function DBF_MIOSetSyncGenValue does not work. F) Changes for GRAB F1) Added the ability to perform continuous grabbing to an image buffer. In this continuous grabbing mode, also added the ability to perform double buffered grabbing to two seperate image buffers. External triggering, exposure and reset can not be used with continuous image grabbing. Continuous image grabbing does not work with linepair cameras. Related Functions: DBF_SetSecondImageID F2) Added the ability to attach user interrupts to the Mask RAM's UserMask bits. Related Functions: DDF_ISRSetIIOF0 DDF_ISRDisableIIOF0 F3) Added function DBF_QuickGrabHardwareInit to allow the user to initialize the XPG and camera module hardware without calling the DBF_QuickGrab function. F4) Added function DBF_MIOSetVideoSource to allow the selection of the video source and sync source inputs on the ACM. F5) Grab now checks the CBOB ID on DMCs and returns an error if the id is incorrect. 2. Bug fixes. A) PC library: A1) The function DPV_VesaDisplayImage has been speeded up. A2) Fixed DPW_CopyWindowsToDisk, it was not correctly handling rectangles larger than 64k bytes. A3) In DPK_InitXPG, save the error status from DPK_CheckXPGRevision and return it if there is no other error in the initialization. A4) Fixed bug in DPF_LoadCPF that did not allow an ACM capturing from an interlace camera source to choose which field was acquired first, the code was always grabbing odd field first regardless of the selection in the CPF file. B) DSP code: B1) In DBI_WriteText, fixed check for fill flag. Fill flag off was not being handled properly. B2) In DBI_Arith, fixed the ADD, SUBTRACT and MULTIPLY options when processing with scale and offset equal to 1.0 and 0.0 respectively. B3) DBI_SetImageBuffer was writing the input value to the mapped address of the image instead of the 32 bit address, hence losing part of the data value passed in for 8 or 16 images. ie passing in 0x11223344 to fill an 8 bit image buffer resulted in 0x44 in all the pixel values. B4) Fixed DBK_MmtGetImageInfo for computing the mapped address. It was generating an incorrect value for memory sizes over 64 megs on a bus. B5) RESET: 1) Fixed bug that did not allow reset to occur on the first frame of a frame grab sequence. 2) The reset pulse is now specified in microseconds(us). There is an overhead on the reset pulse of 24 us, therefore the reset duration will be (24 + ResetDuration)us. 3) If the frame valid from a camera occurs less than 22us after the end of the reset pulse, that frame will not be grabbed by the XPG. 4) If using reset with an interlace camera, proper frame synchronization can not be achieved on DCM's lower than X1 Issue 3 and on ACMs up to and including X5. B6) Fixed EDB dual screen mode problem where the last 4 pixels of a line were not visible in 640x480 and 1280x1024 modes. B7) During front end initialization (DBF_QuickGrabHardwareInit) the grab com ports are now flushed. This is to fix bug where the second and third grab com port would not power up empty on some boards. B8) Fixed PC interface to DBI_XYProfile and DBI_LineProfile. B9) In DBI_Statistics fixed the accuracy of the variance computation by modifying the algorithm from var = (ä(Pijý) / (i*j)) - meaný to var = (ä(Pij-mean)ý) / (i*j). B10) Fixed the PatternMatch normalized correlation algorithm. The line BREAK IF CrossCorrelation <= DecisionValue was modified to BREAK IF CrossCorrelation < DecisionValue B11) Fixed various EDB initializing problems. C) Interpreter: C1) Fixed error return for the DPV_VesaGraphicsMode function. C2) Fixed short form for DBI_RealTimeFrameAveraging to rtfavg from favg. D) CPF Files: D1) Changed the CPF parameters that contained the word CMask to UserMask in all cpf files. D2) Changed the FieldSize in DALCLCXA.cpf to 1001 from 1000 to accomodate VVideoActive of 1000 and a VVideoStart of 1. D3) In EG&G1911.cpf changed HVideoStart from 15 to 28 and LineSyncDuration from 50 to 0. D4) Changed Horizontal parameters in ccir.cpf. D) Manual: D1) Fixed interpreter section for DBI_Arith. D2) Fixed interpreter section for DBI_FilterSetConvolutionParameter. JED FILES ========= The contents of the JED directory in XPG software releases is occasionally updated with JED files to enhance functionality of the XPG-1000 and camera modules by reprogramming firmware. This software release has five required JED file entries for the CPF file. These JED files will be used to reprogram the XPG's and camera module's firmware. The DPF_LoadCPF will take 20 to 30 seconds to return as it reprograms firmware the first time it is called with the new JED files. Subsequent calls to DPF_LoadCPF will not reprogram the firmware, however verification of the firmware configuration will take approximately 5 seconds. If any of the required JED files do not exist in the CPF, DPF_LoadCPF will return the error P_ERROR_CPF_REQUIRE_JED (-2206). Refer to the examples below to determine the base configuration and permissible variations for JED files. The following is a list of JED files included in this release of software. Of the 5 required JED files 3 are related to the XPG and 2 are related to the ACM or DCM module. The "x" in the filenames below denote the firmware revision and may vary from one software release to the next, however only one revision for each base number will be present on any one software release. As new firmware files appear, the older revisions will be deleted requiring the user to upgrade. XPG (JED files related to XPG firmware) 1) x11617.JED required for XPG bare board revisions greater than X4 x1161701.JED XPG bare board revisions x1..X4 The user should always specify x11617.JED, the software will automatically detect the bare board revision and substitute x1161701.JED for revs x1..x4 2) x11619.JED required in the CPF 3) x11620.JED required in the CPF DCM (JED files related to DCM firmware) x11727.JED GDS switch 1 (default) x11728.JED GDS switch 2 (exposure/line sync - active high) x1172801.JED GDS switch 2 (exposure/line sync - active low) The following pair of JED files can be used to access all 8 data outputs with the DBF_MIODataWrite function. Features such as exposure, linesync out and reset are not available when using all 8 data outputs. WARNING:These JED files must only be used as a pair, using either one on its own or in combination with other DCM JED files could cause damage to the DCM module. x1172701.JED GDS switch 1 x1172802.JED GDS switch 2 ACM (JED files related to ACM firmware) x11806.JED GDS switch 1(default) x11807.JED GDS switch 2 (exposure/line sync - active high) x1180701.JED GDS switch 2 (exposure/line sync - active low) The following pair of JED files can be used to access all 8 data outputs with the DBF_MIODataWrite function. Features such as exposure, linesync out and reset are not available when using all 8 data outputs. WARNING:These JED files must only be used as a pair, using either on its own or in combination with other ACM JED files could cause damage to the ACM module. x1180601.JED GDS switch 1 x1180702.JED GDS switch 2 EXAMPLES: These examples detail the possible JED file combinations for in this release of software. These lines are placed in the [XPG] section of the CPF file. EX1) DCM with active high exposure. [XPG] ... ICPLFIle1 =D11617.JED ICPLFIle2 =E11619.JED ICPLFile3 =B11620.JED ICPLFile4 =C11727.JED ICPLFile5 =D11728.JED For active low exposure replace the following line ICPLFIle5= D1172801.JED To attach 8 outputs to the DCM's module output register replace the following lines. ICPLFile4 =C1172701.JED ICPLFile5 =D1172802.JED EX2) ACM with active high exposure. [XPG] ... ICPLFIle1 =D11617.JED ICPLFIle2 =E11619.JED ICPLFile3 =B11620.JED ICPLFile4 =C11806.JED ICPLFile5 =C11807.JED For active low exposure replace the following line ICPLFIle5= C1180701.JED To attach 8 outputs to the ACM's module output register replace the following lines. ICPLFile4 =C1180601.JED ICPLFile5 =C1180702.JED ============================================================================== Revision 2.20 (07-Sep-1995) 1. New A) Linepair camera support to the EDB. 2. Bugs fixes. A) PC library: A1) The DPU_Delay function now uses a bios function call to get the time elapsed. This seemed to have fixed -1705 errors when running programs from dos shell in Windows. A2) Fixed order of return parameters in DBI_Moment. B) DSP code: B1) Fixed bug in DBD_DispInit. Image and Overlay DAC were not enabled and set to 8 bits before writing the default LUT, hence only 6 bits LUT were being generated. B2) The buffer allocation in the DBI_Moment function was corrected. The buffer was being created too small and the function wrote pass the end of it, eventually causing problems. B3) In the function dispatch table added the floating point bit flag for the second parameter of the DBI_FilterSetConvolutionParameter function. It's absence was causing the floating point value of Boost or Scale to be read as an integer which made the function output incorrect. B4) Set the frame count to 1 and the multigrab to SINGLE image before doing the QuickGrab setup for both the DBI_FrameAveraging and the DBI_RealTimeFrameAveraging functions. C) Interpreter: C1) Fixed displaying of output information for the DBI_Moment function. ============================================================================== Revision 2.10 (13-Jun-1995) 1. New A) Added functionality: A1) The TIFF functions are available. A2) New functions, DBF_StartExposurePeriodic and DBF_StopExposurePeriodic. A3) The EDB now supports DUAL SCREEN MODE. B) Interpreter: B1) Script file edbdncam.scr to put up a test image with an EDB in dual screen mode. B2) Script file edbdcohu.scr to grab images with a cohu4110 camera using an EDB in dual screen mode. C) Sample code: C1) A sample function has been added to demonstrate how to send a buffer of information back from the DSP to the PC using the XDC. The DSP function also shows how to write an PC interface function so that the PC and the DSP can call the processing function with the same calling sequence. DSP: buser3.c, user3fdt.asm, userprg3.mak and userprg3.lnk PC : usr3samp.c and usr3.bat C2) Visual basic sample files in DIPXPG\pc\samples\visbasic. D) New CPF files: D1) The DAL1024.CPF and DALCL1K.CPF have been deleted, use the DALCADXG.CPF and DALCLCXA.CPF respectively instead. D2) eg&g1911.cpf for EG&G LC1911 camera (1k array) using programmable oscillator operating at 10 MHz. D3) eg&g4013.cpf for EG & G MD4013NRS-012 cameras. E) Misc: E1) The BUFHEADER structure was modified. A new element has been added. BUF_MappedDataPtr, which will be the 32 bit cached address of the data if cache is on, otherwise it will be the same as BUF_DataPtr. E2) A new parameter, lExposureStart, has been added to the functions DBF_SetExposure and DBF_GetExposure. E3) Renamed DBI_ClearDisplayMemory to DBD_ClearDisplayMemory. E4) Renamed DBD_DispImageRoam to DBD_DispRoam. E5) The object code for pckio.asm has been included: pckio.bor for borland pckio.msc for microsoft pckio.win for microsoft windows E6) New palette file for colour cameras, palette.rgd. F) CHANGES FOR GRAB F1) All users with XPG board revs less than X10 will be required to add JED file names to their CPF. An XPG LSI device and a GDS switch will be reprogrammed the first time the CPF is loaded. As well the two GDS switches on the ACM and DCM modules must be reprogrammed for this release. D11619.JED XPG LSI device B11620.JED XPG GDS switch C11727.JED DCM GDS switch 1 D11728.JED DCM GDS switch 2 (exp/line sync - active high) D1172801.JED DCM GDS switch 2 (exp/line sync - active low) C11806.JED ACM GDS switch 1 C11807.JED ACM GDS switch 2 (exp/line sync - active high) C1180701.JED ACM GDS switch 2 (exp/line sync - active low) example: Addition to a CPF file for a DCM with active low exposure required. [XPG] ... ... ....... ICPLFIle1 =D11619.JED "This is required" ICPLFile2 =B11620.JED "This is required" ICPLFile3 =C11727.JED "Required for DCM, use C11806.JED for ACM" ICPLFile4 =D1172801.JED "This file or D11728.JED required" "For ACM use C11807.JED or C1180701.JED" F2) Exposure used to be generated immediately following a frame sync. The exposure can now be generated asynchronous to the camera's frame sync pulse for those cameras that require an exposure (or frame start) pulse in order to start frame readout. The exposure can also be delayed relative to frame sync. Generation of a continuous exposure asynchronous to the grab routine is now possible. F3) Line Sync out can now be generated on a C40 timer. This feature allows for constant line sync timing with no variance due to ISR software. In this mode, the Line Sync is limited to a 50% duty cycle square wave. When calling grab, line sync out will be started and stopped by the grab function. When the DBF_StartLineScanOut function is called prior to frame grab, it generates the line sync out pulse and then the grab function does not generate or modify the pulse. F4) Calls to functions DBF_SetExposure and DBF_GetExposure require an additional parameter, ExposureStart. F5) Added function DBF_StartExposurePeriodic and DBF_StopExposurePeriodic which are used to start and stop a periodic exposure which runs asynchronous to the grab routine. NOTE: The exposure will not be generated by the camera module until an initial call to DBF_Grab or DBF_QuickGrab is performed, which initializes the module control registers. F6) The grab routine now sets the valid bits field of the grabbed image equal to the valid bits of the camera. The grab also ensures that the image depth will accomodate the camera image. F7) Module inputs are left enabled after grab so that linesync or exposure pulses running asynchronous to the grab will continue to pass through the module to the camera. These signals do not pass through the camera module prior to an initial call to DBF_Grab or DBF_QuickGrab. Notes: ISP programming does not program the slave module when operating in dual module grab mode. This will not cause problems as all camera control is performed by the master in this mode of acquisition. ISP programming does not check if the module is of the same type as that specified in the CPF for ISP module programming. This is NOT critical as the ACM and DCM programming files are very similar and proper programming will occur when the proper CPF file is loaded. ISP programming does not return an error if the specified module is not present. 2. Bug fixes. A) PC library: A1) Fixes to DPK_LoadCOFFFile to allow proper load on a PENTIUM system. Tested with a PENTIUM 90 and Windows 95. A2) Fixed bug that did not allow the HClampStart value to be set to 0. A3) Fixed DBI_FilterModifyKernel PC interface. A4) In HAMC4742.CPF, changed BitsPerPixel from 16 to 10. A5) DPK_InitXPG now verifies that coff file writes to the DSP were all successfull. This uses a new bit in the PCDSPSTAT register, which will stay set if any XDC transfer fails. A6) Fixed bug in DBG_WriteText which caused it to send an extra character depending on the string length. Also the PC will send one character per longword to match calling it from the DSP. B) DSP code: B1) Turning the local bus cache on was dirtying the global cache memory instead of the local cache memory. B2) Fixed P_CREATE_MAX_IMAGES_POSSIBLE use in DBK_MmtCreateImage. B3) Fixed problem creating an image when create location is DONT_CARE and there is not enough memory on either the local of global bus for the image but sum of the total free memory for the two buses is enough. B4) Make sure the EDB memory and buffers are initialized before trying to create EDB images. Note that a call to DBK_MmtInitialize also clears all the EDB memory management information, hence if using an EDB it must be initialized after a call to DBK_MmtInitialize. B5) Fixed bug that did not allow proper operation of the ACM when using a clock source that is not genlocked to the line valid. B6) DBD_ClearDisplayMemory now works if the TLUTs are enabled. B7) Fixed DBF_QuickGrabStatus which reported ready when it was not. C) Interpreter: C1) Fixed error reporting in DPV_VesaDisplayImage. If there was an error the screen was not being put into text mode until a keypressed from the user, then the error was reported. The fix returns the screen to text mode immediately. C2) Fixed problem with EDB image number parameter in the call to the DBK_MmtGetImageInfo function. It was being handled as an INT instead a LONG hence losing the EDB image flag in the upper word. C3) The interpreter used to start up and change the graphics mode. Now it only changes the mode when doing the functions "dmem", "dvga", "gb" and "hg". D) Manual: D1) In the function DBK_MmtCreateImage the flag P_CREATE_NOERR_NUMIMG has been corrected to P_CREATE_MAX_IMAGES_POSSIBLE. Note: Version 2.00 of the software will not work with assembly revs X9 XPG and later (PCB revs A and later). To make it work if this is a problem modify dpdefs.h, change #define P_XPGREV 0x0c to #define P_XPGREV 0x0e. To compile and put into the library: For Borland: bcc -c -w -ml -I..\include initxpg.c tlib ..\lib\xpgblib.lib -+ initxpg.obj For Microsoft: cl /W4 /AL /batch /c /Od /I..\include initxpg.c lib ..\lib\xpgmlib.lib -+ initxpg; For Microsoft Windows use the make file wxpgmlib.mak, as the DLL requires all objects for linking. ============================================================================== Revision 2.00 (12-May-1995) 1. New A) Added functionality: A1) The XPG now supports the enhanced display board (EDB). The functions available for the EDB are: - DBD_DispEnableImage - DBD_DispLoadImgLUT - DBD_DispEnableOverlay - DBD_DispLoadOvlLUT - DBD_DispEnablePassthru - DBD_TLUTEnable - DBD_DispImageRoam - DBD_TLUTGetDepth - DBD_DispInit - DBD_TLUTGetMap - DBD_DispSetImgFOV - DBD_TLUTLoad - DBD_DispSetOvlKeyIndex - DBD_TLUTRead - DBD_DispZoom - DBD_TLUTSetDepth - DPD_DispGetInit - DBD_TLUTSetMap - DBD_DispImage In addition the following existing functions also support the EDB: - DBI_CopySubImage - DBI_CopyImage - DBI_SetImageBuffer - DBI_ClearDisplayMemory. A2) A function to do real time frame averaging has been written. DBI_RealTimeFrameAveraging. A sample program rtfasamp.c is provided in the pc\samples directory. A3) Added support for LINEPAIR cameras, XPG memory only. A4) SRAM can now be used as cache. See the DBK_MmtSetCacheFlag function in the "Function Library" manual. A5) Support for a single ACM that has the jumpers configured for dual ACM mode. A6) New function to return camera data size and the number of valid bits per pixel, DBF_GetCameraDataSize. B) Interpreter: B1) Added GrabNDisplayContinuous in the interpreter (short form is gc). This function will allow a user to grab and display until the <ESC> key is pressed. The usage and set up of this function is demonstrated in the script file cgrab.scr. B2) Added an interpreter script to show how to call a DSP user function from the interpreter. user.scr. B3) Added EDB functions. B4) Interpreter scripts edbors17.scr to demonstrate the EDB in 800x600 one screen mode with an rs170 analog camera, and edboncam.scr to demonstrate the EDB in 800x600 one screen mode with no camera. C) Sample code: C1) The sample program usersamp.c was renamed usr1samp.c and now is compiled with usr1.bat instead of user.bat. It also loads usr1.out instead of a.out. The board component now generate usr1.out. C2) A new sample program usr2samp.c has been added to show how to return parameters from the board to the PC. C3) A new sample program that grabs and histograms an image, putting them up on the screen. It also allows a user to modify the gain and offset values of the camera while grabbing. tcamsamp.c. C4) Sample to show how to use the real time frame averaging function. rtfasamp.c. D) New CPF files: - ae4128.cpf for Amber 128x128 cameras. - ae4256.cpf for Amber 256x256 cameras. - radiance.cpf for Amber radiance. - tm1000.cpf for Pulnix TM 1000 cameras. - hamc4742.cpf for Hamamatsu C4742 cameras. - dalcadxd.cpf for Dalsa CA-D1-0256D cameras. - dalcadxg.cpf for Dalsa CA-D2-1024G cameras. - dalclcxa.cpf for Dalsa CL-C4-2048A cameras. - kodak14.cpf replaces untested kodak.cpf for kodak megaplus 1.4 cameras. 2. Bug fixes. A) PC library: A1) Fixed bug in CPF reader which required the oscillator type to be set to VARIABLE and an oscillator frequency to be provided. Other oscillator type are now properly handled. A2) The function DPF_LoadCPF now uses the environment variable DIPXPG. Calls to this function no longer require the cpf file path. A3) DPK_InitPCK initializes the XPGSTATUS structure for each XPG from the global default setup instead of it's own set of defaults. B) DSP code: B1) In DBI_CopySubImage fixed the ouput image line offset calculations. B2) In the DBI_Arith function. - Fixed pixel counter problem for the MIN, MAX, AND_COMPLEMENT and DIVIDE operations. - Fix scale and offset versus no scale and no offset table selection. Once no scale and no offset tables were in use the scale and offset tables were no longer accessible. - In the divide function added a round up factor. Also correct register usage for converting float back to integer. B3) Fixed problem in DBF_QuickGrabStatus that caused the function to wait even when the wait flag was set to P_GRAB_NO_WAIT. B4) Fixed problem with creating buffers in Local Bus SRAM. C) Interpreter: C1) Fixed the short form of DPK_XDCPutImage and DPK_XDCPutData in the interpreter from xgi and xgd to xpi and xpd respectively. C2) Fixed the parameter count for DBI_Moment. ============================================================================== Revision 1.01 (14-Mar-1995) 1. New A) ACM support. B) Programmable ocillator now works. C) Addition of default module output register for CPF. D) rs170ana.cpf, ccir.cpf. E) Gain and offset functions for the ACM have been added. - DBF_MIOGetGain - DBF_MIOGetOffset - DBF_MIOSetGain - DBF_MIOSetOffset - DBF_MIOSetOscFreq 2. Bug fixes. A) Fixed DPI_Arith NOT-XOR1 option. B) Fixed DBK_MmtCreateImage and DBK_CreateBuffer to check for images dimensions (pixels or lines) <= 0, and buffer size <= 0. ============================================================================== Revision 1.00 (24-Feb-1995) 1. New A) The XPG-1000 interpreter. Refer to software reference for purpose and usage. Interpreter status is in inter.doc and is in the top level directory of the release along with the interpreter. With the addition of the interpreter to this release the program testcomm.exe is no longer needed and has been deleted from this release well as it's source code in pc\samples. For the same reason lcoff.exe is no longer provided. Three interpreter script files have been provided. init.scr To initialize 1 XPG and get a vga palette file into the interpreter. grab.scr Initializes an XPG, loads a .cpf file, creates an image, grabs the image and displays it on the vga screen. qgrab.scr The script is essentially the same a grab.scr except that the quick grab functions are used to grab. 2. Bug fixes. A) DBI_XYProfile was returning incorrect sums for X profiles. B) DBK_MmtReadBufferHeader's pc interface had line and pixel references inverted. ============================================================================== Revision 0.64 (21-Feb-1995) Special 1. New. A) Support of dual DCM. B) Support of look up tables on DCM. 2. Bug fixes. A) Fixed bug in DPV_GetVgaPalette which loaded an extra entry. B) Fixed bug in linescan code introduced in revision 0.63. ============================================================================== Revision 0.63 (07-Feb-1995) Notes: 1. New A) Windows demonstration program, in DIPXPG\wdemo. B) Frame averaging sample in DIPXPG\pc\samples. 2. Bug fixes. A) Fixed a register usage problem in DBI_Arith. B) Fixed quick grab. C) Fixed DBK_XDCGetImage and DBK_XDCPutImage under Windows. 3. Misc A) The following functions are still untested. DPS_Tiff* and DPS_Jpeg*. B) img.006 renamed to headmres.img (Magnetic Resonance image of a human head). ============================================================================== Revision 0.62 (17-Jan-1995) Notes: 1. New A) Heap size is to be changed from 0x1000 to 0x5000 in board link file. B) The following CPF related functions are tested DPF_LoadCPF DBF_SelectCPS DBF_FreeCPS This release now supports Quick Grab Setup(QGS) functions. DBF_QuickGrabAllocSetup DBF_QuickGrabSetup DBF_QuickGrab DBF_QuickGrabResetSetup DBF_QuickGrabDeleteSetup The following Grab Setup modification functions have been tested in this release. DBF_GetExposure DBF_SetExposure DBF_GetFrameHoldOff DBF_SetFrameHoldOff DBF_GetFrameSkip DBF_SetFrameSkip DBF_GetFrameCount DBF_SetFrameCount DBF_GetGrabWindow DBF_SetGrabWindow DBF_GetLineScanOut DBF_SetLineScanOut C) Changed the _ulG_* variables in dsp\samples\userprg1.lnk to _G_ul*, to reflect the name changes in xpg.lib made in version 0.60. 2. Bug fixes A) Fixed memory test in initialization of board software. It was detecting SRAM when there was none. B) Fixed DPW_CopyDspToWindows which called DPK_XDCGetData with NumPixels instead of the number of longwords. Fix is NumPixels / 4. ============================================================================== Revision 0.61 (06-Jan-1995) Notes: 1. New A) Microsoft dll in pc\lib. Make file, link file and .def files in pc\source. wxpgmlib.*. This dll is not tested. 2. Bug fixes. A) Fixed opcode value in the DPK_XCCPopOpcode statement in the DBF_SetExposure function. ============================================================================== Revision 0.60 (19-Dec-1994) Notes: A) Function name changes: DBI_CreateFaverageBuffer to DBI_CreateFrameAveragingBuffer DBI_Faverage to DBI_FrameAveraging DPI_GetLut to DPV_GetVgaPalette B) Microsoft support. A microsoft large model host library has been added to the DIPXPG\pc\lib directory. It's called xpgmlib.lib. The make file, xpgmlib.mak, is in DIPXPG\pc\source. C) All images processing functions tested with 8 bit data. D) GRAB Tested Features - The values for these feature have been tested through the Camera Parameter File(CPF). Linescan grab Areascan grab 8 and 16 bit acquisition Multi Image grab Exposure (Areascan) Timed Trigger (Only tested with area scan) Frame Holdoff (Areascan) Frame Skip (Areascan) Linescan Output Pulse - NOTE: This feature does not support short pulses under 100us. A line sync period larger than (32K * the camera's pixel clock period) is not possible. NOTE: For all 40MHz boards. The software assumes a 50 MHz clock. All function calls or Camera Parameter Files that take timing values in us, will produce timing of 1.25 x the spcified value on 40 MHz boards. Tested Functions DBF_Grab DPF_LoadCPF DBF_SelectCPS DBF_SetFrameCount DBF_GetGrabWindow DBF_SetGrabWindow DBF_SetExposure New dal*.cpf file. Description of the cameras supported with the files. ============================================================================== Revision 0.13 (28-Nov-1994) Notes: A) Additional functions tested (8 bit data only). - DBI_Filter - DBI_FilterSlice - DBI_FilterMorphology - erode grey scale only. - DBI_Histogram - DBI_Statistics - DBI_Warp - DBI_GenerateWarpTable - DBI_WarpWithTable - DBI_LoadLut - DBI_RemapImage B) The coff file has been renamed from a.out to xpg.out. C) Added user code sample. This shows a user how to write a host interface to a user board function. In the pc\samples directory: usersamp.c In the dsp\samples directory: everything. ============================================================================== Revision 0.12 (11-Nov-1994) Notes: A) Multigrab tested. B) DBI_Arith and DBI_ConvertData tested. The Arith Divide option works on 16 bit data. C) 16 bit image to disk function tested. D) New version of lcoff.exe. It will load a.out at ioport 0x300 if there is no parameters on the command line. lcoff -fname.out will load user specified coff file. -iiobase (in hex, ie: 0x310) for using a different iobase. ============================================================================== Revision 0.11 (02-Nov-1994) Notes: A) - The load coff file option of the testcomm program will now load any .out rather than just a.out. - Set up environment path. B) New a.out to run in global dram only. C) Fix to install file. ============================================================================== Revision 0.10 (28-Sep-1994) Notes: This is a very alpha revision of the XPG-1000 software. Only the following functions have been tested. DPC_CopyMemToDsp DBI_ConvertData DPC_CopyDspToMem DPC_CopyDspToDisk DPC_CopyDiskToDsp DPC_VesaDisplayImage DPK_MmtInitialize DPK_MmtCreateBuffer DPK_MmtCreateImage DPK_MmtDeleteBuffer DPK_MmtDeleteImage DPK_MmtGetImageInfo DPK_MmtReadBufferHeader DPK_MmtSetCalculationWindow DPK_MmtSetValidBits Test software sent with this release. lcoff.exe to load a coff file to the board. Syntax: lcoff a.out testcomm.exe to use memory management functions and perform a grab. Also functions to save image to disk or to display them on the vga screen. ==============================================================================Download Driver Pack
After your driver has been downloaded, follow these simple steps to install it.
Expand the archive file (if the download file is in zip or rar format).
If the expanded file has an .exe extension, double click it and follow the installation instructions.
Otherwise, open Device Manager by right-clicking the Start menu and selecting Device Manager.
Find the device and model you want to update in the device list.
Double-click on it to open the Properties dialog box.
From the Properties dialog box, select the Driver tab.
Click the Update Driver button, then follow the instructions.
Very important: You must reboot your system to ensure that any driver updates have taken effect.
For more help, visit our Driver Support section for step-by-step videos on how to install drivers for every file type.