zoukankan      html  css  js  c++  java
  • NB-IOT移植移动onenet基础通信套件之Object_ID,实例ID,资源ID

    1. 访问是按照分层的,Object_ID/实例ID/资源ID,对应每一层ID的数据类型,目前是分为3层,一个实例下面可以有多个实例id,对下面的数据结构来说,如果是资源ID的话,类型只能是asBuffer,asBoolean,asInteger,asFloat,如果是实例ID的话,则是asChildren的类型,这个asChildren是个数据,包含实例ID下面所有的资源ID。

    struct st_cis_data
    {
        uint16_t             id;
        cis_datatype_t      type;
        struct
        {
            uint32_t    length;
            uint8_t*    buffer;
        }asBuffer;
        union
        {
            bool            asBoolean;
            int64_t         asInteger;
            double          asFloat;
            struct
            {
                uint32_t    count;
                struct st_cis_data* array;
            }asChildren;
            struct
            {
                cis_oid_t     objectId;
                cis_iid_t     instId;
            }asObjLink;
        } value;
    } ;

    2. 结构体,其中flag代表,后面的3个数据那个是有的,比如flag = 0x110,就是有object ID和实例ID,在大部分情况下,假如某个为0的话(假如实例ID为0),就是指该object ID下面所有的实例ID。

    struct st_uri
    {
        uint8_t      flag;           // indicates which segments are set
        cis_oid_t    objectId;
        cis_iid_t    instanceId;
        cis_rid_t    resourceId;
    };

    3. 按照上面的,我的代码并没有实现吗,该指令是一个读取请求消息,如果资源ID,resourceid =‘-1’,则该指令会携带count,代表需要读取该instance下的所有资源,假设是工作服务器的读操作,那么AT+MIPLREADRSP指令里面的值要怎么填写,对AT来说就是字符串,那么指令需要去解析,但是目前根据文档,就是说如果服务下发的是读取实例下面的所有资源,那么这个指令将无法去上传,只能一次一个资源。算了,先按照3级全部在的情况搞吧。

    < valuetype >:发送的数据类型
    发送的数据类型要求如下:
    string =1,//字符串型
    opaque=2,//不透明类型
    integer=3,//整型
    float=4,//浮点型
    bool=5,//布尔型
    <len>:读取的数据长度
    <value>:发送的数据值

    4. 在此厘清楚object ID,实例ID,资源ID这三个的关系,object ID是分类,比如温度传感器,电池电量,就是两个不同的object ID,然后有2个温度传感器,那么温度传感器A和温度传感器B就是2个实例,资源就是传感器的数据和状态等。object ID,实例ID这两者有点像JAVA语言里面的类和对象。如下是国际组织定义好的object ID。

    5. 如下是国际组织定义好的资源 ID。实例ID这个就是第几个设备的编号,按数量就行,不需要定义的。

  • 相关阅读:
    Java实现 LeetCode 382 链表随机节点
    Java实现 LeetCode 382 链表随机节点
    Java实现 LeetCode 381 O(1) 时间插入、删除和获取随机元素
    Java实现 LeetCode 381 O(1) 时间插入、删除和获取随机元素
    Java实现 LeetCode 381 O(1) 时间插入、删除和获取随机元素
    Java实现 LeetCode 380 常数时间插入、删除和获取随机元素
    Java实现 LeetCode 380 常数时间插入、删除和获取随机元素
    Linux下的iwpriv(iwlist、iwconfig)的简单应用
    OCX控件的注册卸载,以及判断是否注册
    .OCX、.dll文件注册命令Regsvr32的使用
  • 原文地址:https://www.cnblogs.com/429512065qhq/p/8317232.html
Copyright © 2011-2022 走看看