Euresys::EGrabber Coaxlink Programmer's Guide
• CameraTriggerFallingEdge (end of camera trigger)
• StrobeRisingEdge (start of light strobe)
• StrobeFallingEdge (end of light strobe)
• AllowNextCycle (CIC is ready for next camera cycle)
• ...
and in the I/O toolbox category of events, we have:
• LIN1 (line input tool 1)
• LIN2 (line input tool 2)
• MDV1 (multiplier/divider tool 1)
• ...
Counters
Coaxlink firmware counts each occurrence of each event (except new buffer events) and makes this counter available
in a GenApi feature named EventCount. Each event has its own counter, and the value of EventCount depends
on the selected event:
// select the CameraTriggerRisingEdge event
grabber.setString<DeviceModule>("EventSelector", "CameraTriggerRisingEdge");
// read the value of the counter
int64_t counter = grabber.getInteger<DeviceModule>("EventCount");
or, using the selected feature notation:
// read the value of the CameraTriggerRisingEdge counter
int64_t counter = grabber.getInteger<DeviceModule>("EventCount[CameraTriggerRisingEdge]");
Notifications
As we've just seen, when an event occurs, a dedicated counter is incremented. Coaxlink can also notify the application
of this event by having Euresys::EGrabber execute a user-defined callback function. But first, it is required to
enable notifications of one or more events:
grabber.setString<DeviceModule>("EventSelector", "CameraTriggerRisingEdge");
grabber.setInteger<DeviceModule>("EventNotification", true);
grabber.setString<DeviceModule>("EventSelector", "CameraTriggerFallingEdge");
grabber.setInteger<DeviceModule>("EventNotification", true);
...
or:
grabber.setInteger<DeviceModule>("EventNotification[CameraTriggerRisingEdge]", true);
grabber.setInteger<DeviceModule>("EventNotification[CameraTriggerFallingEdge]", true);
...
Using a configuration script, it is easy to enable notifications for all events:
function enableAllEvents(p) { // 1
var events = p.$ee('EventSelector'); // 2
for (var e of events) {
p.set('EventNotification[' + e + ']', true); // 3
17