提交电量校准相关,关闭原来电量那套的log
This commit is contained in:
parent
cb124078bd
commit
c08c3d0604
@ -4,7 +4,7 @@
|
||||
#include "bk_gpio.h"
|
||||
#include "bk_uart.h"
|
||||
|
||||
#define BAT_MONITOR_DEBUG
|
||||
//#define BAT_MONITOR_DEBUG
|
||||
|
||||
#ifdef BAT_MONITOR_DEBUG
|
||||
#define BAT_MONITOR_PRT os_printf
|
||||
|
@ -30,11 +30,14 @@
|
||||
|
||||
static const uint32_t s_factory_volume = 7;
|
||||
|
||||
static const uint32_t s_bat_offset = 0;
|
||||
|
||||
const struct factory_config_t s_platform_config[] = {
|
||||
{"sys_initialized", (void *)"1", 1, BK_FALSE, 1}, // first config used to check whether factory config initialized.
|
||||
{"volume", (void *)&s_factory_volume, 4, BK_TRUE, 4},
|
||||
{"d_network_id", (void *)"\0", 1, BK_TRUE, 198},
|
||||
{"d_agent_info", (void *)"\0", 1, BK_TRUE, 162},
|
||||
{"bat_offset", (void *)&s_bat_offset, 4, BK_TRUE, 4},
|
||||
};
|
||||
|
||||
static const struct factory_config_t *s_user_reg_config = NULL;
|
||||
|
@ -48,6 +48,8 @@
|
||||
#include <os/os.h>
|
||||
#include "sys_driver.h"
|
||||
#include <bat_main.h>
|
||||
|
||||
#if (CONFIG_SYS_CPU0)
|
||||
#define BAT_DETEC_ADC_CLK 203125
|
||||
#define BAT_DETEC_ADC_STEADY_CTRL 7
|
||||
#define BAT_DETEC_ADC_SAMPLE_RATE 0
|
||||
@ -56,6 +58,8 @@
|
||||
#define BATTERY_MIN_VOLTAGE 3400
|
||||
|
||||
static int batt_percent = 0;
|
||||
int bat_offset = 0;
|
||||
uint16_t vol;
|
||||
static battery_main_event_callback_t s_battery_main_event_callback = NULL;
|
||||
int battery_main_event_callback_register(battery_main_event_callback_t callback)
|
||||
{
|
||||
@ -100,7 +104,8 @@ static uint16_t prvCalculateVoltage(void)
|
||||
static bk_err_t prvStartBatteryAdcOneTime()
|
||||
{
|
||||
// uint16_t value = 0;
|
||||
uint16_t vol;
|
||||
|
||||
uint16_t currend_vol;
|
||||
// int i1 = 0;
|
||||
// if (vol == NULL) {
|
||||
// BAT_MONITOR_WPRT("Error: vol pointer is NULL\r\n");
|
||||
@ -162,23 +167,26 @@ static bk_err_t prvStartBatteryAdcOneTime()
|
||||
// }
|
||||
|
||||
vol = prvCalculateVoltage();
|
||||
bk_printf("adc prevol %d offset %d \n", vol,bat_offset);
|
||||
|
||||
currend_vol = vol+ bat_offset;
|
||||
// BAT_MONITOR_PRT("ADC VALUE: %d .\r\n", *vol);
|
||||
gpio_dev_unmap(GPIO_50);
|
||||
bk_gpio_enable_input(GPIO_50);
|
||||
rtos_delay_milliseconds(100);
|
||||
uint8_t insert_value = bk_gpio_get_input(GPIO_50);
|
||||
bk_printf("Charging insert_value %d \n", insert_value);
|
||||
bk_printf("ADC bat_value: %d mv\r\n", vol);
|
||||
bk_printf("ADC currend_vol: %d mv\r\n", currend_vol);
|
||||
|
||||
batt_percent=(vol-BATTERY_MIN_VOLTAGE)*100/(BATTERY_MAX_VOLTAGE-BATTERY_MIN_VOLTAGE);
|
||||
if(vol < BATTERY_MIN_VOLTAGE){
|
||||
batt_percent=(currend_vol-BATTERY_MIN_VOLTAGE)*100/(BATTERY_MAX_VOLTAGE-BATTERY_MIN_VOLTAGE);
|
||||
if(currend_vol < BATTERY_MIN_VOLTAGE){
|
||||
batt_percent=0;
|
||||
}
|
||||
else if(vol > BATTERY_MAX_VOLTAGE){
|
||||
else if(currend_vol > BATTERY_MAX_VOLTAGE){
|
||||
batt_percent = 100;
|
||||
}
|
||||
bk_printf("batt_percent:%d\r\n",batt_percent);
|
||||
if (vol < 3500)
|
||||
if (currend_vol < 3500)
|
||||
{
|
||||
if (s_battery_main_event_callback && insert_value == 0)
|
||||
{
|
||||
@ -228,6 +236,11 @@ void init_bat_timer()
|
||||
{
|
||||
bk_printf("rtos_start_bat_timer fail\r\n");
|
||||
}
|
||||
|
||||
|
||||
bk_config_read("bat_offset", (void *)&bat_offset, 4);
|
||||
|
||||
bk_printf("init_bat_timer_offset %d\r\n",bat_offset);
|
||||
prvStartBatteryAdcOneTime();
|
||||
}
|
||||
|
||||
@ -254,7 +267,26 @@ void poweroff_voice()
|
||||
int battery_get_percent(){
|
||||
return batt_percent;
|
||||
}
|
||||
|
||||
//AT+BAT_CALIBRTATION
|
||||
int battery_calibration(){
|
||||
bk_err_t ret = prvStartBatteryAdcOneTime();
|
||||
|
||||
if (ret == BK_OK)
|
||||
{
|
||||
ret = 1;
|
||||
bat_offset = 3980-vol;
|
||||
|
||||
bk_config_write("bat_offset", (void *)&bat_offset, 4);
|
||||
bk_config_sync_flash_safely();
|
||||
bk_printf("BAT_CALIBRTATION SUCC ret: %d new_offset = %d\r\n", ret,bat_offset);
|
||||
}else{
|
||||
ret = 0;
|
||||
bk_printf("Failed to BAT_CALIBRTATION, err: %d\r\n", ret);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
@ -24,6 +24,8 @@ int battery_main_event_callback_register(battery_main_event_callback_t callback)
|
||||
void init_bat_timer();
|
||||
void poweron_voice();
|
||||
void poweroff_voice();
|
||||
|
||||
int battery_calibration();
|
||||
/**
|
||||
* 获取电量百分百
|
||||
*/
|
||||
|
@ -836,6 +836,27 @@ static int32_t wifi_boarding_gatts_cb(bk_gatts_cb_event_t event, bk_gatt_if_t ga
|
||||
ws2812_led_stop_ota();
|
||||
|
||||
|
||||
}
|
||||
/**
|
||||
* 用于APP 校准电池
|
||||
*/
|
||||
else if (NULL != (ptr = strstr((char *)recv, "AT+BAT_CALIBRTATION")))
|
||||
{
|
||||
wboard_loge("AT+BAT_CALIBRTATION!!");
|
||||
|
||||
int ret = battery_calibration();
|
||||
|
||||
bk_printf("AT+BAT_CALIBRTATION ret: %d\r\n", ret);
|
||||
uint8_t str_respone[32] = {0};
|
||||
memset(str_respone, 0, sizeof(str_respone));
|
||||
if(ret == 1){
|
||||
sprintf((char *)str_respone, "%s", "AT+BAT_CALIBRTATION=OK");
|
||||
}else{
|
||||
sprintf((char *)str_respone, "%s", "AT+BAT_CALIBRTATION=FAIL");
|
||||
}
|
||||
|
||||
|
||||
wifi_boarding_notify(str_respone, strlen((char *)&str_respone));
|
||||
}
|
||||
/**
|
||||
* 12.获取设备状态
|
||||
|
Loading…
x
Reference in New Issue
Block a user