Software Development Kit

The BitFlow SDK

Supporting all BitFlow frame grabbers, BitFlow’s Software Development Kit (SDK) provides everything needed for a developer to bring high speed image acquisition into their Machine Vision applications. BitFlow’s APIs are the result of over 25 years of experience in building imaging applications. At the highest level, the API provides a simple but powerful interface that can be used to to build an application with a handful of function calls. While these function are easy to use, under they hood they provide a high speed, robust image, low CPU image buffer management system. For developers that require most custom control of the acquisition, the mid and low level APIs provide total control of every aspect of the frame grabber. Every bit on the frame grabber is documented and accessible.

The focus of the SDK is to get images into you application’s buffers with super low latency and zero CPU usage. Further, we strive to make this as easy to integrate into whatever kind of acquisition methodology is required for your application. The SDK then stays out of the way, leaving the CPU and other PC resources available for your processing.

The SDK comes with a large number of example applications with full source code for aiding in the understanding the available functions. The SDK also provides a number of utilities for developing and debugging applications. In addition, the SDK comes with some fully developed applications which can be used standalone for users interested in simply collecting images or images sequences and processing them offline with their own tools.

The SDK fully supports GenICam and provides a complete and robust GenTL producer for camera control and image streaming.

There are two version of the SDK: free and paid. The free version is all that is need to use BitFlow’s frame grabbers with a 3rd party Machine Vision application such as LabView, VisionPro and HALCON. The paid version is needed for use developing their own applications that will acquire from BitFlow frame grabbers. The paid version provides header files, libraries and copious quantities of example programs with source code. All of the APIs in each support language are fully documented.

The SDK Supports both 32-bit and 64-bit Windows and Linux.

Features

Primary Applications

  • BitFlowPreview – Live video display, save images to disk
  • BitFlowCapture – Image sequence capture and playback
  • CamML – Configuration file editor and tester
  • Ximilon – GenICam camera control (CXP and CL)
  • BFLog – Driver message logger and debugger
  • BFCom – HyperTerminal-like application allowing direct access to a Camera Link camera through the board’s serial port
  • SysReg – Set system-wide defaults and setting

API Layers

The BitFlow API is broken into tiers. User applications can access any tier: higher levels offer more functionality with fewer calls while lower levels offer custom control of the board. All functions support all model frame grabbers.

  • Buffer Interface (BufIn): Supports high-level buffer management.
  • Camera Interface level (Ci): Provides mid-level control of frame grabber hardware. For example, setting trigger modes, changing I/O settings, etc.
  • Low-level interface: Provides the most direct access to board control and status registers and memory. This level fully exposes the board’s architecture to the user, something not available in many competing products.

SDK Support

The BitFlow SDK supports Windows 7/Windows 8/Windows 10 in both 32-bit and 64-bit versions. APIs are available for C/C++/C# (.NET).

There is also a BitFlow SDK for Linux, 32-bit and 64 bit. Most current major distros kernel versions are supported. Both Intel and ARM processors are supported.

Drivers are available for off-the-shelf image processing packages such as MVTec’s HALCON, Cognex’s VisionPro and AIK, National Instrument’s LabView, The Mathworks MATLAB, and IO Industries’ Video Savant. See the 3rd party software page for the latest drivers.

Specifications

  • Windows Windows 7/Windows 8/Windows 10 drivers and DLLs
  • Asynchronous, interrupt-driven, multitasking, multi-threaded operation
  • C/C++/C#/.NET 32-bit interface for 32-bit version of Windows
  • C/C++/C#/.NET 64-bit interface for 64-bit version of Windows
  • 32-bit applications are supported on 64-bit Windows
  • Acquisition event (e.g. end of frame, end of DMA, loss of sync) notification via non-polling interrupt signals
  • High-level API supports complete setup and acquisition with less than 10 function calls, low level API supports total control of the camera interface and includes sophisticated line rate and exposure time control
  • Very low latency DMA reset code that allows for tight spacing of continuous variable-size imaging targets
  • Complete API error tracking system, with all error message destinations under full program control
  • Full observability of the board’s current state: line number, maximum line number (for variable size images), acquisition state, trigger status, etc.
  • Camera configuration and test utilities
  • Example applications with source code for viewing, processing, buffer management, and sequence acquisition
  • Extensive built-in diagnostics to assist during support incidents
  • All BitFlow frame grabbers can produce a synthetic image so application development can start before a particular camera is available