|================================================================================== SAPERA LT for Windows NT/2000/XP Version 5.00 (Build 511) December 9th 2003 Table of Contents - Disk Contents - What's New - Hardware Supported - Installation - Compatibility information - Limitations - Notes for using DirectShow source filter Disk Contents \Bin - Utility programs \CamFiles - Camera configuration files \Classes - Sapera++ classes source code \Demos - Demonstration programs \Examples - Example console programs \Fonts - Graphic font files \Help - Help files \Images - Images files used by demos and examples \Include - Header files \Lib - Import libraries (Microsoft and Borland) \PixPro - Pixel Processor high level API source code Windows system directory (winnt\system32) - Dynamic Link Libraries (DLLs) and ActiveX Controls (OCXs) Windows driver directory (winnt\system32\drivers) - Device driver and service files What's New Version 5.00: Sapera++: - Major improvements and additions to improve ease of use and reduce considerably the need to directly call the Sapera C API (CorApi). - Existing Sapera++ applications may be recompiled using the new classes without any source code changes - Appropriately modified existing Sapera++ based demos - New features common to most existing and new classes: - enumerated data types to replace Sapera constants - direct access to Sapera capabilities and parameters when existing Sapera++ functionality is not appropriate - improve argument validation and error handling - Improvements and additions to existing classes: SapManager - hardware reset of Sapera boards - retrieval of error code and string for the last Sapera error - add a new error reporting mode in which messages are remembered but not reported - dialog box for errors in Notify mode gives the possibility to skip subsequent popups by switching to Log Viewer mode SapAcquisition - software trigger of image acquisition - horizontal/vertical image flipping - save current Cam and Vic parameters to disk - management of flipping mode - detect current status of connector pins, including the possibility of automatically notifying an application when the status changes (e.g. loss of video signal) - automatic management of acquisition look-up tables, which may be reprogrammed or enabled/disabled by application code - support for planar input sources - optional delayed update of acquisition hardware parameters, allows a group of parameters to be updated at once. - add support for new acquisition configuration file (CCF) to replace CAM and VIC files SapBuffer/SapBufferWithTrash - support for buffer creation from valid virtual or physical memory addresses - direct access to buffer data address - Bayer filter - Copy() method now performs automatic data conversion between buffers of different formats - get counter stamp information - get number of bytes per pixel and buffer pitch - support for most buffer data read/write functionality - full support for buffer state functionality - support for buffers that can be shared between multiple processes - support for splitting and merging buffer components SapTransfer / SapXferPair - support for event types, cycle mode, flipping mode, and start mode - support for transfers between buffers of different formats - support for two destinations in parallel for the same source - support for a starting source object index - may register a separate callback function for trash buffers - stop calling application callbacks after aborting a transfer - support for detecting missing callback messages SapDisplay - support for pixel depth, interlaced flag, and refresh rate - improved support for display type - determine if display corresponds to the primary VGA board - support for programmable displays - support for determining availability of offscreen and overlay display SapView - support for overlay modes and keying color - user-defined view window title when using automatic window - support views that are not located on the primary display or the system VGA - support new scaling modes: fit to window, independent X/Y zooming, and user-defined - get the current Windows display context - partial support for view look-up tables - immediate mode for image display - display thread mechanism is more robust - New classes: CAcqDlg (in GUI classes) - manages loading of the acquisition configuration file (CCF), replaces the now obsolete CCamVicDlg class SapData - encapsulates CORDATA type from Sapera C libraries - contains base class SapData and derived classes for Sapera monochrome, RGB, YUV and point (x,y) types SapBufferRoi - replaces ROI functionality previously included in the SapBuffer and SapBufferWithTrashAndRoi classes SapLut - implements look-up table management - read/write access to individual LUT data elements - transfer data between LUT and an array (read/write) - load/save LUT from/to a file - all LUT data generation functionality is present SapGraphic - implements graphic drawing management - supports foreground and background colors, drawing mode, and text alignment - clipping is automatic - supports circles, dots, ellipses, lines, rectangles, text, and clearing to the foreground color - all drawing methods are available either for image data or non-destructive overlay - can draw on secondary displays and non-system VGA displays - features a batch mode for drawing in the non-destructive overlay, by which the drawing operations are accumulated internally, and shown on the screen only when requested by the application (may reduce screen flicker) SapGio - implements Sapera General I/O module management - management of I/O pin configuration (input/output/tristate) - get/set current pin state - application-specified callback function for input pins - automatic trigger of I/O pins SapCounter - implements Sapera Counter module management - access to counter base units, detection type, direction, and count - explicit starting/stopping of counter - application-specified callback function - The SapBufferWithTrashAndRoi class is now obsolete, as well as existing ROI methods in the SapBuffer class. However, their functionality is still present for backwards compatibility with existing applications. - The CCamVicDlg class is now obsolete, because of the new CCF file that combines information previously available separately in CAM and VIC files. However, its functionality is still present for backwards compatibility with existing applications. New features: - CamExpert, Sapera's camera configuration utility was completely redesigned for ease of use. - new user interface for parameter configuration - waveform views to improve understanding of signal inter-relationships - new single acquisition configuration file (.CCF) to be used in lieu of the CAM & VIC files - new context-sensitive help - Add support for sharing Sapera handles between processes - Added new function CorViewSetBuffer so that different buffer objects may be in turn associated with one view object. This may greatly reduce memory requirements in some cases. - Add support for Camera Link serial port API (as described in Camera Link Specification) - In Bayer filter, rename Advanced method to Golden Eagle, and add Eagle method - Add support for multiple display boards in one system (e.g., Bandit II + third-party VGA) - Add support for Windows Extended Desktop in View module - Add Visual Studio .NET support for Sapera++ based demos - Add a new buffer type that supports physical memory allocation in systems with large amounts of memory (more than 2 GBytes) - Add Sapera Grab Demo SDI (Single Document Interface) and Sapera Grab Demo MDI (Multiple Document Interface) - Increase maximum number of simultaneous Sapera processes from 8 to 16 - Add support for high frame rates in Sequential Grab Demo - Add support for planar input sources in acquisition module - Add support for camera signal status to Sapera++ demos Important fixes: - Many fixes in DirectShow filter - Fix sharing of Sapera resources between applications using host-based firmware, like Bandit II or X64 - Removed limit on number of Sapera objects supported by the contiguous memory manager (CorMem) - Greatly improved serial port driver compared to version 4.20 - Improved the performance of monochrome and RGB 10-10-10 image display using DIB mode - Sapera API functions are now much more cooperative with each other for sharing CPU time. This reduces greatly the probability of deadlock conditions when running Sapera applications, and may also result in better performance. - Optimize speed for the CorBufferRead, CorBufferWrite, CorBufferReadRect, and CorBufferWriteRect functions Previous Versions - See History.txt Hardware Supported Main boards - Bandit-II Series - Viper-CamLink - Viper-Digital - Viper-Quad - Viper-RGB - X64-CL Full, X64-CL Dual Daughter Boards: - Pixel Processor Installation 1) Install Sapera LT as follows: - Insert installation CD-ROM in your CD-ROM drive. - From Windows Explorer, run launch.exe. - Follow the installation program's on-screen instructions. 2) Optionally install one (or several) Sapera compatible board(s) driver. Consult the driver User's Manual for more information. Compatibility information Upgrading from 4.20 - All applications using the C API (CorApi) are compatible with Sapera 4.20 without any need to recompile. - All applications using the C++ API (Sapera++) are compatible with Sapera 4.20. However recompiling is strongly recommended so that all the latest fixes are available. Upgrading from 4.10 - All applications using the C API (CorApi) are compatible with Sapera 4.10 without any need to recompile. - All applications using the C++ API (Sapera++) are compatible with Sapera 4.10. However recompiling is strongly recommended so that all the latest fixes are available. Upgrading from 4.00 - All applications using the C API (CorApi) are compatible with Sapera 4.00 without any need to recompile. - All applications using the C++ API (Sapera++) are compatible with Sapera 4.00. However recompiling is strongly recommended so that all the latest fixes are available. Upgrading from 3.10 - Applications NOT using Sapera classes are fully compatible. - Applications using Sapera classes are not compatible with 3.10. Limitations - SAPERA resource contention problems with ActiveX Controls (See section "Using Controls at Run-time" of ActiveX Controls Manual) - When calling CorViewShow on an auto-keying overlay buffer, and then calling CorViewShow on another auto-keying overlay buffer, some graphics adapters may cause the color key to be displayed briefly on the screen. In the Acquisition demo, this behavior may be corrected by choosing a buffer count of 1 (default value is 2). - The Visual Basic ActiveX demo cannot be loaded in the Visual Studio .NET development environment - If you are using Visual Studio .NET under Windows XP, you must be logged in with debugging privileges in order to be able to debug Sapera applications. That is, you must either be Administrator, or a regular user which belongs to the Debugger Users group. - Consult the board's Readme file for more information. Notes for using DirectShow source filter 1- The source filter will only output RGB32 images. If the camera's output has a different pixel format (e.g. mono8 or YUY2), conversion will be performed in software inside the filter. 2- Setting the source filter's frame rate is done through the filter's property page, by setting how many camera frames should be skipped for each frame that is actually output by the filter. This method of setting frame rates gives a truly constant frame rate instead of an averaged approximation.