1.修改3启动和usb启动处理
2.升级相关 3.温度部分修改 4.代码优化,开机模式
This commit is contained in:
parent
f73c4090e1
commit
a28f87ec9c
|
@ -10,7 +10,9 @@
|
||||||
#include "UIFrameworkExt.h"
|
#include "UIFrameworkExt.h"
|
||||||
#include "UIWnd/UIFlow.h"
|
#include "UIWnd/UIFlow.h"
|
||||||
#include "UIApp/Transcode/UIAppTranscode.h"
|
#include "UIApp/Transcode/UIAppTranscode.h"
|
||||||
|
#if HUNTING_CAMERA_MCU == ENABLE
|
||||||
|
#include <sf_common.h>
|
||||||
|
#endif
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
#define __MODULE__ UIModeTranscode
|
#define __MODULE__ UIModeTranscode
|
||||||
#define __DBGLVL__ 2 // 0=FATAL, 1=ERR, 2=WRN, 3=UNIT, 4=FUNC, 5=IND, 6=MSG, 7=VALUE, 8=USER
|
#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();
|
pCurSubMode->pfSubMode_OnOpen();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
#if HUNTING_CAMERA_MCU == ENABLE
|
||||||
|
if((1 == sf_get_fw_update())){
|
||||||
|
sf_do_upgrade_thread();//update
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
DBG_FUNC_END("\r\n");
|
DBG_FUNC_END("\r\n");
|
||||||
|
|
||||||
|
|
|
@ -153,7 +153,11 @@ INT32 System_GetBootFirstMode(void)
|
||||||
UINT8 PowerOnMode = sf_cardv_convert_power_on_mode();
|
UINT8 PowerOnMode = sf_cardv_convert_power_on_mode();
|
||||||
|
|
||||||
printf("%s:%d CamMode :%d\n", __FUNCTION__, __LINE__,puiPara->CamMode);
|
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;
|
return PRIMARY_MODE_TRANSCODE;
|
||||||
}
|
}
|
||||||
|
@ -229,6 +233,9 @@ INT32 System_OnBoot(VControl *pCtrl, UINT32 paramNum, UINT32 *paramArray)
|
||||||
Load_MenuInfo();
|
Load_MenuInfo();
|
||||||
#else
|
#else
|
||||||
Load_MenuInfo(); //reset value cause the FL_FSStatus as '0', we do so before NVTEVT_STRG_ATTACH finish
|
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
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
@ -383,6 +390,14 @@ INT32 System_OnBoot(VControl *pCtrl, UINT32 paramNum, UINT32 *paramArray)
|
||||||
|
|
||||||
}
|
}
|
||||||
DBG_DUMP("^MOn Boot end\r\n");
|
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;
|
return NVTEVT_CONSUME;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -450,9 +465,10 @@ INT32 System_OnShutdown(VControl *pCtrl, UINT32 paramNum, UINT32 *paramArray)
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
#if HUNTING_CAMERA_MCU == ENABLE
|
#if HUNTING_CAMERA_MCU == ENABLE
|
||||||
sf_cardv_para_check_stop();
|
|
||||||
if(sf_is_flash_voltage_abnormal() != TRUE)
|
if(sf_is_flash_voltage_abnormal() != TRUE)
|
||||||
Save_MenuInfo();
|
Save_MenuInfo();
|
||||||
|
|
||||||
|
sf_cardv_para_check_stop();
|
||||||
#else
|
#else
|
||||||
Save_MenuInfo();
|
Save_MenuInfo();
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -33,10 +33,10 @@ void USB_CB(UINT32 event, UINT32 param1, UINT32 param2)
|
||||||
{
|
{
|
||||||
switch (event) {
|
switch (event) {
|
||||||
case SYSTEM_CB_CONFIG:
|
case SYSTEM_CB_CONFIG:
|
||||||
//1.設定init值
|
//1.<EFBFBD>]<5D>winit<69><74>
|
||||||
//2.設定CB值,
|
//2.<EFBFBD>]<5D>wCB<43><42>,
|
||||||
//3.註冊SxJob服務 ---------> System Job
|
//3.<EFBFBD><EFBFBD><EFBFBD>USxJob<EFBFBD>A<EFBFBD><EFBFBD> ---------> System Job
|
||||||
//4.註冊SxTimer服務 ---------> Detect Job
|
//4.<EFBFBD><EFBFBD><EFBFBD>USxTimer<EFBFBD>A<EFBFBD><EFBFBD> ---------> Detect Job
|
||||||
//#if (USBINSERT_FUNCTION == ENABLE)
|
//#if (USBINSERT_FUNCTION == ENABLE)
|
||||||
//SX_TIMER_DET_USB_ID = System_AddSxTimer(UI_DetUSB, 5,"GxUSB");
|
//SX_TIMER_DET_USB_ID = System_AddSxTimer(UI_DetUSB, 5,"GxUSB");
|
||||||
//#endif
|
//#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
|
MSDC
|
||||||
需要固定的 Size 128K Bytes
|
<EFBFBD>ݭn<EFBFBD>T<EFBFBD>w<EFBFBD><EFBFBD> Size 128K Bytes
|
||||||
有個變數就是 Vendor Commands,
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܼƴN<EFBFBD>O Vendor Commands,
|
||||||
有開Vendor Command要 142KB >> check define MSDCNVT_REQUIRE_MIN_SIZE
|
<EFBFBD><EFBFBD><EFBFBD>}Vendor Command<EFBFBD>n 142KB >> check define MSDCNVT_REQUIRE_MIN_SIZE
|
||||||
|
|
||||||
SIDC
|
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
|
2930KB(x 1024) + Object Num x 108 Byte
|
||||||
|
|
||||||
PCC:
|
PCC:
|
||||||
2塊 * M.
|
2<EFBFBD><EFBFBD> * M.
|
||||||
M = ((JPEG bitstream + header + 2 )取32 byte align) + 64
|
M = ((JPEG bitstream + header + 2 )<EFBFBD><EFBFBD>32 byte align) + 64
|
||||||
JPEG bitstream 在HD mode 必定不小於0x80000B
|
JPEG bitstream <EFBFBD>bHD mode <EFBFBD><EFBFBD><EFBFBD>w<EFBFBD><EFBFBD><EFBFBD>p<EFBFBD><EFBFBD>0x80000B
|
||||||
JPEG bitstream 在其他mode必定不小於0x40000B
|
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[] = {
|
static char* usb_dev_drivers[] = {
|
||||||
"hdal/comm/uvcp/nvt_uvcp.ko",
|
|
||||||
"hdal/comm/usb2dev/nvt_usb2dev.ko",
|
"hdal/comm/usb2dev/nvt_usb2dev.ko",
|
||||||
|
"hdal/comm/uvcp/nvt_uvcp.ko",
|
||||||
NULL
|
NULL
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -142,7 +142,7 @@ static BOOL System_InsmodUsb(BOOL isHost)
|
||||||
|
|
||||||
if(driver_path){
|
if(driver_path){
|
||||||
memset(cmd, '\0', sizeof(cmd));
|
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);
|
//DBG_DUMP("%s\n", cmd);
|
||||||
printf("[%s:%d] %s\n", __FUNCTION__, __LINE__, cmd);
|
printf("[%s:%d] %s\n", __FUNCTION__, __LINE__, cmd);
|
||||||
system(cmd);
|
system(cmd);
|
||||||
|
@ -152,6 +152,7 @@ static BOOL System_InsmodUsb(BOOL isHost)
|
||||||
if(isHost == FALSE){
|
if(isHost == FALSE){
|
||||||
#if HUNTING_CAMERA_MCU == ENABLE
|
#if HUNTING_CAMERA_MCU == ENABLE
|
||||||
sf_usb_mux_s(0);
|
sf_usb_mux_s(0);
|
||||||
|
vos_util_delay_ms(200);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
is_usb_dev_driver_inserted = TRUE;
|
is_usb_dev_driver_inserted = TRUE;
|
||||||
|
@ -350,9 +351,13 @@ INT32 System_OnUsbInsert(VControl *pCtrl, UINT32 paramNum, UINT32 *paramArray)
|
||||||
{
|
{
|
||||||
//usb plug in
|
//usb plug in
|
||||||
DBG_IND("USB plug - begin\r\n");
|
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_RmmodUsb(TRUE); /* rmmod usb host ko */
|
||||||
System_InsmodUsb(FALSE); /* insmod usb dev ko */
|
System_InsmodUsb(FALSE); /* insmod usb dev ko */
|
||||||
|
//vos_util_delay_ms(1000);
|
||||||
GxUSB_SetChargerType(FALSE);
|
GxUSB_SetChargerType(FALSE);
|
||||||
|
|
||||||
USB_UpdateSource();
|
USB_UpdateSource();
|
||||||
|
@ -366,6 +371,7 @@ INT32 System_OnUsbInsert(VControl *pCtrl, UINT32 paramNum, UINT32 *paramArray)
|
||||||
#else
|
#else
|
||||||
|
|
||||||
#if HUNTING_CAMERA_MCU == ENABLE //temporally support MSDC only
|
#if HUNTING_CAMERA_MCU == ENABLE //temporally support MSDC only
|
||||||
|
//vos_util_delay_ms(1000);
|
||||||
Ux_SendEvent(0, NVTEVT_SYSTEM_MODE, 1, PRIMARY_MODE_USBMSDC);
|
Ux_SendEvent(0, NVTEVT_SYSTEM_MODE, 1, PRIMARY_MODE_USBMSDC);
|
||||||
#else
|
#else
|
||||||
Ux_SendEvent(0, NVTEVT_SYSTEM_MODE, 1, PRIMARY_MODE_USBMENU);
|
Ux_SendEvent(0, NVTEVT_SYSTEM_MODE, 1, PRIMARY_MODE_USBMENU);
|
||||||
|
|
|
@ -355,8 +355,12 @@ int NvtMain(void)
|
||||||
nvt_hdal_init();
|
nvt_hdal_init();
|
||||||
nvt_user_init();
|
nvt_user_init();
|
||||||
#if HUNTING_CAMERA_MCU == ENABLE
|
#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
|
#if HUNTING_CAMERA_4G == ENABLE
|
||||||
|
|
||||||
sf_share_mem_file_init();
|
sf_share_mem_file_init();
|
||||||
|
@ -374,33 +378,26 @@ int NvtMain(void)
|
||||||
printf("create cardv message successs!!!!\n");
|
printf("create cardv message successs!!!!\n");
|
||||||
}
|
}
|
||||||
sf_cardv_message_thread_init();
|
sf_cardv_message_thread_init();
|
||||||
sf_cardv_para_check_start();
|
|
||||||
SF_MESSAGE_BUF_S stMessageBuf = {0};
|
SF_MESSAGE_BUF_S stMessageBuf = {0};
|
||||||
|
|
||||||
if(!sf_gpio_get_status(GPIO_KEY_TEST)){
|
if(!sf_gpio_get_status(GPIO_KEY_TEST)){
|
||||||
sf_set_fw_update(1);//update
|
sf_set_fw_update(1);//update
|
||||||
}
|
}
|
||||||
|
if(TRUE != inUsb)
|
||||||
|
{
|
||||||
stMessageBuf.arg1 = SF_MCU_CMD_POWERON;
|
stMessageBuf.arg1 = SF_MCU_CMD_POWERON;
|
||||||
stMessageBuf.cmdId = CMD_MCU;
|
stMessageBuf.cmdId = CMD_MCU;
|
||||||
sf_com_message_send_to_app(&stMessageBuf);
|
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.arg1 = SF_DEV_CMD_BAT;
|
||||||
stMessageBuf.cmdId = CMD_DEV;
|
stMessageBuf.cmdId = CMD_DEV;
|
||||||
sf_com_message_send_to_app(&stMessageBuf);
|
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
|
#else
|
||||||
sf_mcu_init();
|
sf_mcu_init();
|
||||||
sf_get_power_on_mode();
|
sf_get_power_on_mode();
|
||||||
|
@ -411,11 +408,6 @@ int NvtMain(void)
|
||||||
#endif
|
#endif
|
||||||
sf_sd_exist_reg_cb(DrvCARD_DetStrgCard);
|
sf_sd_exist_reg_cb(DrvCARD_DetStrgCard);
|
||||||
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
sf_usb_mux_s(0);
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -1610,7 +1610,7 @@ INT32 UINet_WifiInit(UINT32 mode, UINT32 security)
|
||||||
//#NT#2016/08/05#Niven Cho -end
|
//#NT#2016/08/05#Niven Cho -end
|
||||||
|
|
||||||
//Ux_PostEvent(NVTEVT_WIFI_STATE, 2, NET_STATE_WIFI_START, result);
|
//Ux_PostEvent(NVTEVT_WIFI_STATE, 2, NET_STATE_WIFI_START, result);
|
||||||
sf_wifi_app_start();
|
//sf_wifi_app_start();
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
|
@ -32,6 +32,9 @@ BOOL sf_battery_check_init(void);
|
||||||
void sf_set_need_check_first(void);
|
void sf_set_need_check_first(void);
|
||||||
BOOL sf_is_enough_power_to_update(void);
|
BOOL sf_is_enough_power_to_update(void);
|
||||||
void sf_adc_init(void);
|
void sf_adc_init(void);
|
||||||
|
|
||||||
BOOL sf_is_battery_low(UINT8 refresh, UINT8 nightMode);
|
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
|
#endif
|
||||||
|
|
|
@ -170,7 +170,7 @@ int main(int argc, char *argv[])
|
||||||
sf_mcu_flag_init();
|
sf_mcu_flag_init();
|
||||||
sf_mcu_init();
|
sf_mcu_init();
|
||||||
startup = sf_poweron_type_get();
|
startup = sf_poweron_type_get();
|
||||||
if(SF_MCU_STARTUP_NORMAL != startup){
|
if((SF_MCU_STARTUP_NORMAL != startup) && (!isUsb)){
|
||||||
sf_get_power_on_mode();
|
sf_get_power_on_mode();
|
||||||
sf_mcu_wdg_set(30);
|
sf_mcu_wdg_set(30);
|
||||||
}
|
}
|
||||||
|
@ -188,10 +188,11 @@ int main(int argc, char *argv[])
|
||||||
//sf_usb_mux_s(1);
|
//sf_usb_mux_s(1);
|
||||||
//sf_load_ko();
|
//sf_load_ko();
|
||||||
sf_mcu_reg_set(SF_MCU_CTRL_MODULE_PIR, 1);
|
sf_mcu_reg_set(SF_MCU_CTRL_MODULE_PIR, 1);
|
||||||
|
sf_app_battery_start();
|
||||||
}
|
}
|
||||||
|
|
||||||
//sf_battery_check_init();
|
//sf_battery_check_init();
|
||||||
sf_app_battery_start();
|
|
||||||
//sf_app_data_ready_start();
|
//sf_app_data_ready_start();
|
||||||
|
|
||||||
//sf_set_fw_update(isUpdate);
|
//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();
|
app_RegisterNet_start();
|
||||||
}
|
}
|
||||||
|
|
|
@ -55,6 +55,7 @@ extern "C" {
|
||||||
#include <sf_file.h>
|
#include <sf_file.h>
|
||||||
#include <sf_commMng.h>
|
#include <sf_commMng.h>
|
||||||
#include "sf_battery.h"
|
#include "sf_battery.h"
|
||||||
|
#include "sf_hal_ttyusb.h"
|
||||||
extern pthread_mutex_t Param_mutexLock;
|
extern pthread_mutex_t Param_mutexLock;
|
||||||
SINT8 longClickhold = 0;
|
SINT8 longClickhold = 0;
|
||||||
SINT8 bmoduleupdate = 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);
|
MLOGD("ID = %#x\n",pMessageBuf->arg1);
|
||||||
SF_MESSAGE_BUF_S stMessageBuf = {0};
|
SF_MESSAGE_BUF_S stMessageBuf = {0};
|
||||||
|
SINT16 fTemper = 0, cTemper = 0;
|
||||||
|
|
||||||
switch(pMessageBuf->arg1)
|
switch(pMessageBuf->arg1)
|
||||||
{
|
{
|
||||||
case SF_DEV_CMD_TEMPER:
|
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;
|
break;
|
||||||
case SF_DEV_CMD_BAT:
|
case SF_DEV_CMD_BAT:
|
||||||
stMessageBuf.cmdId = CMD_DEV;
|
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_com_message_send_to_cardv(&stMessageBuf);
|
||||||
//sf_app_set_battery(pMessageBuf->arg2, pMessageBuf->arg3);
|
//sf_app_set_battery(pMessageBuf->arg2, pMessageBuf->arg3);
|
||||||
break;
|
break;
|
||||||
|
case SF_DEV_CMD_4G_USB_RM:
|
||||||
|
if (sf_hal_ttyusb2_deinit() != 0) {
|
||||||
|
MLOGE("-------ttyUSB deinit fail!\n");
|
||||||
|
}
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -871,6 +884,7 @@ void* app_message_recv_thread(void *arg)
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
if(CMD_LED != stMessagebuf.cmdId)
|
||||||
MLOGD("cmdId:[%#x,%s]\n",stMessagebuf.cmdId,app_process_message_getstatusstring(stMessagebuf.cmdId));
|
MLOGD("cmdId:[%#x,%s]\n",stMessagebuf.cmdId,app_process_message_getstatusstring(stMessagebuf.cmdId));
|
||||||
switch(stMessagebuf.cmdId)
|
switch(stMessagebuf.cmdId)
|
||||||
{
|
{
|
||||||
|
|
|
@ -56,6 +56,7 @@ typedef signed int SINT32;
|
||||||
UINT32 _DcVoltageVal = 0;
|
UINT32 _DcVoltageVal = 0;
|
||||||
UINT32 _LiPolymerVoltageVal = 0; /*4.0P no use*/
|
UINT32 _LiPolymerVoltageVal = 0; /*4.0P no use*/
|
||||||
UINT32 _BatVoltageVal = 45;
|
UINT32 _BatVoltageVal = 45;
|
||||||
|
UINT32 _TemperAdc = 0;
|
||||||
UINT32 IsPowerDcIn = 1;
|
UINT32 IsPowerDcIn = 1;
|
||||||
UINT32 BatVoltageVal = 45;
|
UINT32 BatVoltageVal = 45;
|
||||||
SF_BatteryLevel_e sf_LatestBattLevel = SF_BATT_LEVEL_0;
|
SF_BatteryLevel_e sf_LatestBattLevel = SF_BATT_LEVEL_0;
|
||||||
|
@ -63,11 +64,26 @@ UINT8 needCheckFirst = TRUE;
|
||||||
UINT32 DcVoltageVal = 0;
|
UINT32 DcVoltageVal = 0;
|
||||||
UINT32 LiPolymerVoltageVal = 0; /*4.0P no use*/
|
UINT32 LiPolymerVoltageVal = 0; /*4.0P no use*/
|
||||||
UINT32 batTempLevel = 0xff;
|
UINT32 batTempLevel = 0xff;
|
||||||
|
static UINT32 TemperAdc = 0;
|
||||||
|
static INT16 fTemper = 0;
|
||||||
|
static INT16 cTemper = 0;
|
||||||
#define SF_READ_BAT_MAX 10
|
#define SF_READ_BAT_MAX 10
|
||||||
#define SF_DC_IN_VOLATAGE 70
|
#define SF_DC_IN_VOLATAGE 70
|
||||||
#define SF_LI_IN_VOLATAGE 99
|
#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
|
Function: sf_battery_voltage_convert
|
||||||
Description: battery voltage convert
|
Description: battery voltage convert
|
||||||
|
@ -130,11 +146,13 @@ void sf_adc_init(void)
|
||||||
// Enable adc control logic
|
// Enable adc control logic
|
||||||
adc_setEnable(TRUE);
|
adc_setEnable(TRUE);
|
||||||
|
|
||||||
|
gpio_direction_output(P_GPIO_0,0);
|
||||||
|
gpio_direction_output(P_GPIO_1,0);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*************************************************
|
/*************************************************
|
||||||
Function: sf_adc_value_get
|
Function: sf_adc_value_get
|
||||||
Description: get battery adc only once
|
Description: get battery adc
|
||||||
Input: N/A
|
Input: N/A
|
||||||
Output: N/A
|
Output: N/A
|
||||||
Return: SUCCESS/FAIL
|
Return: SUCCESS/FAIL
|
||||||
|
@ -143,7 +161,7 @@ void sf_adc_init(void)
|
||||||
UINT32 sf_adc_value_get(UINT32 mux, UINT32 *pval)
|
UINT32 sf_adc_value_get(UINT32 mux, UINT32 *pval)
|
||||||
{
|
{
|
||||||
static UINT8 getAdcFlg = 0;
|
static UINT8 getAdcFlg = 0;
|
||||||
static UINT8 outputflag = 1;
|
//static UINT8 outputflag = 1;
|
||||||
*pval = 0;
|
*pval = 0;
|
||||||
|
|
||||||
if(getAdcFlg)
|
if(getAdcFlg)
|
||||||
|
@ -152,12 +170,6 @@ UINT32 sf_adc_value_get(UINT32 mux, UINT32 *pval)
|
||||||
}
|
}
|
||||||
getAdcFlg = 1;
|
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
|
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);
|
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;
|
_DcVoltageVal = dcVoltageVal;
|
||||||
|
|
||||||
if ((liPolymerVoltageVal > batVoltageVal))
|
if ((liPolymerVoltageVal > batVoltageVal))
|
||||||
|
@ -578,6 +597,8 @@ signed int sf_battery_value_fast_get(void)
|
||||||
UINT8 readBatCnt = 0;
|
UINT8 readBatCnt = 0;
|
||||||
UINT32 dcValueList[12] = { 0 };
|
UINT32 dcValueList[12] = { 0 };
|
||||||
UINT32 batValueList[12] = { 0 };
|
UINT32 batValueList[12] = { 0 };
|
||||||
|
UINT32 temperValueList[12] = { 0 };
|
||||||
|
|
||||||
UIMenuStoreInfo *puiPara = sf_app_ui_para_get();
|
UIMenuStoreInfo *puiPara = sf_app_ui_para_get();
|
||||||
|
|
||||||
SINT32 ret = FAIL;
|
SINT32 ret = FAIL;
|
||||||
|
@ -592,6 +613,7 @@ signed int sf_battery_value_fast_get(void)
|
||||||
if(sf_battery_adc_value_get_once() == SUCCESS)
|
if(sf_battery_adc_value_get_once() == SUCCESS)
|
||||||
{
|
{
|
||||||
dcValueList[readBatCnt] = _DcVoltageVal;
|
dcValueList[readBatCnt] = _DcVoltageVal;
|
||||||
|
temperValueList[readBatCnt] = _TemperAdc;
|
||||||
|
|
||||||
if(puiPara->BatteryLogSwitch)
|
if(puiPara->BatteryLogSwitch)
|
||||||
{
|
{
|
||||||
|
@ -626,7 +648,7 @@ signed int sf_battery_value_fast_get(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
DcVoltageVal = sf_get_max_value(dcValueList);
|
DcVoltageVal = sf_get_max_value(dcValueList);
|
||||||
|
TemperAdc = sf_get_max_value(temperValueList);
|
||||||
if(_LiPolymerVoltageVal)
|
if(_LiPolymerVoltageVal)
|
||||||
{
|
{
|
||||||
LiPolymerVoltageVal = sf_get_max_value(batValueList);
|
LiPolymerVoltageVal = sf_get_max_value(batValueList);
|
||||||
|
@ -664,6 +686,10 @@ signed int sf_battery_value_fast_get(void)
|
||||||
ret = SUCCESS;
|
ret = SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
cTemper = sf_adc2Temperature((UINT16)TemperAdc, 1);
|
||||||
|
fTemper = sf_celsius_change_to_fahrenheit(cTemper);
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -683,6 +709,7 @@ void sf_battery_level_polling(void)
|
||||||
UINT32 LibatTemp = 0;
|
UINT32 LibatTemp = 0;
|
||||||
UINT8 LibatCnt = 0;
|
UINT8 LibatCnt = 0;
|
||||||
UINT8 batCnt = 0;
|
UINT8 batCnt = 0;
|
||||||
|
UINT32 temperValue = 0;
|
||||||
UIMenuStoreInfo *puiPara = sf_app_ui_para_get();
|
UIMenuStoreInfo *puiPara = sf_app_ui_para_get();
|
||||||
static UINT32 prePowerDcStatus = 0;
|
static UINT32 prePowerDcStatus = 0;
|
||||||
|
|
||||||
|
@ -697,6 +724,8 @@ void sf_battery_level_polling(void)
|
||||||
sf_sleep_ms(100);
|
sf_sleep_ms(100);
|
||||||
|
|
||||||
dcTemp += _DcVoltageVal;
|
dcTemp += _DcVoltageVal;
|
||||||
|
temperValue += _TemperAdc;
|
||||||
|
|
||||||
if(_LiPolymerVoltageVal)
|
if(_LiPolymerVoltageVal)
|
||||||
{
|
{
|
||||||
LibatTemp += _LiPolymerVoltageVal;
|
LibatTemp += _LiPolymerVoltageVal;
|
||||||
|
@ -712,6 +741,8 @@ void sf_battery_level_polling(void)
|
||||||
if(readBatCnt >= 100)
|
if(readBatCnt >= 100)
|
||||||
{
|
{
|
||||||
_DcVoltageVal = dcTemp / 100;
|
_DcVoltageVal = dcTemp / 100;
|
||||||
|
_TemperAdc = temperValue/100;
|
||||||
|
|
||||||
if(LibatCnt)
|
if(LibatCnt)
|
||||||
_LiPolymerVoltageVal = LibatTemp / LibatCnt;
|
_LiPolymerVoltageVal = LibatTemp / LibatCnt;
|
||||||
if(batCnt)
|
if(batCnt)
|
||||||
|
@ -736,12 +767,13 @@ void sf_battery_level_polling(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
DcVoltageVal = _DcVoltageVal;
|
DcVoltageVal = _DcVoltageVal;
|
||||||
|
TemperAdc = _TemperAdc;
|
||||||
LiPolymerVoltageVal = _LiPolymerVoltageVal;
|
LiPolymerVoltageVal = _LiPolymerVoltageVal;
|
||||||
BatVoltageVal = _BatVoltageVal;
|
BatVoltageVal = _BatVoltageVal;
|
||||||
|
|
||||||
if(puiPara->BatteryLogSwitch)
|
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)
|
if(LiPolymerVoltageVal)
|
||||||
{
|
{
|
||||||
|
@ -757,7 +789,7 @@ void sf_battery_level_polling(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
sf_battery_level_update();
|
sf_battery_level_update();
|
||||||
|
sf_temper_update();
|
||||||
//ret = sf_check_low_battery();
|
//ret = sf_check_low_battery();
|
||||||
|
|
||||||
if(puiPara->BatteryLogSwitch)
|
if(puiPara->BatteryLogSwitch)
|
||||||
|
@ -1303,6 +1335,122 @@ BOOL sf_is_enough_power_to_update(void)
|
||||||
|
|
||||||
return TRUE;
|
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
|
#endif
|
||||||
|
|
|
@ -380,7 +380,7 @@ unsigned char sf_mcu_reg_set(MCUParam_t attrId, unsigned char val)
|
||||||
if(attrId == SF_MCU_POWEROFF)
|
if(attrId == SF_MCU_POWEROFF)
|
||||||
{
|
{
|
||||||
//printf("SynMcuSet = %x\n", statisPara->SynMcuSet);
|
//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)
|
if(puiPara->NeedTimeSyncStartUp == 1)
|
||||||
{
|
{
|
||||||
paraSyncFlag = 1;
|
paraSyncFlag = 1;
|
||||||
|
@ -542,21 +542,21 @@ unsigned char sf_mcu_reg_set(MCUParam_t attrId, unsigned char val)
|
||||||
mcuReg[i] = ANALOG_PIR_SENSITIVITY;
|
mcuReg[i] = ANALOG_PIR_SENSITIVITY;
|
||||||
temp = sf_mcu_analog_pir_sen_convert(puiPara->PirSensitivity);
|
temp = sf_mcu_analog_pir_sen_convert(puiPara->PirSensitivity);
|
||||||
//hybrid mode 4G module keep sleep
|
//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
|
//4.0PCG, first to PIR mode, will power on in A,search net. so 4G mode should power down
|
||||||
if(((puiPara->GprsMode) == 1) || (paraSyncFlag))
|
//instant mode ,dp power on, 4G mode should power down
|
||||||
{
|
temp &= ~0x60; /*bit5&bit6=0,daily mode*/
|
||||||
temp |= 0x40;
|
|
||||||
}
|
}
|
||||||
else
|
else if(simCardInsert && (puiPara->GprsMode == 1) && gModuleSleep)
|
||||||
{
|
{
|
||||||
if (((puiPara->GprsMode) == 2) && isSignalReady && (sf_get_gprs_errno() == 0))
|
temp |= 0x40; /*bit6=1,instant mode*/
|
||||||
temp |= 0x20;
|
}
|
||||||
|
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)))
|
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*/
|
temp |= 0x10; /*bit4 rest*/
|
||||||
|
@ -1280,24 +1280,9 @@ void sf_dailyReport_set(void)
|
||||||
UIMenuStoreInfo *puiPara = sf_app_ui_para_get();
|
UIMenuStoreInfo *puiPara = sf_app_ui_para_get();
|
||||||
extern UINT8 DailyReportFtpSendSucess;
|
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)
|
if (DailyReportFtpSendSucess == 0)
|
||||||
{
|
|
||||||
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(puiPara->ReDailyReport==0)
|
if(puiPara->ReDailyReport==0)
|
||||||
puiPara->ReDailyReport = 1;
|
puiPara->ReDailyReport = 1;
|
||||||
|
|
|
@ -89,8 +89,6 @@ BOOL sf_is_movie_preview(void);
|
||||||
BOOL sf_is_cap_preview(void);
|
BOOL sf_is_cap_preview(void);
|
||||||
BOOL sf_is_preview(void);
|
BOOL sf_is_preview(void);
|
||||||
UINT8 sf_cardv_get_cq_signal(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);
|
void sf_set_send_statu(BOOL is);
|
||||||
BOOL sf_get_send_statu(void);
|
BOOL sf_get_send_statu(void);
|
||||||
void sf_cardv_set_mcu_rtc_flag(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_value_get(void);
|
||||||
UINT8 sf_cardv_battery_type_get(void);
|
UINT8 sf_cardv_battery_type_get(void);
|
||||||
BOOL sf_is_flash_voltage_abnormal(void);
|
BOOL sf_is_flash_voltage_abnormal(void);
|
||||||
|
void sf_4g_usb_remove(void);
|
||||||
|
void sf_stamp_temperature_get(INT16 *fTem,INT16 *cTem);
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -72,7 +72,6 @@ static BOOL IsMenu = FALSE;
|
||||||
static BOOL IsCap = FALSE;
|
static BOOL IsCap = FALSE;
|
||||||
static BOOL IsSend = FALSE;
|
static BOOL IsSend = FALSE;
|
||||||
static UINT8 cq_Signal = 0;
|
static UINT8 cq_Signal = 0;
|
||||||
static UINT32 TemperAdc = 0;
|
|
||||||
static ID sf_hd_flag_id = 0;
|
static ID sf_hd_flag_id = 0;
|
||||||
static UINT8 hdFlagInit = 0;
|
static UINT8 hdFlagInit = 0;
|
||||||
static char HdflieName[32] = {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 SF_BatteryLevel_e sf_LatestBattLevel = SF_BATT_LEVEL_0;
|
||||||
static UINT8 batteryVal = 0;
|
static UINT8 batteryVal = 0;
|
||||||
static UINT8 batteryType = 0;
|
static UINT8 batteryType = 0;
|
||||||
|
static SINT16 fTemper = 0;
|
||||||
|
static SINT16 cTemper = 0;
|
||||||
static SF_THREAD_S UpgradeTskParam =
|
static SF_THREAD_S UpgradeTskParam =
|
||||||
{
|
{
|
||||||
.IsRun = 0,
|
.IsRun = 0,
|
||||||
|
@ -100,18 +100,6 @@ static SF_THREAD_S ParaTskCfg =
|
||||||
.IsRun = 0,
|
.IsRun = 0,
|
||||||
.TskId = -1,
|
.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)
|
int sf_pir_statu_read(void)
|
||||||
{
|
{
|
||||||
|
@ -1351,14 +1339,6 @@ UINT8 sf_cardv_get_cq_signal(void)
|
||||||
return cq_Signal;
|
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
|
Function: sf_cardv_adc_value_get
|
||||||
Description: get battery adc only once
|
Description: get battery adc only once
|
||||||
|
@ -1420,32 +1400,6 @@ UINT32 sf_cardv_adc_value_get(UINT32 mux, UINT32 *pval)
|
||||||
return SUCCESS;
|
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)
|
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;
|
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)
|
static const SF_CHAR* sf_process_message_getstatusstring(SF_MESSAGE_TYPE_E enType)
|
||||||
{
|
{
|
||||||
switch(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);
|
//sf_com_message_send_to_cardv(&stMessageBuf);
|
||||||
UINet_AppIpc_Init();
|
UINet_AppIpc_Init();
|
||||||
sf_net_wifi_init(NET_AP_MODE, NET_AUTH_WPA2);
|
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;
|
break;
|
||||||
case SF_MCU_CMD_MCU_RTC:
|
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);
|
//printf("[%s:%d] ID = %#x\n", __FUNCTION__, __LINE__,pMessageBuf->arg1);
|
||||||
MLOGI("ID = %#x\n",pMessageBuf->arg1);
|
MLOGI("ID = %#x\n",pMessageBuf->arg1);
|
||||||
SF_MESSAGE_BUF_S stMessageBuf = {0};
|
//SF_MESSAGE_BUF_S stMessageBuf = {0};
|
||||||
switch(pMessageBuf->arg1)
|
switch(pMessageBuf->arg1)
|
||||||
{
|
{
|
||||||
case SF_DEV_CMD_TEMPER:
|
case SF_DEV_CMD_TEMPER:
|
||||||
if(sf_cardv_adc_value_get(SF_ADC_TEMP, &TemperAdc) == SUCCESS)
|
cTemper = pMessageBuf->arg2;
|
||||||
{
|
fTemper = pMessageBuf->arg3;
|
||||||
sf_adc2Temperature((UINT16)TemperAdc, 1);
|
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;
|
break;
|
||||||
case SF_DEV_CMD_BAT:
|
case SF_DEV_CMD_BAT:
|
||||||
batteryVal = pMessageBuf->arg2;
|
batteryVal = pMessageBuf->arg2;
|
||||||
|
@ -2182,8 +2055,18 @@ UINT32 sf_cardv_para_check_stop(void)
|
||||||
{
|
{
|
||||||
SINT32 ret = 1;
|
SINT32 ret = 1;
|
||||||
MLOGD("stop\n");
|
MLOGD("stop\n");
|
||||||
|
if(0 == ParaTskCfg.IsRun){
|
||||||
|
return SF_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
ParaTskCfg.IsRun = 0;
|
ParaTskCfg.IsRun = 0;
|
||||||
MLOGD("sf_flash_poweroff_stop\n");
|
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);
|
ret = pthread_join(ParaTskCfg.TskId, NULL);
|
||||||
if(ret != SF_SUCCESS)
|
if(ret != SF_SUCCESS)
|
||||||
{
|
{
|
||||||
|
@ -2309,3 +2192,18 @@ BOOL sf_is_flash_voltage_abnormal(void)
|
||||||
|
|
||||||
return FALSE;
|
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);
|
BOOL sf_battery_check_init(void);
|
||||||
void sf_set_need_check_first(void);
|
void sf_set_need_check_first(void);
|
||||||
BOOL sf_is_enough_power_to_update(void);
|
BOOL sf_is_enough_power_to_update(void);
|
||||||
|
void sf_adc_init(void);
|
||||||
BOOL sf_is_battery_low(UINT8 refresh, UINT8 nightMode);
|
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);
|
void sf_BatteryInfoSave(char *name);
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -56,6 +56,7 @@ UINT32 _DcVoltageVal = 0;
|
||||||
UINT32 _LiPolymerVoltageVal = 0; /*4.0P no use*/
|
UINT32 _LiPolymerVoltageVal = 0; /*4.0P no use*/
|
||||||
UINT32 _BatVoltageVal = 45;
|
UINT32 _BatVoltageVal = 45;
|
||||||
UINT8 IsNightLedOn = 0;
|
UINT8 IsNightLedOn = 0;
|
||||||
|
UINT32 _TemperAdc = 0;
|
||||||
UINT32 IsPowerDcIn = 1;
|
UINT32 IsPowerDcIn = 1;
|
||||||
UINT32 BatVoltageVal = 45;
|
UINT32 BatVoltageVal = 45;
|
||||||
SF_BatteryLevel_e sf_LatestBattLevel = SF_BATT_LEVEL_0;
|
SF_BatteryLevel_e sf_LatestBattLevel = SF_BATT_LEVEL_0;
|
||||||
|
@ -63,12 +64,27 @@ UINT8 needCheckFirst = TRUE;
|
||||||
UINT32 DcVoltageVal = 0;
|
UINT32 DcVoltageVal = 0;
|
||||||
UINT32 LiPolymerVoltageVal = 0; /*4.0P no use*/
|
UINT32 LiPolymerVoltageVal = 0; /*4.0P no use*/
|
||||||
UINT32 batTempLevel = 0xff;
|
UINT32 batTempLevel = 0xff;
|
||||||
|
static UINT32 TemperAdc = 0;
|
||||||
|
static INT16 fTemper = 0;
|
||||||
|
static INT16 cTemper = 0;
|
||||||
#define SF_READ_BAT_MAX 10
|
#define SF_READ_BAT_MAX 10
|
||||||
ID FLG_ID_SF_BSTTERY = 0;
|
ID FLG_ID_SF_BSTTERY = 0;
|
||||||
#define SF_DC_IN_VOLATAGE 70
|
#define SF_DC_IN_VOLATAGE 70
|
||||||
#define SF_LI_IN_VOLATAGE 99
|
#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
|
#if SF_BATTERY_TEST == ENABLE
|
||||||
UINT32 LiPolymerVoltageValTest = 0;
|
UINT32 LiPolymerVoltageValTest = 0;
|
||||||
UINT32 BatVoltageValTest = 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 * 511 / 27 / (resistanceGnd + resistanceVin);
|
||||||
adcVal = volt * resistanceGnd * 2696 / 27 / (resistanceGnd + resistanceVin);
|
adcVal = volt * resistanceGnd * 2696 / 27 / (resistanceGnd + resistanceVin);
|
||||||
|
|
||||||
return adcVal;
|
return adcVal;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -140,6 +155,7 @@ void sf_adc_init(void)
|
||||||
gpio_direction_output(P_GPIO_0,0);
|
gpio_direction_output(P_GPIO_0,0);
|
||||||
gpio_direction_output(P_GPIO_1,0);
|
gpio_direction_output(P_GPIO_1,0);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*************************************************
|
/*************************************************
|
||||||
Function: sf_adc_value_get
|
Function: sf_adc_value_get
|
||||||
Description: get battery adc
|
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
|
gpio_set_value(P_GPIO_1, 1);//adc_muxb
|
||||||
}
|
}
|
||||||
|
|
||||||
//vos_util_delay_us(400);
|
|
||||||
vos_util_delay_ms(1);
|
vos_util_delay_ms(1);
|
||||||
|
|
||||||
*pval = adc_readVoltage(0);
|
*pval = adc_readVoltage(0);
|
||||||
|
@ -314,6 +329,13 @@ UINT32 sf_battery_adc_value_get_once(void)
|
||||||
if(puiPara->BatteryLogSwitch)
|
if(puiPara->BatteryLogSwitch)
|
||||||
printf("Bat ADC Value:%lu After Convert:%lu(%lu.%luV)\n",batAdc,batVoltageVal,batVoltageVal/10,batVoltageVal%10);
|
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;
|
_DcVoltageVal = dcVoltageVal;
|
||||||
|
@ -567,6 +589,8 @@ signed int sf_battery_value_fast_get(void)
|
||||||
UINT8 readBatCnt = 0;
|
UINT8 readBatCnt = 0;
|
||||||
UINT32 dcValueList[12] = { 0 };
|
UINT32 dcValueList[12] = { 0 };
|
||||||
UINT32 batValueList[12] = { 0 };
|
UINT32 batValueList[12] = { 0 };
|
||||||
|
UINT32 temperValueList[12] = { 0 };
|
||||||
|
|
||||||
UIMenuStoreInfo *puiPara = sf_ui_para_get();
|
UIMenuStoreInfo *puiPara = sf_ui_para_get();
|
||||||
|
|
||||||
SINT32 ret = FAIL;
|
SINT32 ret = FAIL;
|
||||||
|
@ -581,6 +605,7 @@ signed int sf_battery_value_fast_get(void)
|
||||||
if(sf_battery_adc_value_get_once() == SUCCESS)
|
if(sf_battery_adc_value_get_once() == SUCCESS)
|
||||||
{
|
{
|
||||||
dcValueList[readBatCnt] = _DcVoltageVal;
|
dcValueList[readBatCnt] = _DcVoltageVal;
|
||||||
|
temperValueList[readBatCnt] = _TemperAdc;
|
||||||
|
|
||||||
if(puiPara->BatteryLogSwitch)
|
if(puiPara->BatteryLogSwitch)
|
||||||
{
|
{
|
||||||
|
@ -615,7 +640,7 @@ signed int sf_battery_value_fast_get(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
DcVoltageVal = sf_get_max_value(dcValueList);
|
DcVoltageVal = sf_get_max_value(dcValueList);
|
||||||
|
TemperAdc = sf_get_max_value(temperValueList);
|
||||||
if(_LiPolymerVoltageVal)
|
if(_LiPolymerVoltageVal)
|
||||||
{
|
{
|
||||||
LiPolymerVoltageVal = sf_get_max_value(batValueList);
|
LiPolymerVoltageVal = sf_get_max_value(batValueList);
|
||||||
|
@ -652,6 +677,11 @@ signed int sf_battery_value_fast_get(void)
|
||||||
|
|
||||||
ret = SUCCESS;
|
ret = SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
cTemper = sf_adc2Temperature((UINT16)TemperAdc, 1);
|
||||||
|
fTemper = sf_celsius_change_to_fahrenheit(cTemper);
|
||||||
|
|
||||||
#if SF_BATTERY_TEST == ENABLE
|
#if SF_BATTERY_TEST == ENABLE
|
||||||
LiPolymerVoltageValTest = LiPolymerVoltageVal;
|
LiPolymerVoltageValTest = LiPolymerVoltageVal;
|
||||||
BatVoltageValTest = BatVoltageVal;
|
BatVoltageValTest = BatVoltageVal;
|
||||||
|
@ -675,6 +705,7 @@ void sf_battery_level_polling(void)
|
||||||
UINT32 LibatTemp = 0;
|
UINT32 LibatTemp = 0;
|
||||||
UINT8 LibatCnt = 0;
|
UINT8 LibatCnt = 0;
|
||||||
UINT8 batCnt = 0;
|
UINT8 batCnt = 0;
|
||||||
|
UINT32 temperValue = 0;
|
||||||
UIMenuStoreInfo *puiPara = sf_ui_para_get();
|
UIMenuStoreInfo *puiPara = sf_ui_para_get();
|
||||||
static UINT32 prePowerDcStatus = 0;
|
static UINT32 prePowerDcStatus = 0;
|
||||||
|
|
||||||
|
@ -689,6 +720,8 @@ void sf_battery_level_polling(void)
|
||||||
vos_util_delay_ms(100);
|
vos_util_delay_ms(100);
|
||||||
|
|
||||||
dcTemp += _DcVoltageVal;
|
dcTemp += _DcVoltageVal;
|
||||||
|
temperValue += _TemperAdc;
|
||||||
|
|
||||||
if(_LiPolymerVoltageVal)
|
if(_LiPolymerVoltageVal)
|
||||||
{
|
{
|
||||||
LibatTemp += _LiPolymerVoltageVal;
|
LibatTemp += _LiPolymerVoltageVal;
|
||||||
|
@ -704,6 +737,8 @@ void sf_battery_level_polling(void)
|
||||||
if(readBatCnt >= 100)
|
if(readBatCnt >= 100)
|
||||||
{
|
{
|
||||||
_DcVoltageVal = dcTemp / 100;
|
_DcVoltageVal = dcTemp / 100;
|
||||||
|
_TemperAdc = temperValue/100;
|
||||||
|
|
||||||
if(LibatCnt)
|
if(LibatCnt)
|
||||||
_LiPolymerVoltageVal = LibatTemp / LibatCnt;
|
_LiPolymerVoltageVal = LibatTemp / LibatCnt;
|
||||||
if(batCnt)
|
if(batCnt)
|
||||||
|
@ -733,7 +768,7 @@ void sf_battery_level_polling(void)
|
||||||
|
|
||||||
if(puiPara->BatteryLogSwitch)
|
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)
|
if(LiPolymerVoltageVal)
|
||||||
{
|
{
|
||||||
|
@ -749,7 +784,7 @@ void sf_battery_level_polling(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
sf_battery_level_update();
|
sf_battery_level_update();
|
||||||
|
sf_temper_update();
|
||||||
//ret = sf_check_low_battery();
|
//ret = sf_check_low_battery();
|
||||||
|
|
||||||
if(puiPara->BatteryLogSwitch)
|
if(puiPara->BatteryLogSwitch)
|
||||||
|
@ -1282,7 +1317,111 @@ BOOL sf_is_enough_power_to_update(void)
|
||||||
|
|
||||||
return TRUE;
|
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
|
#if SF_BATTERY_TEST == ENABLE
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -687,6 +687,11 @@ UINT8 sf_get_power_on_mode(void)
|
||||||
if(ModeFlag)
|
if(ModeFlag)
|
||||||
{
|
{
|
||||||
ModeFlag = 0;
|
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_POWERON);
|
||||||
PowerOnMode = sf_mcu_power_on_para_get(SF_MCU_STARTMODE);
|
PowerOnMode = sf_mcu_power_on_para_get(SF_MCU_STARTMODE);
|
||||||
PowerOnMode &= 0x0f;
|
PowerOnMode &= 0x0f;
|
||||||
|
@ -696,6 +701,9 @@ UINT8 sf_get_power_on_mode(void)
|
||||||
ConfigureModeFlag = 1;
|
ConfigureModeFlag = 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
return PowerOnMode;
|
return PowerOnMode;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1997,6 +2005,10 @@ UINT16 sf_mcu_get_irshtter(void)
|
||||||
UINT8 mcuReg[REG_SIZE] = { 0 };
|
UINT8 mcuReg[REG_SIZE] = { 0 };
|
||||||
UINT8 mcuData[REG_SIZE] = { 0 };
|
UINT8 mcuData[REG_SIZE] = { 0 };
|
||||||
UINT8 i = 0;
|
UINT8 i = 0;
|
||||||
|
if(gpio_getIntStatus(GPIO_INT_USBPLUGIN))
|
||||||
|
{
|
||||||
|
return IRSHTTER;
|
||||||
|
}
|
||||||
if(isRefresh){
|
if(isRefresh){
|
||||||
isRefresh = 0;
|
isRefresh = 0;
|
||||||
mcuReg[i++] = LUMINANCE_L;
|
mcuReg[i++] = LUMINANCE_L;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user