Common Vision Blox 15.0
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Events Friends Modules Pages
Configuration - VinDevice Node Map and VinBuffer Node Map

 


This code example demonstrates how and when a VinDevice node map and a VinBuffer node map can be retrieved.

using namespace Cvb;
auto devices = DeviceFactory::Discover(
DiscoverFlags::IgnoreVins); // (1)
devices.front().AccessToken(), AcquisitionStack::GenTL); // (2)
auto vinDeviceNodeMap = device->NodeMap(NodeMapID::VinDevice); // (3)
auto dataStream = device->Stream<Cvb::ImageStream>(); // (4)
dataStream->Start(); // (5)
auto [image, waitStatus, enumerator] = dataStream->WaitFor(std::chrono::milliseconds(3000)); // (6)
auto vinBufferNodeMap = device->NodeMap(Cvb::NodeMapID::VinDevice); // (7)
dataStream->TryAbort(); // (8)
void Start() override
static std::vector< DiscoveryInformation > Discover()
static std::shared_ptr< T > Open(const String &provider, AcquisitionStack acquisitionStack=AcquisitionStack::PreferVin)

using System;
using (var devices = DeviceFactory.Discover(DiscoverFlags.IgnoreVins)) // (1)
{
using (var device = DeviceFactory.Open(devices[0], AcquisitionStack.GenTL)) // (2)
{
using (var vinDeviceNodeMap = device.NodeMaps[NodeMapNames.VinDevice]) // (3)
{
// ...
}
var stream = ((GenICamDevice)device).GetStream<ImageStream>(0); // (4)
stream.Start(); // (5)
using (var image = stream.Wait(out WaitStatus status)) // (6)
{
using (var nodeMaps = NodeMapDictionary.FromImage(image))
{
using (var vinBufferNodeMap = nodeMaps[NodeMapNames.VinBuffer]) // (7)
{
// ...
}
}
}
stream.TryAbort(); // (8)
}
}
static Device Open(DiscoveryInformation info, AcquisitionStack acquisitionStack=AcquisitionStack.PreferVin)
static DiscoveryInformationList Discover()
static NodeMapDictionary FromImage(MultiPartImage image)

import cvb
cvb.DiscoverFlags.IgnoreVins) # (1)
devices[0].access_token, cvb.AcquisitionStack.GenTL) # (2)
vin_device_node_map = device.node_maps["VinDevice"] # (3)
stream = device.stream(cvb.ImageStream, 0) # (4)
stream.start() # (5)
image, status, node_maps = stream.wait() # (6)
vin_buffer_node_map = node_maps["VinBuffer"] # (7)
stream.abort() # (8)
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. Get a list of devices.
  2. Open a GenICam device.
  3. Retrieve the VinDevice node map.
  4. Instantiate a TLDataStream module.
  5. Start data streaming.
  6. Wait for a buffer delivery completion.
  7. Retrieve the VinBuffer node map.
  8. Stop data streaming.