Imaging Development Environment for Applications (IDEA) is a comprehensive set of hardware independent function calls, ActiveX controls, and software tools for board configuration, video control, image capture, video streaming, memory management, and more. IDEA consists of a Software Development Kit (SDK), a Tools library, and example programs with source code. The IDEA SDK provides both C functions and ActiveX controls so that programmers have their choice of utilizing Microsoft Visual C/C++, Visual Basic, or other supported OCX languages.
IDEA is a hardware independent library providing systems developers and OEMs with the confidence of a single interface to all supported boards, currently the AccuStream product families. Users can write their applications once and support their products and applications using any of the AccuStream frame grabbers. As new hardware is added to these product families, users can support them by adding the appropriate board driver and using any new function calls for new or unique features of that hardware. With IDEA, there is no need to reprogram the developed application.
- AccuStream product line support
- Hardware independent
- C functions
- AcitveX controls
- Auto-SYNC Tools library
- Example programs with source code
- Royalty-free run-times
- Visual C/C++
- Visual Basic
- Windows 7 & 10, 32 & 64 bit
The SDK includes a series of C functions for frame grabber control and management as well as ActiveX controls for frame grabber information, frame grabber access and control, and video display in a window. The Tools library is a series of function calls that allows programmers to incorporate Auto-SYNC (Foresight Imaging’s automatic video analysis and board configuration software) functionality into their application programs. Several example programs, with source code, are included for image capture and display, image saving, triggered capture, video streaming, and more.
|Retrieves specified board information.
Image Data Access
|Allocates frame grabber memory space for a specified image format.
|Copies a block of data from the IDEA frame grabber memory into fpwBuf.
|Copies a block of data from *fpwBuf into the AccuStream Plus frame grabber memory.
|Accumulates histogram data from pixel values in frame grabber memory.
|Cancels a previously submitted asynchronous operation.
|Retrieves the status of a previously submitted asynchronous operation.
|Allows queued operations that are on hold to be executed.
|Waits for the asynchronous operation to complete.
|Executes the specified command as set up in the specified image handle.
|Returns status of Command Done.
|Makes a previously allocated image buffer in the frame grabber memory available.
|Invalidates all image handles assigned to the specified board.
|Transfers any rectangular section of a captured image from the image buffer in frame grabber memory to the application buffer fpwBuf.
|Accumulates pixel code histogram data from any rectangular section of a captured image from the image buffer in frame grabber memory to the application buffer fpwBuf.
|Gets the RSET currently in use by an image handle.
|Configures an image handle for use with an Foresight Imaging board.
|Changes the channel used with a specified image handle.
|Returns at a specified date and time.
|Adds two millisecond time values.
|Converts absolute date/times or elapsed days/milliseconds to an ASCII string.
|Adds the specified number of milliseconds to the time value.
|Adds the specified number of milliseconds to the current time and stores this value.
|Stores the current date and time.
|Subtracts the second argument from the value pointed to by the first argument.
|Returns after waiting the specified number of milliseconds.
Preparing Board Access
|Sets up board at the specified slot number.
|Scans for up to 15 Foresight Imaging boards and claims all of them.
|Prohibits IDEA access to the specified Open Data structure.
|Declares that Error wError has been encountered while processing the board handle.
|Prepares a board for use by associating it with an Open Data structure.
|Releases possible claim on a board.
|Writes a 16-bit Word into one of the indirect board registers.
|Writes a 16-bit Word into one of the direct board registers.
|Checks an RSET structure against mode-specific criteria.
|Reads the contents of a file containing IDEA video settings data.
|Writes the IDEA video settings data to an ASCII file.
|Configures an Foresight Imaging board.
|Reads a 16-bit Word from the specified indirect register.
|Reads a 16-bit Word from the specified direct register.
|Allocates the AS_RUNSTATE structure complex.
|De-allocates the entire AS_RUNSTATE, AS_CHANNEL, RSET complex and completes the Auto-SYNC “session”.
|Reports status of Command Ready.
|Provides a list of AccuStream boards found at system start-up.
|Surveys channels on the AccuStream board looking for composite sync, horizontal sync, vertical sync, and syncless video sources.
|Generates a complete RSET structure and then performs the final adjustments for framing, pixel phase alignment, contrast and brightness.
|Makes a preliminary contrast and brightness adjustment and the top, bottom, left and right sides of the image are located.
|Sets up specified command of specified board.
|Returns status of Command Done.
|Waits up to wTimeout_mS milliseconds for Command Done, then returns.
|Returns status of Command Ready.
|Waits up to wTimeout_mS milliseconds for Command Ready then returns.
|Starts the Live Video operations.
|Sets the current field number.
|Sets the Black Level.
|Sets the current video signal channel.
|Sets the Gain Range.
|Sets the sync source.
|Posts a request to the driver to load the RSET values for the channel to the board and begin tracking syncs.
- ImaBoardInfo ControlThis is an overview control that provides the application with information about how many and what kinds of boards are present in the system.
Name Description BoardCount Determines the number of boards in the system BoardHandle Returns a board type based on the zero-based board index. BoardType Returns a board type based on the board index
- CImaFG Control
This is the primary interface for accessing the board. Through this interface, an application is able to access the hardware to initialize the board, perform video-tuning operations and access the video data.
Name Description BitsPerPixel Shows the potential resolution of the frame grabber in bits per pixel. BoardHandle Allows displaying or editing of the board handle. BoardLocation Displays the location of the board as determined by the device driver. BoardType Shows the board type. Brightness Changes or retrieves the brightness of the incoming image. Contrast Changes or retrieves the contrast of the incoming image. FireSnapEvent Informs the control whether or not to fire an event when completing a snap operation. FrameGrabDelay Controls the number of milliseconds that should be delayed when doing sequential grabs. HardwareProfile The complete path to the Common Hardware Profiles (CHP) database. PixelType Tells the control whether to perform single channel monochrome or multi-channel RGB snaps. SequenceCount Tells the object how many frames to snap when performing a SnapSequence operation. SerialNumber Shows the board serial number. SnapMode Determines that type of the snap whether it’s the even field, odd field, or both. SyncChannel Changes the sync source. VideoChannel Changes the video input channel. XScaleFactor Controls the scaling of the image as input from the frame grabber. YScaleFactor Controls the scaling of the image as input from the frame grabber.
Name Description Close Closes access to the board. GetDeviceInfo Returns a structure indicating the number of boards in the system and information about each board. GetImageData Retrieves the full image. GetImageDIB Returns the currently allocated image handle. GetImagePicture Returns a Picture Description suitable for placing in a Visual Basic Picture object. GetLine Retrieves a full scanline of the image. InitRGB Allows the user to programmatically initialize the parameters for an RGB grab. IsVideoDetected Returns a Boolean based on whether or not video is detected on the currently specified video channel/sync channel combination. Open Opens the board for access. SaveImageToFile Saves the current image to a file. SetDisplayWindow Passes the handle of a CImaDisplay to the frame grabber control to enable continuous and automatic update of the display. Snap Causes a single frame or field to be snapped into the frame grabber memory. SnapRGB Performs three consecutive snaps on three separate channels and combines the image into an RGB bitmap. SnapSequence Snaps a sequence of images and transfers to a system buffer. StreamCapture Streams video into the buffer. TriggeredSnap The hardware is put into a state waiting for a hardware trigger to initiate a capture.
Name Description SnapImage The control fires a SnapImage event on the completion of an image grab. ExternalTrigger The control fires an ExternalTrigger event when the trigger is received. SequenceComplete The control fires a SequenceComplete event if the application requests the snap of a sequence of images.
This is the interface that an application uses to create a pseudo live video window. This interface controls passing data from the frame grabber into a DirectDraw overlay surface where it is displayed.
Name Description BackColor Determines the default background color of the display window when no image data is being displayed. BorderStyle Sets the style of the border of the video window. ColorKey Sets the value of the color key when the display mode is using a DirectDraw overlay surface. DisplayMode Set the display mode. ScaleImageDisplay Determines if the video in the window is scaled to the size of the window or only displays the portion of the video that fits in the window.
Name Description Disable Disables display. Enable Enables display. GetDC Obtains a display context for mixing graphics with the image data. RegisterVideoWindow Takes a window handle for displaying pseudo live video. ReleaseDC Releases a display context. SetImageHandle Takes the image handle from the frame grabber object and uses it to retrieve the image for display. UnregisterVideoWindow Releases the overlay surface and disables tracking.