[ANT+][nrf51422][s210] 自行车车灯 数据页2 –灯光功能(0x02)

发布者:梦中徐来最新更新时间:2022-09-07 来源: csdn关键字:nrf51422 手机看文章 扫描二维码
随时随地手机看文章

数据页面2是从ANT+自行车灯广播的主要数据页面之一。所有ANT+自行车灯应作为数据页循环的一部分并应控制器的要求发送此页。有关何时发送此数据页面的详细信息,请参见7.3节。该消息中的所有字段均应按照表7-8中的说明进行设置。

表7-8。数据页2格式–灯光功能

在这里插入图片描述

7.5.1 灯光属性

如下表所示设置由灯光属性位字段表示灯光能力。


Table 7-10. 灯光属性位字段

在这里插入图片描述

注意,#支持的模式字段包括标准模式数和支持的自定义模式数在灯光下。


7.5.2 # 支持的辅助灯

此字段指示网络中主灯能够连接的辅助灯的数量。该字段应包含有效值。请注意,所有ANT+自行车灯应至少支持4个辅助灯。

受支持的辅助灯的数量通常受该灯上可用内存的限制,并且应在假定每个辅助灯具有4个子灯的情况下进行指定。表7-11中的值显示了为每个指示灯和子指示灯存储数据页1和3所需的字节数。包含一个8字节的缓冲区,以允许对来自辅助灯的其他数据页的请求进行服务。每个辅助灯还包括一个1字节的额外缓冲区,用于比较数据页3中的更改触发位。


Table 7-11. 支持辅助灯所需的内存

在这里插入图片描述

7.5.3 灯光控制


7.5.4 支持的标准模式位字段

该位字段用于指示ANT+自行车灯支持哪些标准模式,如下表所述。


Table 7-12. 支持的标准模式位字段

在这里插入图片描述

7.5.5 电池容量

电池容量字段指示充满电后灯的电池容量。如果使用多个电池,则电池容量字段将反映灯可用的总容量。


7.5.6 支持的灯光类型

支持的灯光类型位字段指示可以将ANT+自行车灯配置为的灯光类型。如果控制器尝试将ANT+自行车灯配置为不支持的灯类型,则该灯应忽略该命令。控制器只能尝试以受支持的方式配置灯光。


Table 7-13. 支持的灯光类型位字段

在这里插入图片描述

/* Copyright (c) 2015 Nordic Semiconductor. All Rights Reserved.

 *

 * The information contained herein is property of Nordic Semiconductor ASA.

 * Terms and conditions of usage are described in detail in NORDIC

 * SEMICONDUCTOR STANDARD SOFTWARE LICENSE AGREEMENT.

 *

 * Licensees are granted free, non-transferable use of the information. NO

 * WARRANTY of ANY KIND is provided. This heading must NOT be removed from

 * the file.

 *

 */


/*************Light_State_ModeNum***支持的标准模式位字段************************

LSB:

0            保留以备将来使用。设置为0

1            常亮:81 - 100%亮度      0--不支持   1--支持

2            常亮:61 - 80%亮度       0--不支持   1--支持

3            常亮:41 - 60%亮度       0--不支持   1--支持

4            常亮:21 - 40%亮度       0--不支持   1--支持

5            常亮: 0 - 20%亮度       0--不支持   1--支持

6            慢闪烁                   0--不支持   1--支持

7            快速闪烁                 0--不支持   1--支持


MSB:

0            随机闪烁                 0--不支持   1--支持

1            自动                     0--不支持   1--支持

2         左转信号灯(自动取消)      0--不支持   1--支持

3         左转信号灯(持续)          0--不支持   1--支持

4         右转信号灯(自动取消)      0--不支持   1--支持

5         右转信号灯(持续)          0--不支持   1--支持

6         危险指示灯(左右指示灯连续闪烁) 0--不支持   1--支持

**********************************/


/*************Light_Properties_SupportedModes***灯光模式号************************

0            灯光关闭

1            常亮:81 - 100%亮度

2            常亮:61 - 80%亮度

3            常亮:41 - 60%亮度

4            常亮:21 - 40%亮度

5            常亮: 0 - 20%亮度

6            慢闪烁

7            快速闪烁

8            随机闪烁

9            自动

10           左转信号灯(自动取消)

11           左转信号灯(持续)

12           右转信号灯(自动取消)

13           右转信号灯(持续)

14           危险指示灯(左右指示灯连续闪烁)

15:47        保留以备将来使用。不要使用。

48           自定义模式48

X            自定义模式“X”

63           自定义模式63

**********************************/

/*************Supported_Light_Types***支持的灯光类型************************

位  灯光类型            值          描述

0      前灯            0/1       0:不支持   1:支持

1      保留             0             设为零

2      尾灯            0/1       0:不支持   1:支持

3    信号灯-可配置     0/1       0:不支持   1:支持

4     信号灯-左        0/1       0:不支持   1:支持

5     信号灯-右        0/1       0:不支持   1:支持

6      保留             0          设为零

7      其他            0/1       0:不支持   1:支持

**********************************/

#include "ant_BikeLight_page_2.h"

#include "ant_BikeLight_utils.h"

#include "ant_BikeLight_page_logger.h"

#include "SEGGER_RTT.h"

#include "SEGGER_RTT_Conf.h"

#include "main.h"

/**@brief BikeLight 灯光功能(0x02) 第2页数据布局结构. */

typedef struct

{

    uint8_t Light_Index;                             //灯光索引 0-63


    uint8_t Light_Properties_AutoIntensityMode: 1;   //灯光属性--自动亮度模式--0:不支持  1:支持

    uint8_t Light_Properties_Beam: 1;                //灯光属性--灯光类型    --0:不支持远/近关灯  1:支持远/近关灯

    uint8_t Light_Properties_SupportedModes: 6;      //灯光属性--支持的模式  --0:不支持灯光模式(仅限常亮灯光) 1:63---支持的模式总数


    uint8_t Battery_Capacity;                        //充满电的电池容量 单位:200mAh   范围: [0-50800mAh]


    uint8_t Supported_Secondary_Lights : 4;          //辅助照明 [4-63]

    uint8_t : 2;

    uint8_t Beam_Focus_Control: 1;                   //灯光聚焦控制   0--支持   1--不支持

    uint8_t Beam_Intensity_Control: 1;               //灯光亮度控制   0--不支持 1--支持


    uint8_t LSB;                                     //支持的标准模式位字段LSB(上面有注释)


    uint8_t MSB: 7;                                  //支持的标准模式位字段MSB(上面有注释)

    uint8_t BrakeLightLight: 1;                      //刹车灯光:0--不支持  1支持


    uint8_t Supported_Light_Types;                   //支持的灯光类型 0:前灯 2:尾灯 3:信号灯  4:信号灯-左  5:信号灯-右


} ant_BikeLight_page2_data_layout_t;



static void page2_data_log(ant_BikeLight_page2_data_t const *p_page_data)

{

//    SEGGER_RTT_printf(0, "Light_Index:             %drn", (uint8_t)p_page_data->Light_Index);

//    SEGGER_RTT_printf(0, "AutoIntensityMode:       %drn", (uint8_t)p_page_data->Light_Properties_AutoIntensityMode);

//    SEGGER_RTT_printf(0, "Beam:                    %drn", (uint8_t)p_page_data->Light_Properties_Beam);

//    SEGGER_RTT_printf(0, "SupportedModes:          %drn", (uint8_t)p_page_data->Light_Properties_SupportedModes);

//    SEGGER_RTT_printf(0, "Battery_Capacity:        %drn", (uint8_t)p_page_data->Battery_Capacity);

}



void ant_BikeLight_page_2_encode(uint8_t                     *p_page_buffer,

                                 ant_BikeLight_page2_data_t const *p_page_data)

{

    ant_BikeLight_page2_data_layout_t *p_outcoming_data     = (ant_BikeLight_page2_data_layout_t *)p_page_buffer;


    memset(p_page_buffer, 0, sizeof(ant_BikeLight_page2_data_layout_t));

    p_outcoming_data->Light_Index                           = p_page_data->Light_Index;

    p_outcoming_data->Light_Properties_AutoIntensityMode    = p_page_data->Light_Properties_AutoIntensityMode;

    p_outcoming_data->Light_Properties_Beam                 = p_page_data->Light_Properties_Beam;

    p_outcoming_data->Light_Properties_SupportedModes       = p_page_data->Light_Properties_SupportedModes;

    p_outcoming_data->Battery_Capacity                      = p_page_data->Battery_Capacity;


    p_outcoming_data->Supported_Secondary_Lights            = p_page_data->Supported_Secondary_Lights;

    p_outcoming_data->Beam_Focus_Control                    = p_page_data->Beam_Focus_Control;

    p_outcoming_data->Beam_Intensity_Control                = p_page_data->Beam_Intensity_Control;

    p_outcoming_data->LSB                                   = p_page_data->LSB;

[1] [2] [3] [4] [5] [6]
关键字:nrf51422 引用地址:[ANT+][nrf51422][s210] 自行车车灯 数据页2 –灯光功能(0x02)

上一篇:[vscode][nrf51][nrf52] uint8_t uint16_t uint32_t 等等变量异常
下一篇:[ANT+][nrf51422][s210] 自行车车灯 数据页1–灯光状态1(0x01)

推荐阅读最新更新时间:2024-11-14 20:02

[单片机框架][bsp层][nrf51822][nrf51422][nrf51802][bsp_uart] UART配置和使用
Universal Asynchronous Receiver/Transmitter (UART) The Universal Asynchronous Receiver/Transmitter offers fast, full-duplex, asynchronous serial communication with built-in flow control (CTS, RTS) support in hardware up to 1 Mbps baud. Parity checking is supported. The GPIOs used for each UART interface line can be
[单片机]
[ANT+][nrf51422][s210] 自行车车灯 通用页80(0x50)–制造商标识
通用数据页80传输制造商的ID,型号和硬件版本。 注意,该数据页不得在共享通道上使用。当此数据页在广播频道上发送时,应始终描述发送该页的ANT+自行车灯。包含灯光索引字段的数据页16(0x10)应在共享通道上使用,并且主灯应使用它来描述辅助灯的制造商信息。 有关此页面的详细信息,请参考ANT+ Common Pages文档。 /* Copyright (c) 2015 Nordic Semiconductor. All Rights Reserved. * * The information contained herein is property of Nordic Semiconductor ASA. * T
[单片机]
[单片机框架][bsp层][nrf51822][nrf51422][nrf51802][bsp_key] KEY配置和使用
按键的基本原理是设置单片机IO口(PB0-PB3)为输入状态,如DDRB = 0XF0(方向寄存器,“1”为输出,“0”为输入); 单片机一直检测按键端口(PB0-PB3)的状态,当端口为低电平时(即按键按下),实行相应的动作(比如控制LED灯)。 原理就是这么回事,但是正真实现时,按键会有抖动,要进行按键去抖,下图为按键按下时的抖动图。 按键实行一个动作过程是需要一定时间的,一般为100mS-1S左右,而一个单片机执行一个机器周期的时间很短,时钟为10MH的周期为0.1μs,这样按键每一次动作程序就会多次检测按键,出现误判(一次按下,多次动作)。 /********************************
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
  • 学习ARM开发(16)
    ARM有很多东西要学习,那么中断,就肯定是需要学习的东西。自从CPU引入中断以来,才真正地进入多任务系统工作,并且大大提高了工作效率。采 ...
  • 学习ARM开发(17)
    因为嵌入式系统里全部要使用中断的,那么我的S3C44B0怎么样中断流程呢?那我就需要了解整个流程了。要深入了解,最好的方法,就是去写程序 ...
  • 学习ARM开发(18)
    上一次已经了解ARM的中断处理过程,并且可以设置中断函数,那么它这样就可以工作了吗?答案是否定的。因为S3C44B0还有好几个寄存器是控制中 ...
  • 嵌入式系统调试仿真工具
    嵌入式硬件系统设计出来后就要进行调试,不管是硬件调试还是软件调试或者程序固化,都需要用到调试仿真工具。 随着处理器新品种、新 ...
  • 最近困扰在心中的一个小疑问终于解惑了~~
    最近在驱动方面一直在概念上不能很好的理解 有时候结合别人写的一点usb的例子能有点感觉,但是因为arm体系里面没有像单片机那样直接讲解引脚 ...
  • 学习ARM开发(1)
  • 学习ARM开发(2)
  • 学习ARM开发(4)
  • 学习ARM开发(6)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved