杰里之BLE更新三真电量函数实体【篇】

static u8 update_dev_battery_level(void)
{

u8 old_dev_battery[3];

memcpy(old_dev_battery, dev_battery_level, 3);

//read bat_level
dev_battery_level[0] = get_device_bat_percent();

u8 sibling_bat_level = dev_battery_level[1];
if (sibling_bat_level == 0xff) {
    /* ble_puts("--update_bat_00\n"); */
    goto update_dev2;
}

#if TCFG_USER_TWS_ENABLE
sibling_bat_level = get_tws_sibling_bat_persent();
#endif

#if TCFG_CHARGESTORE_ENABLE
if (sibling_bat_level == 0xff) {
/* ble_puts("–update_bat_01\n"); */
sibling_bat_level = chargestore_get_sibling_power_level();
}
#endif

if (sibling_bat_level == 0xff) {
    /* ble_puts("--update_bat_02\n"); */
    dev_battery_level[1] = dev_battery_level[0];
} else {
    dev_battery_level[1] = sibling_bat_level;
}

update_dev2:
if (((dev_battery_level[0] & BIT(7)) && (dev_battery_level[0] != 0xff))
|| ((dev_battery_level[1] & BIT(7)) && (dev_battery_level[1] != 0xff))) {
//earphone in charge
#if TCFG_CHARGESTORE_ENABLE
dev_battery_level[2] = chargestore_get_power_level();
#else
dev_battery_level[2] = 0xff;
#endif
} else {
//all not in charge
dev_battery_level[2] = 0xff;
}

u8 i;
u8 change_flag = 0;

for (i = 0; i < 3; i++) {
    if ((dev_battery_level[i]&BIT(7)) != (old_dev_battery[i]&BIT(7))) {
        break;
    }

    if ((dev_battery_level[i] == 0xff) && (old_dev_battery[i] != 0xff)) {
        break;
    }

    if ((dev_battery_level[i] != 0xff) && (old_dev_battery[i] == 0xff)) {
        break;
    }

}

if (i < 3) {
    ble_puts("dev_pos_state have changed:");
    ble_put_buf(old_dev_battery, 3);
    ble_put_buf(dev_battery_level, 3);
    change_flag = 1;
}
return change_flag;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Rambo-Lamborghini

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值