1.修改3启动和usb启动处理
2.升级相关 3.温度部分修改 4.代码优化,开机模式
This commit is contained in:
parent
f73c4090e1
commit
a28f87ec9c
|
@ -10,7 +10,9 @@
|
|||
#include "UIFrameworkExt.h"
|
||||
#include "UIWnd/UIFlow.h"
|
||||
#include "UIApp/Transcode/UIAppTranscode.h"
|
||||
|
||||
#if HUNTING_CAMERA_MCU == ENABLE
|
||||
#include <sf_common.h>
|
||||
#endif
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
#define __MODULE__ UIModeTranscode
|
||||
#define __DBGLVL__ 2 // 0=FATAL, 1=ERR, 2=WRN, 3=UNIT, 4=FUNC, 5=IND, 6=MSG, 7=VALUE, 8=USER
|
||||
|
@ -37,6 +39,11 @@ void ModeTranscode_Open(void)
|
|||
pCurSubMode->pfSubMode_OnOpen();
|
||||
}
|
||||
}
|
||||
#endif
|
||||
#if HUNTING_CAMERA_MCU == ENABLE
|
||||
if((1 == sf_get_fw_update())){
|
||||
sf_do_upgrade_thread();//update
|
||||
}
|
||||
#endif
|
||||
DBG_FUNC_END("\r\n");
|
||||
|
||||
|
|
|
@ -153,7 +153,11 @@ INT32 System_GetBootFirstMode(void)
|
|||
UINT8 PowerOnMode = sf_cardv_convert_power_on_mode();
|
||||
|
||||
printf("%s:%d CamMode :%d\n", __FUNCTION__, __LINE__,puiPara->CamMode);
|
||||
if(PWR_ON_SETUP != PowerOnMode)
|
||||
if(GxUSB_GetIsUSBPlug())
|
||||
{
|
||||
return PRIMARY_MODE_PHOTO;
|
||||
}
|
||||
else if((PWR_ON_SETUP != PowerOnMode) || (sf_get_fw_update()))
|
||||
{
|
||||
return PRIMARY_MODE_TRANSCODE;
|
||||
}
|
||||
|
@ -229,6 +233,9 @@ INT32 System_OnBoot(VControl *pCtrl, UINT32 paramNum, UINT32 *paramArray)
|
|||
Load_MenuInfo();
|
||||
#else
|
||||
Load_MenuInfo(); //reset value cause the FL_FSStatus as '0', we do so before NVTEVT_STRG_ATTACH finish
|
||||
#if HUNTING_CAMERA_MCU == ENABLE
|
||||
sf_cardv_para_check_start();
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
@ -383,6 +390,14 @@ INT32 System_OnBoot(VControl *pCtrl, UINT32 paramNum, UINT32 *paramArray)
|
|||
|
||||
}
|
||||
DBG_DUMP("^MOn Boot end\r\n");
|
||||
#if 0//HUNTING_CAMERA_MCU == ENABLE
|
||||
if((0 == sf_get_fw_update()) && (sf_get_mode_flag()))
|
||||
{
|
||||
Ux_SendEvent(0, NVTEVT_EXE_WIFI_START, 0);
|
||||
//sleep(2);
|
||||
//sf_apinfo_thread_init();
|
||||
}
|
||||
#endif
|
||||
return NVTEVT_CONSUME;
|
||||
}
|
||||
|
||||
|
@ -450,9 +465,10 @@ INT32 System_OnShutdown(VControl *pCtrl, UINT32 paramNum, UINT32 *paramArray)
|
|||
#endif
|
||||
}
|
||||
#if HUNTING_CAMERA_MCU == ENABLE
|
||||
sf_cardv_para_check_stop();
|
||||
if(sf_is_flash_voltage_abnormal() != TRUE)
|
||||
Save_MenuInfo();
|
||||
|
||||
sf_cardv_para_check_stop();
|
||||
#else
|
||||
Save_MenuInfo();
|
||||
#endif
|
||||
|
|
|
@ -33,10 +33,10 @@ void USB_CB(UINT32 event, UINT32 param1, UINT32 param2)
|
|||
{
|
||||
switch (event) {
|
||||
case SYSTEM_CB_CONFIG:
|
||||
//1.設定init值
|
||||
//2.設定CB值,
|
||||
//3.註冊SxJob服務 ---------> System Job
|
||||
//4.註冊SxTimer服務 ---------> Detect Job
|
||||
//1.<EFBFBD>]<5D>winit<69><74>
|
||||
//2.<EFBFBD>]<5D>wCB<43><42>,
|
||||
//3.<EFBFBD><EFBFBD><EFBFBD>USxJob<EFBFBD>A<EFBFBD><EFBFBD> ---------> System Job
|
||||
//4.<EFBFBD><EFBFBD><EFBFBD>USxTimer<EFBFBD>A<EFBFBD><EFBFBD> ---------> Detect Job
|
||||
//#if (USBINSERT_FUNCTION == ENABLE)
|
||||
//SX_TIMER_DET_USB_ID = System_AddSxTimer(UI_DetUSB, 5,"GxUSB");
|
||||
//#endif
|
||||
|
@ -62,22 +62,22 @@ void USB_CB(UINT32 event, UINT32 param1, UINT32 param2)
|
|||
}
|
||||
}
|
||||
/*
|
||||
以下3個USB mode
|
||||
<EFBFBD>H<EFBFBD>U3<EFBFBD><EFBFBD>USB mode
|
||||
|
||||
MSDC
|
||||
需要固定的 Size 128K Bytes
|
||||
有個變數就是 Vendor Commands,
|
||||
有開Vendor Command要 142KB >> check define MSDCNVT_REQUIRE_MIN_SIZE
|
||||
<EFBFBD>ݭn<EFBFBD>T<EFBFBD>w<EFBFBD><EFBFBD> Size 128K Bytes
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܼƴN<EFBFBD>O Vendor Commands,
|
||||
<EFBFBD><EFBFBD><EFBFBD>}Vendor Command<EFBFBD>n 142KB >> check define MSDCNVT_REQUIRE_MIN_SIZE
|
||||
|
||||
SIDC
|
||||
兩塊,total需要的buffer公式如下:
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Atotal<EFBFBD>ݭn<EFBFBD><EFBFBD>buffer<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>p<EFBFBD>U:
|
||||
2930KB(x 1024) + Object Num x 108 Byte
|
||||
|
||||
PCC:
|
||||
2塊 * M.
|
||||
M = ((JPEG bitstream + header + 2 )取32 byte align) + 64
|
||||
JPEG bitstream 在HD mode 必定不小於0x80000B
|
||||
JPEG bitstream 在其他mode必定不小於0x40000B
|
||||
2<EFBFBD><EFBFBD> * M.
|
||||
M = ((JPEG bitstream + header + 2 )<EFBFBD><EFBFBD>32 byte align) + 64
|
||||
JPEG bitstream <EFBFBD>bHD mode <EFBFBD><EFBFBD><EFBFBD>w<EFBFBD><EFBFBD><EFBFBD>p<EFBFBD><EFBFBD>0x80000B
|
||||
JPEG bitstream <EFBFBD>b<EFBFBD><EFBFBD>Lmode<EFBFBD><EFBFBD><EFBFBD>w<EFBFBD><EFBFBD><EFBFBD>p<EFBFBD><EFBFBD>0x40000B
|
||||
*/
|
||||
|
||||
|
||||
|
|
|
@ -51,8 +51,8 @@ static char* usb_host_drivers[] = {
|
|||
};
|
||||
|
||||
static char* usb_dev_drivers[] = {
|
||||
"hdal/comm/uvcp/nvt_uvcp.ko",
|
||||
"hdal/comm/usb2dev/nvt_usb2dev.ko",
|
||||
"hdal/comm/uvcp/nvt_uvcp.ko",
|
||||
NULL
|
||||
};
|
||||
|
||||
|
@ -142,7 +142,7 @@ static BOOL System_InsmodUsb(BOOL isHost)
|
|||
|
||||
if(driver_path){
|
||||
memset(cmd, '\0', sizeof(cmd));
|
||||
snprintf(cmd, sizeof(cmd), "insmod %s/%s/%s", isHost ? "" : "" /* ramdisk */, driver_path_prefix, driver_path);
|
||||
snprintf(cmd, sizeof(cmd), "insmod %s/%s", driver_path_prefix, driver_path);
|
||||
//DBG_DUMP("%s\n", cmd);
|
||||
printf("[%s:%d] %s\n", __FUNCTION__, __LINE__, cmd);
|
||||
system(cmd);
|
||||
|
@ -152,6 +152,7 @@ static BOOL System_InsmodUsb(BOOL isHost)
|
|||
if(isHost == FALSE){
|
||||
#if HUNTING_CAMERA_MCU == ENABLE
|
||||
sf_usb_mux_s(0);
|
||||
vos_util_delay_ms(200);
|
||||
#endif
|
||||
|
||||
is_usb_dev_driver_inserted = TRUE;
|
||||
|
@ -350,9 +351,13 @@ INT32 System_OnUsbInsert(VControl *pCtrl, UINT32 paramNum, UINT32 *paramArray)
|
|||
{
|
||||
//usb plug in
|
||||
DBG_IND("USB plug - begin\r\n");
|
||||
|
||||
#if (HW_S530 == ENABLE) && (HUNTING_CAMERA_MCU == ENABLE)
|
||||
sf_sys_status_led_set(SF_LED_SYS_STATE_USB_IN);
|
||||
sf_4g_usb_remove();
|
||||
#endif
|
||||
System_RmmodUsb(TRUE); /* rmmod usb host ko */
|
||||
System_InsmodUsb(FALSE); /* insmod usb dev ko */
|
||||
//vos_util_delay_ms(1000);
|
||||
GxUSB_SetChargerType(FALSE);
|
||||
|
||||
USB_UpdateSource();
|
||||
|
@ -366,6 +371,7 @@ INT32 System_OnUsbInsert(VControl *pCtrl, UINT32 paramNum, UINT32 *paramArray)
|
|||
#else
|
||||
|
||||
#if HUNTING_CAMERA_MCU == ENABLE //temporally support MSDC only
|
||||
//vos_util_delay_ms(1000);
|
||||
Ux_SendEvent(0, NVTEVT_SYSTEM_MODE, 1, PRIMARY_MODE_USBMSDC);
|
||||
#else
|
||||
Ux_SendEvent(0, NVTEVT_SYSTEM_MODE, 1, PRIMARY_MODE_USBMENU);
|
||||
|
|
|
@ -355,8 +355,12 @@ int NvtMain(void)
|
|||
nvt_hdal_init();
|
||||
nvt_user_init();
|
||||
#if HUNTING_CAMERA_MCU == ENABLE
|
||||
if(!GxUSB_GetIsUSBPlug())//(!sf_gpio_get_status(GPIO_INT_USBPLUGIN))
|
||||
BOOL inUsb = GxUSB_GetIsUSBPlug();
|
||||
if(TRUE == inUsb)//(!sf_gpio_get_status(GPIO_INT_USBPLUGIN))
|
||||
{
|
||||
sf_usb_mux_s(0);
|
||||
sf_sys_status_led_set(SF_LED_SYS_STATE_USB_IN);
|
||||
}
|
||||
#if HUNTING_CAMERA_4G == ENABLE
|
||||
|
||||
sf_share_mem_file_init();
|
||||
|
@ -374,33 +378,26 @@ int NvtMain(void)
|
|||
printf("create cardv message successs!!!!\n");
|
||||
}
|
||||
sf_cardv_message_thread_init();
|
||||
sf_cardv_para_check_start();
|
||||
|
||||
SF_MESSAGE_BUF_S stMessageBuf = {0};
|
||||
|
||||
if(!sf_gpio_get_status(GPIO_KEY_TEST)){
|
||||
sf_set_fw_update(1);//update
|
||||
}
|
||||
|
||||
if(TRUE != inUsb)
|
||||
{
|
||||
stMessageBuf.arg1 = SF_MCU_CMD_POWERON;
|
||||
stMessageBuf.cmdId = CMD_MCU;
|
||||
sf_com_message_send_to_app(&stMessageBuf);
|
||||
|
||||
//sf_sys_status_led_set(SF_LED_SYS_STATE_PIR_NOT_DETECT);
|
||||
#if 0
|
||||
if(sf_get_mode_flag())
|
||||
{
|
||||
GOIO_Turn_Onoff_IRCUT(1);
|
||||
|
||||
/*wifi init*/
|
||||
stMessageBuf.arg1 = SF_WIFI_CMD_START;
|
||||
stMessageBuf.cmdId = CMD_WIFI;
|
||||
sf_com_message_send_to_cardv(&stMessageBuf);
|
||||
}
|
||||
#endif
|
||||
stMessageBuf.arg1 = SF_DEV_CMD_BAT;
|
||||
stMessageBuf.cmdId = CMD_DEV;
|
||||
sf_com_message_send_to_app(&stMessageBuf);
|
||||
|
||||
stMessageBuf.arg1 = SF_DEV_CMD_TEMPER;
|
||||
stMessageBuf.cmdId = CMD_DEV;
|
||||
sf_com_message_send_to_app(&stMessageBuf);
|
||||
}
|
||||
#else
|
||||
sf_mcu_init();
|
||||
sf_get_power_on_mode();
|
||||
|
@ -411,11 +408,6 @@ int NvtMain(void)
|
|||
#endif
|
||||
sf_sd_exist_reg_cb(DrvCARD_DetStrgCard);
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
sf_usb_mux_s(0);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
|
|
|
@ -1610,7 +1610,7 @@ INT32 UINet_WifiInit(UINT32 mode, UINT32 security)
|
|||
//#NT#2016/08/05#Niven Cho -end
|
||||
|
||||
//Ux_PostEvent(NVTEVT_WIFI_STATE, 2, NET_STATE_WIFI_START, result);
|
||||
sf_wifi_app_start();
|
||||
//sf_wifi_app_start();
|
||||
|
||||
return result;
|
||||
}
|
||||
|
|
|
@ -32,6 +32,9 @@ BOOL sf_battery_check_init(void);
|
|||
void sf_set_need_check_first(void);
|
||||
BOOL sf_is_enough_power_to_update(void);
|
||||
void sf_adc_init(void);
|
||||
|
||||
BOOL sf_is_battery_low(UINT8 refresh, UINT8 nightMode);
|
||||
INT16 sf_adc2Temperature(UINT16 adcValue, UINT8 type);/*type: 0:F 1:C*/
|
||||
void sf_stamp_temperature_get(INT16 *fTem,INT16 *cTem); /*0:F 1:C*/
|
||||
void sf_temper_update(void);
|
||||
INT16 sf_celsius_change_to_fahrenheit(INT16 cTemper);
|
||||
#endif
|
||||
|
|
|
@ -170,7 +170,7 @@ int main(int argc, char *argv[])
|
|||
sf_mcu_flag_init();
|
||||
sf_mcu_init();
|
||||
startup = sf_poweron_type_get();
|
||||
if(SF_MCU_STARTUP_NORMAL != startup){
|
||||
if((SF_MCU_STARTUP_NORMAL != startup) && (!isUsb)){
|
||||
sf_get_power_on_mode();
|
||||
sf_mcu_wdg_set(30);
|
||||
}
|
||||
|
@ -188,10 +188,11 @@ int main(int argc, char *argv[])
|
|||
//sf_usb_mux_s(1);
|
||||
//sf_load_ko();
|
||||
sf_mcu_reg_set(SF_MCU_CTRL_MODULE_PIR, 1);
|
||||
sf_app_battery_start();
|
||||
}
|
||||
|
||||
//sf_battery_check_init();
|
||||
sf_app_battery_start();
|
||||
|
||||
//sf_app_data_ready_start();
|
||||
|
||||
//sf_set_fw_update(isUpdate);
|
||||
|
@ -234,7 +235,7 @@ int main(int argc, char *argv[])
|
|||
}
|
||||
}
|
||||
|
||||
if((0 == sf_get_fw_update()) && (SF_MCU_STARTUP_NORMAL != startup) && (SF_ON == puiPara->GprsSwitch))
|
||||
if((!isUsb) && (0 == sf_get_fw_update()) && (SF_MCU_STARTUP_NORMAL != startup) && (SF_ON == puiPara->GprsSwitch))
|
||||
{
|
||||
app_RegisterNet_start();
|
||||
}
|
||||
|
|
|
@ -55,6 +55,7 @@ extern "C" {
|
|||
#include <sf_file.h>
|
||||
#include <sf_commMng.h>
|
||||
#include "sf_battery.h"
|
||||
#include "sf_hal_ttyusb.h"
|
||||
extern pthread_mutex_t Param_mutexLock;
|
||||
SINT8 longClickhold = 0;
|
||||
SINT8 bmoduleupdate = 0;
|
||||
|
@ -839,11 +840,18 @@ static SINT32 sf_app_proccess_cmd_dev(SF_MESSAGE_BUF_S *pMessageBuf)
|
|||
{
|
||||
MLOGD("ID = %#x\n",pMessageBuf->arg1);
|
||||
SF_MESSAGE_BUF_S stMessageBuf = {0};
|
||||
SINT16 fTemper = 0, cTemper = 0;
|
||||
|
||||
switch(pMessageBuf->arg1)
|
||||
{
|
||||
case SF_DEV_CMD_TEMPER:
|
||||
sf_app_set_temper(pMessageBuf->arg2);
|
||||
sf_stamp_temperature_get(&fTemper,&cTemper);
|
||||
stMessageBuf.cmdId = CMD_DEV;
|
||||
stMessageBuf.arg1 = SF_DEV_CMD_TEMPER;
|
||||
stMessageBuf.arg2 = cTemper;
|
||||
stMessageBuf.arg3 = fTemper;
|
||||
printf("[%s:%d]cTemper=%d fTemper:%d\n",__FUNCTION__,__LINE__,stMessageBuf.arg2, stMessageBuf.arg3);
|
||||
sf_com_message_send_to_cardv(&stMessageBuf);
|
||||
break;
|
||||
case SF_DEV_CMD_BAT:
|
||||
stMessageBuf.cmdId = CMD_DEV;
|
||||
|
@ -854,6 +862,11 @@ static SINT32 sf_app_proccess_cmd_dev(SF_MESSAGE_BUF_S *pMessageBuf)
|
|||
sf_com_message_send_to_cardv(&stMessageBuf);
|
||||
//sf_app_set_battery(pMessageBuf->arg2, pMessageBuf->arg3);
|
||||
break;
|
||||
case SF_DEV_CMD_4G_USB_RM:
|
||||
if (sf_hal_ttyusb2_deinit() != 0) {
|
||||
MLOGE("-------ttyUSB deinit fail!\n");
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
@ -871,6 +884,7 @@ void* app_message_recv_thread(void *arg)
|
|||
{
|
||||
continue;
|
||||
}
|
||||
if(CMD_LED != stMessagebuf.cmdId)
|
||||
MLOGD("cmdId:[%#x,%s]\n",stMessagebuf.cmdId,app_process_message_getstatusstring(stMessagebuf.cmdId));
|
||||
switch(stMessagebuf.cmdId)
|
||||
{
|
||||
|
|
|
@ -56,6 +56,7 @@ typedef signed int SINT32;
|
|||
UINT32 _DcVoltageVal = 0;
|
||||
UINT32 _LiPolymerVoltageVal = 0; /*4.0P no use*/
|
||||
UINT32 _BatVoltageVal = 45;
|
||||
UINT32 _TemperAdc = 0;
|
||||
UINT32 IsPowerDcIn = 1;
|
||||
UINT32 BatVoltageVal = 45;
|
||||
SF_BatteryLevel_e sf_LatestBattLevel = SF_BATT_LEVEL_0;
|
||||
|
@ -63,11 +64,26 @@ UINT8 needCheckFirst = TRUE;
|
|||
UINT32 DcVoltageVal = 0;
|
||||
UINT32 LiPolymerVoltageVal = 0; /*4.0P no use*/
|
||||
UINT32 batTempLevel = 0xff;
|
||||
|
||||
static UINT32 TemperAdc = 0;
|
||||
static INT16 fTemper = 0;
|
||||
static INT16 cTemper = 0;
|
||||
#define SF_READ_BAT_MAX 10
|
||||
#define SF_DC_IN_VOLATAGE 70
|
||||
#define SF_LI_IN_VOLATAGE 99
|
||||
|
||||
const UINT16 Adc2TempTable[]=
|
||||
{
|
||||
0,1648,1721,1794,1867,1940,2013,2086,2159, 2232,2305, 2378,2451,2524,2597,2670,2743, 2816, 2889, 2968,
|
||||
3047,3126,3205,3284,3363,3442,3521,3600/*-15*/,3679,3758,3837,3916,3995,4074,4153,4232,4321/*-10*/, 4427,4533,4639,
|
||||
4745,4851,4957,5063,5169,5275,5381,5487,5593,5699,5805,5911,6017,6123,6238/*0*/,6334,6430,6526,6622,6718,
|
||||
6814,6910,7006,7102,7198,7294,7390,7486,7582,7678,7774,7870,7996,8063/*10*/,8182,8301,8420,8539,8658,8777,
|
||||
8896,9015,9134,9253,9372,9491,9610,9729,9848,9967,10128/*20*/,10221,10314,10407,10500,10593,10686,10779,10872,10965,
|
||||
11058,11151,11244,11337,11430,11480,11530,11580,11630/*30*/,11680,11730,11780,11830,11880,11930,11980,12032,12097,12162,12232,
|
||||
12302,12372,12442,12512,12582,12652,12722/*40*/,12769,12816,12863,12910,12957,13004,13051,13098,13145,13192,13239,13286,13333,
|
||||
13380,13427,13474,13521/*50*/,13591,13661,13731,13801,13871,13941,14011,14081,14151,14221,14291,14361,14431,14501,14571,14641,
|
||||
14711,14781,14851/*60*/,14941,15031,15111,15181,15251,15321,15391,15461,15531,15601,15671,15741,15811
|
||||
};
|
||||
|
||||
/*************************************************
|
||||
Function: sf_battery_voltage_convert
|
||||
Description: battery voltage convert
|
||||
|
@ -130,11 +146,13 @@ void sf_adc_init(void)
|
|||
// Enable adc control logic
|
||||
adc_setEnable(TRUE);
|
||||
|
||||
gpio_direction_output(P_GPIO_0,0);
|
||||
gpio_direction_output(P_GPIO_1,0);
|
||||
}
|
||||
|
||||
/*************************************************
|
||||
Function: sf_adc_value_get
|
||||
Description: get battery adc only once
|
||||
Description: get battery adc
|
||||
Input: N/A
|
||||
Output: N/A
|
||||
Return: SUCCESS/FAIL
|
||||
|
@ -143,7 +161,7 @@ void sf_adc_init(void)
|
|||
UINT32 sf_adc_value_get(UINT32 mux, UINT32 *pval)
|
||||
{
|
||||
static UINT8 getAdcFlg = 0;
|
||||
static UINT8 outputflag = 1;
|
||||
//static UINT8 outputflag = 1;
|
||||
*pval = 0;
|
||||
|
||||
if(getAdcFlg)
|
||||
|
@ -152,12 +170,6 @@ UINT32 sf_adc_value_get(UINT32 mux, UINT32 *pval)
|
|||
}
|
||||
getAdcFlg = 1;
|
||||
|
||||
if(outputflag)
|
||||
{
|
||||
outputflag = 0;
|
||||
gpio_direction_output(P_GPIO_0,0);
|
||||
gpio_direction_output(P_GPIO_1,0);
|
||||
}
|
||||
|
||||
if(SF_ADC_BATT == mux)//bat_det
|
||||
{
|
||||
|
@ -313,6 +325,13 @@ UINT32 sf_battery_adc_value_get_once(void)
|
|||
printf("Bat ADC Value:%d After Convert:%d(%d.%dV)\n",batAdc,batVoltageVal,batVoltageVal/10,batVoltageVal%10);
|
||||
}
|
||||
|
||||
if(sf_adc_value_get(SF_ADC_TEMP, &batAdc) == SUCCESS)
|
||||
{
|
||||
_TemperAdc = batAdc;
|
||||
if(puiPara->BatteryLogSwitch)
|
||||
printf("_TemperAdc:%d \n",batAdc);
|
||||
}
|
||||
|
||||
_DcVoltageVal = dcVoltageVal;
|
||||
|
||||
if ((liPolymerVoltageVal > batVoltageVal))
|
||||
|
@ -578,6 +597,8 @@ signed int sf_battery_value_fast_get(void)
|
|||
UINT8 readBatCnt = 0;
|
||||
UINT32 dcValueList[12] = { 0 };
|
||||
UINT32 batValueList[12] = { 0 };
|
||||
UINT32 temperValueList[12] = { 0 };
|
||||
|
||||
UIMenuStoreInfo *puiPara = sf_app_ui_para_get();
|
||||
|
||||
SINT32 ret = FAIL;
|
||||
|
@ -592,6 +613,7 @@ signed int sf_battery_value_fast_get(void)
|
|||
if(sf_battery_adc_value_get_once() == SUCCESS)
|
||||
{
|
||||
dcValueList[readBatCnt] = _DcVoltageVal;
|
||||
temperValueList[readBatCnt] = _TemperAdc;
|
||||
|
||||
if(puiPara->BatteryLogSwitch)
|
||||
{
|
||||
|
@ -626,7 +648,7 @@ signed int sf_battery_value_fast_get(void)
|
|||
}
|
||||
|
||||
DcVoltageVal = sf_get_max_value(dcValueList);
|
||||
|
||||
TemperAdc = sf_get_max_value(temperValueList);
|
||||
if(_LiPolymerVoltageVal)
|
||||
{
|
||||
LiPolymerVoltageVal = sf_get_max_value(batValueList);
|
||||
|
@ -664,6 +686,10 @@ signed int sf_battery_value_fast_get(void)
|
|||
ret = SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
cTemper = sf_adc2Temperature((UINT16)TemperAdc, 1);
|
||||
fTemper = sf_celsius_change_to_fahrenheit(cTemper);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
@ -683,6 +709,7 @@ void sf_battery_level_polling(void)
|
|||
UINT32 LibatTemp = 0;
|
||||
UINT8 LibatCnt = 0;
|
||||
UINT8 batCnt = 0;
|
||||
UINT32 temperValue = 0;
|
||||
UIMenuStoreInfo *puiPara = sf_app_ui_para_get();
|
||||
static UINT32 prePowerDcStatus = 0;
|
||||
|
||||
|
@ -697,6 +724,8 @@ void sf_battery_level_polling(void)
|
|||
sf_sleep_ms(100);
|
||||
|
||||
dcTemp += _DcVoltageVal;
|
||||
temperValue += _TemperAdc;
|
||||
|
||||
if(_LiPolymerVoltageVal)
|
||||
{
|
||||
LibatTemp += _LiPolymerVoltageVal;
|
||||
|
@ -712,6 +741,8 @@ void sf_battery_level_polling(void)
|
|||
if(readBatCnt >= 100)
|
||||
{
|
||||
_DcVoltageVal = dcTemp / 100;
|
||||
_TemperAdc = temperValue/100;
|
||||
|
||||
if(LibatCnt)
|
||||
_LiPolymerVoltageVal = LibatTemp / LibatCnt;
|
||||
if(batCnt)
|
||||
|
@ -736,12 +767,13 @@ void sf_battery_level_polling(void)
|
|||
}
|
||||
|
||||
DcVoltageVal = _DcVoltageVal;
|
||||
TemperAdc = _TemperAdc;
|
||||
LiPolymerVoltageVal = _LiPolymerVoltageVal;
|
||||
BatVoltageVal = _BatVoltageVal;
|
||||
|
||||
if(puiPara->BatteryLogSwitch)
|
||||
{
|
||||
printf("\n[average]DC Adc:%d After Convert:(%d.%dV),Is Dc In=%s\n", sf_battery_convert_to_adc(10, 100, DcVoltageVal), DcVoltageVal / 10, DcVoltageVal % 10, IsPowerDcIn == 1? "Yes" : "No");
|
||||
printf("\n[average]DC Adc:%d After Convert:(%d.%dV),Is Dc In=%s, TemperAdc:%d \n", sf_battery_convert_to_adc(10, 100, DcVoltageVal), DcVoltageVal / 10, DcVoltageVal % 10, IsPowerDcIn == 1? "Yes" : "No", TemperAdc);
|
||||
|
||||
if(LiPolymerVoltageVal)
|
||||
{
|
||||
|
@ -757,7 +789,7 @@ void sf_battery_level_polling(void)
|
|||
}
|
||||
|
||||
sf_battery_level_update();
|
||||
|
||||
sf_temper_update();
|
||||
//ret = sf_check_low_battery();
|
||||
|
||||
if(puiPara->BatteryLogSwitch)
|
||||
|
@ -1303,6 +1335,122 @@ BOOL sf_is_enough_power_to_update(void)
|
|||
|
||||
return TRUE;
|
||||
}
|
||||
INT16 sf_celsius_change_to_fahrenheit(INT16 cTemper)
|
||||
{
|
||||
INT16 fTemper = 0;
|
||||
fTemper = cTemper*9/5 + 32;
|
||||
//printf("fTemper=%d%s\n",fTemper,"`F");
|
||||
return fTemper;
|
||||
}
|
||||
void sf_stamp_temperature_get(INT16 *fTem,INT16 *cTem) /*0:F 1:C*/
|
||||
{
|
||||
*fTem = fTemper;
|
||||
*cTem = cTemper;
|
||||
}
|
||||
|
||||
|
||||
INT16 sf_adc2Temperature(UINT16 adcValue, UINT8 type)/*type: 0:F 1:C*/
|
||||
{
|
||||
UINT16 lowIndex = 0, highIndex = 175, keyIndex = 77, midIndex = 0;
|
||||
UINT16 tmp = 0;
|
||||
INT16 Temper = 0;
|
||||
|
||||
while(lowIndex < highIndex)
|
||||
{
|
||||
if((lowIndex == highIndex) || (lowIndex == (highIndex - 1)))
|
||||
{
|
||||
keyIndex = lowIndex;
|
||||
break;
|
||||
}
|
||||
else if( (adcValue < Adc2TempTable[lowIndex]) || (adcValue > Adc2TempTable[highIndex]))
|
||||
{
|
||||
keyIndex = 255;
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
midIndex = (lowIndex + highIndex) / 2;
|
||||
if(adcValue < Adc2TempTable[midIndex])
|
||||
highIndex = midIndex;
|
||||
else
|
||||
lowIndex = midIndex;
|
||||
}
|
||||
//printf("low=%bx,high=%bx\r",lowIndex,highIndex);
|
||||
}
|
||||
|
||||
if(keyIndex == 255)
|
||||
tmp = 176;
|
||||
else
|
||||
tmp = keyIndex;
|
||||
|
||||
if(tmp > 176)
|
||||
tmp = 176;
|
||||
|
||||
if(type == 1)
|
||||
{
|
||||
if(tmp >= 22)
|
||||
{
|
||||
tmp = tmp-22;
|
||||
if( tmp >= 32)
|
||||
{
|
||||
tmp = (tmp - 32) * 5 / 9;
|
||||
Temper = (INT16)tmp;
|
||||
}
|
||||
else
|
||||
{
|
||||
tmp = (32 - tmp) * 5 / 9;
|
||||
Temper = -(INT16)tmp;
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
tmp = 22 - tmp;
|
||||
tmp = (32 + tmp) * 5 / 9;
|
||||
Temper = -(INT16)tmp;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (tmp > 22)
|
||||
{
|
||||
Temper = tmp - 22;
|
||||
}
|
||||
else
|
||||
{
|
||||
Temper = 22 - tmp;
|
||||
Temper = -Temper;
|
||||
}
|
||||
}
|
||||
|
||||
//printf("TemperAdc:%d Temper = %d%s\n", TemperAdc, Temper, (type ? "`C" : "`F"));
|
||||
return Temper;
|
||||
}
|
||||
|
||||
/*************************************************
|
||||
Function: sf_temper_update
|
||||
Description: Get temper Voltage.
|
||||
Input: N/A
|
||||
Output: N/A
|
||||
Return: N/A
|
||||
Others: N/A
|
||||
*************************************************/
|
||||
void sf_temper_update(void)
|
||||
{
|
||||
static INT16 ctemper_tmp = 0;
|
||||
SF_MESSAGE_BUF_S stMessageBuf = {0};
|
||||
cTemper = sf_adc2Temperature((UINT16)TemperAdc, 1);
|
||||
fTemper = sf_celsius_change_to_fahrenheit(cTemper);
|
||||
|
||||
if(cTemper != ctemper_tmp){
|
||||
stMessageBuf.cmdId = CMD_DEV;
|
||||
stMessageBuf.arg1 = SF_DEV_CMD_TEMPER;
|
||||
stMessageBuf.arg2 = cTemper;
|
||||
stMessageBuf.arg3 = fTemper;
|
||||
printf("[%s:%d]cTemper=%d fTemper:%d TemperAdc:%d\n",__FUNCTION__,__LINE__,stMessageBuf.arg2, stMessageBuf.arg3, TemperAdc);
|
||||
sf_com_message_send_to_cardv(&stMessageBuf);
|
||||
ctemper_tmp = cTemper;
|
||||
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -380,7 +380,7 @@ unsigned char sf_mcu_reg_set(MCUParam_t attrId, unsigned char val)
|
|||
if(attrId == SF_MCU_POWEROFF)
|
||||
{
|
||||
//printf("SynMcuSet = %x\n", statisPara->SynMcuSet);
|
||||
MLOGI("NeedTimeSyncStartUp = %d\n", puiPara->NeedTimeSyncStartUp);
|
||||
MLOGI("NeedTimeSyncStartUp = %d NetWorkNeedSearch= %d\n", puiPara->NeedTimeSyncStartUp, puiPara->NetWorkNeedSearch);
|
||||
if(puiPara->NeedTimeSyncStartUp == 1)
|
||||
{
|
||||
paraSyncFlag = 1;
|
||||
|
@ -542,21 +542,21 @@ unsigned char sf_mcu_reg_set(MCUParam_t attrId, unsigned char val)
|
|||
mcuReg[i] = ANALOG_PIR_SENSITIVITY;
|
||||
temp = sf_mcu_analog_pir_sen_convert(puiPara->PirSensitivity);
|
||||
//hybrid mode 4G module keep sleep
|
||||
if(((puiPara->NetWorkNeedSearch) != 3) && simCardInsert && gModuleSleep)
|
||||
if(simCardInsert && (puiPara->NetWorkNeedSearch))
|
||||
{
|
||||
//bit 5-bit 6, daily mode 0, hybrid mode 1, instant mode 2
|
||||
if(((puiPara->GprsMode) == 1) || (paraSyncFlag))
|
||||
{
|
||||
temp |= 0x40;
|
||||
//4.0PCG, first to PIR mode, will power on in A,search net. so 4G mode should power down
|
||||
//instant mode ,dp power on, 4G mode should power down
|
||||
temp &= ~0x60; /*bit5&bit6=0,daily mode*/
|
||||
}
|
||||
else
|
||||
else if(simCardInsert && (puiPara->GprsMode == 1) && gModuleSleep)
|
||||
{
|
||||
if (((puiPara->GprsMode) == 2) && isSignalReady && (sf_get_gprs_errno() == 0))
|
||||
temp |= 0x20;
|
||||
temp |= 0x40; /*bit6=1,instant mode*/
|
||||
}
|
||||
else if(simCardInsert && (puiPara->GprsMode == 2) && gModuleSleep)
|
||||
{
|
||||
temp |= 0x20; /*bit5=1,hybrid mode*/
|
||||
}
|
||||
|
||||
//sf_pdp_flg_set(0);
|
||||
}
|
||||
}
|
||||
if((PowerOnMode == PWR_ON_AUTO) || (PowerOnMode == PWR_ON_SETUP) || (PowerOnMode == PWR_ON_GPRS_INIT) || ((PowerOnMode == PWR_ON_DAILY_REPORT) && (drNoResetTimeSync != SF_TRUE)))
|
||||
{
|
||||
temp |= 0x10; /*bit4 rest*/
|
||||
|
@ -1280,24 +1280,9 @@ void sf_dailyReport_set(void)
|
|||
UIMenuStoreInfo *puiPara = sf_app_ui_para_get();
|
||||
extern UINT8 DailyReportFtpSendSucess;
|
||||
|
||||
if((sf_get_mode_flag()) || (PWR_ON_GPRS_INIT == sf_poweron_type_get()))//if reset cam, cam software update, mode software udate
|
||||
if(PWR_ON_TIME_SYNC == sf_poweron_type_get())
|
||||
{
|
||||
if (puiPara->FristSendDailyAndGps)
|
||||
{
|
||||
puiPara->NeedTimeSyncStartUp = 1;
|
||||
}
|
||||
|
||||
puiPara->ReDailyReport = 0;
|
||||
sf_dailyReport_refresh();
|
||||
}
|
||||
else if(PWR_ON_DAILY_REPORT == sf_poweron_type_get())
|
||||
{
|
||||
if (puiPara->FristSendDailyAndGps)
|
||||
{
|
||||
puiPara->FristSendDailyAndGps = 0;
|
||||
puiPara->ReDailyReport = 0;
|
||||
}
|
||||
else if (DailyReportFtpSendSucess == 0)
|
||||
if (DailyReportFtpSendSucess == 0)
|
||||
{
|
||||
if(puiPara->ReDailyReport==0)
|
||||
puiPara->ReDailyReport = 1;
|
||||
|
|
|
@ -89,8 +89,6 @@ BOOL sf_is_movie_preview(void);
|
|||
BOOL sf_is_cap_preview(void);
|
||||
BOOL sf_is_preview(void);
|
||||
UINT8 sf_cardv_get_cq_signal(void);
|
||||
INT16 sf_adc2Temperature(UINT16 adcValue, UINT8 type);/*type: 0:°F 1:°C */
|
||||
void sf_stamp_temperature_get(INT16 *fTemper,INT16 *cTemper); /*0:F 1:C*/
|
||||
void sf_set_send_statu(BOOL is);
|
||||
BOOL sf_get_send_statu(void);
|
||||
void sf_cardv_set_mcu_rtc_flag(void);
|
||||
|
@ -109,4 +107,6 @@ UINT32 sf_cardv_battery_level_get(void);
|
|||
UINT8 sf_cardv_battery_value_get(void);
|
||||
UINT8 sf_cardv_battery_type_get(void);
|
||||
BOOL sf_is_flash_voltage_abnormal(void);
|
||||
void sf_4g_usb_remove(void);
|
||||
void sf_stamp_temperature_get(INT16 *fTem,INT16 *cTem);
|
||||
#endif
|
||||
|
|
|
@ -72,7 +72,6 @@ static BOOL IsMenu = FALSE;
|
|||
static BOOL IsCap = FALSE;
|
||||
static BOOL IsSend = FALSE;
|
||||
static UINT8 cq_Signal = 0;
|
||||
static UINT32 TemperAdc = 0;
|
||||
static ID sf_hd_flag_id = 0;
|
||||
static UINT8 hdFlagInit = 0;
|
||||
static char HdflieName[32] = {0};
|
||||
|
@ -82,7 +81,8 @@ static UINT8 IsNightLedOn = 0;
|
|||
static SF_BatteryLevel_e sf_LatestBattLevel = SF_BATT_LEVEL_0;
|
||||
static UINT8 batteryVal = 0;
|
||||
static UINT8 batteryType = 0;
|
||||
|
||||
static SINT16 fTemper = 0;
|
||||
static SINT16 cTemper = 0;
|
||||
static SF_THREAD_S UpgradeTskParam =
|
||||
{
|
||||
.IsRun = 0,
|
||||
|
@ -100,18 +100,6 @@ static SF_THREAD_S ParaTskCfg =
|
|||
.IsRun = 0,
|
||||
.TskId = -1,
|
||||
};
|
||||
const UINT16 Adc2TempTable[]=
|
||||
{
|
||||
0,1648,1721,1794,1867,1940,2013,2086,2159, 2232,2305, 2378,2451,2524,2597,2670,2743, 2816, 2889, 2968,
|
||||
3047,3126,3205,3284,3363,3442,3521,3600/*-15*/,3679,3758,3837,3916,3995,4074,4153,4232,4321/*-10*/, 4427,4533,4639,
|
||||
4745,4851,4957,5063,5169,5275,5381,5487,5593,5699,5805,5911,6017,6123,6238/*0*/,6334,6430,6526,6622,6718,
|
||||
6814,6910,7006,7102,7198,7294,7390,7486,7582,7678,7774,7870,7996,8063/*10*/,8182,8301,8420,8539,8658,8777,
|
||||
8896,9015,9134,9253,9372,9491,9610,9729,9848,9967,10128/*20*/,10221,10314,10407,10500,10593,10686,10779,10872,10965,
|
||||
11058,11151,11244,11337,11430,11480,11530,11580,11630/*30*/,11680,11730,11780,11830,11880,11930,11980,12032,12097,12162,12232,
|
||||
12302,12372,12442,12512,12582,12652,12722/*40*/,12769,12816,12863,12910,12957,13004,13051,13098,13145,13192,13239,13286,13333,
|
||||
13380,13427,13474,13521/*50*/,13591,13661,13731,13801,13871,13941,14011,14081,14151,14221,14291,14361,14431,14501,14571,14641,
|
||||
14711,14781,14851/*60*/,14941,15031,15111,15181,15251,15321,15391,15461,15531,15601,15671,15741,15811
|
||||
};
|
||||
|
||||
int sf_pir_statu_read(void)
|
||||
{
|
||||
|
@ -1351,14 +1339,6 @@ UINT8 sf_cardv_get_cq_signal(void)
|
|||
return cq_Signal;
|
||||
}
|
||||
|
||||
|
||||
INT16 sf_celsius_change_to_fahrenheit(INT16 cTemper)
|
||||
{
|
||||
INT16 fTemper = 0;
|
||||
fTemper = cTemper*9/5 + 32;
|
||||
printf("fTemper=%d%s\n",fTemper,"`F");
|
||||
return fTemper;
|
||||
}
|
||||
/*************************************************
|
||||
Function: sf_cardv_adc_value_get
|
||||
Description: get battery adc only once
|
||||
|
@ -1420,32 +1400,6 @@ UINT32 sf_cardv_adc_value_get(UINT32 mux, UINT32 *pval)
|
|||
return SUCCESS;
|
||||
|
||||
}
|
||||
void sf_stamp_temperature_get(INT16 *fTemper,INT16 *cTemper) /*0:F 1:C*/
|
||||
{
|
||||
UINT8 readBatCnt = 0;
|
||||
UINT32 pValue = 0;
|
||||
UINT32 temperValueList[6] = {0};
|
||||
UINT32 maxValue = 0;
|
||||
|
||||
for(readBatCnt=0; readBatCnt<5; readBatCnt++) //get max value of 5 times.
|
||||
{
|
||||
if(sf_cardv_adc_value_get(SF_ADC_TEMP, &TemperAdc) == SUCCESS)
|
||||
{
|
||||
temperValueList[readBatCnt] = pValue;
|
||||
}
|
||||
}
|
||||
|
||||
for(readBatCnt = 0; readBatCnt < 5; readBatCnt++)
|
||||
{
|
||||
maxValue = (maxValue > temperValueList[readBatCnt]? maxValue : temperValueList[readBatCnt]);
|
||||
}
|
||||
|
||||
TemperAdc = maxValue;
|
||||
|
||||
//*fTemper = sf_adc2Temperature((UINT16)TemperAdc, 0);
|
||||
*cTemper = sf_adc2Temperature((UINT16)TemperAdc, 1);
|
||||
*fTemper = sf_celsius_change_to_fahrenheit(*cTemper);
|
||||
}
|
||||
|
||||
void sf_transcode_bs_ready_cb(void* bitstream_va, UINT32 size)
|
||||
{
|
||||
|
@ -1475,85 +1429,6 @@ static BOOL sf_cmd_transcode_start(char **argv)
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
INT16 sf_adc2Temperature(UINT16 adcValue, UINT8 type)/*type: 0:°F 1:°C */
|
||||
{
|
||||
UINT16 lowIndex = 0, highIndex = 175, keyIndex = 77, midIndex = 0;
|
||||
UINT16 tmp = 0;
|
||||
INT16 Temper = 0;
|
||||
|
||||
while(lowIndex < highIndex)
|
||||
{
|
||||
if((lowIndex == highIndex) || (lowIndex == (highIndex - 1)))
|
||||
{
|
||||
keyIndex = lowIndex;
|
||||
break;
|
||||
}
|
||||
else if( (adcValue < Adc2TempTable[lowIndex]) || (adcValue > Adc2TempTable[highIndex]))
|
||||
{
|
||||
keyIndex = 255;
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
midIndex = (lowIndex + highIndex) / 2;
|
||||
if(adcValue < Adc2TempTable[midIndex])
|
||||
highIndex = midIndex;
|
||||
else
|
||||
lowIndex = midIndex;
|
||||
}
|
||||
//printf("low=%bx,high=%bx\r",lowIndex,highIndex);
|
||||
}
|
||||
|
||||
if(keyIndex == 255)
|
||||
tmp = 176;
|
||||
else
|
||||
tmp = keyIndex;
|
||||
|
||||
if(tmp > 176)
|
||||
tmp = 176;
|
||||
|
||||
if(type == 1)
|
||||
{
|
||||
if(tmp >= 22)
|
||||
{
|
||||
tmp = tmp-22;
|
||||
if( tmp >= 32)
|
||||
{
|
||||
tmp = (tmp - 32) * 5 / 9;
|
||||
Temper = (SINT16)tmp;
|
||||
}
|
||||
else
|
||||
{
|
||||
tmp = (32 - tmp) * 5 / 9;
|
||||
Temper = -(SINT16)tmp;
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
tmp = 22 - tmp;
|
||||
tmp = (32 + tmp) * 5 / 9;
|
||||
Temper = -(SINT16)tmp;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (tmp > 22)
|
||||
{
|
||||
Temper = tmp - 22;
|
||||
}
|
||||
else
|
||||
{
|
||||
Temper = 22 - tmp;
|
||||
Temper = -Temper;
|
||||
}
|
||||
}
|
||||
|
||||
printf("Temper = %d%s\n", Temper, (type ? "`C" : "`F"));
|
||||
return Temper;
|
||||
}
|
||||
|
||||
static const SF_CHAR* sf_process_message_getstatusstring(SF_MESSAGE_TYPE_E enType)
|
||||
{
|
||||
switch(enType)
|
||||
|
@ -1610,6 +1485,9 @@ static SINT32 sf_cardv_proccess_cmd_mcu(SF_MESSAGE_BUF_S *pMessageBuf)
|
|||
//sf_com_message_send_to_cardv(&stMessageBuf);
|
||||
UINet_AppIpc_Init();
|
||||
sf_net_wifi_init(NET_AP_MODE, NET_AUTH_WPA2);
|
||||
//Ux_SendEvent(0, NVTEVT_EXE_WIFI_START, 0);
|
||||
//sleep(2);
|
||||
//sf_apinfo_thread_init();
|
||||
}
|
||||
break;
|
||||
case SF_MCU_CMD_MCU_RTC:
|
||||
|
@ -1809,19 +1687,14 @@ static SINT32 sf_cardv_proccess_cmd_dev(SF_MESSAGE_BUF_S *pMessageBuf)
|
|||
{
|
||||
//printf("[%s:%d] ID = %#x\n", __FUNCTION__, __LINE__,pMessageBuf->arg1);
|
||||
MLOGI("ID = %#x\n",pMessageBuf->arg1);
|
||||
SF_MESSAGE_BUF_S stMessageBuf = {0};
|
||||
//SF_MESSAGE_BUF_S stMessageBuf = {0};
|
||||
switch(pMessageBuf->arg1)
|
||||
{
|
||||
case SF_DEV_CMD_TEMPER:
|
||||
if(sf_cardv_adc_value_get(SF_ADC_TEMP, &TemperAdc) == SUCCESS)
|
||||
{
|
||||
sf_adc2Temperature((UINT16)TemperAdc, 1);
|
||||
}
|
||||
cTemper = pMessageBuf->arg2;
|
||||
fTemper = pMessageBuf->arg3;
|
||||
MLOGI("cTemper:%d fTemper:%d\n",cTemper,fTemper);
|
||||
|
||||
stMessageBuf.cmdId = CMD_DEV;
|
||||
stMessageBuf.arg1 = SF_DEV_CMD_TEMPER;
|
||||
stMessageBuf.arg2 = (SINT32)sf_adc2Temperature((UINT16)TemperAdc, pMessageBuf->arg2);
|
||||
sf_com_message_send_to_app(&stMessageBuf);
|
||||
break;
|
||||
case SF_DEV_CMD_BAT:
|
||||
batteryVal = pMessageBuf->arg2;
|
||||
|
@ -2182,8 +2055,18 @@ UINT32 sf_cardv_para_check_stop(void)
|
|||
{
|
||||
SINT32 ret = 1;
|
||||
MLOGD("stop\n");
|
||||
if(0 == ParaTskCfg.IsRun){
|
||||
return SF_SUCCESS;
|
||||
}
|
||||
|
||||
ParaTskCfg.IsRun = 0;
|
||||
MLOGD("sf_flash_poweroff_stop\n");
|
||||
|
||||
if(TRUE == sf_get_cardv_para_check_flag()){
|
||||
MLOGI("menu info is changed\n");
|
||||
sf_share_mem_customer_down(0);
|
||||
}
|
||||
|
||||
ret = pthread_join(ParaTskCfg.TskId, NULL);
|
||||
if(ret != SF_SUCCESS)
|
||||
{
|
||||
|
@ -2309,3 +2192,18 @@ BOOL sf_is_flash_voltage_abnormal(void)
|
|||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void sf_4g_usb_remove(void)
|
||||
{
|
||||
SF_MESSAGE_BUF_S stMessageBuf = {0};
|
||||
stMessageBuf.arg1 = SF_DEV_CMD_4G_USB_RM;
|
||||
stMessageBuf.cmdId = CMD_DEV;
|
||||
sf_com_message_send_to_app(&stMessageBuf);
|
||||
vos_util_delay_ms(400);
|
||||
}
|
||||
|
||||
void sf_stamp_temperature_get(INT16 *fTem,INT16 *cTem) /*0:F 1:C*/
|
||||
{
|
||||
*fTem = fTemper;
|
||||
*cTem = cTemper;
|
||||
}
|
|
@ -32,6 +32,11 @@ UINT8 sf_battery_type_get(void);
|
|||
BOOL sf_battery_check_init(void);
|
||||
void sf_set_need_check_first(void);
|
||||
BOOL sf_is_enough_power_to_update(void);
|
||||
void sf_adc_init(void);
|
||||
BOOL sf_is_battery_low(UINT8 refresh, UINT8 nightMode);
|
||||
INT16 sf_adc2Temperature(UINT16 adcValue, UINT8 type);/*type: 0:F 1:C*/
|
||||
void sf_stamp_temperature_get(INT16 *fTem,INT16 *cTem); /*0:F 1:C*/
|
||||
void sf_temper_update(void);
|
||||
INT16 sf_celsius_change_to_fahrenheit(INT16 cTemper);
|
||||
void sf_BatteryInfoSave(char *name);
|
||||
#endif
|
||||
|
|
|
@ -56,6 +56,7 @@ UINT32 _DcVoltageVal = 0;
|
|||
UINT32 _LiPolymerVoltageVal = 0; /*4.0P no use*/
|
||||
UINT32 _BatVoltageVal = 45;
|
||||
UINT8 IsNightLedOn = 0;
|
||||
UINT32 _TemperAdc = 0;
|
||||
UINT32 IsPowerDcIn = 1;
|
||||
UINT32 BatVoltageVal = 45;
|
||||
SF_BatteryLevel_e sf_LatestBattLevel = SF_BATT_LEVEL_0;
|
||||
|
@ -63,12 +64,27 @@ UINT8 needCheckFirst = TRUE;
|
|||
UINT32 DcVoltageVal = 0;
|
||||
UINT32 LiPolymerVoltageVal = 0; /*4.0P no use*/
|
||||
UINT32 batTempLevel = 0xff;
|
||||
|
||||
static UINT32 TemperAdc = 0;
|
||||
static INT16 fTemper = 0;
|
||||
static INT16 cTemper = 0;
|
||||
#define SF_READ_BAT_MAX 10
|
||||
ID FLG_ID_SF_BSTTERY = 0;
|
||||
#define SF_DC_IN_VOLATAGE 70
|
||||
#define SF_LI_IN_VOLATAGE 99
|
||||
|
||||
const UINT16 Adc2TempTable[]=
|
||||
{
|
||||
0,1648,1721,1794,1867,1940,2013,2086,2159, 2232,2305, 2378,2451,2524,2597,2670,2743, 2816, 2889, 2968,
|
||||
3047,3126,3205,3284,3363,3442,3521,3600/*-15*/,3679,3758,3837,3916,3995,4074,4153,4232,4321/*-10*/, 4427,4533,4639,
|
||||
4745,4851,4957,5063,5169,5275,5381,5487,5593,5699,5805,5911,6017,6123,6238/*0*/,6334,6430,6526,6622,6718,
|
||||
6814,6910,7006,7102,7198,7294,7390,7486,7582,7678,7774,7870,7996,8063/*10*/,8182,8301,8420,8539,8658,8777,
|
||||
8896,9015,9134,9253,9372,9491,9610,9729,9848,9967,10128/*20*/,10221,10314,10407,10500,10593,10686,10779,10872,10965,
|
||||
11058,11151,11244,11337,11430,11480,11530,11580,11630/*30*/,11680,11730,11780,11830,11880,11930,11980,12032,12097,12162,12232,
|
||||
12302,12372,12442,12512,12582,12652,12722/*40*/,12769,12816,12863,12910,12957,13004,13051,13098,13145,13192,13239,13286,13333,
|
||||
13380,13427,13474,13521/*50*/,13591,13661,13731,13801,13871,13941,14011,14081,14151,14221,14291,14361,14431,14501,14571,14641,
|
||||
14711,14781,14851/*60*/,14941,15031,15111,15181,15251,15321,15391,15461,15531,15601,15671,15741,15811
|
||||
};
|
||||
|
||||
#if SF_BATTERY_TEST == ENABLE
|
||||
UINT32 LiPolymerVoltageValTest = 0;
|
||||
UINT32 BatVoltageValTest = 0;
|
||||
|
@ -101,7 +117,6 @@ UINT32 sf_battery_convert_to_adc(UINT32 resistanceGnd, UINT32 resistanceVin, UIN
|
|||
|
||||
//adcVal = volt * resistanceGnd * 511 / 27 / (resistanceGnd + resistanceVin);
|
||||
adcVal = volt * resistanceGnd * 2696 / 27 / (resistanceGnd + resistanceVin);
|
||||
|
||||
return adcVal;
|
||||
}
|
||||
|
||||
|
@ -140,6 +155,7 @@ void sf_adc_init(void)
|
|||
gpio_direction_output(P_GPIO_0,0);
|
||||
gpio_direction_output(P_GPIO_1,0);
|
||||
}
|
||||
|
||||
/*************************************************
|
||||
Function: sf_adc_value_get
|
||||
Description: get battery adc
|
||||
|
@ -187,7 +203,6 @@ UINT32 sf_adc_value_get(UINT32 mux, UINT32 *pval)
|
|||
gpio_set_value(P_GPIO_1, 1);//adc_muxb
|
||||
}
|
||||
|
||||
//vos_util_delay_us(400);
|
||||
vos_util_delay_ms(1);
|
||||
|
||||
*pval = adc_readVoltage(0);
|
||||
|
@ -314,6 +329,13 @@ UINT32 sf_battery_adc_value_get_once(void)
|
|||
if(puiPara->BatteryLogSwitch)
|
||||
printf("Bat ADC Value:%lu After Convert:%lu(%lu.%luV)\n",batAdc,batVoltageVal,batVoltageVal/10,batVoltageVal%10);
|
||||
|
||||
}
|
||||
|
||||
if(sf_adc_value_get(SF_ADC_TEMP, &batAdc) == SUCCESS)
|
||||
{
|
||||
_TemperAdc = batAdc;
|
||||
if(puiPara->BatteryLogSwitch)
|
||||
printf("_TemperAdc:%lu \n",batAdc);
|
||||
}
|
||||
|
||||
_DcVoltageVal = dcVoltageVal;
|
||||
|
@ -567,6 +589,8 @@ signed int sf_battery_value_fast_get(void)
|
|||
UINT8 readBatCnt = 0;
|
||||
UINT32 dcValueList[12] = { 0 };
|
||||
UINT32 batValueList[12] = { 0 };
|
||||
UINT32 temperValueList[12] = { 0 };
|
||||
|
||||
UIMenuStoreInfo *puiPara = sf_ui_para_get();
|
||||
|
||||
SINT32 ret = FAIL;
|
||||
|
@ -581,6 +605,7 @@ signed int sf_battery_value_fast_get(void)
|
|||
if(sf_battery_adc_value_get_once() == SUCCESS)
|
||||
{
|
||||
dcValueList[readBatCnt] = _DcVoltageVal;
|
||||
temperValueList[readBatCnt] = _TemperAdc;
|
||||
|
||||
if(puiPara->BatteryLogSwitch)
|
||||
{
|
||||
|
@ -615,7 +640,7 @@ signed int sf_battery_value_fast_get(void)
|
|||
}
|
||||
|
||||
DcVoltageVal = sf_get_max_value(dcValueList);
|
||||
|
||||
TemperAdc = sf_get_max_value(temperValueList);
|
||||
if(_LiPolymerVoltageVal)
|
||||
{
|
||||
LiPolymerVoltageVal = sf_get_max_value(batValueList);
|
||||
|
@ -652,6 +677,11 @@ signed int sf_battery_value_fast_get(void)
|
|||
|
||||
ret = SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
cTemper = sf_adc2Temperature((UINT16)TemperAdc, 1);
|
||||
fTemper = sf_celsius_change_to_fahrenheit(cTemper);
|
||||
|
||||
#if SF_BATTERY_TEST == ENABLE
|
||||
LiPolymerVoltageValTest = LiPolymerVoltageVal;
|
||||
BatVoltageValTest = BatVoltageVal;
|
||||
|
@ -675,6 +705,7 @@ void sf_battery_level_polling(void)
|
|||
UINT32 LibatTemp = 0;
|
||||
UINT8 LibatCnt = 0;
|
||||
UINT8 batCnt = 0;
|
||||
UINT32 temperValue = 0;
|
||||
UIMenuStoreInfo *puiPara = sf_ui_para_get();
|
||||
static UINT32 prePowerDcStatus = 0;
|
||||
|
||||
|
@ -689,6 +720,8 @@ void sf_battery_level_polling(void)
|
|||
vos_util_delay_ms(100);
|
||||
|
||||
dcTemp += _DcVoltageVal;
|
||||
temperValue += _TemperAdc;
|
||||
|
||||
if(_LiPolymerVoltageVal)
|
||||
{
|
||||
LibatTemp += _LiPolymerVoltageVal;
|
||||
|
@ -704,6 +737,8 @@ void sf_battery_level_polling(void)
|
|||
if(readBatCnt >= 100)
|
||||
{
|
||||
_DcVoltageVal = dcTemp / 100;
|
||||
_TemperAdc = temperValue/100;
|
||||
|
||||
if(LibatCnt)
|
||||
_LiPolymerVoltageVal = LibatTemp / LibatCnt;
|
||||
if(batCnt)
|
||||
|
@ -733,7 +768,7 @@ void sf_battery_level_polling(void)
|
|||
|
||||
if(puiPara->BatteryLogSwitch)
|
||||
{
|
||||
printf("\n[average]DC,After Convert:(%lu.%luV),Is Dc In=%s\n", DcVoltageVal / 10, DcVoltageVal % 10, IsPowerDcIn == 1? "Yes" : "No");
|
||||
printf("\n[average]DC,After Convert:(%lu.%luV),Is Dc In=%s, TemperAdc:%lu\n", DcVoltageVal / 10, DcVoltageVal % 10, IsPowerDcIn == 1? "Yes" : "No", TemperAdc);
|
||||
|
||||
if(LiPolymerVoltageVal)
|
||||
{
|
||||
|
@ -749,7 +784,7 @@ void sf_battery_level_polling(void)
|
|||
}
|
||||
|
||||
sf_battery_level_update();
|
||||
|
||||
sf_temper_update();
|
||||
//ret = sf_check_low_battery();
|
||||
|
||||
if(puiPara->BatteryLogSwitch)
|
||||
|
@ -1282,7 +1317,111 @@ BOOL sf_is_enough_power_to_update(void)
|
|||
|
||||
return TRUE;
|
||||
}
|
||||
INT16 sf_celsius_change_to_fahrenheit(INT16 cTemper)
|
||||
{
|
||||
INT16 fTemper = 0;
|
||||
fTemper = cTemper*9/5 + 32;
|
||||
printf("fTemper=%d%s\n",fTemper,"`F");
|
||||
return fTemper;
|
||||
}
|
||||
void sf_stamp_temperature_get(INT16 *fTem,INT16 *cTem) /*0:F 1:C*/
|
||||
{
|
||||
*fTem = fTemper;
|
||||
*cTem = cTemper;
|
||||
}
|
||||
|
||||
|
||||
INT16 sf_adc2Temperature(UINT16 adcValue, UINT8 type)/*type: 0:F 1:C*/
|
||||
{
|
||||
UINT16 lowIndex = 0, highIndex = 175, keyIndex = 77, midIndex = 0;
|
||||
UINT16 tmp = 0;
|
||||
INT16 Temper = 0;
|
||||
|
||||
while(lowIndex < highIndex)
|
||||
{
|
||||
if((lowIndex == highIndex) || (lowIndex == (highIndex - 1)))
|
||||
{
|
||||
keyIndex = lowIndex;
|
||||
break;
|
||||
}
|
||||
else if( (adcValue < Adc2TempTable[lowIndex]) || (adcValue > Adc2TempTable[highIndex]))
|
||||
{
|
||||
keyIndex = 255;
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
midIndex = (lowIndex + highIndex) / 2;
|
||||
if(adcValue < Adc2TempTable[midIndex])
|
||||
highIndex = midIndex;
|
||||
else
|
||||
lowIndex = midIndex;
|
||||
}
|
||||
//printf("low=%bx,high=%bx\r",lowIndex,highIndex);
|
||||
}
|
||||
|
||||
if(keyIndex == 255)
|
||||
tmp = 176;
|
||||
else
|
||||
tmp = keyIndex;
|
||||
|
||||
if(tmp > 176)
|
||||
tmp = 176;
|
||||
|
||||
if(type == 1)
|
||||
{
|
||||
if(tmp >= 22)
|
||||
{
|
||||
tmp = tmp-22;
|
||||
if( tmp >= 32)
|
||||
{
|
||||
tmp = (tmp - 32) * 5 / 9;
|
||||
Temper = (INT16)tmp;
|
||||
}
|
||||
else
|
||||
{
|
||||
tmp = (32 - tmp) * 5 / 9;
|
||||
Temper = -(INT16)tmp;
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
tmp = 22 - tmp;
|
||||
tmp = (32 + tmp) * 5 / 9;
|
||||
Temper = -(INT16)tmp;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (tmp > 22)
|
||||
{
|
||||
Temper = tmp - 22;
|
||||
}
|
||||
else
|
||||
{
|
||||
Temper = 22 - tmp;
|
||||
Temper = -Temper;
|
||||
}
|
||||
}
|
||||
|
||||
printf("Temper = %d%s\n", Temper, (type ? "`C" : "`F"));
|
||||
return Temper;
|
||||
}
|
||||
|
||||
/*************************************************
|
||||
Function: sf_temper_update
|
||||
Description: Get temper Voltage.
|
||||
Input: N/A
|
||||
Output: N/A
|
||||
Return: N/A
|
||||
Others: N/A
|
||||
*************************************************/
|
||||
void sf_temper_update(void)
|
||||
{
|
||||
cTemper = sf_adc2Temperature((UINT16)TemperAdc, 1);
|
||||
fTemper = sf_celsius_change_to_fahrenheit(cTemper);
|
||||
}
|
||||
#if SF_BATTERY_TEST == ENABLE
|
||||
|
||||
|
||||
|
|
|
@ -687,6 +687,11 @@ UINT8 sf_get_power_on_mode(void)
|
|||
if(ModeFlag)
|
||||
{
|
||||
ModeFlag = 0;
|
||||
if(gpio_getIntStatus(GPIO_INT_USBPLUGIN))
|
||||
{
|
||||
PowerOnMode = PWR_ON_USB;
|
||||
}
|
||||
else{
|
||||
//PowerOnMode = sf_mcu_power_on_para_get(SF_MCU_POWERON);
|
||||
PowerOnMode = sf_mcu_power_on_para_get(SF_MCU_STARTMODE);
|
||||
PowerOnMode &= 0x0f;
|
||||
|
@ -696,6 +701,9 @@ UINT8 sf_get_power_on_mode(void)
|
|||
ConfigureModeFlag = 1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
return PowerOnMode;
|
||||
}
|
||||
|
||||
|
@ -1997,6 +2005,10 @@ UINT16 sf_mcu_get_irshtter(void)
|
|||
UINT8 mcuReg[REG_SIZE] = { 0 };
|
||||
UINT8 mcuData[REG_SIZE] = { 0 };
|
||||
UINT8 i = 0;
|
||||
if(gpio_getIntStatus(GPIO_INT_USBPLUGIN))
|
||||
{
|
||||
return IRSHTTER;
|
||||
}
|
||||
if(isRefresh){
|
||||
isRefresh = 0;
|
||||
mcuReg[i++] = LUMINANCE_L;
|
||||
|
|
Loading…
Reference in New Issue
Block a user