- UID
- 568
- 麦力
- 20
- 注册时间
- 2016-1-20
- 最后登录
- 2018-5-25
- 精华
- 0
- 阅读权限
- 20
- 在线时间
- 3 小时
|
根据楼上的特工局代码,我增加了debounce时间以及振动次数的控制
// ~constay --~disdebounce-- disstart --~distimes*disinter-- disend -- ~disandconbt -- conend--~contimes*coninter--constart--~condebounce--disstay
#define CONSTAYNUM 3 // 一般不用动
#define DISDEBOUNCE 5 // 断开的debounce次数
#define DISSTARTNUM (CONSTAYNUM + DISDEBOUNCE)
#define DISVIBTIMES 3 //断开的振动次数
#define DISVIBINTER 2 // 断开的振动间隔
#define DISENDNUM (DISSTARTNUM + DISVIBTIMES*DISVIBINTER)
#define DISVIB 1 //断开是否振动
#define CONVIB 0 //连通是否振动
#define DISANDCONBT 4
#define CONENDNUM (DISENDNUM + DISANDCONBT)
#define CONDEBOUNCE 5 //连通的debounce次数
#define CONSTARTNUM (CONENDNUM + CONVIBTIMES*CONVIBINTER)
#define CONVIBTIMES 1 //连通的振动次数
#define CONVIBINTER 2 //连通的振动间隔
#define DISSTAYNUM (CONSTARTNUM + CONDEBOUNCE)
在表盘初始化的时候判断蓝牙状态后对变量赋值
enum AppCommStatus ble_sta;
ble_sta = maibu_get_ble_status(); //获取蓝牙状态
if (ble_sta != BLE_STATUS_CONNECTED && ble_sta != BLE_STATUS_USING) //如果蓝牙断开
{
ble_staus_event = DISSTAYNUM;
}else
{
ble_staus_event = CONSTAYNUM;
}
然后在注册的timer函数里面修改判断条件。
enum AppCommStatus ble_sta;
ble_sta = maibu_get_ble_status(); //获取蓝牙状态
if (ble_sta != BLE_STATUS_CONNECTED && ble_sta != BLE_STATUS_USING) //如果蓝牙断开
{
if ((ble_staus_event >= CONENDNUM) && (ble_staus_event < DISSTAYNUM))
ble_staus_event = CONSTAYNUM;
ble_staus_event ++;
if(ble_staus_event > DISSTAYNUM)
{
ble_staus_event = DISSTAYNUM;
return;
}
if(ble_staus_event == DISSTARTNUM)
{
// show disconnected picture
P_Layer p_ble_layer = app_window_get_layer_by_id(p_window, g_app_mwd_layer_ble_id);
if (NULL == p_ble_layer)
{
return;
}
GBitmap bitmap_ble2;
res_get_user_bitmap(BLE_DISCONNECTED, &bitmap_ble2);
app_layer_set_bitmap_bitmap(p_ble_layer, &bitmap_ble2);
app_window_update(p_window);
}
if(( ble_staus_event >= DISSTARTNUM ) && ( ble_staus_event < DISENDNUM ) && (DISVIB == 1))
{
if(((ble_staus_event - DISSTARTNUM) % DISVIBINTER) == 0 )
maibu_service_vibes_pulse(VibesPulseTypeShort,1); //调用短振动1次,
}
if( ble_staus_event >= DISENDNUM)
ble_staus_event = DISSTAYNUM;
}
else if (ble_sta = BLE_STATUS_CONNECTED) //如果系统事件是蓝牙連接
{
if ((ble_staus_event < DISENDNUM) && (ble_staus_event > CONSTAYNUM))
ble_staus_event = DISSTAYNUM;
ble_staus_event --;
if(ble_staus_event < CONSTAYNUM)
{
ble_staus_event = CONSTAYNUM;
return;
}
if( ble_staus_event == CONSTARTNUM )
{
// show connected picture
P_Layer p_ble_layer = app_window_get_layer_by_id(p_window, g_app_mwd_layer_ble_id);
if (NULL == p_ble_layer)
{
return;
}
GBitmap bitmap_ble2;
ble_staus_event = 0;
res_get_user_bitmap(BLE_CONNECTED, &bitmap_ble2);
app_layer_set_bitmap_bitmap(p_ble_layer, &bitmap_ble2);
app_window_update(p_window);
}
if(( ble_staus_event <= CONSTARTNUM ) && ( ble_staus_event > CONENDNUM ) && (CONVIB == 1))
{
if((( CONSTARTNUM - ble_staus_event) % CONVIBINTER) == 0 )
maibu_service_vibes_pulse(VibesPulseTypeShort,1); //调用短振动1次,
}
if( ble_staus_event <= CONENDNUM)
ble_staus_event = CONSTAYNUM;
} |
|