阿里云IOT C-SDK 源码分析系列(8): IOT_Linkkit_Report 分析

   从函数名称上就可以知道,这个函数的主要功能是向云端发送消息,但是它的功能不仅仅如此,特别需要注意的就是,他还包含

子设备登录/子设备退出功能。函数 原型如下:

  • IOT_Linkkit_Report
  • 原型
    
    int IOT_Linkkit_Report(int devid,
                            iotx_linkkit_msg_type_t msg_type,
                            unsigned char *payload,
                            int payload_len);
    接口说明
    
    向云端发送消息, 包括属性上报/设备标签信息更新上报/设备标签信息删除上报/透传数据上报/子设备登录/子设备登出
    参数说明
    
    参数	    数据类型	                方向	说明
    devid	     int	                输入	设备ID
    msg_type     iotx_linkkit_msg_type_t	输入	需要上报的消息类型
    payload	     unsigned char *	        输入	消息Payload
    payload_len	 int	                输入	消息Payload的长度
    返回值说明
    
    值	说明
    0	成功
    >= 1	消息ID
    < 0	失败

    关于子设备的登录功能,主要用在 向网关添加子设备的操作中,代码逻辑如下:

  • 
    static int example_add_subdev(iotx_linkkit_dev_meta_info_t *meta_info)
    {
        /* 创建网关子设备 资源*/
        devid = IOT_Linkkit_Open(IOTX_LINKKIT_DEV_TYPE_SLAVE, meta_info);
        .....
        .....
        /* 子设备 connect, 不仅包含连接服务器,还包含 子设备的其他资源初始化 */
        res = IOT_Linkkit_Connect(devid);
        .....
        /* 子设备 登录 操作 ,必须 */
        res = IOT_Linkkit_Report(devid, ITM_MSG_LOGIN, NULL, 0);
        
        return res;
    }
    

    IOT_Linkkit_Report 的 消息其他类型如下:

  • 参数附加说明

    typedef enum {
        ITM_MSG_POST_PROPERTY,
        ITM_MSG_DEVICEINFO_UPDATE,
        ITM_MSG_DEVICEINFO_DELETE,
        ITM_MSG_POST_RAW_DATA,
        ITM_MSG_LOGIN,
        ITM_MSG_LOGOUT,
        ...
        ...
    
        IOTX_LINKKIT_MSG_MAX
    } iotx_linkkit_msg_type_t;
  • ITM_MSG_POST_PROPERTY: 设备属性数据上报
  • ITM_MSG_DEVICEINFO_UPDATE: 设备标签更新信息上报
  • ITM_MSG_DEVICEINFO_DELETE: 设备标签删除信息上报
  • ITM_MSG_POST_RAW_DATA: 设备透传数据上报
  • ITM_MSG_LOGIN: 子设备登录
  • ITM_MSG_LOGOUT: 子设备登出
  • ITM_MSG_DELETE_TOPO: 删除子设备和网关之间的拓扑关系
  • ITM_MSG_REPORT_SUBDEV_FIRMWARE_VERSION: 上报子设备的固件版本号, 用于子设备OTA功能
  • ITM_MSG_PROPERTY_DESIRED_GET: 获取云端缓存的属性值下发, 用于高级版设备影子
  • ITM_MSG_PROPERTY_DESIRED_DELETE: 主动删除云端缓存的属性值, 用于高级版设备影子
发布了256 篇原创文章 · 获赞 262 · 访问量 63万+

猜你喜欢

转载自blog.csdn.net/u012351051/article/details/104228243