驱动调试

驱动编码完成后,需进行调试。调试阶段包括:编译打包、上传驱动、搭建环境、创建物模型、创建设备、部署驱动、查看调试信息、调试数据交互和本地替换更新驱动。

驱动依赖注意事项

驱动根据协议和业务场景的不同,会涉及第三方库依赖。物联网边缘计算针对不同开发语言开发的驱动,制定了不同的第三方库依赖规则:

  • C版本SDK开发的驱动:

    • 需要保证编译环境和运行环境相同,否则可能会导致驱动程序不可运行。

    • 驱动包中必须包含驱动程序和动态第三方库。

  • Node.js版本SDK:

    需要在边缘一体机运行环境上开发驱动,并在驱动目录中使用如下命令安装依赖。

    npm install 第三方库名
  • Python版本SDK:

    需要在边缘一体机运行环境上开发驱动,并在驱动目录中使用如下命令安装依赖。

    pip3 install -t . 第三方库名

驱动打包注意事项

基于物联网边缘计算提供的SDK,开发驱动并完成调试后,需将产物打包为ZIP包,并确保驱动Binary或index源文件在ZIP包第一级目录。

每个版本SDK开发的驱动在打包时,有不同的打包规则:

  • C版本SDK开发的驱动

    将驱动包中的动态第三方库,放置到驱动程序当前路径中的lib文件夹下。具体操作步骤如下:

    1. 驱动程序必须命名为main

    2. main当前路径下创建lib文件夹。

    3. main依赖的动态第三方库全部拷贝到lib文件夹下。

    4. 使用zip命令对当前路径下的mainlib文件夹,进行压缩处理生成ZIP包。

      zip -r your_driver_name.zip main lib

  • Python版本SDK开发的驱动

    驱动包中须包含index.py文件,并且在该文件中定义handler函数。驱动是一个在函数计算应用引擎中持续运行的函数,所以在驱动包中须包含index.py文件,并且在该文件中定义handler函数。

    驱动运行时,会加载index.py文件。而该文件中,函数计算应用定义的handler函数不会被调用,因此驱动代码须放在handler函数外,保证加载index.py文件时能被直接执行。更多信息,请参见Python版本SDK

  • 基于Node.js SDK开发的驱动

    驱动包文件中须包含index.js,并且在该文件中定义handler函数。

    驱动运行时,会加载index.js文件。而该文件中,函数计算应用定义的handler函数不会被调用,因此驱动代码须放在handler函数外,保证加载index.js文件时能被直接执行。更多信息,请参见Nodejs版本SDK

前提条件

已安装并激活边缘一体机,详细操作,请参见激活边缘一体机

步骤一:编译打包

  1. 下载示例代码。

    git clone https://github.com/aliyun/linkedge-thing-access-sdk-c.git
  2. 进入linkedge-thing-access-sdk-c目录,完成示例编译。

    cd linkedge-thing-access-sdk-c
    make prepare && make && make install
  3. 查看示例编译产物。

    cd build/bin/demo/demo_led/ && ls -l

    系统显示类似如下图表示已完成编译并打包。

    代码执行片段

步骤二:上传并发布驱动

  1. 登录边缘计算控制台

  2. 在左侧导航栏单击产品与服务 > 增值服务

  3. 增值服务页面,单击驱动管理服务下的管理驱动

  4. 驱动管理页面自研驱动页签,单击新建驱动

  5. 新建驱动页面,根据提示设置驱动参数。

    本示例中,驱动名称设置为led_driver驱动是否内置需要选择,然后单击上传文件,上传已在驱动编码中完成编译并打包的led_driver.zip驱动文件。其余参数,请参见自研驱动内容设置。

    新版新增驱动-驱动信息
  6. 完成参数的设置并上传成功驱动文件后,单击确认。您可以在驱动管理页面中看到刚刚创建的驱动。

步骤三:分配驱动和终端设备到主机

  1. 登录边缘计算控制台

  2. 在左侧导航栏选择节点管理 > 终端设备管理

  3. 终端设备管理页面,单击您的目标主机名称

  4. 鼠标悬浮到通用设备上,然后单击+图标图标。

  5. 分配驱动面板中,单击自研驱动页签,选中已创建自定义驱动前的复选框,然后单击分配

    新版-驱动调试-分配驱动
  6. 选择已分配的自定义驱动led_driver,单击添加设备,在led_driver驱动下为主机分配终端设备。

    1. 在弹出的添加设备对话框中,单击所属产品下的打开产品管理页终端设备管理-添加设备

    2. 系统跳转到物联网平台控制台,创建如下图所示led_demo产品。操作详情,请参见创建产品

      新版-创建led_demo产品
    3. led_demo产品添加自定义属性和事件,然后发布上线自定义功能。操作详情,请参见单个添加物模型

      • 属性

        添加自定义功能
      • 事件

        设置事件参数

        输出参数设置如下图所示。编辑事件参数

    4. 创建产品完成后,切换回边缘计算控制台终端设备管理页面。在添加设备对话框中,为刚刚创建的产品添加如下图设备,然后单击确定

      新版-添加灯设备
  7. 分配设备到边缘主机后,单击设备名称对应操作栏中的设备配置,配置设备信息。

    编写不超过1 KB的JSON格式配置内容。校验格式通过后,单击确定

    设备配置

步骤四:部署边缘主机

  1. 在左侧导航栏选择节点管理 > 主机管理

  2. 主机管理页面,找到您的主机,单击对应操作列中的主机部署

  3. 主机部署成功后,可以查看设备连接状态和运行状态。

步骤五:调试数据交互

如果设备上线成功,则可以使用阿里云物联网平台在线调试功能调试驱动和设备,该功能页面还可以实时查看设备上报的数据信息,也可以触发对设备服务的调用请求。详细的操作,请参见在线调试

  1. 登录物联网平台控制台

  2. 左侧导航栏单击监控运维 > 在线调试,在在线调试页面,选择待调试的产品和设备。

  3. 按照如下图说明进行调试,并查看设备实时运行日志。

    在线调试上报属性