目录
2.4.1 数据结果:通过流程输出或模块输出获取数据结果的方法
描述
环境:VM4.0.0 + VS2015及以上
现象:方案或流程运行执行之后,就可以获取结果(建议将结果获取写在回调函数里),可以通过获取渲染结果和数据结果,渲染结果通过绑定渲染控件进行显示,数据结果分为整型、浮点型、字符串型和图像型等等,VM二次开发如何获取数据结果?
解答
数据结果的获取可以通过流程的输出或者模块的输出,推荐使用通过流程的输出,符合高内聚低耦合的思想,详细介绍如下所示:
1 通过流程的输出获取数据结果
1.1 流程配置-输出设置

1.2 获取整型、浮点型、字符串型数据
C#
VmProcedure vmprocess = (VmProcedure)VmSolution.Instance["流程1"];
string str = vmprocess.GetIntOutputResult("out").pIntValue[0].ToString();
string str1 = vmprocess.GetFloatOutputResult("out0").pFloatValue[0].ToString();
string str2 = vmprocess.GetStringOutputResult("out1").astStringValue[0].strValue;
C#
// 流程拿结果,c从界面层获取的方法,适用于高内存场景
string str2 = ((ImvsSdkDefine.IMVS_MODULE_STRING_VALUE_EX)(vmProcess["out1.Value"] as Array).GetValue(0)).strValue.ToString();//字符串型结果
string str1 = ((vmProcess["out0.Value"] as Array).GetValue(0)).ToString();//浮点型结果
1.3 获取图像数据
流程输出设置中输出IMAGE类型的图像数据,不能通过前面参数名称image拿取,需要通过Imageout0,ImageWidthout0,ImageHeightout0,ImagePixelFormatout0,这四个参数进行获取。示例代码和图像如下:

C#
VmProcedure VmProcess = (VmProcedure)VmSolution.Instance["流程1"];//实例化流程1
ImageResultInfo resultInfo0 =VmProcess.GetImageOutputResult("Imageout0");
IntResultInfo resultInfo1 =VmProcess.GetIntOutputResult("ImageWidthout0");
IntResultInfo resultInfo2 =VmProcess.GetIntOutputResult("ImageHeightout0");
IntResultInfo resultInfo3 =VmProcess.GetIntOutputResult("ImagePixelFormatout0");
byte[] imageData=resultInfo0.pstImageValue[0].pData;
2 通过模块的输出获取数据结果
2.1 获取模块的浮点型数据
C#
IMVSCircleFindModuCs.IMVSCircleFindModuTool circleTool=(IMVSCircleFindModuCs.IMVSCircleFindModuTool)VmSolution.Instance["流程1.圆查找1"];
//只调用一次circleTool.ModuResult表示只从底层拿一次结果,适用于高内存场景
var circleToolResult = circleTool.ModuResult;
string circleX = circleToolResult.OutputCircle.CenterPoint.X.ToString();
string circle

本文介绍了VM4.0 SDK中关于数据结果的获取,包括流程输出和模块输出的数据结果,如整型、浮点型、字符串型和图像数据。详细阐述了流程运行结束、模块运行结束、加密狗状态、方案加载结束以及各种回调方法的使用,旨在帮助开发者更好地理解和应用VM4.0平台。
最低0.47元/天 解锁文章
1806

被折叠的 条评论
为什么被折叠?



