C#+VisionMaster联合开发(一)_操作方案
1、加载方案(下文中的VmSolutionMain即为VmSolution.Instance)
// 加载方案 - 模块方案加载进度
VmSolution.Load(solutionFilePath, solutionPwd, isSilentExecute); // 方案路径,文件密码,静默运行
VmSolutionMain = VmSolution.Instance; // 临时保存,下文中的VmSolutionMain即为VmSolution.Instance
// GetVmException(Exception ex) // 获取VM内部异常,用于规范抛出去的异常
VmSolution.OnCameraCollectCallBackEvent += VmSolution_OnCameraCollectCallBackEvent; // 相机取图结束信息回调,可用来获取图片啥的(VM4.3)
VmSolution.OnProcessStatusStartEvent += VmSolution_OnProcessStatusStartEvent; // 流程连续执行开始时 执行,单次执行时不执行(VM4.3)
VmSolution.OnProcessStatusStopEvent += VmSolution_OnProcessStatusStopEvent; // 流程单次执行/连续执行结束时的事件(VM4.3)
2、获取方案路径
string vmSolutionFilePath = VmSolutionMain.SolutionPath;
3、获取方案版本号
string vmSolutionVersion = VmSolutionMain.GetSolutionVersion(solutionFilePath, solutionPwd);
4、获取方案中的流程列表
// 加载流程列表
ProcessInfoList processInfoList = VmSolutionMain.GetAllProcedureList();
if (processInfoList.nNum > 0)
{
var processNames = processInfoList.astProcessInfo.ToList().Where(a => !string.IsNullOrEmpty(a.strProcessName)).Select(a => a.strProcessName).ToList();
}
5、获取方案中的模块列表
// 加载模块列表
ModuleInfoList moduleInfoList = VmSolutionMain.GetAllModuleList();
if (moduleInfoList.nNum > 0)
{
List<string> vmModuleNames = moduleInfoList.astModuleInfo.Where(a => !string.IsNullOrEmpty(a.strDisplayName)).Select(a => a.strDisplayName).ToList();
}
6、执行方案
VmSolutionMain.Run(); // Run 或 SyncRun
7、获取方案运行状态
bool isRunning = VmSolutionMain.IsRunning;
ShowLog($"获取方案状态’执行完成!方案当前状态为:{isRunning}");
8、保存方案
string saveResult = VmSolution.Save();
9、方案另存为
string saveAsResult = VmSolution.SaveAs(filePath, solutionPwd); // 文件路径,文件密码
10、关闭方案
VmSolutionMain.CloseSolution(); // 1、关闭前先判断VmSolutionMain是不是null;2、这个方法性能差还有时会卡住
11、释放方案资源
VmSolutionMain.Dispose(); // 1、释放前先判断VmSolutionMain是不是null;2、这个方法性能差还有时会卡住
12、获取VM的CPU、内存、网络使用率、加密狗状态
string cpuRate = "CPU占用率:" + VmSolution.CPUUsed.ToString(); //
string memoryRate = "内存使用率:" + VmSolution.MemeryUsed.ToString(); //
string networkRate = "网络使用率:" + VmSolution.NetUsed.ToString(); //
//string dogStatus = "加密狗:" + VmSolution.StrDogState; // 加密狗状态,我没获取到
string dogStatus = "加密狗:" + VmSolution.DogState; // 加密狗状态,我没获取到
本文来自博客园,作者:꧁执笔小白꧂,转载请注明原文链接:https://www.cnblogs.com/qq2806933146xiaobai/p/19349329

浙公网安备 33010602011771号