文档
注册

插件开发

通过插件开发工程

  1. 进入工程创建页面。
    • MindStudio欢迎界面:单击“New Project”
    • MindStudio工程界面:在顶部菜单栏中选择File > New > Project...
  2. “New Project”窗口中,选择“Ascend App”,选择工程类型,如图1。(若工程类型名称显示不全,鼠标悬停于工程类型名称处,则工程类型名称可以完整显示。)

    CANN Version:当前激活的CANN版本,可通过单击右侧“Change”进行变更,具体功能使用请参见切换/激活CANN包

    如未在MindStudio中配置CANN,部分应用工程可能无法正常显示。

    图1 插件开发的工程
    • MindX SDK Plugin:MindX SDK插件开发空白工程。仅包括开发框架的工程,不含具体的代码逻辑。
    • MxpiSamplePlugin:MindX SDK插件开发样例工程。
  3. 单击“Next”进入配置工程相关参数。如表1所示。
    表1 工程参数说明

    参数

    说明

    Project name

    工程名称,自行配置。

    Project location

    工程默认保存路径,用户可自定义。(对于首次使用MindStudio的用户,该项默认为$HOME/MindstudioProjects”。)

    More Settings

    “Module name”:模块名,默认与“Project name”一致。

    “Content root”:根目录下路径。

    “Module file location”:模块文件路径。

    单击“Project format”右侧选框,出现下拉菜单。
    • .idea(directory-based):创建项目的时候创建一个.idea的项目录来保存项目的信息,默认选项。
    • .ipr(file-based):项目配置文件来保存项目的配置信息。
  4. 单击“Finish”,完成工程创建。成功创建工程后,工程目录的主要结构如下,请以实际创建结果为准。
    • MindX SDK Plugin:

      请用户将MindX SDK插件开发空白工程的工程名(也就是以下工程目录中的工程名)设置为开发的插件的名称。

      ├── 工程名
          ├── build                       //存放cmake依赖文件。
          ├── lib
          │   └── plugins                //开发的插件so文件的存放目录。
          ├── src
          │   └── 工程名
          │        ├── CMakeLists.txt    //编译脚本。
          │        ├── 工程名.cpp         //主函数的实现文件。
          │        └── 工程名.h           //主函数的依赖头文件。
          └── CMakeLists.txt              //编译脚本,调用src目录下的CMakeLists文件。
    • MxpiSamplePlugin:
      ├── 工程名
          ├── build               //存放cmake依赖文件。
          ├── lib
          │   └── plugins        //开发的插件so文件的存放目录。
          ├── src
          │   └── mxpi_sampleplugin
          │        ├── CMakeLists.txt         //编译脚本。
          │        ├── MxpiSamplePlugin.cpp   //主函数的实现文件。
          │        └── MxpiSamplePlugin.h     //主函数的依赖头文件。
          └── CMakeLists.txt                   //编译脚本,调用src目录下的CMakeLists文件。
  5. 插件开发空工程的代码实现请参见mxManufacture 用户指南mxVision 用户指南的“插件开发介绍”章节。

    插件开发样例工程的具体代码实现请查看工程文件下的MxpiSamplePlugin.cpp(主函数的实现文件)和MxpiSamplePlugin.h(主函数的依赖头文件)。

  6. 插件开发编译,以插件开发样例工程为例。
    1. MindStudio工程界面,在顶部菜单栏中选择Build > Edit Build Configuration...,进入编译配置页面,参数选择请查看编译与运行应用工程
    2. 编译完成后,开发插件so文件会在“工程目录/lib/plugins”下生成,如图2
    3. 在顶部菜单栏中选择Ascend > MindX SDK Pipeline,打开pipeline绘制界面,单击绘制界面右下方“Plugin Manager”功能按钮,配置自定义插件目录,自定义插件功能配置请参见表2
    4. 完成自定义插件配置后,在插件库中可找到插件MxpiSamplePlugin,可正常使用(如拖动至编辑区、连线、查看插件属性等)如图2
      图2 插件开发

通过新增插件模板

  1. 在新建空白工程MindX SDK Project(C/C++)或样例工程Detection and Classification(C++)后,在IDE页面内的工程目录处右键工程名,选择New MindX SDK Plugin会出现如图3弹窗。
    图3 插件创建弹窗
    • “Plugin Name”:插件名称,用户自行定义。
    • “Plugin Path”:插件创建目录,建议放在工程下的“plugin”目录,若目录不存在请自行创建。
  2. 创建完成后会在工程目录中生成如下目录层级,Plugin Name图3中用户设定的插件名称。
    └── plugin
        └── Plugin Name          // 插件模板。
            ├── Plugin Name.cpp
            ├── Plugin Name.h
            └── CMakeLists.txt
  3. 在工程根目录下的“CMakeLists.txt”(图中标号“1”所示文件)或在“C++”目录中的“CMakeLists.txt”(图中标号“2”所示文件)新增插件的“CMakeLists.txt”(图中标号“3”所示文件)所在的位置,将新增插件加入编译过程。

    以新增插件mxpi_sample为填写示例。

    • 工程文件根目录下的“CMakeLists.txt”中加入:
      add_subdirectory("./plugin/mxpi_sample")

      “./plugin/mxpi_sample”为新增插件的“CMakeLists.txt”相对于工程文件根目录下的“CMakeLists.txt”所在的路径。

    • 在工程文件下C++目录下的“CMakeLists.txt”中加入:
      add_subdirectory("../plugin/mxpi_sample")

      “../plugin/mxpi_sample”为新增插件的“CMakeLists.txt”相对于在工程文件下C++目录下的“CMakeLists.txt”所在的路径。

    图4 add_subdirectory

  4. 编译完成后的.so文件在工程文件根目录/lib/plugins”生成,并将文件权限设置为“640”
  5. 请用户参照mxManufacture 用户指南mxVision 用户指南的“插件开发介绍”章节,完成插件开发。
搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词