1.关于DC 7V低电关机修改
This commit is contained in:
parent
9c46bc33f6
commit
b2f005bf21
|
@ -38,4 +38,5 @@ void sf_stamp_temperature_get(INT16 *fTem,INT16 *cTem); /*0:F 1:C*/
|
||||||
void sf_temper_update(void);
|
void sf_temper_update(void);
|
||||||
INT16 sf_celsius_change_to_fahrenheit(INT16 cTemper);
|
INT16 sf_celsius_change_to_fahrenheit(INT16 cTemper);
|
||||||
UINT16 sf_battery_val_get(void);
|
UINT16 sf_battery_val_get(void);
|
||||||
|
void sf_app_set_battery_level(unsigned long Val);
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -1469,11 +1469,13 @@ UINT8 sf_check_power_on_mode(void)
|
||||||
char *pStrUpFw = "UpFw=";
|
char *pStrUpFw = "UpFw=";
|
||||||
char *pStrUpMcu = "mcu=";
|
char *pStrUpMcu = "mcu=";
|
||||||
char *pStrOtsOk = "ota_flag=0x1";
|
char *pStrOtsOk = "ota_flag=0x1";
|
||||||
|
char *pStrSF = "sf=";
|
||||||
|
|
||||||
char *temp = NULL;
|
char *temp = NULL;
|
||||||
UINT8 startup = 0;
|
UINT8 startup = 0;
|
||||||
UINT8 UpFw = 0;
|
UINT8 UpFw = 0;
|
||||||
UINT8 Upmcu = 0;
|
UINT8 Upmcu = 0;
|
||||||
|
unsigned long sftmp = 0;
|
||||||
|
|
||||||
system("cat /proc/cmdline > /tmp/Mode.txt");
|
system("cat /proc/cmdline > /tmp/Mode.txt");
|
||||||
fp = fopen("/tmp/Mode.txt","r");
|
fp = fopen("/tmp/Mode.txt","r");
|
||||||
|
@ -1512,6 +1514,14 @@ UINT8 sf_check_power_on_mode(void)
|
||||||
SLOGI(": ota upgrade success\r\n");
|
SLOGI(": ota upgrade success\r\n");
|
||||||
sf_cmd_camera_restart(1);
|
sf_cmd_camera_restart(1);
|
||||||
}
|
}
|
||||||
|
temp = strstr(pStrSrc, pStrSF);
|
||||||
|
if ( temp != NULL) {
|
||||||
|
temp += strlen("sf=");
|
||||||
|
// sscanf(temp, "%hhd", &sftmp);
|
||||||
|
sftmp = strtoul(temp, NULL, 10);
|
||||||
|
sf_app_set_battery_level(sftmp);
|
||||||
|
// sf_cardv_battery_level_set(sftmp);
|
||||||
|
}
|
||||||
SLOGI("StartMode=%d,UpFw=%d Upmcu=%d ota=%d\r\n", startup, UpFw, Upmcu, sf_get_camera_restart());
|
SLOGI("StartMode=%d,UpFw=%d Upmcu=%d ota=%d\r\n", startup, UpFw, Upmcu, sf_get_camera_restart());
|
||||||
|
|
||||||
free(pStrSrc);
|
free(pStrSrc);
|
||||||
|
|
|
@ -788,7 +788,7 @@ signed int sf_battery_value_fast_get(void)
|
||||||
LiPolymerVoltageVal = 0;
|
LiPolymerVoltageVal = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if((DcVoltageVal > LiPolymerVoltageVal) && (DcVoltageVal >= BatVoltageVal) && (DcVoltageVal >= SF_DC_IN_VOLATAGE))
|
if((DcVoltageVal > LiPolymerVoltageVal) && (DcVoltageVal >= BatVoltageVal))
|
||||||
{
|
{
|
||||||
IsPowerDcIn = 1;
|
IsPowerDcIn = 1;
|
||||||
}
|
}
|
||||||
|
@ -877,7 +877,7 @@ SINT32 sf_battery_adc_value_get(void)
|
||||||
if(batCnt)
|
if(batCnt)
|
||||||
_BatVoltageVal = batTemp / batCnt;
|
_BatVoltageVal = batTemp / batCnt;
|
||||||
|
|
||||||
if((_DcVoltageVal > _LiPolymerVoltageVal) && (_DcVoltageVal >= _BatVoltageVal) && (_DcVoltageVal >= SF_DC_IN_VOLATAGE))
|
if((_DcVoltageVal > _LiPolymerVoltageVal) && (_DcVoltageVal >= _BatVoltageVal))
|
||||||
{
|
{
|
||||||
IsPowerDcIn = 1;
|
IsPowerDcIn = 1;
|
||||||
}
|
}
|
||||||
|
@ -967,7 +967,7 @@ void sf_battery_level_polling(void)
|
||||||
if(batCnt)
|
if(batCnt)
|
||||||
_BatVoltageVal = (UINT32)round(batTemp / batCnt);
|
_BatVoltageVal = (UINT32)round(batTemp / batCnt);
|
||||||
|
|
||||||
if((_DcVoltageVal > _LiPolymerVoltageVal) && (_DcVoltageVal >= _BatVoltageVal) && (_DcVoltageVal >= SF_DC_IN_VOLATAGE))
|
if((_DcVoltageVal > _LiPolymerVoltageVal) && (_DcVoltageVal >= _BatVoltageVal))
|
||||||
{
|
{
|
||||||
IsPowerDcIn = 1;
|
IsPowerDcIn = 1;
|
||||||
}
|
}
|
||||||
|
@ -1438,7 +1438,10 @@ UINT8 sf_battery_value_get(UINT8 nightMode)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
value = 100;
|
if(DcVoltageVal > SF_DC_IN_VOLATAGE)
|
||||||
|
{
|
||||||
|
value = 100;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return value;
|
return value;
|
||||||
|
@ -1506,11 +1509,11 @@ BOOL sf_is_battery_low(UINT8 refresh, UINT8 nightMode)
|
||||||
UINT8 batteryVal = 0;
|
UINT8 batteryVal = 0;
|
||||||
UINT8 batteryLevel = 0;
|
UINT8 batteryLevel = 0;
|
||||||
|
|
||||||
if(refresh)
|
// if(refresh)
|
||||||
{
|
// {
|
||||||
sf_battery_value_fast_get();
|
// sf_battery_value_fast_get();
|
||||||
//printf("DC=%d Custom=%d bat=%d\n", dcValue, CustomValue, batli8v);
|
// //printf("DC=%d Custom=%d bat=%d\n", dcValue, CustomValue, batli8v);
|
||||||
}
|
// }
|
||||||
|
|
||||||
batteryVal = sf_battery_value_get(nightMode);
|
batteryVal = sf_battery_value_get(nightMode);
|
||||||
|
|
||||||
|
@ -1720,4 +1723,28 @@ void sf_temper_update(void)
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void sf_app_set_battery_level(unsigned long Val)
|
||||||
|
{
|
||||||
|
// UINT16 batteryVal = 0;
|
||||||
|
UINT16 powerVal = 0;
|
||||||
|
UINT16 batteryType = 0;
|
||||||
|
|
||||||
|
// batteryVal = (Val>>18) & 0x7F;//0~100
|
||||||
|
batteryType = (Val>>16) & 0x03;
|
||||||
|
powerVal = Val & 0xFF;
|
||||||
|
|
||||||
|
if(batteryType == SF_POWER_TYPE_DC)
|
||||||
|
{
|
||||||
|
IsPowerDcIn = 1;
|
||||||
|
DcVoltageVal = powerVal;
|
||||||
|
}
|
||||||
|
else if (batteryType == SF_POWER_TYPE_LI_POLYER) {
|
||||||
|
LiPolymerVoltageVal = powerVal;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
BatVoltageVal = powerVal;
|
||||||
|
}
|
||||||
|
// MLOGI("batteryVal:%d batteryType:%d powerVal:%d p:%d\n",batteryVal, batteryType, powerVal,Val);
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -359,6 +359,10 @@ UINT32 sf_battery_adc_value_get_once(void)
|
||||||
if(sf_adc_value_get(SF_ADC_DC, &batAdc) == SUCCESS)
|
if(sf_adc_value_get(SF_ADC_DC, &batAdc) == SUCCESS)
|
||||||
{
|
{
|
||||||
dcVoltageVal = sf_battery_voltage_convert(24, 100, batAdc);
|
dcVoltageVal = sf_battery_voltage_convert(24, 100, batAdc);
|
||||||
|
if(dcVoltageVal)
|
||||||
|
{
|
||||||
|
dcVoltageVal += 1;
|
||||||
|
}
|
||||||
//dcVoltageVal += 4;
|
//dcVoltageVal += 4;
|
||||||
if(puiPara->BatteryLogSwitch)
|
if(puiPara->BatteryLogSwitch)
|
||||||
printf("DC ADC Value:%lu After Convert:%lu(%lu.%luV)\n",batAdc,dcVoltageVal,dcVoltageVal/10,dcVoltageVal%10);
|
printf("DC ADC Value:%lu After Convert:%lu(%lu.%luV)\n",batAdc,dcVoltageVal,dcVoltageVal/10,dcVoltageVal%10);
|
||||||
|
@ -731,7 +735,7 @@ signed int sf_battery_value_fast_get(void)
|
||||||
LiPolymerVoltageVal = 0;
|
LiPolymerVoltageVal = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if((DcVoltageVal > LiPolymerVoltageVal) && (DcVoltageVal >= BatVoltageVal) && (DcVoltageVal >= SF_DC_IN_VOLATAGE))
|
if((DcVoltageVal > LiPolymerVoltageVal) && (DcVoltageVal >= BatVoltageVal))
|
||||||
{
|
{
|
||||||
IsPowerDcIn = 1;
|
IsPowerDcIn = 1;
|
||||||
}
|
}
|
||||||
|
@ -823,7 +827,7 @@ void sf_battery_level_polling(void)
|
||||||
if(batCnt)
|
if(batCnt)
|
||||||
_BatVoltageVal = batTemp / batCnt;
|
_BatVoltageVal = batTemp / batCnt;
|
||||||
|
|
||||||
if((_DcVoltageVal > _LiPolymerVoltageVal) && (_DcVoltageVal >= _BatVoltageVal) && (_DcVoltageVal >= SF_DC_IN_VOLATAGE))
|
if((_DcVoltageVal > _LiPolymerVoltageVal) && (_DcVoltageVal >= _BatVoltageVal))
|
||||||
{
|
{
|
||||||
IsPowerDcIn = 1;
|
IsPowerDcIn = 1;
|
||||||
}
|
}
|
||||||
|
@ -936,6 +940,11 @@ THREAD_RETTYPE sf_battery_check_thread(void *arg)
|
||||||
sf_set_power_off_flag(APP_POWER_OFF_BATT_EMPTY);
|
sf_set_power_off_flag(APP_POWER_OFF_BATT_EMPTY);
|
||||||
flow_preview_set_stop_flag(TRUE);
|
flow_preview_set_stop_flag(TRUE);
|
||||||
#endif
|
#endif
|
||||||
|
while(1)
|
||||||
|
{
|
||||||
|
vos_util_delay_ms(1000);
|
||||||
|
printf("[%s:%d] cnt power off because low battery\n", __FUNCTION__, __LINE__);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|
||||||
|
@ -1298,7 +1307,10 @@ UINT8 sf_battery_value_get(UINT8 nightMode)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
value = 100;
|
if(DcVoltageVal > SF_DC_IN_VOLATAGE)
|
||||||
|
{
|
||||||
|
value = 100;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return value;
|
return value;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user