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.
- A 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 Linux. Please click on the Download link to learn about and download the latest official driver runtime for your platform.
Structure
All Modules are DLL’s in Windows.
- 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..