Fetch the repository succeeded.
一个视觉处理的容器应用. 一个页面对应一个视觉处理单元.
IVisionProcessor<T>
的Processor类)IVisionAdapter<T>
的Adapter类)byte[]
, 除实现离线运行的功能外, 可以反馈数据和结果到上位机软件IVisionCliet.GetBoundaryItems
, 上位机程序可以获取上下限. 也可以通过IVsionClient.BoundaryItemsChanged
事件来获取上下限数据的更新(目前仅在InProcessVisionClient
实现)DistributedVisionClient
和DistributedVisionRunner.App
通信)时, 受ZeroMQ的Request-respond模式限制, 不能平行运算多个处理请求。如果实际上多次发送请求, 将这些请求排队处理。注: 作为Prism模块运行时(使用InProcessVisionClient
和嵌入上位机的页面通信)支持多个处理请求同时进行。
DistributedVisionClient
(独立应用时)或者InProcessVisionClient
(使用Prism模块嵌入时), 实现同DistributedVisionRunner图像处理系统的数据交互DistributedVisionRunner.App
新增页面, 加载视觉工程师定义的Processor类和上位机工程师的Adapter类即可App.xaml.cs
加入以下代码protected override void ConfigureModuleCatalog(IModuleCatalog moduleCatalog)
{
// Define method for logging messages from DistributedVisionRunnerModule
var ea = Container.Resolve<IEventAggregator>();
Action<LogItem> logMethod =
logItem =>
ea.GetEvent<LogEvent>().Publish(("General", logItem));
// Configure module before adding to module
DistributedVisionRunnerModule.ConfigureModule(logMethod, "VisionRegion", true);
DistributedVisionRunnerModule.SetDefaultImageBackground(Theme.PrimaryColor.R, Theme.PrimaryColor.G, Theme.PrimaryColor.B);
// Add module
moduleCatalog.AddModule<DistributedVisionRunnerModule>();
}
原始数据由Processor类产生, 全部都是浮点数, 数据的名称由
Processor.RawOutputNames
指定, 最终存放在DistributedVisionRunnerResultPack.RawResults
中. 假若Processor.EnableWeighting=true
, 则原始数据会根据视觉工程师给出的公式经过补偿服务后, 存放在DistributedVisionRunnerResultPack.WeightedResults
中. 上位机工程师还可以在Adapter类中指定预留的输出项Adapter.ReservedOutputNames
, 这个输出是通过由上位机工程师实现的方法(Adapter.GetResultTypeAndReservedOutputs
)结合前两个结果(DistributedVisionRunnerResultPack.RawResults
和DistributedVisionRunnerResultPack.WeightedResults
)得出的.
CygiaServices
安装包CygiaServices
安装包Sign in for post a comment
Comments ( 0 )