数据页面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;
上一篇:[vscode][nrf51][nrf52] uint8_t uint16_t uint32_t 等等变量异常
下一篇:[ANT+][nrf51422][s210] 自行车车灯 数据页1–灯光状态1(0x01)
推荐阅读最新更新时间:2024-11-14 20:02
设计资源 培训 开发板 精华推荐
- 罗技g304侧键板
- R_54_V10基于IPS2电机换向传感器的设计
- LTC1709-85 的典型应用 - 2 相、5 位 VID、电流模式、高效率、同步降压型开关稳压器
- LTC6990HS6#TRMPBF 隔离式 V-F 转换器的典型应用。 VIN 由隔离测量电路提供。隔离器的 5 us 上升/下降时间将 fMAX 限制为 60kHz
- NCV2575、1A、可调输出电压、降压型开关稳压器的典型应用电路
- OP213FSZ-REEL7精密称重传感器秤放大器的典型应用
- 底层BEC与分电板 FOR FlyingRC F4Wing MK2
- 闪闪发光的石机
- KA431S 带输出控制的三端固定稳压器的典型应用
- DC792A,在 RF=1.9GHz 时使用 LT5525EUF 低功率下变频混频器的演示板