Common Vision Blox 15.0
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Events Friends Modules Pages
ImageManager/Cvb.Net/FlowSetPool

This example program is located in your CVB installation under %CVB%Tutorial/ImageManager/Cvb.Net/FlowSetPool.

Program.cs:

// Example of managing buffer allocation for image streaming.

using System;
namespace FlowSetPool
{
class FlowSetPool
{
static void Main(string[] args)
{
using (var devices = DeviceFactory.Discover(DiscoverFlags.IgnoreVins))
{
using (var device = DeviceFactory.Open(devices[0], AcquisitionStack.GenTL))
{
var stream = ((GenICamDevice)device).GetStream<ImageStream>(0);
stream.RegisterManagedFlowSetPool(100);
Console.WriteLine($"Buffers allocated: {stream.FlowSetCount}");
stream.DeregisterFlowSetPool();
stream.RegisterManagedFlowSetPool(200);
Console.WriteLine($"Buffers allocated: {stream.FlowSetCount}");
stream.Start();
for (int i = 0; i < 10; i++)
{
WaitStatus status;
using (var image = stream.Wait(out status))
{
using (var nodeMaps = NodeMapDictionary.FromImage(image))
{
// processing here...
}
}
}
stream.Abort();
}
}
}
}
}
static Device Open(DiscoveryInformation info, AcquisitionStack acquisitionStack=AcquisitionStack.PreferVin)
static DiscoveryInformationList Discover()
static NodeMapDictionary FromImage(MultiPartImage image)