Common Vision Blox 15.0
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Events Friends Modules Pages
Configuration - Software Trigger

 


using namespace Cvb;
auto devices = DeviceFactory::Discover(DiscoverFlags::IgnoreVins);
auto device = DeviceFactory::Open<GenICamDevice>(devices[0].AccessToken(),
AcquisitionStack::GenTL);
auto nodeMap = device->NodeMap(NodeMapID::Device);
auto triggerModeNode = nodeMap->Node<EnumerationNode>("TriggerMode"); // (1)
triggerModeNode->SetValue("On");
auto triggerSourceNode = nodeMap->Node<EnumerationNode>("TriggerSource"); // (2)
triggerSourceNode->SetValue("Software");
auto triggerSoftwareNode = nodeMap->Node<CommandNode>("TriggerSoftware"); // (3)
auto stream = device->Stream<ImageStream>();
stream->Start();
while(true)
{
triggerSoftwareNode->Execute(); // (4)
auto [image, status, nodeMaps] = stream->Wait();
//Process image
}
stream->Abort();
static std::vector< DiscoveryInformation > Discover()
static std::shared_ptr< T > Open(const String &provider, AcquisitionStack acquisitionStack=AcquisitionStack::PreferVin)
void SetValue(const String &value)

using (var devices = DeviceFactory.Discover(DiscoverFlags.IgnoreVins))
{
using (var device = (GenICamDevice)DeviceFactory.Open(devices[0], AcquisitionStack.GenTL))
{
var nodes = device.NodeMaps[NodeMapNames.Device];
var triggerModeNode = nodes["TriggerMode"] as EnumerationNode; // (1)
triggerModeNode.Value = "On";
var triggerModeNode = nodes["TriggerSource"] as EnumerationNode; // (2)
triggerModeNode.Value = "Software";
var triggerSoftwareNode = nodes["TriggerSoftware"] as CommandNode; // (3)
var stream = device.GetStream<ImageStream>(0);
stream.Start();
triggerSoftwareNode.Execute() // (4)
while(true) {
WaitStatus status;
using (var image = stream.Wait(out status))
{
//Process image
}
}
stream.Abort();
}
}
static Device Open(DiscoveryInformation info, AcquisitionStack acquisitionStack=AcquisitionStack.PreferVin)
static DiscoveryInformationList Discover()

import cvb
devices = cvb.DeviceFactory.discover_from_root(cvb.DiscoverFlags.IgnoreVins)
with cvb.DeviceFactory.open(devices[0].access_token, cvb.AcquisitionStack.GenTL) as device:
trigger_mode_node = node_map["TriggerMode"] # (1)
trigger_mode_node.value = "On"
trigger_mode_node = node_map["TriggerSource"] # (2)
trigger_mode_node.value = "Software"
trigger_software = node_map["TriggerSoftware"] # (3)
stream = device.stream(cvb.ImageStream)
stream.start()
while True:
trigger_software.execute() # (4)
image, status, _ = stream.wait()
# Process image
stream.abort()
Union[cvb.GenICamDevice, cvb.VinDevice, cvb.EmuDevice, cvb.VideoDevice, cvb.NonStreamingDevice] open(str provider, int acquisition_stack=cvb.AcquisitionStack.PreferVin)
List[cvb.DiscoveryInformation] discover_from_root(int flags=cvb.DiscoverFlags.FindAll, int time_span=300)

Note: Error handling has been omitted from the above example.

  1. Activate trigger mode in the device.
  2. Let software control the trigger.
  3. Get the actual trigger node for later use.
  4. Trigger each exposure explicitly from your software.