• DA14580服务与特征值的具体应用


    阅读这篇文章前请先阅读蓝牙协议服务与特征值这篇文章,会更容易理解

    如图1-1所示,下面定义了一个属性数组

     

     

     

     

     

     

     

     

     

                                   图1-1

    uint8_t uuid; 即为特征值的UUID,也为属性的类型。

    uint8_t uuid size; 即为特征值的UUID的长度

    uint16_t perm; 即为特征值的值类型和值权限

    att_size_t max_length;特征值声明的最大长度

    att_size_t length;       特征值声明的当前长度

     如图1-2为用户自定义服务,阅读过蓝牙协议服务与特征值这篇文章的人可以看出,这个类似于我是服务A的开头,它包含了本身的权限以及自定义UUID。

    static uint16_t att_decl_svc       = ATT_DECL_PRIMARY_SERVICE;

                                 图1-2

    根据以上属性数组,可以对图1-3以及1-4有个提前认识。阅读过蓝牙协议服务与特征值这篇文章的同学可以把图1-4的att_decl_char看作是特征值1的开头,PERM(RD, ENABLE)这个为特征值1开头的权限。

    根据这个结构体custs1_adc_val_1_char可以看到里面包含了权限、handle,以及类型,其中ATT_CHAR_PROP_NTF可以看作特征值的值权限,handle特征值1的值handle,DEF_CUST1_ADC_VAL_1_UUID_16

    可以看作特征值1的值类型。图1-4可以看作特征值1的值,这个值包含了图1-3中值类型,特征值1的值本身的权限以及值,值默认为NULL。图1-5可以看作特征值的特殊操作,包含了本身的权限以及以及用户描述。

    // ADC Value 1 Characteristic Declaration
    [CUST1_IDX_ADC_VAL_1_CHAR] = {(uint8_t*)&att_decl_char, ATT_UUID_16_LEN, PERM(RD, ENABLE),
    sizeof(custs1_adc_val_1_char), sizeof(custs1_adc_val_1_char), (uint8_t*)&custs1_adc_val_1_char},

                                      图1-3

                                     图1-4

    根据图1-5可以知道这两个变量att_decl_cfg、att_decl_user_desc的含义。

                                    图1-5

                                    图1-6

     未完,待续写。。。。。。。。。。。。。。。。。。。

  • 相关阅读:
    (一二二)核心动画进阶
    1089. Insert or Merge (25)
    (一二一)核心动画基础
    (一二〇)CALayer的一些特性
    (一一九)通过CALayer实现阴影、圆角、边框和3D变换
    1086. Tree Traversals Again (25)
    POJ 2610:Dog & Gopher
    模拟内存分配(链表实现)
    圣诞树后能找到我的记忆
    YTU 2797: 复仇者联盟之关灯
  • 原文地址:https://www.cnblogs.com/haibian/p/11737294.html
Copyright © 2020-2023  润新知