C# 例程使用指南

您正在查看预发布版本(V2.2.0)的文档。如果您想查阅其他版本的文档,可以点击页面右上角“切换版本”按钮进行切换。

■ 如果您不确定当前使用的产品是哪个版本,请随时联系梅卡曼德技术支持

本节介绍如何在 Windows 系统中配置和运行 Mech-Vision SDK 的 C# 例程。

使用前提

  • 已完成 SDK 环境配置

  • Visual Studio 2017 或以上版本。

  • .NET Framework 4.7.2 或以上版本。

  • Mech-Vision 已安装并可正常运行。

例程简介

C# 例程位于 development/csharp/examples/ 目录,包含以下例程:

例程目录 说明

solution_basic

打开/关闭/保存/重命名方案,获取方案信息和工程信息列表。

project_basic

注册工程状态变化和采集完成回调,运行工程,获取输出数据(抓取点位姿)。

project_data_storage

操作工程数据存储,读写存储数据。

project_param_recipe

获取参数配方列表,切换当前参数配方。

solution_comm_config

获取和修改方案的通信配置(TCP/IP、Modbus 等)。

solution_device_status

获取方案中相机的连接状态、温度、传输速度等设备状态信息。

solution_global_variable

读取和写入方案中的全局变量(整型、浮点型、字符串、队列等)。

step_basic

获取步骤信息,固定步骤输出端口,运行工程后获取步骤输出数据(如点位姿)。

step_props

通过 JSON 格式读取和设置步骤参数(包含多层级参数的访问方式)。

production_interface

生产界面操作。

production_interface_com

生产界面通信操作。

配置和构建例程

  1. 使用 Visual Studio 打开例程目录中的 .sln 解决方案文件。

  2. 右键单击项目 > 添加引用,将 development/csharp/lib 目录中的以下 DLL 添加为项目引用:

    • MMind.Vision.dll

    • 其他依赖 DLL(如有)

  3. 修改代码中的方案路径(见下方示例),然后构建解决方案(F6)。

运行例程

  1. 确保 Mech-Vision 已启动。

  2. 修改例程代码中的方案路径:

    string path = "D:/path/to/your/solution";
  3. F5 运行,或直接执行 bin/Release/ 目录中生成的可执行文件。

代码示例

打开方案并获取工程信息(solution_basic)

using MMind.Vision;
using System.Collections.Generic;

class Program
{
    static void Main(string[] args)
    {
        MmindVision.Initialize();

        // 打开方案
        var solution = new Solution();
        var error = solution.Open("D:/data/vision_sdk_example",
                                  string.Empty, string.Empty);

        // 获取方案信息
        var solutionInfo = new SolutionInfo();
        error = solution.GetInfo(ref solutionInfo);
        System.Console.WriteLine($"Solution: {solutionInfo.Name}");

        // 获取工程信息列表
        var projectInfos = new List<ProjectInfo>();
        error = solution.GetAllProjectInfos(ref projectInfos);
        foreach (var info in projectInfos)
            System.Console.WriteLine($"  Project: {info.Name}");

        // 保存并关闭方案
        error = solution.Save();
        error = solution.Close();

        MmindVision.Uninitialize();
    }
}

运行工程并获取输出数据(project_basic)

using MMind.Vision;
using System.Collections.Generic;
using Newtonsoft.Json.Linq;

class Example
{
    static void Run()
    {
        var solution = new Solution();
        solution.Open("D:/data/vision_sdk_example", string.Empty, string.Empty);

        // 获取工程名称
        var projectInfos = new List<ProjectInfo>();
        solution.GetAllProjectInfos(ref projectInfos);
        var project = new Project(projectInfos[0].Name);

        // 注册运行状态变化回调
        project.SetRunningChangedCallback((cbData) => {
            System.Console.WriteLine($"Project running: {cbData.IsRunning}");
        });

        // 运行工程(等待工程执行完成)
        var projectResult = new ProjectResult();
        project.Run(ProjectRunWaitState.Finished, "request_1", ref projectResult);

        // 解析输出数据
        var joOutput = JObject.Parse(projectResult.OutputJson);
        var jaPickPoints = joOutput["workobject_data"]["pick_points"] as JArray;
    }
}

读取和设置步骤参数(step_props)

using MMind.Vision;
using Newtonsoft.Json.Linq;

class Example
{
    static void Run()
    {
        var solution = new Solution();
        solution.Open("D:/data/vision_sdk_example", string.Empty, string.Empty);

        var step = new Step("3D Matching_1", "Matching");

        // 读取步骤参数
        var jaPropNames = new JArray { "confidenceThreshold" };
        string propsJson = string.Empty;
        step.GetPropertiesJson(jaPropNames.ToString(), ref propsJson);

        // 设置步骤参数
        var joProps = new JObject { { "confidenceThreshold", 0.8 } };
        step.SetPropertiesJson(joProps.ToString());
    }
}

该页面是否有帮助?

可以通过以下方式反馈意见:

我们重视您的隐私

我们使用 cookie 为您在我们的网站上提供最佳体验。继续使用该网站即表示您同意使用 cookie。如果您拒绝,将使用一个单独的 cookie 来确保您在访问本网站时不会被跟踪或记住。