duband源码总结
来源:互联网 发布:php 简单信息录入系统 编辑:程序博客网 时间:2024/06/05 02:01
一、BLE相关参数
1、广播间隔参数:快速广播模式:
#define APP_ADV_INTERVAL_FAST 0x0050 /**< Fast advertising interval (in units of 0.625 ms. This value corresponds to 50 ms.). */
#define APP_FAST_ADV_TIMEOUT 40 //快速广播持续40s 然后进入慢速广播
慢速广播模式:
#define APP_ADV_INTERVAL_SLOW 0x0640 /**< Slow advertising interval (in units of 0.625 ms. This value corrsponds to 1 seconds). */
#define APP_SLOW_ADV_TIMEOUT 180 //慢速广播持续180s 然后关闭广播
2、广播数据在函数advertising_init()中设置:ble_advdata_t advdata;
二、电池电量采集服务:
百度手环电池电量采集使用了分段线性的方法,根据放电曲线分成了7段,每段认为是线性关系,定义了两个8位数组,一个表示分段电压值,一个表示分段电量百分比,两者对应。然后再根据读取电压值,找到对应的段,根据线性关系求出电量百分比。
static const float VoltageTable[] =
{
4142.2,4011.2,3912.9,3831.0,3774.9,3734.4,3688.4,3605.3
};
static const uint8_t PercentageTable[] =
{
100,86,72,58,43,29,15,1
};
uint8_t cal_percentage(uint16_t volatage)
{
uint8_t length = ARRAY_LEN(VoltageTable);
uint8_t i = 0;
if(charger_status() == ChargingComplete){
return 100;
}
//find the first value which is < volatage
for(i = 0; i< length ; ++i) {
if(volatage >= VoltageTable[i]) {
break;
}
}
if( i>= length) {
return 0;
}
if(i == 0) {
return 100;
}
return (volatage - VoltageTable[i])/((VoltageTable[i-1] - VoltageTable[i])/(PercentageTable[i-1] - PercentageTable[i])) + PercentageTable[i];
}
三、数据存储
运动数据的存储,采用header+item的方式存储,本以为是一天只存一个header,后边跟n个sport item,阅读源码后,才发现不是这样操作的,百度策略是每次数据缓存8组数据,然后八组运动数据加一个数据头,然后一起存储,
- duband源码总结
- duBand源码分析
- duBand源码分析-存储部分
- duBand源码分析-底层通讯部分
- duBand源码分析-数据自动同步部分
- MapReduce源码分析总结
- memcached 源码分析总结
- MapReduce源码分析总结
- MapReduce源码分析总结
- 今日 看源码 总结
- Android源码编译总结
- VLC源码分析总结
- MapReduce源码分析总结
- STL源码剖析总结
- VLC源码分析总结
- STL源码剖析总结
- MapReduce源码分析总结
- MapReduce源码分析总结
- Linux库函数之select
- online_judge_1384
- 深入理解Runloop
- Mac OS 功能记录
- iOS开发笔记--先弄清楚这里的学问,再来谈iOS内存管理与优化(二)
- duband源码总结
- linux 部署项目全命令
- Dex文件格式
- 实现手机网络信息报告功能
- 关于cordova的InAppBrowser插件的几点问题
- 项目
- 对C++ 中Enum & Macro &Const 的理解
- 解决VMware虚拟机中 windows 7 的屏幕闪烁问题
- tomcat7开启SSI功能