Overview

We have designed a software API to be used by all Hamamatsu digital cameras; it is named DCAM-API (Digital CAMera Application Programming Interface). The purpose of DCAM-API is:

  • To standardize camera control and functionality of all Hamamatsu digital cameras.
  • To bridge all the different RS-422/LVDS, CamLink, RS-232, IEEE-1394, USB software API and interfaces (Ex. Phoenix SDK, IFC, File I/O Serial, OHCI 1394, USB EHCI, etc.) into one defined set of API functions.
  • To allow for future expandability of the API with limitless and seamless integration of digital cameras and interfaces without the need for re-building the host application to support them.
  • Simple, yet powerful set of functions to control all the necessary features and data acquisition control functions of our cameras.
  • Dynamic detection of camera features and control.

DCAM-API is currently supported on Microsoft Windows (32-bit and 64-bit) and Apple Macintosh OSX. Please use the links below to learn about and download the latest official driver runtime for your platform.

Structure

DCAM-API Library (frame work)

All Modules are DLL’s in Windows. In Mac, they are framework libraries.

  • The application’s communication with all the installed cameras in the system is done through one entry point – The DCAM-API Library.
  • The DCAM-API Library contains all the defined exported functions of the API.
  • DCAM-API is responsible for connecting all registered DCAM-API Modules to the host application.
  • Basic flow
    • Application layer (host) initializes the DCAM-API Library.
    • DCAM-API initializes each module and queries how many devices are found.
    • Total count is returned back to the host. Host can open a connection to any of the devices by index.
    • Once opened, all communication and data acquisition to that device through its connected interface are handled with the link.
    • There is no theoretical limit to how many devices or how many links are opened.
      • Allows for simultaneous control/acquisition of multiple devices.
    • Dynamic property and image data type querying. Common memory management.
    • When done, the connection is closed to each module/device, then the API is cleaned up and closed.