IDEA Software
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.
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.
Functions List
Board Information
Name |
Description |
nHP_GetBoardInfo |
Retrieves specified board information. |
Image Data Access
Name |
Description |
ihHD_Allocate |
Allocates frame grabber memory space for a specified image format. |
eHP_FBFastRead |
Copies a block of data from the IDEA frame grabber memory into fpwBuf. |
eHP_FBFastWrite |
Copies a block of data from *fpwBuf into the AccuStream Plus frame grabber memory. |
eHP_FBHisto |
Accumulates histogram data from pixel values in frame grabber memory. |
Image Handle
Name |
Description |
eHD_ABOCancel |
Cancels a previously submitted asynchronous operation. |
eHD_ABOGetStatus |
Retrieves the status of a previously submitted asynchronous operation. |
eHD_ABORelease |
Allows queued operations that are on hold to be executed. |
eHD_ABOWait |
Waits for the asynchronous operation to complete. |
eHD_Command |
Executes the specified command as set up in the specified image handle. |
bHD_CommandDone |
Returns status of Command Done. |
eHD_Deallocate |
Makes a previously allocated image buffer in the frame grabber memory available. |
eHD_DeallocateAll |
Invalidates all image handles assigned to the specified board. |
eHD_FBFastReadPixel |
Transfers any rectangular section of a captured image from the image buffer in frame grabber memory to the application buffer fpwBuf. |
eHD_FBHistoPixel |
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. |
eHD_RSET_Get |
Gets the RSET currently in use by an image handle. |
eHD_RSET_Set |
Configures an image handle for use with an Foresight Imaging board. |
eHD_SetChannel |
Changes the channel used with a specified image handle. |
Millisecond Timer
Name |
Description |
---|
fine_abswait |
Returns at a specified date and time. |
fine_add |
Adds two millisecond time values. |
fine_ascii_local |
Converts absolute date/times or elapsed days/milliseconds to an ASCII string. |
fine_delta |
Adds the specified number of milliseconds to the time value. |
fine_later |
Adds the specified number of milliseconds to the current time and stores this value. |
fine_now |
Stores the current date and time. |
fine_subtract |
Subtracts the second argument from the value pointed to by the first argument. |
fine_wait |
Returns after waiting the specified number of milliseconds. |
Preparing Board Access
Name |
Description |
bhHP_Claim |
Sets up board at the specified slot number. |
nHP_ClaimAll |
Scans for up to 15 Foresight Imaging boards and claims all of them. |
eHP_Close |
Prohibits IDEA access to the specified Open Data structure. |
_HP_Error |
Declares that Error wError has been encountered while processing the board handle. |
eHP_Open |
Prepares a board for use by associating it with an Open Data structure. |
HP_UnClaim |
Releases possible claim on a board. |
Register Functions
Name |
Description |
HPIout |
Writes a 16-bit Word into one of the indirect board registers. |
HPout |
Writes a 16-bit Word into one of the direct board registers. |
eHD_RSET_Check |
Checks an RSET structure against mode-specific criteria. |
eHP_RSET_FRead |
Reads the contents of a file containing IDEA video settings data. |
eHP_RSET_FWrite |
Writes the IDEA video settings data to an ASCII file. |
eHP_RSET_Set |
Configures an Foresight Imaging board. |
wHPIin |
Reads a 16-bit Word from the specified indirect register. |
wHPin |
Reads a 16-bit Word from the specified direct register. |
Tools
Name |
Description |
eHD_ASInitiate |
Allocates the AS_RUNSTATE structure complex. |
eHD_ASTerminate |
De-allocates the entire AS_RUNSTATE, AS_CHANNEL, RSET complex and completes the Auto-SYNC "session". |
bHP_CSyncDetect |
Reports status of Command Ready. |
nHP_Report |
Provides a list of AccuStream boards found at system start-up. |
eHD_SyncSurvey |
Surveys channels on the AccuStream board looking for composite sync, horizontal sync, vertical sync, and syncless video sources. |
HD_VideoAlign |
Generates a complete RSET structure and then performs the final adjustments for framing, pixel phase alignment, contrast and brightness. |
HD_VideoMeasure |
Makes a preliminary contrast and brightness adjustment and the top, bottom, left and right sides of the image are located. |
Video Control
Name |
Description |
eHP_Command |
Sets up specified command of specified board. |
bHP_CommandDone |
Returns status of Command Done. |
eHP_CommandDone |
Waits up to wTimeout_mS milliseconds for Command Done, then returns. |
bHP_CommandReady |
Returns status of Command Ready. |
eHP_CommandReady |
Waits up to wTimeout_mS milliseconds for Command Ready then returns. |
eHD_LiveVideo |
Starts the Live Video operations. |
eHD_NumberFields |
Sets the current field number. |
eHP_SetBlackLevel |
Sets the Black Level. |
eHP_SetChannel |
Sets the current video signal channel. |
eHP_SetGain |
Sets the Gain Range. |
eHD_SetSyncSource |
Sets the sync source. |
eHD_TrackSync |
Posts a request to the driver to load the RSET values for the channel to the board and begin tracking syncs. |
ActiveX Controls
ImaBoardInfo Control
This is an overview control that provides the application with information about how many and what kinds of boards are present in the system.
Properties
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.
Properties
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. |
Methods
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. |
Events
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. |
CImaDisplay Control
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.
Properties
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. |
Methods
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. |