==============================================================================
==============================================================================
==============================================================================
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.