VisionMaster全局模块操作指南:变量、通信、光源与数据队列
摘要:本文介绍了VM平台SDK中全局模块的四大核心功能操作指南。全局变量模块(GlobalVariableModuleTool)可实现跨流程数据共享;通信管理模块(CommManagerModuleTool)支持设备间字符串、整型数组及二进制数据交互;光源控制模块(LightControlTool)可统一配置多通道光源参数;数据队列模块(DataQueueModuleTool)提供有序数据存储和检
全局模块操作指南:变量、通信、光源与数据队列
摘要:本文通过 C# 示例详解 VM 平台 SDK 中全局模块的核心操作,涵盖全局变量、通信管理、光源控制和数据队列四大功能,助你高效管理自动化解决方案。
1. 全局变量管理
功能:跨流程共享数据
核心类:GlobalVariableModuleTool
操作示例:
// 获取全局变量对象
GlobalVariableModuleTool globalVar = (GlobalVariableModuleTool)VmSolution.Instance["全局变量1"];
// 设置变量值
globalVar.SetGlobalVar("var0", "20");
// 读取变量值
string value = globalVar.GetGlobalVar("var0");
2. 全局通信管理
功能:设备间数据交互
核心类:CommManagerModuleTool
操作示例:
CommManagerModuleTool commTool = (CommManagerModuleTool)VmSolution.Instance["通信管理1"];
// 发送字符串
commTool.SetString(0, "abcd");
// 发送整型数组
int[] data = { 10, 11, 12 };
commTool.SetInt(1, data, data.Length);
// 读取二进制数据
byte[] receivedData = null;
commTool.GetReadData(2, ref receivedData);
3. 全局光源控制
功能:统一管理光源参数
核心类:LightControlTool
+ GlobalLightParam
配置步骤:
LightControlTool lightTool = (LightControlTool)VmSolution.Instance["全局光源1"];
// 配置光源参数
GlobalLightParam lightConfig = new GlobalLightParam {
nDeviceIndex = 1,
nDeviceType = (int)DeviceTypeEnum.TYPE_VC3000_GPIO,
nTriggerTime = 100
};
// 设置通道1参数
lightConfig.stLightConfig.stChannel1 = new LightChannelConfig {
nChannelIndex = 1,
bChannelEnable = true,
nLightBrightness = 150,
nLightState = 1,
nTriggerEdge = 1,
nDurationTime = 10
};
// 应用配置(其他通道同理)
lightTool.SetGlobalLightParam(lightConfig);
4. 数据队列操作
功能:有序存储和检索数据
核心类:DataQueueModuleTool
操作示例:
DataQueueModuleTool dataTool = (DataQueueModuleTool)VmSolution.Instance["数据队列1"];
// 写入字符串数据
StringValue strData = new StringValue {
nNum = 1,
nIndex = 0,
astValue = new StringInfo[256] { new StringInfo { strValue = "abcd" } }
};
dataTool.SetStringData(strData);
// 运行方案后读取数据
VmSolution.Instance.Run();
StringValue result = dataTool.GetStringData(0);
5. 异常处理
始终包裹 try-catch
捕获 SDK 异常:
try {
// 所有操作代码
}
catch (VmException ex) {
Console.WriteLine($"SDK异常: {ex.Message}");
}
关键注意事项
-
模块命名一致性:
VmSolution.Instance["模块名"]
中的名称必须与解决方案中配置的模块名称完全一致(区分大小写)。 -
光源通道配置:
- 需为每个通道单独设置
LightChannelConfig
bChannelEnable=true
启用通道nDurationTime
单位默认为毫秒
- 需为每个通道单独设置
-
数据队列时序:
调用GetXxxData()
前需执行VmSolution.Instance.Run()
确保数据就绪。 -
通信数据类型:
SetString()
用于文本数据SetInt()
传输数值数组GetReadData()
获取原始字节流
总结:全局模块是自动化系统的中枢神经,通过统一管理变量、通信、硬件设备和数据流,显著提升系统可维护性和扩展性。合理使用这些功能可减少模块耦合,实现高效协同控制。
源码获取:GitHub 示例仓库
官方文档:VM Platform SDK Reference

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐
所有评论(0)