1.0418 IQ更新;2.sf_app 调整,将led、mcu调整到sf app
This commit is contained in:
parent
ffb3e99f4e
commit
9c7b5aaeeb
5
.gitignore
vendored
5
.gitignore
vendored
|
@ -2,7 +2,12 @@
|
||||||
*.ko.cmd
|
*.ko.cmd
|
||||||
*.mod.c
|
*.mod.c
|
||||||
*.ko
|
*.ko
|
||||||
|
*.sln
|
||||||
|
*.vcxproj
|
||||||
|
*.filters
|
||||||
|
*.user
|
||||||
modules.order
|
modules.order
|
||||||
.tmp_versions
|
.tmp_versions
|
||||||
Module.symvers
|
Module.symvers
|
||||||
/.vs
|
/.vs
|
||||||
|
/.vscode
|
||||||
|
|
|
@ -19,6 +19,8 @@ HUNTING_BOOT_MODE=`dmesg | grep "Kernel command line" | sed 's/.* hunt_boot_mode
|
||||||
|
|
||||||
echo HUNTING_BOOT_MODE=${HUNTING_BOOT_MODE}
|
echo HUNTING_BOOT_MODE=${HUNTING_BOOT_MODE}
|
||||||
|
|
||||||
|
sf_app &
|
||||||
|
|
||||||
if [ "${HUNTING_BOOT_MODE_4G_ONLY}" = "${HUNTING_BOOT_MODE}" ]; then
|
if [ "${HUNTING_BOOT_MODE_4G_ONLY}" = "${HUNTING_BOOT_MODE}" ]; then
|
||||||
|
|
||||||
echo "skip insert ko";
|
echo "skip insert ko";
|
||||||
|
|
|
@ -29,6 +29,7 @@ else
|
||||||
endif
|
endif
|
||||||
|
|
||||||
SIFAR_DIR = $(LIBRARY_DIR)/source/sifar/code
|
SIFAR_DIR = $(LIBRARY_DIR)/source/sifar/code
|
||||||
|
SIFAR_APP_DIR = $(APP_DIR)/source/sf_app/code/include
|
||||||
|
|
||||||
# public includes
|
# public includes
|
||||||
EXTRA_INCLUDE += \
|
EXTRA_INCLUDE += \
|
||||||
|
@ -51,6 +52,7 @@ EXTRA_INCLUDE += \
|
||||||
-I$(NVT_HDAL_DIR)/vendor/media/include \
|
-I$(NVT_HDAL_DIR)/vendor/media/include \
|
||||||
-I$(NVT_HDAL_DIR)/vendor/common/include \
|
-I$(NVT_HDAL_DIR)/vendor/common/include \
|
||||||
-I$(SIFAR_DIR)/include \
|
-I$(SIFAR_DIR)/include \
|
||||||
|
-I$(SIFAR_APP_DIR) \
|
||||||
|
|
||||||
# application local includes
|
# application local includes
|
||||||
EXTRA_INCLUDE += \
|
EXTRA_INCLUDE += \
|
||||||
|
|
|
@ -322,7 +322,8 @@ INT32 GPIO_SetBacklightStatus(BOOL en)
|
||||||
void GOIO_Turn_Onoff_IRCUT(UINT8 onoff)
|
void GOIO_Turn_Onoff_IRCUT(UINT8 onoff)
|
||||||
{
|
{
|
||||||
static UINT32 ir_flag = 1;
|
static UINT32 ir_flag = 1;
|
||||||
printf("[%s:%d]s onoff:%d\n",__FUNCTION__,__LINE__,onoff);
|
//printf("[%s:%d]s onoff:%d\n",__FUNCTION__,__LINE__,onoff);
|
||||||
|
DBG_IND(" s onoff:%d\n",onoff);
|
||||||
|
|
||||||
if(ir_flag)
|
if(ir_flag)
|
||||||
{
|
{
|
||||||
|
@ -353,7 +354,8 @@ void GOIO_Turn_Onoff_IRCUT(UINT8 onoff)
|
||||||
//Delay_DelayMs(20);
|
//Delay_DelayMs(20);
|
||||||
//gpio_clearPin(GPIO_IRCUT_MEN1);
|
//gpio_clearPin(GPIO_IRCUT_MEN1);
|
||||||
//gpio_clearPin(GPIO_IRCUT_MEN2);
|
//gpio_clearPin(GPIO_IRCUT_MEN2);
|
||||||
printf("[%s:%d]e\n",__FUNCTION__,__LINE__);
|
//printf("[%s:%d]e\n",__FUNCTION__,__LINE__);
|
||||||
|
DBG_IND(" e\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -445,7 +447,8 @@ extern int nvt_system(const char* pCommand);
|
||||||
*************************************************/
|
*************************************************/
|
||||||
void sf_ir_led_set(UINT8 mode, UINT8 flashLed, UINT8 stillExp, UINT8 isSnapVideo)
|
void sf_ir_led_set(UINT8 mode, UINT8 flashLed, UINT8 stillExp, UINT8 isSnapVideo)
|
||||||
{
|
{
|
||||||
printf("[%s:%d]s mode:%d,flashLed:%d,isSnapVideo:%d\n",__FUNCTION__,__LINE__,mode,flashLed, isSnapVideo);
|
//printf("[%s:%d]s mode:%d,flashLed:%d,isSnapVideo:%d\n",__FUNCTION__,__LINE__,mode,flashLed, isSnapVideo);
|
||||||
|
DBG_IND(" s mode:%d,flashLed:%d,isSnapVideo:%d\n",mode,flashLed, isSnapVideo);
|
||||||
UINT32 ui_rise = 0; ///< Rising at which clock
|
UINT32 ui_rise = 0; ///< Rising at which clock
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
char argv[70] = {0};
|
char argv[70] = {0};
|
||||||
|
@ -505,7 +508,8 @@ void sf_ir_led_set(UINT8 mode, UINT8 flashLed, UINT8 stillExp, UINT8 isSnapVideo
|
||||||
sprintf(argv, "echo \"w openpwm 3 100 %d 100 0 0 0 0\" > /proc/pwm/cmd", ui_rise);
|
sprintf(argv, "echo \"w openpwm 3 100 %d 100 0 0 0 0\" > /proc/pwm/cmd", ui_rise);
|
||||||
ret = nvt_system(argv);
|
ret = nvt_system(argv);
|
||||||
|
|
||||||
printf("%s:%d argv:%s\n", __FUNCTION__, __LINE__,argv);
|
//printf("%s:%d argv:%s\n", __FUNCTION__, __LINE__,argv);
|
||||||
|
DBG_IND(" argv:%s\n", argv);
|
||||||
if(0 != ret)
|
if(0 != ret)
|
||||||
{
|
{
|
||||||
printf("%s:%d sf pwm open failed, errno\n", __FUNCTION__, __LINE__);
|
printf("%s:%d sf pwm open failed, errno\n", __FUNCTION__, __LINE__);
|
||||||
|
@ -514,8 +518,9 @@ void sf_ir_led_set(UINT8 mode, UINT8 flashLed, UINT8 stillExp, UINT8 isSnapVideo
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
printf("%s:%d sf pwm open success\n", __FUNCTION__, __LINE__);
|
DBG_IND("sf pwm open success\n");
|
||||||
DBG_DUMP("sf pwm open success\n");
|
//printf("%s:%d sf pwm open success\n", __FUNCTION__, __LINE__);
|
||||||
|
//DBG_DUMP("sf pwm open success\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
sf_set_night_led_flag(1);
|
sf_set_night_led_flag(1);
|
||||||
|
@ -524,7 +529,8 @@ void sf_ir_led_set(UINT8 mode, UINT8 flashLed, UINT8 stillExp, UINT8 isSnapVideo
|
||||||
{
|
{
|
||||||
sprintf(argv, "echo \"w closepwm 3\" > /proc/pwm/cmd");
|
sprintf(argv, "echo \"w closepwm 3\" > /proc/pwm/cmd");
|
||||||
ret = nvt_system(argv);
|
ret = nvt_system(argv);
|
||||||
printf("%s:%d argv:%s\n", __FUNCTION__, __LINE__,argv);
|
DBG_IND("argv:%s\n",argv);
|
||||||
|
//printf("%s:%d argv:%s\n", __FUNCTION__, __LINE__,argv);
|
||||||
if(0 != ret)
|
if(0 != ret)
|
||||||
{
|
{
|
||||||
DBG_ERR("sf pwm failed, errno(%d)\n", errno);
|
DBG_ERR("sf pwm failed, errno(%d)\n", errno);
|
||||||
|
@ -533,8 +539,9 @@ void sf_ir_led_set(UINT8 mode, UINT8 flashLed, UINT8 stillExp, UINT8 isSnapVideo
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
printf("%s:%d sf pwm close success\n", __FUNCTION__, __LINE__);
|
DBG_IND("sf pwm close success\n");
|
||||||
DBG_DUMP("sf pwm close success\n");
|
//printf("%s:%d sf pwm close success\n", __FUNCTION__, __LINE__);
|
||||||
|
//DBG_DUMP("sf pwm close success\n");
|
||||||
}
|
}
|
||||||
sf_set_night_led_flag(0);
|
sf_set_night_led_flag(0);
|
||||||
}
|
}
|
||||||
|
|
|
@ -304,6 +304,36 @@ extern BOOL GPIOMap_DetPoweroff(void);
|
||||||
#define GPIO_GREEN_LED P_GPIO_10 //FPGA
|
#define GPIO_GREEN_LED P_GPIO_10 //FPGA
|
||||||
#define PAD_GREEN_LED PAD_PIN_PGPIO10
|
#define PAD_GREEN_LED PAD_PIN_PGPIO10
|
||||||
|
|
||||||
|
#define GPIO_LED_STATUS_R DSI_GPIO_8 //
|
||||||
|
#define PAD_LED_STATUS_R PAD_PIN_DSIGPIO8
|
||||||
|
#define GPIO_LED_STATUS_G DSI_GPIO_9//
|
||||||
|
#define PAD_LED_STATUS_G PAD_PIN_DSIGPIO9
|
||||||
|
#define GPIO_LED_SD_G DSI_GPIO_7//
|
||||||
|
#define PAD_LED_SD_G PAD_PIN_DSIGPIO7
|
||||||
|
#define GPIO_LED_SD_R DSI_GPIO_4//
|
||||||
|
#define PAD_LED_SD_R PAD_PIN_DSIGPIO4
|
||||||
|
#define GPIO_LED_WIFI_B DSI_GPIO_6//
|
||||||
|
#define PAD_LED_WIFI_B PAD_PIN_DSIGPIO6
|
||||||
|
#define GPIO_LED_BAT_1 DSI_GPIO_5//
|
||||||
|
#define PAD_LED_BAT_1 PAD_PIN_DSIGPIO5
|
||||||
|
#define GPIO_LED_BAT_2 DSI_GPIO_2//
|
||||||
|
#define PAD_LED_BAT_2 PAD_PIN_DSIGPIO2
|
||||||
|
#define GPIO_LED_BAT_3 DSI_GPIO_3//
|
||||||
|
#define PAD_LED_BAT_3 PAD_PIN_DSIGPIO3
|
||||||
|
#define GPIO_LED_BAT_4 DSI_GPIO_0//
|
||||||
|
#define PAD_LED_BAT_4 PAD_PIN_DSIGPIO0
|
||||||
|
#define GPIO_LED_SIG_1_R DSI_GPIO_10//
|
||||||
|
#define PAD_LED_SIG_1_R PAD_PIN_DSIGPIO10
|
||||||
|
#define GPIO_LED_SIG_1_G DSI_GPIO_1//
|
||||||
|
#define PAD_LED_SIG_1_G PAD_PIN_DSIGPIO1
|
||||||
|
#define GPIO_LED_SIG_2 L_GPIO_1//
|
||||||
|
#define PAD_LED_SIG_2 PAD_PIN_LGPIO1
|
||||||
|
#define GPIO_LED_SIG_3 L_GPIO_0//
|
||||||
|
#define PAD_LED_SIG_3 PAD_PIN_LGPIO0
|
||||||
|
#define GPIO_LED_SIG_4 P_GPIO_8//
|
||||||
|
#define PAD_LED_SIG_4 PAD_PIN_PGPIO8
|
||||||
|
|
||||||
|
|
||||||
#define LED_FOCUS_DUMMY 0
|
#define LED_FOCUS_DUMMY 0
|
||||||
#define LED_FOCUS_BY_GPIO 1
|
#define LED_FOCUS_BY_GPIO 1
|
||||||
#define LED_FOCUS_BY_PWM 2 //use PWM to control LED brightness
|
#define LED_FOCUS_BY_PWM 2 //use PWM to control LED brightness
|
||||||
|
|
|
@ -910,7 +910,8 @@
|
||||||
#define MOVIE_AI_DEMO DISABLE
|
#define MOVIE_AI_DEMO DISABLE
|
||||||
|
|
||||||
#define HUNTING_CAMERA_SYS_PARTITION_NAME sys
|
#define HUNTING_CAMERA_SYS_PARTITION_NAME sys
|
||||||
#define HUNTING_CAMERA_MCU ENABLE
|
#define HUNTING_CAMERA_MCU ENABLE
|
||||||
|
#define HUNTING_CAMERA_4G ENABLE//DISABLE
|
||||||
#define PHOTO_PREVIEW_SLICE_ENC_FUNC ENABLE
|
#define PHOTO_PREVIEW_SLICE_ENC_FUNC ENABLE
|
||||||
#define PHOTO_PREVIEW_SLICE_ENC_VER2_FUNC ENABLE
|
#define PHOTO_PREVIEW_SLICE_ENC_VER2_FUNC ENABLE
|
||||||
#define DZOOM_FUNC ENABLE
|
#define DZOOM_FUNC ENABLE
|
||||||
|
@ -918,6 +919,7 @@
|
||||||
#define HUNTING_MCU_UART ENABLE
|
#define HUNTING_MCU_UART ENABLE
|
||||||
#define HUNTING_IR_LED_940 DISABLE
|
#define HUNTING_IR_LED_940 DISABLE
|
||||||
#define SF_BASE_VERSION "7MD4RCwD3T2"
|
#define SF_BASE_VERSION "7MD4RCwD3T2"
|
||||||
|
#define HW_S530 1
|
||||||
|
|
||||||
|
|
||||||
/*******************************************************************************************
|
/*******************************************************************************************
|
||||||
|
|
|
@ -22,6 +22,9 @@
|
||||||
#include <kwrap/debug.h>
|
#include <kwrap/debug.h>
|
||||||
#if HUNTING_CAMERA_MCU == ENABLE
|
#if HUNTING_CAMERA_MCU == ENABLE
|
||||||
#include <sf_inc.h>
|
#include <sf_inc.h>
|
||||||
|
#include <sf_param_enum.h>
|
||||||
|
#include <sf_message_queue.h>
|
||||||
|
#include <sf_commMng.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
extern void System_BootStart(void);
|
extern void System_BootStart(void);
|
||||||
|
@ -711,7 +714,17 @@ exit:
|
||||||
//////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////
|
||||||
#if HUNTING_CAMERA_MCU == ENABLE
|
#if HUNTING_CAMERA_MCU == ENABLE
|
||||||
//sf_check_card_full();
|
//sf_check_card_full();
|
||||||
|
|
||||||
|
#if HUNTING_CAMERA_4G == ENABLE
|
||||||
|
SF_MESSAGE_BUF_S stMessageBuf = {0};
|
||||||
|
stMessageBuf.arg1 = paramArray[0];
|
||||||
|
stMessageBuf.cmdId = CMD_POWEROFF;
|
||||||
|
sf_com_message_send_to_app(&stMessageBuf);
|
||||||
|
#else
|
||||||
sf_mcu_reg_set(SF_MCU_POWEROFF,paramArray[0]);
|
sf_mcu_reg_set(SF_MCU_POWEROFF,paramArray[0]);
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
//System_PowerOffStart();
|
//System_PowerOffStart();
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
//global debug level: PRJ_DBG_LVL
|
//global debug level: PRJ_DBG_LVL
|
||||||
#include "PrjInc.h"
|
#include "PrjInc.h"
|
||||||
//local debug level: THIS_DBGLVL
|
//local debug level: THIS_DBGLVL
|
||||||
#define THIS_DBGLVL 2 // 0=FATAL, 1=ERR, 2=WRN, 3=UNIT, 4=FUNC, 5=IND, 6=MSG, 7=VALUE, 8=USER
|
#define THIS_DBGLVL 5 // 0=FATAL, 1=ERR, 2=WRN, 3=UNIT, 4=FUNC, 5=IND, 6=MSG, 7=VALUE, 8=USER
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
#define __MODULE__ SysStrgExe
|
#define __MODULE__ SysStrgExe
|
||||||
#define __DBGLVL__ ((THIS_DBGLVL>=PRJ_DBG_LVL)?THIS_DBGLVL:PRJ_DBG_LVL)
|
#define __DBGLVL__ ((THIS_DBGLVL>=PRJ_DBG_LVL)?THIS_DBGLVL:PRJ_DBG_LVL)
|
||||||
|
@ -37,12 +37,22 @@
|
||||||
|
|
||||||
#include "GxStrg.h"
|
#include "GxStrg.h"
|
||||||
#include "FileSysTsk.h"
|
#include "FileSysTsk.h"
|
||||||
|
#include <sf_message_queue.h>
|
||||||
|
#include <sf_param_struct.h>
|
||||||
|
|
||||||
void Strg_CB(UINT32 event, UINT32 param1, UINT32 param2);
|
void Strg_CB(UINT32 event, UINT32 param1, UINT32 param2);
|
||||||
|
|
||||||
void Strg_CB(UINT32 event, UINT32 param1, UINT32 param2)
|
void Strg_CB(UINT32 event, UINT32 param1, UINT32 param2)
|
||||||
{
|
{
|
||||||
UINT32 status;
|
UINT32 status;
|
||||||
|
SF_MESSAGE_BUF_S stMessageBuf = {0};
|
||||||
|
|
||||||
|
stMessageBuf.arg1 = event;
|
||||||
|
stMessageBuf.arg2 = param1;
|
||||||
|
stMessageBuf.arg3 = param2;
|
||||||
|
stMessageBuf.cmdId = CMD_SD;
|
||||||
|
sf_com_message_send_to_app(&stMessageBuf);
|
||||||
|
|
||||||
switch (event) {
|
switch (event) {
|
||||||
// part-1
|
// part-1
|
||||||
case SYSTEM_CB_CONFIG:
|
case SYSTEM_CB_CONFIG:
|
||||||
|
|
|
@ -15,6 +15,9 @@
|
||||||
#include "GxUSB.h"
|
#include "GxUSB.h"
|
||||||
#include "UsbDevDef.h"
|
#include "UsbDevDef.h"
|
||||||
#include "usb2dev.h"
|
#include "usb2dev.h"
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <sf_led.h>
|
||||||
#define THIS_DBGLVL 2 // 0=FATAL, 1=ERR, 2=WRN, 3=UNIT, 4=FUNC, 5=IND, 6=MSG, 7=VALUE, 8=USER
|
#define THIS_DBGLVL 2 // 0=FATAL, 1=ERR, 2=WRN, 3=UNIT, 4=FUNC, 5=IND, 6=MSG, 7=VALUE, 8=USER
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
#define __MODULE__ SysUsbExe
|
#define __MODULE__ SysUsbExe
|
||||||
|
@ -76,6 +79,25 @@ static BOOL System_WaitUsbDev(void)
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
static BOOL System_check_usb_host(void)
|
||||||
|
{
|
||||||
|
char command[26] = "lsmod | grep usbcore";
|
||||||
|
FILE *fp = popen(command, "r");
|
||||||
|
char result[256];
|
||||||
|
fgets(result, sizeof(result), fp);
|
||||||
|
pclose(fp);
|
||||||
|
if (result[0] == '\0') {
|
||||||
|
printf("usbcore module is not loaded.\n");
|
||||||
|
return FALSE;
|
||||||
|
} else {
|
||||||
|
printf("usbcore module is loaded.\n");
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static BOOL System_InsmodUsb(BOOL isHost)
|
static BOOL System_InsmodUsb(BOOL isHost)
|
||||||
{
|
{
|
||||||
char** usb_drivers = NULL;
|
char** usb_drivers = NULL;
|
||||||
|
@ -87,7 +109,11 @@ static BOOL System_InsmodUsb(BOOL isHost)
|
||||||
|
|
||||||
if(is_usb_host_driver_inserted == TRUE)
|
if(is_usb_host_driver_inserted == TRUE)
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
if(System_check_usb_host() == TRUE)
|
||||||
|
{
|
||||||
|
is_usb_host_driver_inserted = TRUE;
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
usb_drivers = usb_host_drivers;
|
usb_drivers = usb_host_drivers;
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
|
@ -233,6 +259,11 @@ void System_OnUsbInit(void)
|
||||||
|
|
||||||
//force check USB connect type
|
//force check USB connect type
|
||||||
if (GxUSB_GetIsUSBPlug()) {
|
if (GxUSB_GetIsUSBPlug()) {
|
||||||
|
|
||||||
|
#if HW_S530 == ENABLE
|
||||||
|
sf_sys_status_led_set(SF_LED_SYS_STATE_USB_IN);
|
||||||
|
#endif
|
||||||
|
|
||||||
System_InsmodUsb(FALSE); /* insmod usb dev ko */
|
System_InsmodUsb(FALSE); /* insmod usb dev ko */
|
||||||
GxUSB_UpdateConnectType();
|
GxUSB_UpdateConnectType();
|
||||||
GxUSB_SetChargerType(FALSE);
|
GxUSB_SetChargerType(FALSE);
|
||||||
|
|
|
@ -12,9 +12,13 @@
|
||||||
#include "DrvExt.h"
|
#include "DrvExt.h"
|
||||||
#include "comm/hwclock.h"
|
#include "comm/hwclock.h"
|
||||||
#include "comm/timer.h"
|
#include "comm/timer.h"
|
||||||
#include <sf_inc.h>
|
|
||||||
#include <io/gpio.h>
|
#include <io/gpio.h>
|
||||||
#include <IOCfg.h>
|
#include <IOCfg.h>
|
||||||
|
#if HUNTING_CAMERA_MCU == ENABLE
|
||||||
|
#include <sf_inc.h>
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
@ -353,14 +357,37 @@ int NvtMain(void)
|
||||||
#if HUNTING_CAMERA_MCU == ENABLE
|
#if HUNTING_CAMERA_MCU == ENABLE
|
||||||
if(!GxUSB_GetIsUSBPlug())//(!sf_gpio_get_status(GPIO_INT_USBPLUGIN))
|
if(!GxUSB_GetIsUSBPlug())//(!sf_gpio_get_status(GPIO_INT_USBPLUGIN))
|
||||||
{
|
{
|
||||||
|
#if HUNTING_CAMERA_4G == ENABLE
|
||||||
|
|
||||||
|
sf_share_mem_file_init();
|
||||||
|
/*if (cardv_message_queue_init())
|
||||||
|
{
|
||||||
|
printf("cardv initial message queue error!\n");
|
||||||
|
exit(1);
|
||||||
|
}*/
|
||||||
|
if(SF_SUCCESS == sf_com_message_cardv_init())
|
||||||
|
{
|
||||||
|
printf("create message successs!!!!\n");
|
||||||
|
}
|
||||||
|
if(SF_SUCCESS == sf_com_message_app_init())
|
||||||
|
{
|
||||||
|
printf("create cardv message successs!!!!\n");
|
||||||
|
}
|
||||||
|
sf_cardv_message_thread_init();
|
||||||
|
SF_MESSAGE_BUF_S stMessageBuf = {0};
|
||||||
|
|
||||||
|
stMessageBuf.arg1 = SF_MCU_CMD_POWERON;
|
||||||
|
stMessageBuf.cmdId = CMD_MCU;
|
||||||
|
sf_com_message_send_to_app(&stMessageBuf);
|
||||||
|
#else
|
||||||
sf_mcu_init();
|
sf_mcu_init();
|
||||||
sf_get_power_on_mode();
|
sf_get_power_on_mode();
|
||||||
sf_mcu_wdg_set(30);
|
sf_mcu_wdg_set(30);
|
||||||
sf_usb_mux_s(1);
|
sf_usb_mux_s(1);
|
||||||
//sf_mcu_reg_set(SF_MCU_CTRL_MODULE_PIR, 1);
|
|
||||||
sf_sd_exist_reg_cb(DrvCARD_DetStrgCard);
|
|
||||||
/*led init*/
|
/*led init*/
|
||||||
sf_led_init();
|
sf_led_init();
|
||||||
|
#endif
|
||||||
|
sf_sd_exist_reg_cb(DrvCARD_DetStrgCard);
|
||||||
sf_sys_status_led_set(SF_LED_SYS_STATE_PIR_NOT_DETECT);
|
sf_sys_status_led_set(SF_LED_SYS_STATE_PIR_NOT_DETECT);
|
||||||
sf_battery_thread_init();
|
sf_battery_thread_init();
|
||||||
}
|
}
|
||||||
|
|
|
@ -279,7 +279,7 @@ static void MovieStamp_get_isp_status(UINT32 id, char* Buf, UINT32 BufLen)
|
||||||
IQT_WDR_PARAM wdr = {0};
|
IQT_WDR_PARAM wdr = {0};
|
||||||
//sf_mcu_power_on_para_get(SF_MCU_POWERON);
|
//sf_mcu_power_on_para_get(SF_MCU_POWERON);
|
||||||
UINT16 AD_Value;
|
UINT16 AD_Value;
|
||||||
AD_Value = sf_mcu_get_irshtter();
|
AD_Value = sf_get_irshtter();
|
||||||
|
|
||||||
id = 0;
|
id = 0;
|
||||||
ae_status.id = id;
|
ae_status.id = id;
|
||||||
|
|
|
@ -30,6 +30,7 @@
|
||||||
#include <vf_gfx.h>
|
#include <vf_gfx.h>
|
||||||
#include "vendor_videocapture.h"
|
#include "vendor_videocapture.h"
|
||||||
#include "sf_mcu.h"
|
#include "sf_mcu.h"
|
||||||
|
#include "IOCfg.h"
|
||||||
|
|
||||||
#define THIS_DBGLVL 2 // 0=FATAL, 1=ERR, 2=WRN, 3=UNIT, 4=FUNC, 5=IND, 6=MSG, 7=VALUE, 8=USER
|
#define THIS_DBGLVL 2 // 0=FATAL, 1=ERR, 2=WRN, 3=UNIT, 4=FUNC, 5=IND, 6=MSG, 7=VALUE, 8=USER
|
||||||
|
|
||||||
|
@ -420,7 +421,7 @@ static UINT32 PhotoExe_GetScreenNailSize(void)
|
||||||
ScreenNailSize = CFG_SCREENNAIL_SIZE;
|
ScreenNailSize = CFG_SCREENNAIL_SIZE;
|
||||||
uiImageSize = UI_GetData(FL_PHOTO_SIZE);
|
uiImageSize = UI_GetData(FL_PHOTO_SIZE);
|
||||||
if (uiImageSize < ScreenNailSize) {
|
if (uiImageSize < ScreenNailSize) {
|
||||||
BitStreamSize = CFG_SCREENNAIL_W * CFG_SCREENNAIL_H / 2;
|
BitStreamSize = (sf_get_screen_nail_width(UI_GetData(SendPicSize))) * (sf_get_screen_nail_height(UI_GetData(SendPicSize))) / 2;
|
||||||
} else {
|
} else {
|
||||||
BitStreamSize = 0;
|
BitStreamSize = 0;
|
||||||
}
|
}
|
||||||
|
@ -452,7 +453,7 @@ void PhotoExe_SetScreenNailSize(UINT32 sensor_id)
|
||||||
if (uiImageSize < ScreenNailSize) {
|
if (uiImageSize < ScreenNailSize) {
|
||||||
//BufferSize.w = GetPhotoSizeWidth(ScreenNailSize);
|
//BufferSize.w = GetPhotoSizeWidth(ScreenNailSize);
|
||||||
//BufferSize.h = GetPhotoSizeHeight(ScreenNailSize);
|
//BufferSize.h = GetPhotoSizeHeight(ScreenNailSize);
|
||||||
BufferSize.w = CFG_SCREENNAIL_W;
|
BufferSize.w = CFG_SCREENNAIL_W;//SendPicSize
|
||||||
BufferSize.h = BufferSize.w * 3 / 4;
|
BufferSize.h = BufferSize.w * 3 / 4;
|
||||||
|
|
||||||
ImageRatioIdx = GetPhotoSizeRatio(UI_GetData(FL_PHOTO_SIZE));
|
ImageRatioIdx = GetPhotoSizeRatio(UI_GetData(FL_PHOTO_SIZE));
|
||||||
|
@ -1438,7 +1439,7 @@ AD_Value = sf_mcu_get_irshtter();
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
extern void GOIO_Turn_Onoff_IRCUT(BOOL onoff);
|
//extern void GOIO_Turn_Onoff_IRCUT(BOOL onoff);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -2374,6 +2375,8 @@ INT32 PhotoExe_OnOpen(VControl *pCtrl, UINT32 paramNum, UINT32 *paramArray)
|
||||||
// g_photo_ImageRatioSize = IMAGERATIO_SIZE[4];
|
// g_photo_ImageRatioSize = IMAGERATIO_SIZE[4];
|
||||||
FileSys_MakeDir(PHOTO_THUMB_PATH);
|
FileSys_MakeDir(PHOTO_THUMB_PATH);
|
||||||
GOIO_Turn_Onoff_IRCUT(1);
|
GOIO_Turn_Onoff_IRCUT(1);
|
||||||
|
|
||||||
|
//sf_ir_led_set(((2 == SysGetFlag(NightMode)) ? 2 : 1),SysGetFlag(FlashLed), SysGetFlag(NightMode), 0);
|
||||||
if((0 == access("/mnt/sd/FW98565A.bin", F_OK))){
|
if((0 == access("/mnt/sd/FW98565A.bin", F_OK))){
|
||||||
system("rm -rf /mnt/sd/LD96565A.bin");
|
system("rm -rf /mnt/sd/LD96565A.bin");
|
||||||
system("rm -rf /mnt/sd/FW98565A.bin");
|
system("rm -rf /mnt/sd/FW98565A.bin");
|
||||||
|
|
|
@ -453,21 +453,21 @@ void Load_MenuInfo(void)
|
||||||
//#NT#porting KS's suggestion that PStore reset mechanism
|
//#NT#porting KS's suggestion that PStore reset mechanism
|
||||||
UINT32 uiPsFreeSpace = PStore_GetInfo(PS_INFO_FREE_SPACE);
|
UINT32 uiPsFreeSpace = PStore_GetInfo(PS_INFO_FREE_SPACE);
|
||||||
result = PStore_ReadSection((UINT8 *)¤tInfo, 0, sizeof(UIMenuStoreInfo), pSection);
|
result = PStore_ReadSection((UINT8 *)¤tInfo, 0, sizeof(UIMenuStoreInfo), pSection);
|
||||||
if ((result != E_PS_OK || currentInfo.uhInfoSize != sizeof(currentInfo)|| uiFWUpdate) &&
|
if ((result != E_PS_OK || currentInfo.uhInfoSize != sizeof(UIMenuStoreInfo)|| uiFWUpdate) &&
|
||||||
uiPsFreeSpace) {
|
uiPsFreeSpace) {
|
||||||
DBG_DUMP("PStore reset info.\r\n");
|
DBG_DUMP("PStore reset info.\r\n");
|
||||||
memset(¤tInfo, 0, sizeof(currentInfo));
|
memset(¤tInfo, 0, sizeof(UIMenuStoreInfo));
|
||||||
currentInfo.uhInfoSize = sizeof(UIMenuStoreInfo);
|
currentInfo.uhInfoSize = sizeof(UIMenuStoreInfo);
|
||||||
SysResetFlag();
|
SysResetFlag();
|
||||||
PStore_WriteSection((UINT8 *)¤tInfo, 0, sizeof(UIMenuStoreInfo), pSection);
|
PStore_WriteSection((UINT8 *)¤tInfo, 0, sizeof(UIMenuStoreInfo), pSection);
|
||||||
PStore_CloseSection(pSection);
|
PStore_CloseSection(pSection);
|
||||||
} else if ((result != E_PS_OK|| uiFWUpdate) && (currentInfo.uhInfoSize == sizeof(currentInfo)) &&
|
} else if ((result != E_PS_OK|| uiFWUpdate) && (currentInfo.uhInfoSize == sizeof(UIMenuStoreInfo)) &&
|
||||||
(uiPsFreeSpace == 0)) {
|
(uiPsFreeSpace == 0)) {
|
||||||
//if current size is the same with previous, use PS_UPDATE instead
|
//if current size is the same with previous, use PS_UPDATE instead
|
||||||
//of PS_RDWR to prevent that PStore is no free space
|
//of PS_RDWR to prevent that PStore is no free space
|
||||||
DBG_DUMP("PStore reset info for uiPsFreeSpace=0.\r\n");
|
DBG_DUMP("PStore reset info for uiPsFreeSpace=0.\r\n");
|
||||||
PStore_CloseSection(pSection);
|
PStore_CloseSection(pSection);
|
||||||
memset(¤tInfo, 0, sizeof(currentInfo));
|
memset(¤tInfo, 0, sizeof(UIMenuStoreInfo));
|
||||||
currentInfo.uhInfoSize = sizeof(UIMenuStoreInfo);
|
currentInfo.uhInfoSize = sizeof(UIMenuStoreInfo);
|
||||||
SysResetFlag();
|
SysResetFlag();
|
||||||
if ((pSection = PStore_OpenSection(PS_SYS_PARAM, PS_UPDATE)) != E_PS_SECHDLER) {
|
if ((pSection = PStore_OpenSection(PS_SYS_PARAM, PS_UPDATE)) != E_PS_SECHDLER) {
|
||||||
|
@ -511,13 +511,13 @@ void Load_MenuInfo(void)
|
||||||
void *pTempbuf = NULL;
|
void *pTempbuf = NULL;
|
||||||
|
|
||||||
ret = UIInfo_GetStrgPartitionInfo(&partition_ofs, &partition_size, PARTITION_PATH_USR1);
|
ret = UIInfo_GetStrgPartitionInfo(&partition_ofs, &partition_size, PARTITION_PATH_USR1);
|
||||||
if ((ret == 0) && (sizeof(currentInfo) < partition_size)) {
|
if ((ret == 0) && (sizeof(UIMenuStoreInfo) < partition_size)) {
|
||||||
if ((sizeof(currentInfo)/_EMBMEM_BLK_SIZE_) == 0) {
|
if ((sizeof(UIMenuStoreInfo)/_EMBMEM_BLK_SIZE_) == 0) {
|
||||||
sectorCnt = 1;
|
sectorCnt = 1;
|
||||||
} else if (((sizeof(currentInfo)/_EMBMEM_BLK_SIZE_) > 0) && ((sizeof(currentInfo)%_EMBMEM_BLK_SIZE_) != 0)) {
|
} else if (((sizeof(UIMenuStoreInfo)/_EMBMEM_BLK_SIZE_) > 0) && ((sizeof(UIMenuStoreInfo)%_EMBMEM_BLK_SIZE_) != 0)) {
|
||||||
sectorCnt = sizeof(currentInfo)/_EMBMEM_BLK_SIZE_ + 1;
|
sectorCnt = sizeof(UIMenuStoreInfo)/_EMBMEM_BLK_SIZE_ + 1;
|
||||||
} else if (((sizeof(currentInfo)/_EMBMEM_BLK_SIZE_) > 0) && ((sizeof(currentInfo)%_EMBMEM_BLK_SIZE_) == 0)) {
|
} else if (((sizeof(UIMenuStoreInfo)/_EMBMEM_BLK_SIZE_) > 0) && ((sizeof(UIMenuStoreInfo)%_EMBMEM_BLK_SIZE_) == 0)) {
|
||||||
sectorCnt = sizeof(currentInfo)/_EMBMEM_BLK_SIZE_;
|
sectorCnt = sizeof(UIMenuStoreInfo)/_EMBMEM_BLK_SIZE_;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((fd_mmc = fopen("/dev/mmcblk2p14", "rb")) == NULL) { ///dev/mmcblk2p14 ==> partition_usr1 ; cat /proc/nvt_info/emmc
|
if ((fd_mmc = fopen("/dev/mmcblk2p14", "rb")) == NULL) { ///dev/mmcblk2p14 ==> partition_usr1 ; cat /proc/nvt_info/emmc
|
||||||
|
@ -531,12 +531,12 @@ void Load_MenuInfo(void)
|
||||||
DBG_ERR("allocate pTempbuf fail !!\r\n");
|
DBG_ERR("allocate pTempbuf fail !!\r\n");
|
||||||
SysResetFlag();
|
SysResetFlag();
|
||||||
} else {
|
} else {
|
||||||
rw_len = (INT32)fread(pTempbuf, 1, sizeof(currentInfo), fd_mmc);
|
rw_len = (INT32)fread(pTempbuf, 1, sizeof(UIMenuStoreInfo), fd_mmc);
|
||||||
if (rw_len != sizeof(currentInfo)) {
|
if (rw_len != sizeof(UIMenuStoreInfo)) {
|
||||||
DBG_ERR("read size %d < %ld\r\n", rw_len, sizeof(currentInfo));
|
DBG_ERR("read size %d < %ld\r\n", rw_len, sizeof(UIMenuStoreInfo));
|
||||||
SysResetFlag();
|
SysResetFlag();
|
||||||
} else {
|
} else {
|
||||||
memcpy(¤tInfo, pTempbuf, sizeof(currentInfo));
|
memcpy(¤tInfo, pTempbuf, sizeof(UIMenuStoreInfo));
|
||||||
}
|
}
|
||||||
free(pTempbuf);
|
free(pTempbuf);
|
||||||
pTempbuf = NULL;
|
pTempbuf = NULL;
|
||||||
|
@ -559,10 +559,10 @@ void Load_MenuInfo(void)
|
||||||
char cmd[128] = {0};
|
char cmd[128] = {0};
|
||||||
char filename[128] = {0};
|
char filename[128] = {0};
|
||||||
|
|
||||||
sectorCnt = (sizeof(currentInfo) / _EMBMEM_BLK_SIZE_) + (sizeof(currentInfo) % _EMBMEM_BLK_SIZE_)? 1 : 0;
|
sectorCnt = (sizeof(UIMenuStoreInfo) / _EMBMEM_BLK_SIZE_) + (sizeof(UIMenuStoreInfo) % _EMBMEM_BLK_SIZE_)? 1 : 0;
|
||||||
|
|
||||||
ret = UIInfo_GetStrgPartitionInfo(&partition_ofs, &partition_size, PARTITION_PATH_SYS);
|
ret = UIInfo_GetStrgPartitionInfo(&partition_ofs, &partition_size, PARTITION_PATH_SYS);
|
||||||
if ((ret == 0) && (sizeof(currentInfo) < partition_size)) {
|
if ((ret == 0) && (sizeof(UIMenuStoreInfo) < partition_size)) {
|
||||||
|
|
||||||
char sys_mtd_dev_path[128] = {'\0'};
|
char sys_mtd_dev_path[128] = {'\0'};
|
||||||
ret = find_sys_mtd_device(sys_mtd_dev_path, sizeof(sys_mtd_dev_path));
|
ret = find_sys_mtd_device(sys_mtd_dev_path, sizeof(sys_mtd_dev_path));
|
||||||
|
@ -607,13 +607,13 @@ void Load_MenuInfo(void)
|
||||||
goto EXIT;
|
goto EXIT;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(((UIMenuStoreInfo*)tmpInfo)->uhInfoSize == sizeof(currentInfo)){
|
if(((UIMenuStoreInfo*)tmpInfo)->uhInfoSize == sizeof(UIMenuStoreInfo)){
|
||||||
memcpy(¤tInfo, tmpInfo, sizeof(currentInfo));
|
memcpy(¤tInfo, tmpInfo, sizeof(UIMenuStoreInfo));
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
DBG_WRN("menu info size loaded from flash seems incorrect, reset menu info\n");
|
DBG_WRN("menu info size loaded from flash seems incorrect, reset menu info\n");
|
||||||
SysResetFlag();
|
SysResetFlag();
|
||||||
currentInfo.uhInfoSize = sizeof(currentInfo);
|
currentInfo.uhInfoSize = sizeof(UIMenuStoreInfo);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -621,7 +621,7 @@ EXIT:
|
||||||
|
|
||||||
if(ret){
|
if(ret){
|
||||||
SysResetFlag();
|
SysResetFlag();
|
||||||
currentInfo.uhInfoSize = sizeof(currentInfo);
|
currentInfo.uhInfoSize = sizeof(UIMenuStoreInfo);
|
||||||
}
|
}
|
||||||
SysCheckFlag();
|
SysCheckFlag();
|
||||||
origInfo = currentInfo;
|
origInfo = currentInfo;
|
||||||
|
@ -637,6 +637,8 @@ EXIT:
|
||||||
}
|
}
|
||||||
#elif defined(_EMBMEM_SPI_NOR_)
|
#elif defined(_EMBMEM_SPI_NOR_)
|
||||||
|
|
||||||
|
printf("%s:%d cardv app load ui info s\n", __FUNCTION__, __LINE__);
|
||||||
|
|
||||||
unsigned long long partition_ofs= 0, partition_size = 0;
|
unsigned long long partition_ofs= 0, partition_size = 0;
|
||||||
int ret = -1;
|
int ret = -1;
|
||||||
FILE *sys_mtd_fp = NULL;
|
FILE *sys_mtd_fp = NULL;
|
||||||
|
@ -645,10 +647,10 @@ EXIT:
|
||||||
void *tmpInfo = NULL;
|
void *tmpInfo = NULL;
|
||||||
size_t read_size;
|
size_t read_size;
|
||||||
|
|
||||||
sectorCnt = (sizeof(currentInfo) / _EMBMEM_BLK_SIZE_) + (sizeof(currentInfo) % _EMBMEM_BLK_SIZE_)? 1 : 0;
|
sectorCnt = (sizeof(UIMenuStoreInfo) / _EMBMEM_BLK_SIZE_) + (sizeof(UIMenuStoreInfo) % _EMBMEM_BLK_SIZE_)? 1 : 0;
|
||||||
|
|
||||||
ret = UIInfo_GetStrgPartitionInfo(&partition_ofs, &partition_size, PARTITION_PATH_SYS);
|
ret = UIInfo_GetStrgPartitionInfo(&partition_ofs, &partition_size, PARTITION_PATH_SYS);
|
||||||
if ((ret == 0) && (sizeof(currentInfo) < partition_size)) {
|
if ((ret == 0) && (sizeof(UIMenuStoreInfo) < partition_size)) {
|
||||||
|
|
||||||
char sys_mtd_dev_path[128] = {'\0'};
|
char sys_mtd_dev_path[128] = {'\0'};
|
||||||
ret = find_sys_mtd_device(sys_mtd_dev_path, sizeof(sys_mtd_dev_path));
|
ret = find_sys_mtd_device(sys_mtd_dev_path, sizeof(sys_mtd_dev_path));
|
||||||
|
@ -679,21 +681,22 @@ EXIT:
|
||||||
goto EXIT;
|
goto EXIT;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(((UIMenuStoreInfo*)tmpInfo)->uhInfoSize == sizeof(currentInfo)){
|
if(((UIMenuStoreInfo*)tmpInfo)->uhInfoSize == sizeof(UIMenuStoreInfo)){
|
||||||
memcpy(¤tInfo, tmpInfo, sizeof(currentInfo));
|
memcpy(¤tInfo, tmpInfo, sizeof(UIMenuStoreInfo));
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
DBG_WRN("menu info size loaded from flash seems incorrect(old:%lu new:%lu), reset menu info\n",
|
DBG_WRN("menu info size loaded from flash seems incorrect(old:%lu new:%lu), reset menu info\n",
|
||||||
((UIMenuStoreInfo*)tmpInfo)->uhInfoSize,
|
((UIMenuStoreInfo*)tmpInfo)->uhInfoSize,
|
||||||
sizeof(currentInfo)
|
sizeof(UIMenuStoreInfo)
|
||||||
);
|
);
|
||||||
SysResetFlag();
|
SysResetFlag();
|
||||||
currentInfo.uhInfoSize = sizeof(currentInfo);
|
currentInfo.uhInfoSize = sizeof(UIMenuStoreInfo);
|
||||||
|
sf_share_mem_customer_down(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
UINT32 sum = MemCheck_CalcCheckSum16Bit((UINT32)tmpInfo, sizeof(currentInfo));
|
UINT32 sum = MemCheck_CalcCheckSum16Bit((UINT32)tmpInfo, sizeof(UIMenuStoreInfo));
|
||||||
DBG_DUMP("**************size = %lx / mov size = %u / sum = %lx **************\n",
|
DBG_DUMP("**************size = %lx / mov size = %u / sum = %lx **************\n",
|
||||||
sizeof(currentInfo),
|
sizeof(UIMenuStoreInfo),
|
||||||
//((UIMenuStoreInfo*)tmpInfo)->UIParameter[FL_MOVIE_SIZE],
|
//((UIMenuStoreInfo*)tmpInfo)->UIParameter[FL_MOVIE_SIZE],
|
||||||
((UIMenuStoreInfo*)tmpInfo)->UIParameter[CamMode],
|
((UIMenuStoreInfo*)tmpInfo)->UIParameter[CamMode],
|
||||||
sum);
|
sum);
|
||||||
|
@ -703,7 +706,8 @@ EXIT:
|
||||||
|
|
||||||
if(ret){
|
if(ret){
|
||||||
SysResetFlag();
|
SysResetFlag();
|
||||||
currentInfo.uhInfoSize = sizeof(currentInfo);
|
currentInfo.uhInfoSize = sizeof(UIMenuStoreInfo);
|
||||||
|
sf_share_mem_customer_down(0);
|
||||||
}
|
}
|
||||||
SysCheckFlag();
|
SysCheckFlag();
|
||||||
origInfo = currentInfo;
|
origInfo = currentInfo;
|
||||||
|
@ -716,8 +720,9 @@ EXIT:
|
||||||
if(tmpInfo){
|
if(tmpInfo){
|
||||||
free(tmpInfo);
|
free(tmpInfo);
|
||||||
tmpInfo = NULL;
|
tmpInfo = NULL;
|
||||||
}
|
}
|
||||||
|
printf("%s:%d cardv app load ui info e\n", __FUNCTION__, __LINE__);
|
||||||
|
|
||||||
#else
|
#else
|
||||||
SysResetFlag();
|
SysResetFlag();
|
||||||
#endif
|
#endif
|
||||||
|
@ -884,12 +889,12 @@ void Save_MenuInfo(void)
|
||||||
INT32 rw_len = 0;
|
INT32 rw_len = 0;
|
||||||
|
|
||||||
ret = UIInfo_GetStrgPartitionInfo(&partition_ofs, &partition_size, PARTITION_PATH_USR1);
|
ret = UIInfo_GetStrgPartitionInfo(&partition_ofs, &partition_size, PARTITION_PATH_USR1);
|
||||||
if ((ret == 0) && (sizeof(currentInfo) < partition_size)) {
|
if ((ret == 0) && (sizeof(UIMenuStoreInfo) < partition_size)) {
|
||||||
if ((fd_mmc = fopen("/dev/mmcblk2p14", "wb")) == NULL) { ///dev/mmcblk2p14 ==> partition_usr1 ; cat /proc/nvt_info/emmc
|
if ((fd_mmc = fopen("/dev/mmcblk2p14", "wb")) == NULL) { ///dev/mmcblk2p14 ==> partition_usr1 ; cat /proc/nvt_info/emmc
|
||||||
DBG_ERR("/dev/mmcblk2p14 fail !!\r\n");
|
DBG_ERR("/dev/mmcblk2p14 fail !!\r\n");
|
||||||
} else {
|
} else {
|
||||||
rw_len = fwrite(¤tInfo, 1, sizeof(currentInfo), fd_mmc);
|
rw_len = fwrite(¤tInfo, 1, sizeof(UIMenuStoreInfo), fd_mmc);
|
||||||
if(rw_len != sizeof(currentInfo)) {
|
if(rw_len != sizeof(UIMenuStoreInfo)) {
|
||||||
DBG_ERR("Error to write file for /dev/mmcblk2p14");
|
DBG_ERR("Error to write file for /dev/mmcblk2p14");
|
||||||
}
|
}
|
||||||
fclose(fd_mmc);;
|
fclose(fd_mmc);;
|
||||||
|
@ -898,8 +903,8 @@ void Save_MenuInfo(void)
|
||||||
if ((fd_mmc = fopen("/dev/mmcblk2p15", "wb")) == NULL) { ///dev/mmcblk2p14 ==> partition_usr2 ; cat /proc/nvt_info/emmc
|
if ((fd_mmc = fopen("/dev/mmcblk2p15", "wb")) == NULL) { ///dev/mmcblk2p14 ==> partition_usr2 ; cat /proc/nvt_info/emmc
|
||||||
DBG_ERR("/dev/mmcblk2p14 fail !!\r\n");
|
DBG_ERR("/dev/mmcblk2p14 fail !!\r\n");
|
||||||
} else {
|
} else {
|
||||||
rw_len = fwrite(¤tInfo, 1, sizeof(currentInfo), fd_mmc);
|
rw_len = fwrite(¤tInfo, 1, sizeof(UIMenuStoreInfo), fd_mmc);
|
||||||
if(rw_len != sizeof(currentInfo)) {
|
if(rw_len != sizeof(UIMenuStoreInfo)) {
|
||||||
DBG_ERR("Error to write file for /dev/mmcblk2p14");
|
DBG_ERR("Error to write file for /dev/mmcblk2p14");
|
||||||
}
|
}
|
||||||
fclose(fd_mmc);
|
fclose(fd_mmc);
|
||||||
|
@ -921,15 +926,15 @@ void Save_MenuInfo(void)
|
||||||
SysCheckFlag();
|
SysCheckFlag();
|
||||||
|
|
||||||
/* check if sys param changed */
|
/* check if sys param changed */
|
||||||
if(memcmp(¤tInfo, &origInfo, sizeof(currentInfo)) == 0){
|
if(memcmp(¤tInfo, &origInfo, sizeof(UIMenuStoreInfo)) == 0){
|
||||||
DBG_DUMP("menu info is not changed\n");
|
DBG_DUMP("menu info is not changed\n");
|
||||||
goto EXIT;
|
goto EXIT;
|
||||||
}
|
}
|
||||||
|
|
||||||
sectorCnt = (sizeof(currentInfo) / _EMBMEM_BLK_SIZE_) + ((sizeof(currentInfo) % _EMBMEM_BLK_SIZE_)? 1 : 0);
|
sectorCnt = (sizeof(UIMenuStoreInfo) / _EMBMEM_BLK_SIZE_) + ((sizeof(UIMenuStoreInfo) % _EMBMEM_BLK_SIZE_)? 1 : 0);
|
||||||
|
|
||||||
ret = UIInfo_GetStrgPartitionInfo(&partition_ofs, &partition_size, PARTITION_PATH_SYS);
|
ret = UIInfo_GetStrgPartitionInfo(&partition_ofs, &partition_size, PARTITION_PATH_SYS);
|
||||||
if ((ret == 0) && (sizeof(currentInfo) < partition_size)) {
|
if ((ret == 0) && (sizeof(UIMenuStoreInfo) < partition_size)) {
|
||||||
char sys_mtd_dev_path[128] = {'\0'};
|
char sys_mtd_dev_path[128] = {'\0'};
|
||||||
ret = find_sys_mtd_device(sys_mtd_dev_path, sizeof(sys_mtd_dev_path));
|
ret = find_sys_mtd_device(sys_mtd_dev_path, sizeof(sys_mtd_dev_path));
|
||||||
if(ret){
|
if(ret){
|
||||||
|
@ -952,8 +957,8 @@ void Save_MenuInfo(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
memset(tmpInfo, 0xFF, write_size); /* keep remain data 0xFF to avoid write flash */
|
memset(tmpInfo, 0xFF, write_size); /* keep remain data 0xFF to avoid write flash */
|
||||||
currentInfo.uhInfoSize = sizeof(currentInfo);
|
currentInfo.uhInfoSize = sizeof(UIMenuStoreInfo);
|
||||||
memcpy(tmpInfo, ¤tInfo, sizeof(currentInfo));
|
memcpy(tmpInfo, ¤tInfo, sizeof(UIMenuStoreInfo));
|
||||||
sprintf(filename, "nandwrite.in");
|
sprintf(filename, "nandwrite.in");
|
||||||
nandwrite_fp = fopen(filename, "wb");
|
nandwrite_fp = fopen(filename, "wb");
|
||||||
if(!nandwrite_fp){
|
if(!nandwrite_fp){
|
||||||
|
@ -1012,15 +1017,15 @@ EXIT:
|
||||||
SysCheckFlag();
|
SysCheckFlag();
|
||||||
|
|
||||||
/* check if sys param changed */
|
/* check if sys param changed */
|
||||||
if(memcmp(¤tInfo, &origInfo, sizeof(currentInfo)) == 0){
|
if(memcmp(¤tInfo, &origInfo, sizeof(UIMenuStoreInfo)) == 0){
|
||||||
DBG_DUMP("menu info is not changed\n");
|
DBG_DUMP("menu info is not changed\n");
|
||||||
goto EXIT;
|
goto EXIT;
|
||||||
}
|
}
|
||||||
|
|
||||||
sectorCnt = (sizeof(currentInfo) / _EMBMEM_BLK_SIZE_) + ((sizeof(currentInfo) % _EMBMEM_BLK_SIZE_)? 1 : 0);
|
sectorCnt = (sizeof(UIMenuStoreInfo) / _EMBMEM_BLK_SIZE_) + ((sizeof(UIMenuStoreInfo) % _EMBMEM_BLK_SIZE_)? 1 : 0);
|
||||||
|
|
||||||
ret = UIInfo_GetStrgPartitionInfo(&partition_ofs, &partition_size, PARTITION_PATH_SYS);
|
ret = UIInfo_GetStrgPartitionInfo(&partition_ofs, &partition_size, PARTITION_PATH_SYS);
|
||||||
if ((ret == 0) && (sizeof(currentInfo) < partition_size)) {
|
if ((ret == 0) && (sizeof(UIMenuStoreInfo) < partition_size)) {
|
||||||
char sys_mtd_dev_path[128] = {'\0'};
|
char sys_mtd_dev_path[128] = {'\0'};
|
||||||
ret = find_sys_mtd_device(sys_mtd_dev_path, sizeof(sys_mtd_dev_path));
|
ret = find_sys_mtd_device(sys_mtd_dev_path, sizeof(sys_mtd_dev_path));
|
||||||
if(ret){
|
if(ret){
|
||||||
|
@ -1051,8 +1056,8 @@ EXIT:
|
||||||
}
|
}
|
||||||
|
|
||||||
memset(tmpInfo, 0xFF, write_size);
|
memset(tmpInfo, 0xFF, write_size);
|
||||||
currentInfo.uhInfoSize = sizeof(currentInfo);
|
currentInfo.uhInfoSize = sizeof(UIMenuStoreInfo);
|
||||||
memcpy(tmpInfo, ¤tInfo, sizeof(currentInfo));
|
memcpy(tmpInfo, ¤tInfo, sizeof(UIMenuStoreInfo));
|
||||||
rw_len = fwrite(tmpInfo, 1, write_size, sys_mtd_fp);
|
rw_len = fwrite(tmpInfo, 1, write_size, sys_mtd_fp);
|
||||||
if(rw_len != (INT32)(write_size)) {
|
if(rw_len != (INT32)(write_size)) {
|
||||||
DBG_ERR("fwrite size not matched(%ld / %ld)!\n", rw_len, write_size);
|
DBG_ERR("fwrite size not matched(%ld / %ld)!\n", rw_len, write_size);
|
||||||
|
@ -1061,11 +1066,12 @@ EXIT:
|
||||||
}
|
}
|
||||||
fflush(sys_mtd_fp);
|
fflush(sys_mtd_fp);
|
||||||
|
|
||||||
UINT32 sum = MemCheck_CalcCheckSum16Bit((UINT32)tmpInfo, sizeof(currentInfo));
|
UINT32 sum = MemCheck_CalcCheckSum16Bit((UINT32)tmpInfo, sizeof(UIMenuStoreInfo));
|
||||||
DBG_DUMP("**************size = %lx / mov size = %u / sum = %lx **************\n",
|
DBG_DUMP("**************size = %lx / CamMode = %u / sum = %lx **************\n",
|
||||||
sizeof(currentInfo),
|
sizeof(UIMenuStoreInfo),
|
||||||
((UIMenuStoreInfo*)tmpInfo)->UIParameter[FL_MOVIE_SIZE],
|
((UIMenuStoreInfo*)tmpInfo)->UIParameter[CamMode],
|
||||||
sum);
|
sum);
|
||||||
|
sf_share_mem_customer_down(0);
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
DBG_ERR("can't get partition info or menu info size exceed partition size!\n");
|
DBG_ERR("can't get partition info or menu info size exceed partition size!\n");
|
||||||
|
@ -1690,7 +1696,7 @@ void SysResetFlag(void)
|
||||||
SysSetFlag(TimeSend2Switch, DEFAULT_TIMESEND2_SWITCH);
|
SysSetFlag(TimeSend2Switch, DEFAULT_TIMESEND2_SWITCH);
|
||||||
SysSetFlag(TimeSend3Switch, DEFAULT_TIMESEND3_SWITCH);
|
SysSetFlag(TimeSend3Switch, DEFAULT_TIMESEND3_SWITCH);
|
||||||
SysSetFlag(TimeSend4Switch, DEFAULT_TIMESEND4_SWITCH);
|
SysSetFlag(TimeSend4Switch, DEFAULT_TIMESEND4_SWITCH);
|
||||||
//sf_set_pir_sensitivity(7);
|
sf_set_pir_sensitivity(7);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -17,9 +17,9 @@ typedef struct sf_PARA_TIME_S
|
||||||
UINT16 Mon;
|
UINT16 Mon;
|
||||||
UINT16 Day;
|
UINT16 Day;
|
||||||
|
|
||||||
UINT8 Hour;
|
UINT16 Hour;
|
||||||
UINT8 Min;
|
UINT16 Min;
|
||||||
UINT8 Sec;
|
UINT16 Sec;
|
||||||
} SF_PARA_TIME_S;
|
} SF_PARA_TIME_S;
|
||||||
|
|
||||||
typedef struct sf_WORKTIME_S
|
typedef struct sf_WORKTIME_S
|
||||||
|
|
|
@ -147,9 +147,9 @@ static MOVIE_SIZE_ITEM g_MovieSizeTable[] = {
|
||||||
},
|
},
|
||||||
|
|
||||||
[MOVIE_SIZE_1920x1080P30] = {
|
[MOVIE_SIZE_1920x1080P30] = {
|
||||||
{1920, 1080, 30, 1200 * 1024, MEDIAREC_DAR_DEFAULT, IMAGERATIO_16_9},
|
{1920, 1080, 30, 400 * 1024, MEDIAREC_DAR_DEFAULT, IMAGERATIO_16_9},
|
||||||
{1, 3, 36, 8, -8, 0},
|
{1, 3, 36, 8, -8, 0},
|
||||||
{1, 4, 30, 1200 * 1024, 15, 26, 15, 45, 26, 15, 45, 0, 1, 8, 4},
|
{1, 4, 30, 400 * 1024, 15, 26, 15, 45, 26, 15, 45, 0, 1, 8, 4},
|
||||||
},
|
},
|
||||||
|
|
||||||
[MOVIE_SIZE_1280x720P240] = {
|
[MOVIE_SIZE_1280x720P240] = {
|
||||||
|
@ -171,15 +171,15 @@ static MOVIE_SIZE_ITEM g_MovieSizeTable[] = {
|
||||||
},
|
},
|
||||||
|
|
||||||
[MOVIE_SIZE_1280x720P30] = {
|
[MOVIE_SIZE_1280x720P30] = {
|
||||||
{1280, 720, 30, 450 * 1024, MEDIAREC_DAR_DEFAULT, IMAGERATIO_16_9},
|
{1280, 720, 30, 240 * 1024, MEDIAREC_DAR_DEFAULT, IMAGERATIO_16_9},
|
||||||
{1, 3, 36, 8, -8, 0},
|
{1, 3, 36, 8, -8, 0},
|
||||||
{1, 4, 30, 450 * 1024, 15, 26, 15, 45, 26, 15, 45, 0, 1, 8, 4},
|
{1, 4, 30, 240 * 1024, 15, 26, 15, 45, 26, 15, 45, 0, 1, 8, 4},
|
||||||
},
|
},
|
||||||
|
|
||||||
[MOVIE_SIZE_848x480P30] = {
|
[MOVIE_SIZE_848x480P30] = {
|
||||||
{848, 480, 30, 200 * 1024, MEDIAREC_DAR_DEFAULT, IMAGERATIO_16_9},
|
{848, 480, 30, 120 * 1024, MEDIAREC_DAR_DEFAULT, IMAGERATIO_16_9},
|
||||||
{1, 3, 36, 8, -8, 0},
|
{1, 3, 36, 8, -8, 0},
|
||||||
{1, 4, 30, 200 * 1024, 15, 26, 15, 45, 26, 15, 45, 0, 1, 8, 4},
|
{1, 4, 30, 120 * 1024, 15, 26, 15, 45, 26, 15, 45, 0, 1, 8, 4},
|
||||||
},
|
},
|
||||||
|
|
||||||
[MOVIE_SIZE_848x480P30_WIFI] = {
|
[MOVIE_SIZE_848x480P30_WIFI] = {
|
||||||
|
|
|
@ -47,6 +47,15 @@ static PHOTO_SIZE_PARAM g_PhotoCapSizeTable[PHOTO_SIZE_ID_MAX + 2] = {
|
||||||
{1920, 1080, IMAGERATIO_16_9, "2MHD"}, // 2MHD
|
{1920, 1080, IMAGERATIO_16_9, "2MHD"}, // 2MHD
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
static PHOTO_SIZE_PARAM g_ScreenNailSizeTable[PHOTO_SIZE_ID_MAX + 2] = {
|
||||||
|
#if defined(_MODEL_565_HUNTING_EVB_LINUX_4G_68CS_)
|
||||||
|
{1024, 768, IMAGERATIO_4_3, "0.78M"}, // 0.78M
|
||||||
|
#elif defined(_MODEL_565_HUNTING_EVB_LINUX_4G_S530_)
|
||||||
|
{640, 480, IMAGERATIO_4_3, "VGA"}, // VGA
|
||||||
|
#endif
|
||||||
|
};
|
||||||
|
|
||||||
const CHAR *Get_SizeString(UINT32 uiIndex)
|
const CHAR *Get_SizeString(UINT32 uiIndex)
|
||||||
{
|
{
|
||||||
if (uiIndex < PHOTO_SIZE_ID_MAX) {
|
if (uiIndex < PHOTO_SIZE_ID_MAX) {
|
||||||
|
@ -71,6 +80,21 @@ UINT32 GetPhotoSizeRatio(UINT32 ubIndex)
|
||||||
return g_PhotoCapSizeTable[ubIndex].uiImageRatio;
|
return g_PhotoCapSizeTable[ubIndex].uiImageRatio;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
UINT32 sf_get_screen_nail_width(UINT32 ubIndex)
|
||||||
|
{
|
||||||
|
return g_ScreenNailSizeTable[ubIndex].uiWidth;
|
||||||
|
}
|
||||||
|
|
||||||
|
UINT32 sf_get_screen_nail_height(UINT32 ubIndex)
|
||||||
|
{
|
||||||
|
return g_ScreenNailSizeTable[ubIndex].uiHeight;
|
||||||
|
}
|
||||||
|
|
||||||
|
UINT32 sf_get_screen_nail_ratio(UINT32 ubIndex)
|
||||||
|
{
|
||||||
|
return g_ScreenNailSizeTable[ubIndex].uiImageRatio;
|
||||||
|
}
|
||||||
|
|
||||||
/*************************************************
|
/*************************************************
|
||||||
Dzoom string handling
|
Dzoom string handling
|
||||||
**************************************************/
|
**************************************************/
|
||||||
|
|
|
@ -4,6 +4,9 @@
|
||||||
extern UINT32 GetPhotoSizeWidth(UINT32 ubIndex);
|
extern UINT32 GetPhotoSizeWidth(UINT32 ubIndex);
|
||||||
extern UINT32 GetPhotoSizeHeight(UINT32 ubIndex);
|
extern UINT32 GetPhotoSizeHeight(UINT32 ubIndex);
|
||||||
extern UINT32 GetPhotoSizeRatio(UINT32 ubIndex);
|
extern UINT32 GetPhotoSizeRatio(UINT32 ubIndex);
|
||||||
|
extern UINT32 sf_get_screen_nail_width(UINT32 ubIndex);
|
||||||
|
extern UINT32 sf_get_screen_nail_height(UINT32 ubIndex);
|
||||||
|
extern UINT32 sf_get_screen_nail_ratio(UINT32 ubIndex);
|
||||||
extern CHAR *Get_DZoomRatioString(void);
|
extern CHAR *Get_DZoomRatioString(void);
|
||||||
extern UINT32 Get_AFWindowIndexFromValue(UINT32 value);
|
extern UINT32 Get_AFWindowIndexFromValue(UINT32 value);
|
||||||
extern UINT32 Get_AFWindowValue(UINT32 uhIndex);
|
extern UINT32 Get_AFWindowValue(UINT32 uhIndex);
|
||||||
|
|
|
@ -30,7 +30,7 @@ else
|
||||||
endif
|
endif
|
||||||
|
|
||||||
SIFAR_DIR = $(LIBRARY_DIR)/source/sifar/code
|
SIFAR_DIR = $(LIBRARY_DIR)/source/sifar/code
|
||||||
SIFAR_APP_DIR = ./code/include
|
SIFAR_APP_DIR = $(APP_DIR)/source/sf_app/code/include
|
||||||
|
|
||||||
#LIB DIRs for C_LDFLAGS
|
#LIB DIRs for C_LDFLAGS
|
||||||
EXTRA_LIB_DIR += \
|
EXTRA_LIB_DIR += \
|
||||||
|
@ -206,6 +206,10 @@ EXTRA_LIB += \
|
||||||
SRC = \
|
SRC = \
|
||||||
./code/source/app/sf_device.c \
|
./code/source/app/sf_device.c \
|
||||||
./code/source/app/sf_app.c \
|
./code/source/app/sf_app.c \
|
||||||
|
./code/source/app/sf_common.c \
|
||||||
|
./code/source/app/sf_system.c \
|
||||||
|
./code/source/app/sf_service.c \
|
||||||
|
./code/source/app/sf_dbg.c \
|
||||||
./code/source/gpio/sf_hal_gpio.c \
|
./code/source/gpio/sf_hal_gpio.c \
|
||||||
./code/source/logMng/sf_log.c \
|
./code/source/logMng/sf_log.c \
|
||||||
./code/source/commMng/sf_message_queue.c \
|
./code/source/commMng/sf_message_queue.c \
|
||||||
|
@ -250,9 +254,10 @@ SRC = \
|
||||||
./code/source/devMng/sf_ledmng.c \
|
./code/source/devMng/sf_ledmng.c \
|
||||||
./code/source/utils/mbedtls.c \
|
./code/source/utils/mbedtls.c \
|
||||||
./code/source/utils/sf_aes.c \
|
./code/source/utils/sf_aes.c \
|
||||||
./code/source/debugMng/sf_debug.c
|
./code/source/debugMng/sf_debug.c \
|
||||||
|
./code/source/updataMng/sf_md5.c \
|
||||||
|
./code/source/updataMng/sf_otamng.c
|
||||||
|
|
||||||
#--------- END OF SOURCEs FOR APPLICATION ---------------------------------------------
|
#--------- END OF SOURCEs FOR APPLICATION ---------------------------------------------
|
||||||
|
|
||||||
#--------- ENVIRONMENT SETTING --------------------
|
#--------- ENVIRONMENT SETTING --------------------
|
||||||
|
|
|
@ -7,6 +7,7 @@ extern "C" {
|
||||||
#endif
|
#endif
|
||||||
#include "sf_type.h"
|
#include "sf_type.h"
|
||||||
#include "sf_param_common.h"
|
#include "sf_param_common.h"
|
||||||
|
//#include "UIInfo/UIInfo.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -22,7 +23,8 @@ SINT32 sf_share_mem_file_init(void);
|
||||||
|
|
||||||
SINT32 sf_share_mem_file_deinit(void);
|
SINT32 sf_share_mem_file_deinit(void);
|
||||||
|
|
||||||
SINT32 sf_share_mem_customer_init(void);
|
SINT32 sf_share_mem_customer_update(void);
|
||||||
|
SINT32 sf_share_mem_customer_down(UINT32 to);
|
||||||
|
|
||||||
SINT32 sf_share_mem_customer_deinit(void);
|
SINT32 sf_share_mem_customer_deinit(void);
|
||||||
|
|
||||||
|
|
20
code/application/source/sf_app/code/include/sf_common.h
Executable file
20
code/application/source/sf_app/code/include/sf_common.h
Executable file
|
@ -0,0 +1,20 @@
|
||||||
|
|
||||||
|
#ifndef __SF_COMMON_H__
|
||||||
|
#define __SF_COMMON_H__
|
||||||
|
#ifdef __cplusplus
|
||||||
|
#if __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
void app_message_recv_start(void);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
#if __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
|
@ -31,7 +31,8 @@
|
||||||
|
|
||||||
#define REG_SIZE 91
|
#define REG_SIZE 91
|
||||||
|
|
||||||
#define SF_MCU_NIGHT_MODE_LUMINANCE 380
|
#define SF_MCU_NIGHT_MODE_LUMINANCE 600
|
||||||
|
#define SF_BATT_RECOVERY 72 //S530
|
||||||
|
|
||||||
/*REG POWER_OFFON*/
|
/*REG POWER_OFFON*/
|
||||||
#define MCU_MODE_AUTO 0x00
|
#define MCU_MODE_AUTO 0x00
|
||||||
|
@ -307,7 +308,7 @@ typedef struct sf_TIME_S {
|
||||||
unsigned char sf_mcu_power_on_para_get (MCUParam_t attrId);
|
unsigned char sf_mcu_power_on_para_get (MCUParam_t attrId);
|
||||||
unsigned char sf_mcu_wdg_set(unsigned char value);
|
unsigned char sf_mcu_wdg_set(unsigned char value);
|
||||||
void sf_mcu_poweron_4g_module(void);
|
void sf_mcu_poweron_4g_module(void);
|
||||||
unsigned char sf_mcu_start_mode_get(void);
|
//unsigned char sf_mcu_start_mode_get(void);
|
||||||
|
|
||||||
SF_BOOL sf_is_night_mode(unsigned int isRefresh);
|
SF_BOOL sf_is_night_mode(unsigned int isRefresh);
|
||||||
unsigned char sf_mcu_rtc_get (SF_TIME_S *time);
|
unsigned char sf_mcu_rtc_get (SF_TIME_S *time);
|
||||||
|
@ -333,8 +334,13 @@ int sf_get_last_light_val(void);
|
||||||
SF_TIME_S sf_get_mcu_poweroff_date(void);
|
SF_TIME_S sf_get_mcu_poweroff_date(void);
|
||||||
void sf_set_mcu_poweroff_date(SF_PARA_TIME_S date);
|
void sf_set_mcu_poweroff_date(SF_PARA_TIME_S date);
|
||||||
|
|
||||||
|
UINT8 sf_get_power_on_mode(void);
|
||||||
|
BOOL sf_get_mode_flag(void);
|
||||||
|
UINT8 sf_convert_power_on_mode(void);
|
||||||
|
int sf_mcu_init(void);
|
||||||
|
unsigned char sf_mcu_wdg_off(void);
|
||||||
|
void sf_set_module_sleep_flag(UINT8 flag);
|
||||||
|
|
||||||
extern unsigned char PowerOnMode;
|
|
||||||
extern unsigned short TrigType;
|
extern unsigned short TrigType;
|
||||||
|
|
||||||
|
|
||||||
|
|
90
code/application/source/sf_app/code/include/sf_dbg.h
Executable file
90
code/application/source/sf_app/code/include/sf_dbg.h
Executable file
|
@ -0,0 +1,90 @@
|
||||||
|
|
||||||
|
#ifndef __SF_DBG_H__
|
||||||
|
#define __SF_DBG_H__
|
||||||
|
#ifdef __cplusplus
|
||||||
|
#if __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
#include "sf_type.h"
|
||||||
|
#include "sf_param_common.h"
|
||||||
|
#define DEBUG_CMD_FIFO_FATH "/tmp/sf_debug"
|
||||||
|
|
||||||
|
|
||||||
|
SINT32 app_debug_camname(SINT32 argc, SF_CHAR **argv[]);
|
||||||
|
|
||||||
|
SINT32 app_debug_cameraMode(SINT32 argc, SF_CHAR **argv[]);
|
||||||
|
|
||||||
|
SINT32 app_debug_imageSize(SINT32 argc, SF_CHAR **argv[]);
|
||||||
|
|
||||||
|
SINT32 app_debug_flashled(SINT32 argc, SF_CHAR **argv[]);
|
||||||
|
|
||||||
|
SINT32 app_debug_multishot(SINT32 argc, SF_CHAR **argv[]);
|
||||||
|
|
||||||
|
SINT32 app_debug_videosize(SINT32 argc, SF_CHAR **argv[]);
|
||||||
|
|
||||||
|
SINT32 app_debug_videolen(SINT32 argc, SF_CHAR **argv[]);
|
||||||
|
|
||||||
|
SINT32 app_debug_nightmode(SINT32 argc, SF_CHAR **argv[]);
|
||||||
|
|
||||||
|
SINT32 app_debug_pirsenDig(SINT32 argc, SF_CHAR **argv[]);
|
||||||
|
|
||||||
|
SINT32 app_debug_pirdelay(SINT32 argc, SF_CHAR **argv[]);
|
||||||
|
|
||||||
|
SINT32 app_debug_timelapse(SINT32 argc, SF_CHAR **argv[]);
|
||||||
|
|
||||||
|
SINT32 app_debug_worktime(SINT32 argc, SF_CHAR **argv[]);
|
||||||
|
|
||||||
|
SINT32 app_debug_maxNum(SINT32 argc, SF_CHAR **argv[]);
|
||||||
|
|
||||||
|
SINT32 app_debug_dailyreport(SINT32 argc, SF_CHAR **argv[]);
|
||||||
|
|
||||||
|
SINT32 app_debug_gps(SINT32 argc, SF_CHAR **argv[]);
|
||||||
|
|
||||||
|
SINT32 app_debug_batterytype(SINT32 argc, SF_CHAR **argv[]);
|
||||||
|
|
||||||
|
SINT32 app_debug_stamp(SINT32 argc, SF_CHAR **argv[]);
|
||||||
|
|
||||||
|
SINT32 app_debug_sdcycle(SINT32 argc, SF_CHAR **argv[]);
|
||||||
|
|
||||||
|
SINT32 app_debug_datestyle(SINT32 argc, SF_CHAR **argv[]);
|
||||||
|
|
||||||
|
SINT32 app_debug_mcuw(SINT32 argc, SF_CHAR **argv[]);
|
||||||
|
|
||||||
|
SINT32 app_debug_mcur(SINT32 argc, SF_CHAR **argv[]);
|
||||||
|
|
||||||
|
SINT32 app_debug_debugmode(SINT32 argc, SF_CHAR **argv[]);
|
||||||
|
|
||||||
|
SINT32 app_debug_help(SINT32 argc, SF_CHAR **argv[]);
|
||||||
|
|
||||||
|
SINT32 app_debug_save(SINT32 argc, SF_CHAR **argv[]);
|
||||||
|
|
||||||
|
SINT32 app_debug_cleartime(SINT32 argc, SF_CHAR **argv[]);
|
||||||
|
|
||||||
|
SINT32 app_debug_signal(SINT32 argc, SF_CHAR **argv[]);
|
||||||
|
|
||||||
|
SINT32 app_debug_ver(SINT32 argc, SF_CHAR **argv[]);
|
||||||
|
|
||||||
|
|
||||||
|
SINT32 app_debug_process(SINT32 argc, SF_CHAR **argv[]);
|
||||||
|
|
||||||
|
|
||||||
|
SINT32 app_debug_init(void);
|
||||||
|
|
||||||
|
SINT32 app_debug_create(void);
|
||||||
|
|
||||||
|
SINT32 app_debug_start(void);
|
||||||
|
|
||||||
|
SINT32 app_debug_stop(void);
|
||||||
|
|
||||||
|
SINT32 app_debug_deinit(void);
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
#if __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
|
@ -5,29 +5,12 @@
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
//#include <io/gpio.h>
|
||||||
#include <sf_type.h>
|
#include <sf_type.h>
|
||||||
#include "sf_param_common.h"
|
#include "sf_param_common.h"
|
||||||
typedef enum sfHAL_LED_GPIO_IDX_E
|
#include <sf_ledmng.h>
|
||||||
{
|
|
||||||
SF_HAL_LED_IDX_0 = 0, /**<led index 0*/
|
|
||||||
SF_HAL_LED_IDX_1,
|
|
||||||
SF_HAL_LED_STATUS_G = 45,
|
|
||||||
SF_HAL_LED_WIFI = 45,
|
|
||||||
|
|
||||||
SF_HAL_LED_SD_G = 76,
|
|
||||||
SF_HAL_LED_SD_R = 77,
|
|
||||||
|
|
||||||
SF_HAL_LED_BAT_G = 62,
|
|
||||||
SF_HAL_LED_BAT_R = 63,
|
|
||||||
|
|
||||||
SF_HAL_LED_SIG1_R = 65,
|
|
||||||
SF_HAL_LED_SIG1_G = 64,
|
|
||||||
|
|
||||||
|
|
||||||
SF_HAL_LED_USERBIND_R = 47,
|
|
||||||
SF_HAL_LED_USERBIND_G = 46,
|
|
||||||
SF_HAL_LED_IDX_BUIT,
|
|
||||||
} SF_LED_GPIO_IDX_E;
|
|
||||||
typedef enum sfHAL_LED_STATE_E
|
typedef enum sfHAL_LED_STATE_E
|
||||||
{
|
{
|
||||||
SF_HAL_LED_STATE_OFF = 0,/**<led off state*/
|
SF_HAL_LED_STATE_OFF = 0,/**<led off state*/
|
||||||
|
@ -56,9 +39,25 @@ SINT32 app_led_group_register(void);
|
||||||
|
|
||||||
SINT32 app_led_pin_init(void);
|
SINT32 app_led_pin_init(void);
|
||||||
|
|
||||||
|
SINT32 sf_in_card_exist(void);
|
||||||
|
|
||||||
|
SINT32 sf_is_card_full(void);
|
||||||
|
|
||||||
|
void sf_set_card_full(SINT32 vol);
|
||||||
|
|
||||||
|
SINT32 sf_is_card(void);
|
||||||
|
|
||||||
|
void sf_set_card(SINT32 vol);
|
||||||
|
|
||||||
|
SINT32 sf_get_pir_statu_flag(void);
|
||||||
|
|
||||||
|
void sf_set_pir_statu_flag(SINT32 flag);
|
||||||
|
|
||||||
|
BOOL sf_load_ko(void);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
#if __cplusplus
|
#if __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -49,9 +49,9 @@ typedef enum SIM_SEARCH_GPS_E
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static unsigned long int gps_get_seconds(SF_PARA_TIME_S *pTime);
|
//static unsigned long int gps_get_seconds(SF_PARA_TIME_S *pTime);
|
||||||
static int gps_diffSec_from_date(SF_PARA_TIME_S *pnowDate, SF_PARA_TIME_S *poldDate);
|
//static int gps_diffSec_from_date(SF_PARA_TIME_S *pnowDate, SF_PARA_TIME_S *poldDate);
|
||||||
static void gps_infor_convert(SF_CHAR *str);
|
//static void gps_infor_convert(SF_CHAR *str);
|
||||||
SINT16 eg91_gps_greendate_Get(SF_FN_PARAM_S *pfnParam,SF_PARA_TIME_S *pNowTime);
|
SINT16 eg91_gps_greendate_Get(SF_FN_PARAM_S *pfnParam,SF_PARA_TIME_S *pNowTime);
|
||||||
|
|
||||||
SINT32 eg91_gps_search_result(SF_FN_PARAM_S *pfnParam);
|
SINT32 eg91_gps_search_result(SF_FN_PARAM_S *pfnParam);
|
||||||
|
|
|
@ -12,6 +12,7 @@ extern "C" {
|
||||||
#define GPIO_ID_VALUE "/sys/class/gpio/gpio%d/value"
|
#define GPIO_ID_VALUE "/sys/class/gpio/gpio%d/value"
|
||||||
#define GPIO_UNEXPORT "/sys/class/gpio/unexport"
|
#define GPIO_UNEXPORT "/sys/class/gpio/unexport"
|
||||||
|
|
||||||
|
#define SF_GPIO_CARD_DETECT 9
|
||||||
|
|
||||||
SINT32 sf_hal_gpio_init(U32 gpio_num, int dir);
|
SINT32 sf_hal_gpio_init(U32 gpio_num, int dir);
|
||||||
|
|
||||||
|
@ -21,6 +22,8 @@ SINT32 sf_hal_gpio_get(U32 gpio_num, SINT8 *nval);
|
||||||
|
|
||||||
SINT32 sf_hal_gpio_deinit(U32 gpioNum);
|
SINT32 sf_hal_gpio_deinit(U32 gpioNum);
|
||||||
|
|
||||||
|
void sf_usb_mux_s(UINT32 cnt);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
#if __cplusplus
|
#if __cplusplus
|
||||||
}
|
}
|
||||||
|
|
|
@ -34,7 +34,7 @@ SINT32 sf_usbnet_server_acm_open(SF_PDT_PARAM_STATISTICS_S *pStaticParam);
|
||||||
|
|
||||||
SINT32 sf_usbnet_server_acm_transfer(SF_DATA_ATTR_S *psenddate);
|
SINT32 sf_usbnet_server_acm_transfer(SF_DATA_ATTR_S *psenddate);
|
||||||
|
|
||||||
SINT32 sf_usbnet_server_acm_close();
|
SINT32 sf_usbnet_server_acm_close(void);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -16,7 +16,7 @@ extern "C" {
|
||||||
typedef enum sf_KEY_PIN_E
|
typedef enum sf_KEY_PIN_E
|
||||||
{
|
{
|
||||||
SF_KEY_PIN_RESET = 69,
|
SF_KEY_PIN_RESET = 69,
|
||||||
SF_KEY_PIN_SYNC = 7,
|
SF_KEY_PIN_SYNC = 4,
|
||||||
SF_KEY_PIN_FORMAT = 66,
|
SF_KEY_PIN_FORMAT = 66,
|
||||||
SF_KEY_PIN_DATAREADY = 6,
|
SF_KEY_PIN_DATAREADY = 6,
|
||||||
SF_KEY_PIN_FILESTATUS = 128,/*virtual key*/
|
SF_KEY_PIN_FILESTATUS = 128,/*virtual key*/
|
||||||
|
|
|
@ -10,6 +10,60 @@ extern "C" {
|
||||||
|
|
||||||
#define LED_GRPOUP_MAX 100
|
#define LED_GRPOUP_MAX 100
|
||||||
|
|
||||||
|
/*LCD GPIO - LGPIO*/
|
||||||
|
#define SF_L_GPIO_SHIFT_BASE 96
|
||||||
|
#define SF_L_GPIO_0 (0 +SF_L_GPIO_SHIFT_BASE) ///< L_GPIO[0]
|
||||||
|
#define SF_L_GPIO_1 (1 +SF_L_GPIO_SHIFT_BASE) ///< L_GPIO[1]
|
||||||
|
|
||||||
|
/*Peripheral GPIO - PGPIO*/
|
||||||
|
#define SF_P_GPIO_SHIFT_BASE 32
|
||||||
|
#define SF_P_GPIO_8 (8 +SF_P_GPIO_SHIFT_BASE) ///< P_GPIO[8]
|
||||||
|
#define SF_P_GPIO_10 (10+SF_P_GPIO_SHIFT_BASE) ///< P_GPIO[10]
|
||||||
|
|
||||||
|
/*GPIO DSI Data register*/
|
||||||
|
#define SF_DSI_GPIO_SHIFT_BASE 224
|
||||||
|
#define SF_DSI_GPIO_0 (0 + SF_DSI_GPIO_SHIFT_BASE) ///< DSI_GPIO[0]
|
||||||
|
#define SF_DSI_GPIO_1 (1 + SF_DSI_GPIO_SHIFT_BASE) ///< DSI_GPIO[1]
|
||||||
|
#define SF_DSI_GPIO_2 (2 + SF_DSI_GPIO_SHIFT_BASE) ///< DSI_GPIO[2]
|
||||||
|
#define SF_DSI_GPIO_3 (3 + SF_DSI_GPIO_SHIFT_BASE) ///< DSI_GPIO[3]
|
||||||
|
#define SF_DSI_GPIO_4 (4 + SF_DSI_GPIO_SHIFT_BASE) ///< DSI_GPIO[4]
|
||||||
|
#define SF_DSI_GPIO_5 (5 + SF_DSI_GPIO_SHIFT_BASE) ///< DSI_GPIO[5]
|
||||||
|
#define SF_DSI_GPIO_6 (6 + SF_DSI_GPIO_SHIFT_BASE) ///< DSI_GPIO[6]
|
||||||
|
#define SF_DSI_GPIO_7 (7 + SF_DSI_GPIO_SHIFT_BASE) ///< DSI_GPIO[7]
|
||||||
|
#define SF_DSI_GPIO_8 (8 + SF_DSI_GPIO_SHIFT_BASE) ///< DSI_GPIO[8]
|
||||||
|
#define SF_DSI_GPIO_9 (9 + SF_DSI_GPIO_SHIFT_BASE) ///< DSI_GPIO[9]
|
||||||
|
#define SF_DSI_GPIO_10 (10+ SF_DSI_GPIO_SHIFT_BASE) ///< DSI_GPIO[10]
|
||||||
|
|
||||||
|
typedef enum sfHAL_LED_GPIO_IDX_E
|
||||||
|
{
|
||||||
|
SF_HAL_LED_IDX_0 = 0, /**<led index 0*/
|
||||||
|
SF_HAL_LED_IDX_1,
|
||||||
|
SF_HAL_LED_STATUS_R = SF_DSI_GPIO_8,
|
||||||
|
SF_HAL_LED_STATUS_G = SF_DSI_GPIO_9,
|
||||||
|
SF_HAL_LED_WIFI = SF_DSI_GPIO_6,
|
||||||
|
|
||||||
|
SF_HAL_LED_SD_G = SF_DSI_GPIO_7,
|
||||||
|
SF_HAL_LED_SD_R = SF_DSI_GPIO_4,
|
||||||
|
SF_HAL_LED_BAT1 = SF_DSI_GPIO_5,
|
||||||
|
SF_HAL_LED_BAT2 = SF_DSI_GPIO_2,
|
||||||
|
SF_HAL_LED_BAT3 = SF_DSI_GPIO_3,
|
||||||
|
SF_HAL_LED_BAT4 = SF_DSI_GPIO_0,
|
||||||
|
|
||||||
|
SF_HAL_LED_BAT_G = 62,
|
||||||
|
SF_HAL_LED_BAT_R = 63,
|
||||||
|
|
||||||
|
SF_HAL_LED_SIG1_R = SF_DSI_GPIO_10,
|
||||||
|
SF_HAL_LED_SIG1_G = SF_DSI_GPIO_1,
|
||||||
|
SF_HAL_LED_SIG_2 = SF_L_GPIO_1,
|
||||||
|
SF_HAL_LED_SIG_3 = SF_L_GPIO_0,
|
||||||
|
SF_HAL_LED_SIG_4 = SF_P_GPIO_8,
|
||||||
|
SF_HAL_LED_BUSY = SF_P_GPIO_10,
|
||||||
|
|
||||||
|
SF_HAL_LED_USERBIND_R = 47,
|
||||||
|
SF_HAL_LED_USERBIND_G = 46,
|
||||||
|
SF_HAL_LED_IDX_BUIT,
|
||||||
|
} SF_LED_GPIO_IDX_E;
|
||||||
|
|
||||||
typedef enum _SF_LED_STATUS_E
|
typedef enum _SF_LED_STATUS_E
|
||||||
{
|
{
|
||||||
LED_STATUS_HOLD_OFF = 0,
|
LED_STATUS_HOLD_OFF = 0,
|
||||||
|
@ -81,6 +135,99 @@ SINT32 sf_led_event_process(SINT32 arg1,SINT32 arg2,SINT32 arg3);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#include "UIInfo/UIInfo.h"
|
||||||
|
|
||||||
|
typedef enum LedId_e
|
||||||
|
{
|
||||||
|
#if HW_S530
|
||||||
|
SF_LED_STATUS_R,
|
||||||
|
SF_LED_STATUS_G,
|
||||||
|
SF_LED_SD_G,
|
||||||
|
SF_LED_SD_R,
|
||||||
|
SF_LED_WIFI,
|
||||||
|
SF_LED_BAT1,
|
||||||
|
SF_LED_BAT2,
|
||||||
|
SF_LED_BAT3,
|
||||||
|
SF_LED_BAT4,
|
||||||
|
SF_LED_SIG1_R,
|
||||||
|
SF_LED_SIG1_G,
|
||||||
|
SF_LED_SIG2,
|
||||||
|
SF_LED_SIG3,
|
||||||
|
SF_LED_SIG4,
|
||||||
|
#endif
|
||||||
|
SF_LED_BUSY,
|
||||||
|
SF_LED_ALL,
|
||||||
|
}LedId_t;
|
||||||
|
|
||||||
|
typedef enum Ledstate_e
|
||||||
|
{
|
||||||
|
SF_LED_STATE_OFF,
|
||||||
|
SF_LED_STATE_ON,
|
||||||
|
SF_LED_STATE_SLOW_FLASHING,/*0.5s*/
|
||||||
|
SF_LED_STATE_FLASHING, /*1s*/
|
||||||
|
}Ledstate_t;
|
||||||
|
|
||||||
|
typedef enum LedSysState_e
|
||||||
|
{
|
||||||
|
SF_LED_SYS_STATE_ERROR,
|
||||||
|
SF_LED_SYS_STATE_NORMAL,
|
||||||
|
SF_LED_SYS_STATE_UPDATE,
|
||||||
|
SF_LED_SYS_STATE_SENDING,
|
||||||
|
SF_LED_SYS_STATE_SEND_FAIL,
|
||||||
|
SF_LED_SYS_STATE_SEND_SUCCESS,
|
||||||
|
SF_LED_SYS_STATE_SD_NORMAL,/*6*/
|
||||||
|
SF_LED_SYS_STATE_SD_ERROR,
|
||||||
|
SF_LED_SYS_STATE_SD_FULL,
|
||||||
|
SF_LED_SYS_STATE_SD_FORMAT_START,
|
||||||
|
SF_LED_SYS_STATE_SD_FORMAT_SUCCESS,
|
||||||
|
SF_LED_SYS_STATE_SD_FORMAT_FAIL,
|
||||||
|
SF_LED_SYS_STATE_SD_FORMAT_EXIT,
|
||||||
|
SF_LED_SYS_STATE_WIFI_DISCONNECT,/*13*/
|
||||||
|
SF_LED_SYS_STATE_WIFI_CONNECTED,
|
||||||
|
SF_LED_SYS_STATE_BAT_0,/*15*/
|
||||||
|
SF_LED_SYS_STATE_BAT_1,
|
||||||
|
SF_LED_SYS_STATE_BAT_2,
|
||||||
|
SF_LED_SYS_STATE_BAT_3,
|
||||||
|
SF_LED_SYS_STATE_BAT_4,
|
||||||
|
/*SF_LED_SYS_STATE_BAT_LOW,*/
|
||||||
|
SF_LED_SYS_STATE_GPRS_NO_SIGNAL,/*20*/
|
||||||
|
SF_LED_SYS_STATE_GPRS_SIGNAL_0,
|
||||||
|
SF_LED_SYS_STATE_GPRS_SIGNAL_1,
|
||||||
|
SF_LED_SYS_STATE_GPRS_SIGNAL_2,
|
||||||
|
SF_LED_SYS_STATE_GPRS_SIGNAL_3,
|
||||||
|
SF_LED_SYS_STATE_GPRS_SIGNAL_4,
|
||||||
|
SF_LED_SYS_STATE_GPRS_SEARCH,/*26*/
|
||||||
|
SF_LED_SYS_STATE_SIM_ERROR,
|
||||||
|
SF_LED_SYS_STATE_SERVER_FAIL,
|
||||||
|
SF_LED_SYS_STATE_DEBUG_ON,
|
||||||
|
SF_LED_SYS_STATE_DEBUG_OFF,
|
||||||
|
SF_LED_SYS_STATE_RESET,
|
||||||
|
SF_LED_SYS_STATE_USB_IN,
|
||||||
|
SF_LED_SYS_STATE_GOING_TO_PIR,
|
||||||
|
SF_LED_SYS_STATE_EXIT_GO_TO_PIR,
|
||||||
|
SF_LED_SYS_STATE_POWER_OFF,
|
||||||
|
SF_LED_SYS_STATE_PIR_DETECT,/*36*/
|
||||||
|
SF_LED_SYS_STATE_PIR_NOT_DETECT,
|
||||||
|
}LedSysState_t;
|
||||||
|
|
||||||
|
typedef struct LedInfo_s
|
||||||
|
{
|
||||||
|
LedId_t ledId;
|
||||||
|
Ledstate_t ledstate;
|
||||||
|
UINT16 times;
|
||||||
|
UINT32 gpioNum;
|
||||||
|
}LedInfo_t;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
void sf_led_init(void);
|
||||||
|
void sf_led_go_to_pir(BOOL mode);
|
||||||
|
UINT8 sf_led_set(LedId_t ledId, Ledstate_t ledstate);
|
||||||
|
Ledstate_t sf_led_get(LedId_t ledId);
|
||||||
|
void sf_sys_status_led_set(LedSysState_t ledSysStateId);
|
||||||
|
void sf_trigger_time_led_cb(UINT32 cnt);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -47,6 +47,11 @@ SINT32 sf_upgrade_ota_reset(void);
|
||||||
|
|
||||||
SINT32 sf_upgrade_ota_deinit(void);
|
SINT32 sf_upgrade_ota_deinit(void);
|
||||||
|
|
||||||
|
SINT32 sf_upgrade_ota_filecheck(void);
|
||||||
|
|
||||||
|
SINT32 sf_upgrade_ota_param_bak(void);
|
||||||
|
|
||||||
|
SINT32 sf_upgrade_ota_param_recover(void);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
#if __cplusplus
|
#if __cplusplus
|
|
@ -24,7 +24,7 @@ void sf_customer_param_init(void);
|
||||||
|
|
||||||
SF_PDT_PARAM_CFG_S* sf_customer_param_get(void);
|
SF_PDT_PARAM_CFG_S* sf_customer_param_get(void);
|
||||||
|
|
||||||
void sf_customer_param_set(SF_PDT_PARAM_CFG_S *pSfCustomerPara);
|
void sf_customer_param_set(UIMenuStoreInfo *pSfCustomerPara);
|
||||||
|
|
||||||
void sf_customer_param_reset(SF_PDT_PARAM_CFG_S *psfpdtparam,UINT8 sysRet);
|
void sf_customer_param_reset(SF_PDT_PARAM_CFG_S *psfpdtparam,UINT8 sysRet);
|
||||||
|
|
||||||
|
@ -53,9 +53,13 @@ UINT8 sf_cap_status_get(void);
|
||||||
|
|
||||||
SF_URL_S* sf_ota_url_get(void);
|
SF_URL_S* sf_ota_url_get(void);
|
||||||
|
|
||||||
extern void SysSetFlag(UINT32 uiFlag, UINT32 uiValue);
|
extern void sf_sys_set_flag(UINT32 uiFlag, UINT32 uiValue);
|
||||||
extern UINT32 SysGetFlag(UINT32 uiFlag);
|
extern UINT32 sf_sys_get_flag(UINT32 uiFlag);
|
||||||
extern UIMenuStoreInfo* sf_ui_para_get(void);
|
extern UIMenuStoreInfo* sf_app_ui_para_get(void);
|
||||||
|
|
||||||
|
void sf_customer_param_set_down(UIMenuStoreInfo *pSfCustomerPara);
|
||||||
|
|
||||||
|
UINT8 sf_signal_level_get(UINT8 netFlagG, UINT8 cqSignal);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
#if __cplusplus
|
#if __cplusplus
|
||||||
|
|
|
@ -94,18 +94,18 @@ extern "C" {
|
||||||
#define SF_THUMB_FILE_MAX_LEN 20
|
#define SF_THUMB_FILE_MAX_LEN 20
|
||||||
|
|
||||||
|
|
||||||
#define GPIOID_PIR_TEST 3
|
#define GPIOID_PIR_TEST 7 //C_GPIO_7
|
||||||
#define GPIOID_SIM_INSRET 4
|
#define GPIOID_SIM_INSRET 4
|
||||||
#define GPIOID_USB_INSERT 61
|
#define GPIOID_USB_INSERT (128+7) //D_GPIO_7 D_GPIO_SHIFT_BASE 128
|
||||||
#define GPIOID_WIFI_POWER 6
|
#define GPIOID_WIFI_POWER 6
|
||||||
#define GPIOID_USB_MUX1 16 //t100 only one usb mux
|
#define GPIOID_USB_MUX1 32+2 //P_GPIO_2 P_GPIO_SHIFT_BASE 32
|
||||||
#define GPIOID_USB_MUX2 16
|
#define GPIOID_USB_MUX2 16
|
||||||
|
|
||||||
#define GPIOID_ADC_MUXA 52
|
#define GPIOID_ADC_MUXA (128) //P_GPIO_0
|
||||||
#define GPIOID_ADC_MUXB 53
|
#define GPIOID_ADC_MUXB (128+1) //P_GPIO_1
|
||||||
|
|
||||||
#define GPIOID_IRCUT_MEN1 50
|
#define GPIOID_IRCUT_MEN1 (128+6) //D_GPIO_6
|
||||||
#define GPIOID_IRCUT_MEN2 51
|
#define GPIOID_IRCUT_MEN2 (128+5) //D_GPIO_5
|
||||||
|
|
||||||
|
|
||||||
#define SD_WARNING_SPACE 30 /*30MB*/
|
#define SD_WARNING_SPACE 30 /*30MB*/
|
||||||
|
@ -357,17 +357,28 @@ typedef enum sf_MESSAGE_TYPE_E
|
||||||
CMD_FILE = 0x1D00,
|
CMD_FILE = 0x1D00,
|
||||||
CMD_POWEROFF = 0x1E00,
|
CMD_POWEROFF = 0x1E00,
|
||||||
CMD_VENC = 0x1F00,
|
CMD_VENC = 0x1F00,
|
||||||
|
CMD_MCU = 0x1F01,
|
||||||
|
CMD_PARA = 0x1F02,
|
||||||
|
CMD_GPRS = 0x1F03,
|
||||||
|
|
||||||
}SF_MESSAGE_TYPE_E;
|
}SF_MESSAGE_TYPE_E;
|
||||||
|
|
||||||
|
|
||||||
typedef enum sf_MESSAGE_CMD_SD_e
|
typedef enum sf_MESSAGE_CMD_SD_e
|
||||||
{
|
{
|
||||||
CMD_SD_MOUNT_SUCCESS = 0x01,
|
/*CMD_SD_MOUNT_SUCCESS = 0x01,
|
||||||
CMD_SD_ERROR = 0x02,
|
CMD_SD_ERROR = 0x02,
|
||||||
CMD_SD_OUT = 0x03,
|
CMD_SD_OUT = 0x03,
|
||||||
CMD_SD_FULL = 0x04,
|
|
||||||
CMD_SD_MOUNT_FAILURE = 0x05,
|
CMD_SD_MOUNT_FAILURE = 0x05,*/
|
||||||
|
CMD_SD_STRG_CB_UNKNOWN = 0, ///< The type for unknown card status
|
||||||
|
CMD_SD_STRG_CB_INSERTED = 1, ///< The type for calling after card inserted
|
||||||
|
CMD_SD_STRG_CB_REMOVED = 2, ///< The type for calling after card removed
|
||||||
|
CMD_SD_STRG_CB_MOUNT_FINISH = 3, ///< The type for calling after storage mounted
|
||||||
|
CMD_SD_STRG_CB_UNMOUNT_FINISH = 4, ///< The type for calling after storage unmounted
|
||||||
|
CMD_SD_FULL = 5,
|
||||||
|
|
||||||
|
CMD_SD_SYSTEM_CB_CONFIG = 0xFFFFFFFF,
|
||||||
|
|
||||||
}SF_MESSAGE_CMD_SD_E;
|
}SF_MESSAGE_CMD_SD_E;
|
||||||
|
|
||||||
|
@ -421,6 +432,35 @@ typedef enum sf_SIM_TYPE_E
|
||||||
}SF_SIM_TYPE_E;
|
}SF_SIM_TYPE_E;
|
||||||
|
|
||||||
|
|
||||||
|
typedef enum sf_MCU_MESSAGE_TYPE_E
|
||||||
|
{
|
||||||
|
SF_MCU_CMD_IRSHTTER = 0x1A00,
|
||||||
|
SF_MCU_CMD_POWERON = 0x1B00,
|
||||||
|
SF_MCU_CMD_LED = 0x1C00,
|
||||||
|
SF_MCU_CMD_MODULE_SLEEP = 0x1D00,
|
||||||
|
|
||||||
|
|
||||||
|
}SF_MCU_MESSAGE_TYPE_E;
|
||||||
|
|
||||||
|
typedef enum sf_PARA_MESSAGE_TYPE_E
|
||||||
|
{
|
||||||
|
SF_PARA_CMD_UPDATE = 0x1A00,
|
||||||
|
SF_PARA_CMD_DOMN = 0x1B00,
|
||||||
|
|
||||||
|
|
||||||
|
}SF_PARA_MESSAGE_TYPE_E;
|
||||||
|
|
||||||
|
typedef enum _GPRS_SEARCH_STEP_e{
|
||||||
|
GPRS_SEARCH_STEP_IDLE = 0x0,
|
||||||
|
GPRS_SEARCH_STEP_SEARCH,
|
||||||
|
GPRS_SEARCH_STEP_SYNC_TIME,
|
||||||
|
GPRS_SEARCH_STEP_FINISH,
|
||||||
|
GPRS_SEARCH_STEP_LOGIN,
|
||||||
|
GPRS_SEARCH_STEP_LOGIN_SUCCESS,
|
||||||
|
GPRS_SEARCH_STEP_LOGIN_FAILED,
|
||||||
|
GPRS_SEARCH_STEP_GPS_LOCATE,
|
||||||
|
GPRS_SEARCH_STEP_GPS_LOCATE_FINISH,
|
||||||
|
} GPRS_SEARCH_STEP_e;
|
||||||
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
|
|
59
code/application/source/sf_app/code/include/sf_service.h
Executable file
59
code/application/source/sf_app/code/include/sf_service.h
Executable file
|
@ -0,0 +1,59 @@
|
||||||
|
#ifndef __SF_SERVICE_H__
|
||||||
|
#define __SF_SERVICE_H__
|
||||||
|
#ifdef __cplusplus
|
||||||
|
#if __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
#include "sf_type.h"
|
||||||
|
#include "sf_param_common.h"
|
||||||
|
#define QLOG_PATH SF_SD_ROOT"qlog/"
|
||||||
|
|
||||||
|
#define SF_APP_ERROR_NO_SUPPOET SF_ERR_ID(SF_MOD_APP, ERROR_NO_SUPPORT)
|
||||||
|
#define SF_APP_ERROR_REQUEST SF_ERR_ID(SF_MOD_APP, ERROR_REQUEST)
|
||||||
|
#define SF_APP_ERROR_QIACT SF_ERR_ID(SF_MOD_APP, ERROR_AT_ACTIVE)
|
||||||
|
#define SF_APP_ERROR_NO_FILE SF_ERR_ID(SF_MOD_APP, ERROR_NO_FILE)
|
||||||
|
#define SF_APP_ERROR_WRITE SF_ERR_ID(SF_MOD_APP, ERROR_WRITE)
|
||||||
|
#define SF_APP_ERROR_FILE_SEND SF_ERR_ID(SF_MOD_APP, ERROR_FILE_SEND)
|
||||||
|
|
||||||
|
#define SF_APP_CHECK_RANGE(cmd, min,max) \
|
||||||
|
do { \
|
||||||
|
if(cmd < min || cmd > max)\
|
||||||
|
{\
|
||||||
|
MLOGE("Parameter[%d] out of normal range [%#x,%#x)!!!\n",cmd,min,max);\
|
||||||
|
return SF_FAILURE;\
|
||||||
|
} \
|
||||||
|
} while (0)
|
||||||
|
|
||||||
|
|
||||||
|
typedef enum SF_CMD_TYPE_E {
|
||||||
|
SF_CMD_LOGIN_IN,
|
||||||
|
SF_CMD_REPORT_STATE,
|
||||||
|
SF_CMD_PHOTO_RESULT,
|
||||||
|
SF_CMD_QUERYPENDING_CMD,
|
||||||
|
SF_CMD_QUERYPENDING_PARAM,
|
||||||
|
SF_CMD_REPORT_RESULT,
|
||||||
|
SF_CMD_TRIGGER,
|
||||||
|
SF_CMD_DISCON_SEND,
|
||||||
|
SF_CMD_QUERYPENDING_BIND_ACCOUNT,
|
||||||
|
SF_CMD_SYNC_CFG,
|
||||||
|
SF_CMD_BUTT
|
||||||
|
} SF_CMD_TYPE_E;
|
||||||
|
|
||||||
|
SINT16 app_file_upload(SF_FILE_ATTR_S *pstFileAttr, SF_FN_PARAM_S *pfnParam);
|
||||||
|
SF_BOOL app_disconnect_4g_module(void);
|
||||||
|
SINT32 app_ttyusb_IsOpen(void);
|
||||||
|
SINT32 app_file_subscrible_check(SF_REPORT_FILE_ATTR_S *pDtsReportFileAttr,SF_REPORT_FILE_ATTR_S *pSrcReportFileAttr);
|
||||||
|
|
||||||
|
SINT32 app_RegisterNet_start(void);
|
||||||
|
void app_FileSend_start(void);
|
||||||
|
SINT32 app_t110(void);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
#if __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
59
code/application/source/sf_app/code/include/sf_system.h
Executable file
59
code/application/source/sf_app/code/include/sf_system.h
Executable file
|
@ -0,0 +1,59 @@
|
||||||
|
|
||||||
|
#ifndef __SF_SYSTEM_H__
|
||||||
|
#define __SF_SYSTEM_H__
|
||||||
|
#ifdef __cplusplus
|
||||||
|
#if __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
#include "sf_type.h"
|
||||||
|
#include "sf_param_common.h"
|
||||||
|
|
||||||
|
extern SINT32 bUpdateEnble;
|
||||||
|
extern SINT32 s32ThreeWaySwitch;
|
||||||
|
|
||||||
|
void app_poweroff_time_clear(void);
|
||||||
|
|
||||||
|
SINT8 app_flash_poweroff_task_IsRun(void);
|
||||||
|
|
||||||
|
SINT32 app_funkey_switch_check_start(void);
|
||||||
|
|
||||||
|
SINT32 app_funkey_switch_check_stop(void);
|
||||||
|
|
||||||
|
SINT32 app_upgrade_restore_start(void);
|
||||||
|
|
||||||
|
SINT32 app_upgrade_restore_stop(void);
|
||||||
|
|
||||||
|
SINT8 app_upgrade_restore_IsRun(void);
|
||||||
|
|
||||||
|
SINT32 app_system_poweroff(SF_POWEROFF_TYPE_E enType );
|
||||||
|
|
||||||
|
SINT32 app_usb_mode_start(void);
|
||||||
|
|
||||||
|
SINT32 app_system_time_update(unsigned int rtosBootTime) ;
|
||||||
|
|
||||||
|
SINT32 app_system_param_update(void);
|
||||||
|
|
||||||
|
SINT32 app_http_time_by_timezone_set(void);
|
||||||
|
|
||||||
|
SINT32 app_upgrade_sd_execute(void);
|
||||||
|
|
||||||
|
SINT32 app_upgrade_ota_restore_start(void);
|
||||||
|
|
||||||
|
SINT32 app_upgrade_ota_restore_stop(void);
|
||||||
|
|
||||||
|
SINT8 app_upgrade_ota_restore_IsRun(void);
|
||||||
|
|
||||||
|
SINT32 app_preinit(void);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
#if __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -449,7 +449,7 @@ SINT32 sf_usbnet_server_acm_transfer(SF_DATA_ATTR_S *psenddate)
|
||||||
return SF_SUCCESS;
|
return SF_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
SINT32 sf_usbnet_server_acm_close()
|
SINT32 sf_usbnet_server_acm_close(void)
|
||||||
{
|
{
|
||||||
MLOGI("\n");
|
MLOGI("\n");
|
||||||
return http_server_close(socketfd);
|
return http_server_close(socketfd);
|
||||||
|
|
|
@ -21,14 +21,16 @@ extern "C" {
|
||||||
#include "sf_http_server.h"
|
#include "sf_http_server.h"
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
extern pthread_mutex_t GPIO_mutexLock;
|
extern pthread_mutex_t GPIO_mutexLock;
|
||||||
|
|
||||||
static SF_4G_STATUS_E ModuleStatus = SF_4G_FREE;
|
static SF_4G_STATUS_E ModuleStatus = SF_4G_FREE;
|
||||||
|
|
||||||
void sf_4G_usb_init(void)
|
void sf_4G_usb_init(void)
|
||||||
{
|
{
|
||||||
sf_hal_gpio_init(GPIOID_USB_MUX1,GPIO_DIR_OUT);
|
sf_usb_mux_s(1);
|
||||||
sf_hal_gpio_set(GPIOID_USB_MUX1,1);
|
//sf_hal_gpio_init(GPIOID_USB_MUX1,GPIO_DIR_OUT);
|
||||||
|
//sf_hal_gpio_set(GPIOID_USB_MUX1,1);
|
||||||
}
|
}
|
||||||
SF_4G_STATUS_E sf_4G_status_get(void)
|
SF_4G_STATUS_E sf_4G_status_get(void)
|
||||||
{
|
{
|
||||||
|
|
|
@ -24,32 +24,68 @@
|
||||||
#include <sys/sem.h>
|
#include <sys/sem.h>
|
||||||
#include <sys/ipc.h>
|
#include <sys/ipc.h>
|
||||||
#include <sys/ioctl.h>
|
#include <sys/ioctl.h>
|
||||||
|
#include <signal.h>
|
||||||
|
|
||||||
#include <sf_hal_ttyusb.h>
|
#include "UIInfo/UIInfo.h"
|
||||||
//#include "UIInfo/UIInfo.h"
|
|
||||||
#include <sf_param_common.h>
|
#include <sf_param_common.h>
|
||||||
|
#include <sf_message_queue.h>
|
||||||
|
#include <sf_type.h>
|
||||||
|
#include <sf_log.h>
|
||||||
|
#include <sf_module.h>
|
||||||
|
#include <sf_ledmng.h>
|
||||||
|
#include <sf_dev_usb.h>
|
||||||
|
#include <sf_dev_other.h>
|
||||||
|
|
||||||
pthread_mutex_t Param_mutexLock;
|
#include <sf_systemMng.h>
|
||||||
pthread_mutex_t GPIO_mutexLock;
|
#include <sf_commMng.h>
|
||||||
|
#include <sf_commu_mcu.h>
|
||||||
|
#include <sf_service.h>
|
||||||
|
#include <sf_common.h>
|
||||||
|
#include <sf_system.h>
|
||||||
|
#include <sf_debug.h>
|
||||||
|
#include <sf_dbg.h>
|
||||||
|
#include <sf_device.h>
|
||||||
|
#include <sf_hal_gpio.h>
|
||||||
|
#include <sf_hal_ttyusb.h>
|
||||||
|
#include <sys/vfs.h>
|
||||||
|
|
||||||
|
|
||||||
SINT32 app_ttyusb_IsOpen()
|
extern pthread_mutex_t Param_mutexLock;
|
||||||
|
extern pthread_mutex_t GPIO_mutexLock;
|
||||||
|
//---------------------UIInfo Global Variables -----------------------------
|
||||||
|
UIMenuStoreInfo currentInfo = {0}; //#NT#Init the array to zero.
|
||||||
|
UIMenuStoreInfo origInfo = {0}; /* backup */
|
||||||
|
|
||||||
|
void sf_signalStop(SINT32 signo)
|
||||||
{
|
{
|
||||||
int retryTime = 0;
|
printf("\nsignalStop(signal code: %d) !!!\n", signo);
|
||||||
SINT32 s32ret = 0;
|
|
||||||
//MLOGD("ttyUSB has not been init, will init ttyUSB!\n");
|
sf_share_mem_file_deinit();
|
||||||
while ((s32ret = sf_hal_ttyusb2_init()) < 0)
|
sf_share_mem_customer_deinit();
|
||||||
{
|
|
||||||
retryTime++;
|
_exit(0);
|
||||||
if((retryTime >=200)&&(retryTime%200 == 0))
|
}
|
||||||
{
|
|
||||||
//MLOGE("-------ttyUSB init fail!\n");
|
|
||||||
s32ret = SF_TTY_ERROR_OPEN;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return s32ret;
|
|
||||||
|
int test_sd_free(void)
|
||||||
|
{
|
||||||
|
#define SFMMC_SYS_PATH "/dev/mmcblk0p1"
|
||||||
|
struct statfs s;
|
||||||
|
int res = statfs(SFMMC_SYS_PATH, &s);
|
||||||
|
if (res == -1)
|
||||||
|
{
|
||||||
|
perror("statfs error: ");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
unsigned long long total_size = (unsigned long long)s.f_blocks * (unsigned long long)s.f_bsize;
|
||||||
|
unsigned long long free_size = (unsigned long long)s.f_bfree * (unsigned long long)s.f_bsize;
|
||||||
|
|
||||||
|
printf("SD card total size: %llu bytes\n", total_size);
|
||||||
|
printf("SD card available size: %llu bytes\nSFMMC_SYS_PATH:%s\n", free_size, SFMMC_SYS_PATH);
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
|
@ -60,18 +96,78 @@ int main(int argc, char *argv[])
|
||||||
printf("* *\n");
|
printf("* *\n");
|
||||||
printf("*********************************************\n");
|
printf("*********************************************\n");
|
||||||
//gpio_direction_input(C_GPIO(10));
|
//gpio_direction_input(C_GPIO(10));
|
||||||
|
SINT16 startup = 0;
|
||||||
|
|
||||||
|
//test_sd_free();
|
||||||
|
//return 0;
|
||||||
|
SINT32 isUsb = sf_usb_IsInsert();
|
||||||
|
printf("[%s:%d] isUsb = %d\n", isUsb);
|
||||||
|
|
||||||
|
sf_mcu_init();
|
||||||
|
sf_get_power_on_mode();
|
||||||
|
sf_mcu_wdg_set(30);
|
||||||
|
sf_usb_mux_s(1);
|
||||||
|
|
||||||
|
|
||||||
sf_share_mem_file_init();
|
sf_share_mem_file_init();
|
||||||
|
//sf_share_mem_customer_update();
|
||||||
sf_com_message_app_init();
|
sf_com_message_app_init();
|
||||||
sf_com_message_cardv_init();
|
sf_com_message_cardv_init();
|
||||||
|
|
||||||
sf_customer_param_load();
|
sf_customer_param_load();
|
||||||
|
if(!isUsb)
|
||||||
|
{
|
||||||
|
sf_load_ko();
|
||||||
|
sf_mcu_reg_set(SF_MCU_CTRL_MODULE_PIR, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
printf("[%s:%d] CamMode:%d\n", __FUNCTION__, __LINE__,sf_sys_get_flag(CamMode));
|
||||||
|
|
||||||
SF_MUTEX_INIT_LOCK(Param_mutexLock);
|
SF_MUTEX_INIT_LOCK(Param_mutexLock);
|
||||||
SF_MUTEX_INIT_LOCK(GPIO_mutexLock);
|
SF_MUTEX_INIT_LOCK(GPIO_mutexLock);
|
||||||
|
sf_led_init();
|
||||||
|
sf_sys_status_led_set(SF_LED_SYS_STATE_PIR_NOT_DETECT);
|
||||||
|
sf_sys_status_led_set(SF_LED_SYS_STATE_NORMAL);
|
||||||
|
|
||||||
app_led_group_register();
|
//app_led_group_register();
|
||||||
//app_message_recv_start();
|
app_message_recv_start();
|
||||||
|
|
||||||
|
struct sigaction sigAction;
|
||||||
|
sigAction.sa_handler = sf_signalStop;
|
||||||
|
sigemptyset(&sigAction.sa_mask);
|
||||||
|
sigAction.sa_flags = 0;
|
||||||
|
sigaction(SIGHUP, &sigAction, NULL); //-1
|
||||||
|
sigaction(SIGINT, &sigAction, NULL); //-2
|
||||||
|
sigaction(SIGQUIT, &sigAction, NULL); //-3
|
||||||
|
sigaction(SIGKILL, &sigAction, NULL); //-9
|
||||||
|
sigaction(SIGTERM, &sigAction, NULL); //-15
|
||||||
|
//app_led_pin_init();
|
||||||
|
//app_upgrade_sd_execute();
|
||||||
|
app_preinit();
|
||||||
|
|
||||||
|
//app_RegisterNet_start();
|
||||||
|
startup = sf_poweron_type_get();
|
||||||
|
SLOGD("poweron type beginning :[%d,%s]\n", startup, sf_poweron_type_string(startup));
|
||||||
|
if(SF_MCU_STARTUP_ONKEY == startup)
|
||||||
|
{
|
||||||
|
////////////////////////////////
|
||||||
|
app_debug_init();
|
||||||
|
app_debug_create();
|
||||||
|
|
||||||
|
|
||||||
|
app_debug_start();
|
||||||
|
|
||||||
|
app_debug_deinit();
|
||||||
|
/////////////////////////////
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
sf_share_mem_file_deinit();
|
||||||
|
sf_share_mem_customer_deinit();
|
||||||
|
SF_MUTEX_DESTROY(Param_mutexLock);
|
||||||
|
SF_MUTEX_DESTROY(GPIO_mutexLock);
|
||||||
|
exit(0);
|
||||||
|
printf("********************sf app end***********************\n");
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
|
799
code/application/source/sf_app/code/source/app/sf_common.c
Executable file
799
code/application/source/sf_app/code/source/app/sf_common.c
Executable file
|
@ -0,0 +1,799 @@
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <stdbool.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <errno.h>
|
||||||
|
#include <ctype.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <fcntl.h>
|
||||||
|
#include <sys/types.h>
|
||||||
|
#include <sys/syscall.h>
|
||||||
|
#include <sys/queue.h>
|
||||||
|
#include <sys/stat.h>
|
||||||
|
#include <sys/statfs.h>
|
||||||
|
#include <dirent.h>
|
||||||
|
#include <fnmatch.h>
|
||||||
|
#include <time.h>
|
||||||
|
#include <linux/msdos_fs.h>
|
||||||
|
#include <sys/ioctl.h>
|
||||||
|
#include <pthread.h>
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
#if __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#include "sf_type.h"
|
||||||
|
#include "sf_log.h"
|
||||||
|
#include "sf_qrcode.h"
|
||||||
|
#include "sf_module.h"
|
||||||
|
|
||||||
|
#include "sf_keymng.h"
|
||||||
|
#include "sf_ledmng.h"
|
||||||
|
#include "sf_dev_usb.h"
|
||||||
|
#include "sf_otamng.h"
|
||||||
|
|
||||||
|
#include "sf_dev_other.h"
|
||||||
|
#include "sf_systemMng.h"
|
||||||
|
#include "sf_storeMng.h"
|
||||||
|
#if defined(CFG_LIVE_ENBLE)
|
||||||
|
#include "sf_liveMng.h"
|
||||||
|
#endif
|
||||||
|
#include "sf_commu_mcu_reg.h"
|
||||||
|
|
||||||
|
#include "sf_message_queue.h"
|
||||||
|
#include "sf_device.h"
|
||||||
|
#include "sf_system.h"
|
||||||
|
#include "sf_service.h"
|
||||||
|
#include <FileSysTsk.h>
|
||||||
|
|
||||||
|
|
||||||
|
extern pthread_mutex_t Param_mutexLock;
|
||||||
|
SINT8 longClickhold = 0;
|
||||||
|
SINT8 bmoduleupdate = 0;
|
||||||
|
|
||||||
|
static SF_THREAD_CFG_S sf_msgQueueThread =
|
||||||
|
{
|
||||||
|
.IsRun = 0,
|
||||||
|
.TskId = -1,
|
||||||
|
};
|
||||||
|
|
||||||
|
const SF_CHAR* app_process_SD_getstatusstring(SF_MESSAGE_CMD_SD_E enType)
|
||||||
|
{
|
||||||
|
switch(enType)
|
||||||
|
{
|
||||||
|
case CMD_SD_STRG_CB_UNKNOWN:
|
||||||
|
return "CMD_SD_STRG_CB_UNKNOWN";
|
||||||
|
case CMD_SD_STRG_CB_INSERTED:
|
||||||
|
return "CMD_SD_STRG_CB_INSERTED";
|
||||||
|
case CMD_SD_STRG_CB_REMOVED:
|
||||||
|
return "CMD_SD_STRG_CB_REMOVED";
|
||||||
|
case CMD_SD_STRG_CB_MOUNT_FINISH:
|
||||||
|
return "CMD_SD_STRG_CB_MOUNT_FINISH";
|
||||||
|
case CMD_SD_STRG_CB_UNMOUNT_FINISH:
|
||||||
|
return "CMD_SD_STRG_CB_UNMOUNT_FINISH";
|
||||||
|
case CMD_SD_SYSTEM_CB_CONFIG:
|
||||||
|
return "CMD_SD_SYSTEM_CB_CONFIG";
|
||||||
|
default:
|
||||||
|
return "Unknown";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
const SF_CHAR* app_process_message_getstatusstring(SF_MESSAGE_TYPE_E enType)
|
||||||
|
{
|
||||||
|
switch(enType)
|
||||||
|
{
|
||||||
|
case CMD_KEY:
|
||||||
|
return "CMD_KEY";
|
||||||
|
case CMD_SD:
|
||||||
|
return "CMD_SD";
|
||||||
|
case CMD_LED:
|
||||||
|
return "CMD_LED";
|
||||||
|
case CMD_FILE:
|
||||||
|
return "CMD_FILE";
|
||||||
|
case CMD_POWEROFF:
|
||||||
|
return "CMD_POWEROFF";
|
||||||
|
case CMD_VENC:
|
||||||
|
return "CMD_VENC";
|
||||||
|
case CMD_MCU:
|
||||||
|
return "CMD_MCU";
|
||||||
|
case CMD_PARA:
|
||||||
|
return "CMD_PARA";
|
||||||
|
case CMD_GPRS:
|
||||||
|
return "CMD_GPRS";
|
||||||
|
default:
|
||||||
|
return "Unknown";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
static SINT32 process_cmd_shortclick(SF_MESSAGE_BUF_S *pMessageBuf)
|
||||||
|
{
|
||||||
|
static UINT8 cnt = 0;
|
||||||
|
SF_MESSAGE_BUF_S stMessageBuf = {0};
|
||||||
|
SF_PDT_PARAM_CFG_S* pCustomer = sf_customer_param_get();
|
||||||
|
|
||||||
|
switch(pMessageBuf->arg2) {
|
||||||
|
case SF_KEY_PIN_RESET:
|
||||||
|
if(!longClickhold)
|
||||||
|
break;
|
||||||
|
if(sf_sd_status_get() == SF_SD_OK || sf_sd_status_get() == SF_SD_FULL)
|
||||||
|
{
|
||||||
|
SF_CHAR version[12] = {0};
|
||||||
|
SF_CHAR iccidStr[22] = {0};
|
||||||
|
SF_PDT_PARAM_STATISTICS_S *pStaticParam = sf_statistics_param_get();
|
||||||
|
sf_sys_software_version_get(version);
|
||||||
|
if(pStaticParam->SimType == SF_SIM_OTHER)
|
||||||
|
{
|
||||||
|
sprintf(iccidStr, "%s", "0");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
sprintf(iccidStr, "%s", pStaticParam->SimID);
|
||||||
|
|
||||||
|
}
|
||||||
|
sf_qrcode_create(pStaticParam->IMEI, iccidStr, version);
|
||||||
|
sf_sys_camera_about();
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case SF_KEY_PIN_SYNC:
|
||||||
|
{
|
||||||
|
/*photo and video section*/
|
||||||
|
SINT8 Isfull = 0;
|
||||||
|
SINT32 s32ret = SF_SUCCESS;
|
||||||
|
|
||||||
|
s32ret = sf_sd_isfull(&Isfull);
|
||||||
|
if(s32ret == 1) {
|
||||||
|
sf_sd_status_set(SF_SD_OUT);
|
||||||
|
if(sf_poweron_type_get() == SF_MCU_STARTUP_ONKEY)
|
||||||
|
sf_led_event_process(LED_STATUS_HOLD_ON,LED_GROUP_SD,LED_TYPE_RED);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
else if(s32ret == 2) {
|
||||||
|
sf_sd_status_set(SF_SD_ERROR);
|
||||||
|
if(sf_poweron_type_get() == SF_MCU_STARTUP_ONKEY)
|
||||||
|
sf_led_event_process(LED_STATUS_HOLD_ON,LED_GROUP_SD,LED_TYPE_YELLOW);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if(Isfull == 1) {
|
||||||
|
sf_sd_status_set(SF_SD_FULL);
|
||||||
|
if(sf_poweron_type_get() == SF_MCU_STARTUP_ONKEY)
|
||||||
|
sf_led_event_process(LED_STATUS_HOLD_ON,LED_GROUP_SD,LED_TYPE_YELLOW);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!sf_cap_status_get())
|
||||||
|
{
|
||||||
|
sf_cap_status_set(1);
|
||||||
|
if(sf_poweron_type_get() == SF_MCU_STARTUP_ONKEY)
|
||||||
|
sf_led_event_process(LED_STATUS_SLOWFLASH_ON,LED_GROUP_STATUS,LED_TYPE_GREEN);
|
||||||
|
|
||||||
|
usleep(1000*1000);
|
||||||
|
|
||||||
|
#if defined(CFG_COMM_MCU_UART)
|
||||||
|
UINT8 isNight = 0;
|
||||||
|
UINT8 lightVal = 0;
|
||||||
|
SINT8 para[3] = {0};
|
||||||
|
/*1 update light value */
|
||||||
|
isNight = sf_is_night_mode(1);
|
||||||
|
lightVal = sf_get_light_value();
|
||||||
|
para[0] = isNight;
|
||||||
|
para[1] = (lightVal & 0xff00) >> 8;
|
||||||
|
para[2] = lightVal & 0x00ff;
|
||||||
|
sf_sys_rtoscmd_set(LINUX2RTK_CMD_SET_OTHER,para);
|
||||||
|
#else
|
||||||
|
/*1 update light value */
|
||||||
|
system("echo cli sycmd -getlight > /proc/dualos/rtos");
|
||||||
|
usleep(100*1000);
|
||||||
|
UINT8 isNight = 0;
|
||||||
|
SF_RTOSINFO_S stRtosData = {0};
|
||||||
|
/*2,get lastest light value*/
|
||||||
|
sf_sys_rtosdata_get(&stRtosData);
|
||||||
|
isNight = stRtosData.IsNight;
|
||||||
|
#endif
|
||||||
|
/*3,reload IQ file */
|
||||||
|
stMessageBuf.cmdId = 0x0112;
|
||||||
|
stMessageBuf.arg1 = isNight;
|
||||||
|
sf_com_message_send_to_cardv(&stMessageBuf);
|
||||||
|
MLOGI("CamMode:%d\n",pCustomer->CamMode);
|
||||||
|
|
||||||
|
if(pCustomer->CamMode == 0) {
|
||||||
|
if(pCustomer->Multishot <= 1 )
|
||||||
|
system("echo rtkmode 0 > /tmp/cardv_fifo");
|
||||||
|
else
|
||||||
|
system("echo rtkmode 2 > /tmp/cardv_fifo");
|
||||||
|
|
||||||
|
}
|
||||||
|
else if(pCustomer->CamMode == 1) {
|
||||||
|
system("echo rtkmode 3 > /tmp/cardv_fifo");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if(pCustomer->Multishot <= 1 )
|
||||||
|
system("echo rtkmode 4 > /tmp/cardv_fifo");
|
||||||
|
else
|
||||||
|
system("echo rtkmode 6 > /tmp/cardv_fifo");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if((pCustomer->CamMode) && (sf_cap_status_get() == 2))
|
||||||
|
{
|
||||||
|
stMessageBuf.cmdId = 0x0111;
|
||||||
|
sf_com_message_send_to_cardv(&stMessageBuf);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
case SF_KEY_PIN_FORMAT:
|
||||||
|
if(!longClickhold)
|
||||||
|
break;
|
||||||
|
if(sf_sd_status_get() == SF_SD_OK || sf_sd_status_get() == SF_SD_FULL)
|
||||||
|
{
|
||||||
|
pCustomer->DebugMode = pCustomer->DebugMode?0:1;
|
||||||
|
sf_led_event_process((pCustomer->DebugMode?LED_STATUS_SLOWFLASH_ON:LED_STATUS_HOLD_ON),LED_GROUP_SD,LED_TYPE_GREEN);
|
||||||
|
|
||||||
|
MLOGD("DebugMode =[%d]\n",pCustomer->DebugMode);
|
||||||
|
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case SF_KEY_PIN_DATAREADY:
|
||||||
|
{
|
||||||
|
#if defined(CFG_COMM_MCU_UART)
|
||||||
|
UINT8 mode = 0;
|
||||||
|
mode = sf_mcu_power_on_para_get(SF_MCU_STARTMODE);
|
||||||
|
#else
|
||||||
|
UINT8 mode = 0;
|
||||||
|
system("echo cli sycmd -McuModeGet > /proc/dualos/rtos");
|
||||||
|
usleep(100*1000);
|
||||||
|
|
||||||
|
UINT8 keyValue = 0;
|
||||||
|
SF_RTOSINFO_S stRtosData = {0};
|
||||||
|
sf_sys_rtosdata_get(&stRtosData);
|
||||||
|
mode = stRtosData.test1;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
MLOGD("mode:%d, \n", mode);
|
||||||
|
if(mode == 0)
|
||||||
|
{
|
||||||
|
app_system_poweroff(SF_POWEROFF_KEYOFF);
|
||||||
|
}
|
||||||
|
else if(mode == 3)//ON
|
||||||
|
{
|
||||||
|
// s32ThreeWaySwitch = 1;
|
||||||
|
app_funkey_switch_check_start();
|
||||||
|
}
|
||||||
|
else if(mode == 1)//SETUP
|
||||||
|
{
|
||||||
|
|
||||||
|
if(app_flash_poweroff_task_IsRun())
|
||||||
|
{
|
||||||
|
app_funkey_switch_check_stop();
|
||||||
|
}
|
||||||
|
else if(sf_poweron_type_get() != SF_MCU_STARTUP_ONKEY)
|
||||||
|
{
|
||||||
|
//check is capture runing, wait cap end or video end
|
||||||
|
if(sf_cap_status_get() == 0) //
|
||||||
|
{
|
||||||
|
app_system_poweroff(SF_POWEROFF_KEYOFF);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
//if video/pic+video send stop msg
|
||||||
|
if(pCustomer->CamMode)
|
||||||
|
{
|
||||||
|
app_system_poweroff(SF_POWEROFF_KEYOFF);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
cnt++;
|
||||||
|
if(cnt > 6)
|
||||||
|
{
|
||||||
|
cnt = 0;
|
||||||
|
MLOGE("abnormal power off\n");
|
||||||
|
app_system_poweroff(SF_POWEROFF_KEYOFF);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case SF_KEY_PIN_FILESTATUS:
|
||||||
|
sf_cap_status_set(pMessageBuf->arg3);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
MLOGE("illegal pin [%d]!!!\n",pMessageBuf->arg2);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return SF_SUCCESS;
|
||||||
|
}
|
||||||
|
static SINT32 process_cmd_longclick(SF_MESSAGE_BUF_S *pMessageBuf)
|
||||||
|
{
|
||||||
|
switch(pMessageBuf->arg2) {
|
||||||
|
case SF_KEY_PIN_RESET:
|
||||||
|
|
||||||
|
if(!longClickhold) {
|
||||||
|
sf_all_param_reset();
|
||||||
|
if(sf_poweron_type_get() == SF_MCU_STARTUP_ONKEY)
|
||||||
|
app_led_all_status_set(LED_STATUS_HOLD_ON,LED_TYPE_GREEN);
|
||||||
|
app_system_poweroff(SF_POWEROFF_REBOOT);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
MLOGI("BatRemainCap = [%d]\n", sf_statistics_param_get()->BatRemainCap);
|
||||||
|
if((access("/mnt/mmc/EG95", F_OK) == 0) && (sf_statistics_param_get()->BatRemainCap > 40))
|
||||||
|
{
|
||||||
|
MLOGI("eg95\n");
|
||||||
|
bmoduleupdate = 1;
|
||||||
|
if(sf_poweron_type_get() == SF_MCU_STARTUP_ONKEY)
|
||||||
|
sf_led_event_process(LED_STATUS_QUICKFLASH_ON,LED_GROUP_SD,LED_TYPE_GREEN);
|
||||||
|
system("/customer/QFirehose -f /mnt/mmc/EG95");
|
||||||
|
app_system_poweroff(SF_POWEROFF_REBOOT);
|
||||||
|
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if(sf_poweron_type_get() == SF_MCU_STARTUP_ONKEY)
|
||||||
|
sf_led_event_process(LED_STATUS_QUICKFLASH_ON,LED_GROUP_SD,LED_TYPE_RED);
|
||||||
|
bUpdateEnble = 1;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case SF_KEY_PIN_SYNC:
|
||||||
|
|
||||||
|
// if(upgrade_ota_file_IsExsit(SF_OTA_UPGRADE_FILE_PATH) == SF_FALSE)
|
||||||
|
// break;
|
||||||
|
//
|
||||||
|
// if(sf_poweron_type_get() == SF_MCU_STARTUP_ONKEY&& (sf_statistics_param_get()->BatRemainCap > 40)) {
|
||||||
|
// SINT32 s32ret = SF_SUCCESS;
|
||||||
|
// s32ret = sf_upgrade_ota_param_bak();
|
||||||
|
// SF_APPCOMM_CHECK_RETURN(s32ret, SF_APP_ERROR_NO_SUPPOET);
|
||||||
|
//
|
||||||
|
// s32ret = sf_upgrade_ota_env_set();
|
||||||
|
// SF_APPCOMM_CHECK_RETURN(s32ret, SF_APP_ERROR_NO_SUPPOET);
|
||||||
|
// sleep(2);
|
||||||
|
//
|
||||||
|
// sf_mcu_wdg_off();
|
||||||
|
// sleep(2);
|
||||||
|
//
|
||||||
|
// SF_MESSAGE_BUF_S stMessageBuf = {0};
|
||||||
|
// stMessageBuf.arg1 = SF_POWEROFF_SYNC_PARAM;
|
||||||
|
// stMessageBuf.cmdId = CMD_POWEROFF;
|
||||||
|
// sf_com_message_send_to_app(&stMessageBuf);
|
||||||
|
|
||||||
|
// }
|
||||||
|
break;
|
||||||
|
case SF_KEY_PIN_FORMAT:
|
||||||
|
if(sf_sd_status_get() == SF_SD_OUT)
|
||||||
|
break;
|
||||||
|
if(sf_cap_status_get() != 0)
|
||||||
|
break;
|
||||||
|
if(sf_poweron_type_get() == SF_MCU_STARTUP_ONKEY)
|
||||||
|
sf_led_event_process(LED_STATUS_QUICKFLASH_ON,LED_GROUP_SD,LED_TYPE_OFF);
|
||||||
|
system("echo format > /tmp/cardv_fifo");
|
||||||
|
break;
|
||||||
|
case SF_KEY_PIN_DATAREADY:
|
||||||
|
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
MLOGE("illegal pin [%d]!!!\n",pMessageBuf->arg2);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return SF_SUCCESS;
|
||||||
|
}
|
||||||
|
static SINT32 process_cmd_holddown(SF_MESSAGE_BUF_S *pMessageBuf)
|
||||||
|
{
|
||||||
|
switch(pMessageBuf->arg2) {
|
||||||
|
case SF_KEY_PIN_RESET:
|
||||||
|
|
||||||
|
break;
|
||||||
|
case SF_KEY_PIN_SYNC:
|
||||||
|
longClickhold = 1;
|
||||||
|
break;
|
||||||
|
case SF_KEY_PIN_FORMAT:
|
||||||
|
|
||||||
|
break;
|
||||||
|
case SF_KEY_PIN_DATAREADY:
|
||||||
|
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
MLOGE("illegal pin [%d]!!!\n",pMessageBuf->arg2);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return SF_SUCCESS;
|
||||||
|
}
|
||||||
|
static SINT32 process_cmd_holdup(SF_MESSAGE_BUF_S *pMessageBuf)
|
||||||
|
{
|
||||||
|
switch(pMessageBuf->arg2) {
|
||||||
|
case SF_KEY_PIN_RESET:
|
||||||
|
if(bmoduleupdate == 1) {
|
||||||
|
bmoduleupdate = 0;
|
||||||
|
app_led_sd_status_return();
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case SF_KEY_PIN_SYNC:
|
||||||
|
longClickhold = 0;
|
||||||
|
break;
|
||||||
|
case SF_KEY_PIN_FORMAT:
|
||||||
|
|
||||||
|
break;
|
||||||
|
case SF_KEY_PIN_DATAREADY:
|
||||||
|
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
MLOGE("illegal pin [%d]!!!\n",pMessageBuf->arg2);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return SF_SUCCESS;
|
||||||
|
}
|
||||||
|
static SINT32 app_process_cmd_keyctrl(SF_MESSAGE_BUF_S *pMessageBuf)
|
||||||
|
{
|
||||||
|
SF_MESSAGE_CMD_KEY_E enEventkey = pMessageBuf->arg1;
|
||||||
|
MLOGI("[%d,%s],[%d,%s]\n", pMessageBuf->arg1,\
|
||||||
|
sf_keyctrl_getstatusstring(pMessageBuf->arg1),\
|
||||||
|
pMessageBuf->arg2,\
|
||||||
|
sf_keypin_getstatusstring(pMessageBuf->arg2));
|
||||||
|
switch(enEventkey) {
|
||||||
|
|
||||||
|
case SF_EVENT_KEY_SHORT_CLICK:
|
||||||
|
if(SF_UPGRADE_ING == sf_upgrade_status_get() || SF_UPGRADE_FAIL == sf_upgrade_status_get()) {
|
||||||
|
sf_upgrade_status_set(SF_UPGRADE_BUTT);
|
||||||
|
return SF_SUCCESS;
|
||||||
|
}
|
||||||
|
if(app_upgrade_restore_IsRun()) {
|
||||||
|
app_upgrade_restore_stop();
|
||||||
|
return SF_SUCCESS;
|
||||||
|
}
|
||||||
|
if(app_upgrade_ota_restore_IsRun()) {
|
||||||
|
app_upgrade_ota_restore_stop();
|
||||||
|
return SF_SUCCESS;
|
||||||
|
}
|
||||||
|
return process_cmd_shortclick(pMessageBuf);
|
||||||
|
case SF_EVENT_KEY_LONG_CLICK:
|
||||||
|
if(SF_UPGRADE_ING == sf_upgrade_status_get() || SF_UPGRADE_FAIL == sf_upgrade_status_get()) {
|
||||||
|
sf_upgrade_status_set(SF_UPGRADE_BUTT);
|
||||||
|
return SF_SUCCESS;
|
||||||
|
}
|
||||||
|
if(app_upgrade_restore_IsRun()) {
|
||||||
|
app_upgrade_restore_stop();
|
||||||
|
return SF_SUCCESS;
|
||||||
|
}
|
||||||
|
if(app_upgrade_ota_restore_IsRun()) {
|
||||||
|
app_upgrade_ota_restore_stop();
|
||||||
|
return SF_SUCCESS;
|
||||||
|
}
|
||||||
|
return process_cmd_longclick(pMessageBuf);
|
||||||
|
case SF_EVENT_KEY_HOLD_DOWN:
|
||||||
|
return process_cmd_holddown(pMessageBuf);
|
||||||
|
case SF_EVENT_KEY_HOLD_UP:
|
||||||
|
return process_cmd_holdup(pMessageBuf);
|
||||||
|
case SF_EVENT_KEY_GROUP:
|
||||||
|
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
MLOGE("illegal parameter [%d]!!!\n",enEventkey);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return SF_SUCCESS;
|
||||||
|
}
|
||||||
|
static SINT32 app_process_cmd_SD(SF_MESSAGE_BUF_S *pMessageBuf)
|
||||||
|
{
|
||||||
|
static SINT8 bsdstatus = 0;
|
||||||
|
static SINT8 bsdoutstatus = 0;
|
||||||
|
UINT32 status;
|
||||||
|
MLOGI("[%d,%s]\n",pMessageBuf->arg1,app_process_SD_getstatusstring(pMessageBuf->arg1));
|
||||||
|
switch(pMessageBuf->arg1)
|
||||||
|
{
|
||||||
|
case CMD_SD_STRG_CB_UNKNOWN:
|
||||||
|
sf_set_card_full(1);
|
||||||
|
break;
|
||||||
|
case CMD_SD_STRG_CB_INSERTED:
|
||||||
|
sf_set_card(1);
|
||||||
|
break;
|
||||||
|
case CMD_SD_STRG_CB_REMOVED:
|
||||||
|
sf_set_card(0);
|
||||||
|
sf_sys_status_led_set(SF_LED_SYS_STATE_SD_FULL);
|
||||||
|
break;
|
||||||
|
case CMD_SD_STRG_CB_MOUNT_FINISH:
|
||||||
|
|
||||||
|
status = pMessageBuf->arg3;
|
||||||
|
switch (status)
|
||||||
|
{
|
||||||
|
case FST_STA_OK:
|
||||||
|
sf_set_card(1);
|
||||||
|
sf_sys_status_led_set(SF_LED_SYS_STATE_SD_NORMAL);
|
||||||
|
MLOGI("card-%d mount OK\r\n", pMessageBuf->arg2 + 1);
|
||||||
|
break;
|
||||||
|
case FST_STA_DISK_UNFORMAT:
|
||||||
|
sf_sys_status_led_set(SF_LED_SYS_STATE_SD_ERROR);
|
||||||
|
MLOGI("^Rcard-%d mount FAIL: Unformat\r\n", pMessageBuf->arg2 + 1);
|
||||||
|
break;
|
||||||
|
case FST_STA_DISK_UNKNOWN_FORMAT:
|
||||||
|
sf_sys_status_led_set(SF_LED_SYS_STATE_SD_FULL);
|
||||||
|
MLOGI("^Rcard-%d mount FAIL: Unknown Format\r\n", pMessageBuf->arg2 + 1);
|
||||||
|
break;
|
||||||
|
case FST_STA_CARD_ERR:
|
||||||
|
sf_sys_status_led_set(SF_LED_SYS_STATE_SD_ERROR);
|
||||||
|
MLOGI("^Rcard-%d mount FAIL: Card Error\r\n", pMessageBuf->arg2 + 1);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
MLOGI("^Rcard-%d mount FAIL: ErrID=%d\r\n", pMessageBuf->arg2 + 1, status);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
case CMD_SD_STRG_CB_UNMOUNT_FINISH:
|
||||||
|
|
||||||
|
break;
|
||||||
|
case CMD_SD_SYSTEM_CB_CONFIG:
|
||||||
|
|
||||||
|
break;
|
||||||
|
case CMD_SD_FULL:
|
||||||
|
|
||||||
|
sf_set_card_full(1);
|
||||||
|
/*sf_sd_status_set(SF_SD_FULL);
|
||||||
|
if(sf_poweron_type_get() == SF_MCU_STARTUP_ONKEY) {
|
||||||
|
if(!(SF_UPGRADE_ING == sf_upgrade_status_get() || SF_UPGRADE_FAIL == sf_upgrade_status_get()))
|
||||||
|
sf_led_event_process(LED_STATUS_HOLD_ON,LED_GROUP_SD,LED_TYPE_YELLOW);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!bsdstatus) {
|
||||||
|
bsdstatus = 1;
|
||||||
|
|
||||||
|
sf_upgrade_ota_param_recover();
|
||||||
|
sf_statistics_param_load(sf_statistics_param_get());
|
||||||
|
app_system_param_update();
|
||||||
|
if((sf_poweron_type_get() != SF_MCU_STARTUP_TIMELAPSE) && (sf_poweron_type_get() != SF_MCU_STARTUP_PIR)) {
|
||||||
|
app_t110();
|
||||||
|
}
|
||||||
|
}*/
|
||||||
|
break;
|
||||||
|
/*case CMD_SD_MOUNT_SUCCESS:
|
||||||
|
sf_sd_status_set(SF_SD_OK);
|
||||||
|
if(sf_poweron_type_get() == SF_MCU_STARTUP_ONKEY) {
|
||||||
|
if(!(SF_UPGRADE_ING == sf_upgrade_status_get() || SF_UPGRADE_FAIL == sf_upgrade_status_get()))
|
||||||
|
sf_led_event_process((sf_customer_param_get()->DebugMode?LED_STATUS_SLOWFLASH_ON:LED_STATUS_HOLD_ON),LED_GROUP_SD,LED_TYPE_GREEN);
|
||||||
|
}
|
||||||
|
if(!bsdstatus) {
|
||||||
|
bsdstatus = 1;
|
||||||
|
sf_upgrade_ota_param_recover();
|
||||||
|
sf_statistics_param_load(sf_statistics_param_get());
|
||||||
|
app_system_param_update();
|
||||||
|
if((sf_poweron_type_get() != SF_MCU_STARTUP_TIMELAPSE) && (sf_poweron_type_get() != SF_MCU_STARTUP_PIR)) {
|
||||||
|
app_t110();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case CMD_SD_ERROR:
|
||||||
|
sf_sd_status_set(SF_SD_ERROR);
|
||||||
|
if(sf_poweron_type_get() == SF_MCU_STARTUP_ONKEY) {
|
||||||
|
if(!(SF_UPGRADE_ING == sf_upgrade_status_get() || SF_UPGRADE_FAIL == sf_upgrade_status_get()))
|
||||||
|
sf_led_event_process(LED_STATUS_HOLD_ON,LED_GROUP_SD,LED_TYPE_YELLOW);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!bsdstatus) {
|
||||||
|
sf_statistics_param_reset(sf_statistics_param_get());
|
||||||
|
app_system_param_update();
|
||||||
|
if((sf_poweron_type_get() != SF_MCU_STARTUP_TIMELAPSE) && (sf_poweron_type_get() != SF_MCU_STARTUP_PIR)) {
|
||||||
|
app_t110();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case CMD_SD_MOUNT_FAILURE:
|
||||||
|
case CMD_SD_OUT:
|
||||||
|
sf_sd_status_set(SF_SD_OUT);
|
||||||
|
if(sf_poweron_type_get() == SF_MCU_STARTUP_ONKEY) {
|
||||||
|
if(!(SF_UPGRADE_ING == sf_upgrade_status_get() || SF_UPGRADE_FAIL == sf_upgrade_status_get()))
|
||||||
|
sf_led_event_process(LED_STATUS_HOLD_ON,LED_GROUP_SD,LED_TYPE_RED);
|
||||||
|
}
|
||||||
|
|
||||||
|
if((sf_poweron_type_get() == SF_MCU_STARTUP_PIR) || (sf_poweron_type_get() == SF_MCU_STARTUP_TIMELAPSE))
|
||||||
|
{
|
||||||
|
app_system_poweroff(SF_POWEROFF_NO_SD);
|
||||||
|
}
|
||||||
|
if((!bsdoutstatus) && (!bsdstatus)) {
|
||||||
|
sf_statistics_param_reset(sf_statistics_param_get());
|
||||||
|
app_system_param_update();
|
||||||
|
bsdoutstatus = 1;
|
||||||
|
if((sf_poweron_type_get() != SF_MCU_STARTUP_TIMELAPSE) && (sf_poweron_type_get() != SF_MCU_STARTUP_PIR)) {
|
||||||
|
app_t110();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
*/
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return SF_SUCCESS;
|
||||||
|
}
|
||||||
|
static SINT32 app_proccess_cmd_file(SF_MESSAGE_BUF_S *pMessageBuf)
|
||||||
|
{
|
||||||
|
#ifdef SF_HARDWARE_TEST
|
||||||
|
app_system_poweroff(SF_POWEROFF_NOT);
|
||||||
|
return SF_SUCCESS;
|
||||||
|
#endif
|
||||||
|
sf_mcu_wdg_set(5);
|
||||||
|
if(sf_poweron_type_get() != SF_MCU_STARTUP_RING && sf_poweron_type_get() != SF_MCU_STARTUP_ONKEY)
|
||||||
|
{
|
||||||
|
app_t110();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
app_FileSend_start();
|
||||||
|
}
|
||||||
|
return SF_SUCCESS;
|
||||||
|
}
|
||||||
|
static SINT32 app_proccess_cmd_poweroff(SF_MESSAGE_BUF_S *pMessageBuf)
|
||||||
|
{
|
||||||
|
return app_system_poweroff(pMessageBuf->arg1);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static void app_proccess_cmd_led(SF_MESSAGE_BUF_S *pMessageBuf)
|
||||||
|
{
|
||||||
|
MLOGI("[%d,%s],[%d,%s],[%d,%s]\n", pMessageBuf->arg1,sf_led_status_getstatusstring(pMessageBuf->arg1),
|
||||||
|
pMessageBuf->arg2,sf_led_group_getstatusstring(pMessageBuf->arg2),
|
||||||
|
pMessageBuf->arg3,sf_led_type_getstatusstring(pMessageBuf->arg3));
|
||||||
|
if(sf_poweron_type_get() == SF_MCU_STARTUP_NORMAL || sf_poweron_type_get() == SF_MCU_STARTUP_ONKEY)
|
||||||
|
sf_led_event_process(pMessageBuf->arg1,pMessageBuf->arg2,pMessageBuf->arg3);
|
||||||
|
}
|
||||||
|
|
||||||
|
static SINT32 app_proccess_cmd_mcu(SF_MESSAGE_BUF_S *pMessageBuf)
|
||||||
|
{
|
||||||
|
MLOGI("ID = %#x\n",pMessageBuf->arg1);
|
||||||
|
SF_MESSAGE_BUF_S stMessageBuf = {0};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
switch(pMessageBuf->arg1)
|
||||||
|
{
|
||||||
|
case SF_MCU_CMD_POWERON:
|
||||||
|
sf_get_power_on_mode();
|
||||||
|
stMessageBuf.arg1 = SF_MCU_CMD_POWERON;
|
||||||
|
stMessageBuf.arg2 = (SINT32)sf_convert_power_on_mode();
|
||||||
|
stMessageBuf.arg3 = (SINT32)sf_mcu_get_irshtter();
|
||||||
|
stMessageBuf.cmdId = CMD_MCU;
|
||||||
|
sf_com_message_send_to_cardv(&stMessageBuf);
|
||||||
|
break;
|
||||||
|
case SF_MCU_CMD_MODULE_SLEEP:
|
||||||
|
sf_set_module_sleep_flag(0);
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return SF_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
static SINT32 app_proccess_cmd_para_update(SF_MESSAGE_BUF_S *pMessageBuf)
|
||||||
|
{
|
||||||
|
MLOGI("ID = %#x\n",pMessageBuf->arg1);
|
||||||
|
|
||||||
|
switch(pMessageBuf->arg1)
|
||||||
|
{
|
||||||
|
case SF_PARA_CMD_UPDATE:
|
||||||
|
sf_share_mem_customer_update();
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return SF_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
#if defined(CFG_LIVE_ENBLE)
|
||||||
|
static SINT32 app_proccess_cmd_venc(SF_MESSAGE_BUF_S *pMessageBuf)
|
||||||
|
{
|
||||||
|
MLOGI("ID = %#x\n",pMessageBuf->arg1);
|
||||||
|
switch(pMessageBuf->arg1)
|
||||||
|
{
|
||||||
|
case CMD_VENC_START_SUCCESS:
|
||||||
|
sf_venc_stream_start();
|
||||||
|
break;
|
||||||
|
case CMD_VENC_START_FAILURE:
|
||||||
|
break;
|
||||||
|
case CMD_VENC_STOP_SUCCESS:
|
||||||
|
sf_venc_stream_stop();
|
||||||
|
break;
|
||||||
|
case CMD_VENC_STOP_FAILURE:
|
||||||
|
break;
|
||||||
|
case CMD_VENC_STREAM_START:
|
||||||
|
{
|
||||||
|
SINT8 value = 1;
|
||||||
|
sf_4G_status_set(SF_4G_SENDING);
|
||||||
|
sf_sys_rtoscmd_set(LINUX2RTK_CMD_SET_P2PCTRL,&value);
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
case CMD_VENC_STREAM_STOP:
|
||||||
|
{
|
||||||
|
SINT8 value = 0;
|
||||||
|
sf_venc_stream_stop();
|
||||||
|
sf_sys_rtoscmd_set(LINUX2RTK_CMD_SET_P2PCTRL,&value);
|
||||||
|
sf_4G_status_set(SF_4G_FREE);
|
||||||
|
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return SF_SUCCESS;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
void* app_message_recv_thread(void *arg)
|
||||||
|
{
|
||||||
|
SINT32 ret = 0;
|
||||||
|
SF_MESSAGE_BUF_S stMessagebuf = {0};
|
||||||
|
while(1)
|
||||||
|
{
|
||||||
|
ret = sf_com_message_recv_from_app(&stMessagebuf);
|
||||||
|
if(ret != SF_SUCCESS)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
MLOGI("cmdId:[%#x,%s]\n",stMessagebuf.cmdId,app_process_message_getstatusstring(stMessagebuf.cmdId));
|
||||||
|
switch(stMessagebuf.cmdId)
|
||||||
|
{
|
||||||
|
case CMD_KEY:
|
||||||
|
app_process_cmd_keyctrl(&stMessagebuf);
|
||||||
|
break;
|
||||||
|
case CMD_SD:
|
||||||
|
app_process_cmd_SD(&stMessagebuf);
|
||||||
|
break;
|
||||||
|
case CMD_LED:
|
||||||
|
sf_sys_status_led_set(stMessagebuf.arg1);
|
||||||
|
//app_proccess_cmd_led(&stMessagebuf);
|
||||||
|
break;
|
||||||
|
case CMD_FILE:
|
||||||
|
app_proccess_cmd_file(&stMessagebuf);
|
||||||
|
break;
|
||||||
|
case CMD_POWEROFF:
|
||||||
|
app_proccess_cmd_poweroff(&stMessagebuf);
|
||||||
|
break;
|
||||||
|
#if defined(CFG_LIVE_ENBLE)
|
||||||
|
case CMD_VENC:
|
||||||
|
app_proccess_cmd_venc(&stMessagebuf);
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
|
case CMD_MCU:
|
||||||
|
app_proccess_cmd_mcu(&stMessagebuf);
|
||||||
|
break;
|
||||||
|
case CMD_PARA:
|
||||||
|
app_proccess_cmd_para_update(&stMessagebuf);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
void app_message_recv_start(void)
|
||||||
|
{
|
||||||
|
|
||||||
|
MLOGD("sf_msgQueueThread.IsRun:%d\n", sf_msgQueueThread.IsRun);
|
||||||
|
|
||||||
|
if(!sf_msgQueueThread.IsRun)
|
||||||
|
{
|
||||||
|
pthread_create(&sf_msgQueueThread.TskId, NULL, app_message_recv_thread, NULL);
|
||||||
|
sf_msgQueueThread.IsRun = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
#if __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
1185
code/application/source/sf_app/code/source/app/sf_dbg.c
Executable file
1185
code/application/source/sf_app/code/source/app/sf_dbg.c
Executable file
File diff suppressed because it is too large
Load Diff
|
@ -38,6 +38,9 @@ extern "C" {
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
extern pthread_mutex_t GPIO_mutexLock;
|
extern pthread_mutex_t GPIO_mutexLock;
|
||||||
|
static SINT32 IsCardFull = 0;
|
||||||
|
static SINT32 isGoing2Pir = 0;
|
||||||
|
static SINT32 IsCard = 0;
|
||||||
|
|
||||||
SF_THREAD_S PirMonitorTskCfg =
|
SF_THREAD_S PirMonitorTskCfg =
|
||||||
{
|
{
|
||||||
|
@ -45,6 +48,24 @@ SF_THREAD_S PirMonitorTskCfg =
|
||||||
.TskId = -1,
|
.TskId = -1,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static char driver_path_prefix[] = "/lib/modules/4.19.91";
|
||||||
|
|
||||||
|
static char* usb_host_drivers[] = {
|
||||||
|
"kernel/drivers/usb/common/usb-common.ko",
|
||||||
|
"kernel/drivers/usb/core/usbcore.ko",
|
||||||
|
"kernel/drivers/usb/host/ehci-hcd.ko",
|
||||||
|
"kernel/drivers/net/mii.ko",
|
||||||
|
"kernel/drivers/net/usb/usbnet.ko",
|
||||||
|
"kernel/drivers/usb/serial/usbserial.ko",
|
||||||
|
"kernel/drivers/usb/serial/usb_wwan.ko",
|
||||||
|
"kernel/drivers/usb/serial/option.ko",
|
||||||
|
"kernel/drivers/net/usb/cdc_ether.ko",
|
||||||
|
"kernel/drivers/usb/class/cdc-wdm.ko",
|
||||||
|
"kernel/drivers/net/usb/qmi_wwan.ko",
|
||||||
|
"extra/net/GobiNet/drv_gobi_net.ko",
|
||||||
|
NULL
|
||||||
|
};
|
||||||
|
|
||||||
void* pir_monitoring_thread(void)
|
void* pir_monitoring_thread(void)
|
||||||
{
|
{
|
||||||
SF_MESSAGE_BUF_S stMessageBuf = {0};
|
SF_MESSAGE_BUF_S stMessageBuf = {0};
|
||||||
|
@ -473,15 +494,15 @@ SINT32 app_led_pin_init(void)
|
||||||
// sf_hal_gpio_init(GPIOID_SIM_INSRET, GPIO_DIR_IN);
|
// sf_hal_gpio_init(GPIOID_SIM_INSRET, GPIO_DIR_IN);
|
||||||
// sf_hal_gpio_init(GPIOID_USB_INSERT, GPIO_DIR_IN);
|
// sf_hal_gpio_init(GPIOID_USB_INSERT, GPIO_DIR_IN);
|
||||||
|
|
||||||
SINT8 halvalue = 0;
|
/*SINT8 halvalue = 0;
|
||||||
SF_MUTEX_LOCK(GPIO_mutexLock);
|
SF_MUTEX_LOCK(GPIO_mutexLock);
|
||||||
sf_hal_gpio_init(SF_KEY_PIN_SYNC,GPIO_DIR_IN);
|
sf_hal_gpio_init(SF_KEY_PIN_SYNC,GPIO_DIR_IN);
|
||||||
sf_hal_gpio_get(SF_KEY_PIN_SYNC,&halvalue);
|
sf_hal_gpio_get(SF_KEY_PIN_SYNC,&halvalue);
|
||||||
sf_hal_gpio_deinit(SF_KEY_PIN_SYNC);
|
sf_hal_gpio_deinit(SF_KEY_PIN_SYNC);
|
||||||
SF_MUTEX_UNLOCK(GPIO_mutexLock);
|
SF_MUTEX_UNLOCK(GPIO_mutexLock);
|
||||||
MLOGI("halvalue: %d\n",halvalue);
|
MLOGI("halvalue: %d\n",halvalue);
|
||||||
if(halvalue == 0)
|
if(halvalue == 1)
|
||||||
return SF_SUCCESS;
|
return SF_SUCCESS;*/
|
||||||
|
|
||||||
SF_MESSAGE_BUF_S stMessageBuf = {0};
|
SF_MESSAGE_BUF_S stMessageBuf = {0};
|
||||||
stMessageBuf.cmdId = CMD_LED;
|
stMessageBuf.cmdId = CMD_LED;
|
||||||
|
@ -493,6 +514,84 @@ SINT32 app_led_pin_init(void)
|
||||||
return SF_SUCCESS;
|
return SF_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SINT32 sf_in_card_exist(void)
|
||||||
|
{
|
||||||
|
SINT8 regValue = 0;
|
||||||
|
SF_MUTEX_LOCK(GPIO_mutexLock);
|
||||||
|
sf_hal_gpio_init(SF_GPIO_CARD_DETECT, GPIO_DIR_IN);
|
||||||
|
sf_hal_gpio_get(SF_GPIO_CARD_DETECT, ®Value);
|
||||||
|
sf_hal_gpio_deinit(SF_GPIO_CARD_DETECT);
|
||||||
|
SF_MUTEX_UNLOCK(GPIO_mutexLock);
|
||||||
|
|
||||||
|
return (regValue & 0xFF) ? 1:0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
SINT32 sf_is_card_full(void)
|
||||||
|
{
|
||||||
|
return IsCardFull;
|
||||||
|
}
|
||||||
|
|
||||||
|
void sf_set_card_full(SINT32 vol)
|
||||||
|
{
|
||||||
|
IsCardFull = vol;
|
||||||
|
}
|
||||||
|
|
||||||
|
SINT32 sf_is_card(void)
|
||||||
|
{
|
||||||
|
return IsCard;
|
||||||
|
}
|
||||||
|
|
||||||
|
void sf_set_card(SINT32 vol)
|
||||||
|
{
|
||||||
|
IsCard = vol;
|
||||||
|
}
|
||||||
|
|
||||||
|
SINT32 sf_get_pir_statu_flag(void)
|
||||||
|
{
|
||||||
|
return isGoing2Pir;
|
||||||
|
}
|
||||||
|
|
||||||
|
void sf_set_pir_statu_flag(SINT32 flag)
|
||||||
|
{
|
||||||
|
isGoing2Pir = flag;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
BOOL sf_load_ko(void)
|
||||||
|
{
|
||||||
|
char** usb_drivers = NULL;
|
||||||
|
char* driver_path = NULL;
|
||||||
|
UINT8 cnt = 0;
|
||||||
|
char cmd[256] = {'\0'};
|
||||||
|
int ret = 0;
|
||||||
|
BOOL ret2 = TRUE;
|
||||||
|
|
||||||
|
usb_drivers = usb_host_drivers;
|
||||||
|
|
||||||
|
while(usb_drivers[cnt++])
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
for(int i = 0 ; i < cnt ; i++)
|
||||||
|
{
|
||||||
|
driver_path = usb_drivers[i];
|
||||||
|
|
||||||
|
if(driver_path){
|
||||||
|
snprintf(cmd, sizeof(cmd), "insmod %s/%s", driver_path_prefix, driver_path);
|
||||||
|
printf("[%s:%d] %s\n", __FUNCTION__, __LINE__, cmd);
|
||||||
|
ret = system(cmd);
|
||||||
|
if(0 != ret)
|
||||||
|
{
|
||||||
|
ret2 = FALSE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return ret2;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
#if __cplusplus
|
#if __cplusplus
|
||||||
}
|
}
|
||||||
|
|
1702
code/application/source/sf_app/code/source/app/sf_service.c
Executable file
1702
code/application/source/sf_app/code/source/app/sf_service.c
Executable file
File diff suppressed because it is too large
Load Diff
854
code/application/source/sf_app/code/source/app/sf_system.c
Executable file
854
code/application/source/sf_app/code/source/app/sf_system.c
Executable file
|
@ -0,0 +1,854 @@
|
||||||
|
#include <string.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
#include <fcntl.h>
|
||||||
|
#include <termios.h>
|
||||||
|
|
||||||
|
|
||||||
|
#include <sys/types.h>
|
||||||
|
#include <sys/socket.h>
|
||||||
|
#include <sys/time.h>
|
||||||
|
#include <sys/stat.h>
|
||||||
|
#include <sys/vfs.h>
|
||||||
|
#include <sys/sem.h>
|
||||||
|
#include <sys/ipc.h>
|
||||||
|
#include <sys/ioctl.h>
|
||||||
|
|
||||||
|
#include "sf_log.h"
|
||||||
|
#include "sf_module.h"
|
||||||
|
#include "sf_ledmng.h"
|
||||||
|
#include "sf_storeMng.h"
|
||||||
|
#include "sf_systemMng.h"
|
||||||
|
#include "sf_keymng.h"
|
||||||
|
#include "sf_otamng.h"
|
||||||
|
|
||||||
|
#include "sf_dev_usb.h"
|
||||||
|
#include "sf_dev_other.h"
|
||||||
|
#include "sf_message_queue.h"
|
||||||
|
#include "sf_commu_mcu_reg.h"
|
||||||
|
|
||||||
|
#include "sf_system.h"
|
||||||
|
#include "sf_device.h"
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
#if __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
static SINT32 AutoPowerOffTime = 0;
|
||||||
|
static SINT32 sfusbstatus = 0;
|
||||||
|
extern SF_PARA_TIME_S rtcTime;
|
||||||
|
|
||||||
|
|
||||||
|
SINT32 bUpdateEnble = 0;
|
||||||
|
SINT32 s32ThreeWaySwitch = 0;
|
||||||
|
|
||||||
|
pthread_mutex_t Param_mutexLock;
|
||||||
|
pthread_mutex_t GPIO_mutexLock;
|
||||||
|
|
||||||
|
SF_THREAD_S AutoPoweroffTskCfg =
|
||||||
|
{
|
||||||
|
.IsRun = 0,
|
||||||
|
.TskId = -1,
|
||||||
|
};
|
||||||
|
SF_THREAD_S BatMonitorTskCfg =
|
||||||
|
{
|
||||||
|
.IsRun = 0,
|
||||||
|
.TskId = -1,
|
||||||
|
};
|
||||||
|
SF_THREAD_S FunKeySwitchTskCfg =
|
||||||
|
{
|
||||||
|
.IsRun = 0,
|
||||||
|
.TskId = -1,
|
||||||
|
};
|
||||||
|
SF_THREAD_S UsbmodeTskCfg =
|
||||||
|
{
|
||||||
|
.IsRun = 0,
|
||||||
|
.TskId = -1,
|
||||||
|
};
|
||||||
|
SF_THREAD_S UpgradeRestoreTskCfg =
|
||||||
|
{
|
||||||
|
.IsRun = 0,
|
||||||
|
.TskId = -1,
|
||||||
|
};
|
||||||
|
SF_THREAD_S OtaUpgradeRestoreTskCfg =
|
||||||
|
{
|
||||||
|
.IsRun = 0,
|
||||||
|
.TskId = -1,
|
||||||
|
};
|
||||||
|
|
||||||
|
SINT8 debugFlag = 0;
|
||||||
|
|
||||||
|
void app_poweroff_time_clear(void)
|
||||||
|
{
|
||||||
|
AutoPowerOffTime = 0;
|
||||||
|
}
|
||||||
|
static void* auto_poweroff_thread(void)
|
||||||
|
{
|
||||||
|
SF_MESSAGE_BUF_S stMessageBuf = {0};
|
||||||
|
while(AutoPoweroffTskCfg.IsRun)
|
||||||
|
{
|
||||||
|
|
||||||
|
if(bUpdateEnble >= 1 && bUpdateEnble < 6)
|
||||||
|
{
|
||||||
|
bUpdateEnble++;
|
||||||
|
}
|
||||||
|
else if(bUpdateEnble >= 6) {
|
||||||
|
app_led_sd_status_return();
|
||||||
|
bUpdateEnble = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
// if(s32ThreeWaySwitch == 1) {
|
||||||
|
// app_pir_monitoring_stop();
|
||||||
|
// sf_led_event_process(LED_STATUS_SLOWFLASH_ON,LED_GROUP_STATUS,LED_TYPE_GREEN);
|
||||||
|
// s32ThreeWaySwitch = 2;
|
||||||
|
// }
|
||||||
|
// else if(s32ThreeWaySwitch >= 2 && s32ThreeWaySwitch < 7) {
|
||||||
|
// s32ThreeWaySwitch++;
|
||||||
|
// }
|
||||||
|
// else if( s32ThreeWaySwitch >= 7) {
|
||||||
|
// app_led_all_status_set(LED_STATUS_HOLD_ON,LED_TYPE_OFF);
|
||||||
|
// app_system_poweroff(SF_POWEROFF_KEYON);
|
||||||
|
// s32ThreeWaySwitch = 0;
|
||||||
|
// }
|
||||||
|
|
||||||
|
|
||||||
|
if(debugFlag == 1){
|
||||||
|
sleep(1);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if(debugFlag == 2) {
|
||||||
|
AutoPowerOffTime = 175;
|
||||||
|
debugFlag = 0;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if(AutoPowerOffTime < 180)
|
||||||
|
{
|
||||||
|
|
||||||
|
UINT8 temp = 0;
|
||||||
|
temp = sf_4G_status_get();
|
||||||
|
|
||||||
|
|
||||||
|
if((temp == SF_4G_SENDING) || (temp == SF_4G_SEARCHING))
|
||||||
|
AutoPowerOffTime = 0;
|
||||||
|
else
|
||||||
|
AutoPowerOffTime++;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
else if(AutoPowerOffTime == 180)
|
||||||
|
{
|
||||||
|
AutoPowerOffTime = 0;
|
||||||
|
if(sf_usb_IsInsert())
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if(sf_poweron_type_get() == SF_MCU_STARTUP_ONKEY)
|
||||||
|
{
|
||||||
|
app_pir_monitoring_stop();
|
||||||
|
app_led_all_status_set(LED_STATUS_HOLD_ON,LED_TYPE_OFF);
|
||||||
|
|
||||||
|
stMessageBuf.cmdId = CMD_LED;
|
||||||
|
|
||||||
|
stMessageBuf.arg1 = LED_STATUS_SLOWFLASH_ON;
|
||||||
|
stMessageBuf.arg2 = LED_GROUP_STATUS;
|
||||||
|
stMessageBuf.arg3 = LED_TYPE_GREEN;
|
||||||
|
sf_com_message_send_to_app(&stMessageBuf);
|
||||||
|
|
||||||
|
sleep(5);
|
||||||
|
stMessageBuf.arg1 = SF_POWEROFF_AUTO;
|
||||||
|
stMessageBuf.cmdId = CMD_POWEROFF;
|
||||||
|
sf_com_message_send_to_app(&stMessageBuf);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if(sf_upgrade_status_get() == SF_UPGRADE_FAIL)
|
||||||
|
{
|
||||||
|
stMessageBuf.arg1 = SF_POWEROFF_NOT;
|
||||||
|
stMessageBuf.cmdId = CMD_POWEROFF;
|
||||||
|
sf_com_message_send_to_app(&stMessageBuf);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
sleep(1);
|
||||||
|
}
|
||||||
|
AutoPowerOffTime = 0;
|
||||||
|
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
SINT8 sf_sys_battery_level_get(SINT32 batValue)
|
||||||
|
{
|
||||||
|
if(batValue >= 90)
|
||||||
|
{
|
||||||
|
return SF_BATT_LEVEL_4;
|
||||||
|
}
|
||||||
|
else if(batValue >= 30)
|
||||||
|
{
|
||||||
|
return SF_BATT_LEVEL_3;
|
||||||
|
}
|
||||||
|
else if(batValue > 0)
|
||||||
|
{
|
||||||
|
return SF_BATT_LEVEL_2;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return SF_BATT_LEVEL_0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
SINT32 app_auto_poweroff_start(void)
|
||||||
|
{
|
||||||
|
SINT32 ret = SF_SUCCESS;
|
||||||
|
|
||||||
|
if(AutoPoweroffTskCfg.IsRun)
|
||||||
|
{
|
||||||
|
SLOGE("thread has already run !!!\n");
|
||||||
|
return SF_FAILURE;
|
||||||
|
}
|
||||||
|
ret = pthread_create(&AutoPoweroffTskCfg.TskId, NULL, auto_poweroff_thread, NULL);
|
||||||
|
if(ret != SF_SUCCESS)
|
||||||
|
{
|
||||||
|
MLOGD("thread creat fail!\n");
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
AutoPoweroffTskCfg.IsRun = 1;
|
||||||
|
|
||||||
|
return SF_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void* battery_monitoring_thread(void)
|
||||||
|
{
|
||||||
|
SINT32 batPercentVal = 1;
|
||||||
|
SINT32 lastbatPercentVal = 1;
|
||||||
|
UINT8 batLevel = 0;
|
||||||
|
static UINT16 lastBatLevel = 0;
|
||||||
|
|
||||||
|
SF_RTOSINFO_S pstRtosData;
|
||||||
|
SF_MESSAGE_BUF_S stMessageBuf = {0};
|
||||||
|
SF_PDT_PARAM_STATISTICS_S *pStaticParam = sf_statistics_param_get();
|
||||||
|
SF_PDT_PARAM_CFG_S* puiPara = sf_customer_param_get();
|
||||||
|
|
||||||
|
sleep(3);
|
||||||
|
|
||||||
|
while(1)
|
||||||
|
{
|
||||||
|
|
||||||
|
sf_sys_rtosdata_get(&pstRtosData);
|
||||||
|
batPercentVal = pstRtosData.BatPer;
|
||||||
|
pStaticParam->BatRemainCap = batPercentVal;
|
||||||
|
//SLOGI("batPercentVal = %d\n",batPercentVal);
|
||||||
|
if(batPercentVal == 0)
|
||||||
|
{
|
||||||
|
|
||||||
|
if(sf_usb_IsInsert())
|
||||||
|
return NULL;
|
||||||
|
//SLOGI("batPercentVal = %d,lastbatPercentVal = %d\n",batPercentVal,lastbatPercentVal);
|
||||||
|
// twice in a row below poweroff value, go to poweroff
|
||||||
|
if(lastbatPercentVal == 0)
|
||||||
|
{
|
||||||
|
if(sf_poweron_type_get() == SF_MCU_STARTUP_ONKEY \
|
||||||
|
&& (pstRtosData.IsNight == 1) \
|
||||||
|
&& (puiPara->CamMode) \
|
||||||
|
&& (sf_cap_status_get() == 2))
|
||||||
|
{
|
||||||
|
//batPercentVal = lastbatPer;
|
||||||
|
//sf_batteryRemain_percent_set((UINT8)batPercentVal);
|
||||||
|
//send stop record msg
|
||||||
|
stMessageBuf.cmdId = 0x0111;
|
||||||
|
sf_com_message_send_to_cardv(&stMessageBuf);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
sleep(1);
|
||||||
|
|
||||||
|
stMessageBuf.cmdId = CMD_LED;
|
||||||
|
stMessageBuf.arg1 = LED_STATUS_QUICKFLASH_ON;
|
||||||
|
stMessageBuf.arg2 = LED_GROUP_BAT;
|
||||||
|
stMessageBuf.arg3 = LED_TYPE_RED;
|
||||||
|
sf_com_message_send_to_app(&stMessageBuf);
|
||||||
|
|
||||||
|
stMessageBuf.arg1 = SF_POWEROFF_LOW_BAT;
|
||||||
|
stMessageBuf.cmdId = CMD_POWEROFF;
|
||||||
|
sf_com_message_send_to_app(&stMessageBuf);
|
||||||
|
while(1)
|
||||||
|
sleep(5);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
lastbatPercentVal = batPercentVal;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
batLevel = sf_sys_battery_level_get(batPercentVal);
|
||||||
|
if(batLevel != lastBatLevel)
|
||||||
|
{
|
||||||
|
lastBatLevel = batLevel;
|
||||||
|
stMessageBuf.cmdId = CMD_LED;
|
||||||
|
stMessageBuf.arg1 = LED_STATUS_HOLD_ON;
|
||||||
|
stMessageBuf.arg2 = LED_GROUP_BAT;
|
||||||
|
switch(lastBatLevel) {
|
||||||
|
case SF_BATT_LEVEL_4:
|
||||||
|
stMessageBuf.arg3 = LED_TYPE_GREEN;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SF_BATT_LEVEL_3:
|
||||||
|
stMessageBuf.arg3 = LED_TYPE_YELLOW;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SF_BATT_LEVEL_2:
|
||||||
|
stMessageBuf.arg3 = LED_TYPE_RED;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SF_BATT_LEVEL_0:
|
||||||
|
stMessageBuf.arg1 = LED_STATUS_QUICKFLASH_ON;
|
||||||
|
stMessageBuf.arg3 = LED_TYPE_RED;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
sf_com_message_send_to_app(&stMessageBuf);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
sleep(3);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
SINT32 app_batmonitoring_start(void)
|
||||||
|
{
|
||||||
|
SINT32 ret = SF_SUCCESS;
|
||||||
|
|
||||||
|
if(sf_poweron_type_get() != SF_MCU_STARTUP_ONKEY)
|
||||||
|
{
|
||||||
|
SLOGE("unsupport startup mode !!!\n");
|
||||||
|
return SF_FAILURE;
|
||||||
|
}
|
||||||
|
if(BatMonitorTskCfg.IsRun)
|
||||||
|
{
|
||||||
|
SLOGE("thread has already run !!!\n");
|
||||||
|
return SF_FAILURE;
|
||||||
|
}
|
||||||
|
ret = pthread_create(&BatMonitorTskCfg.TskId, NULL, battery_monitoring_thread, NULL);
|
||||||
|
if(ret != SF_SUCCESS)
|
||||||
|
{ MLOGD("thread creat fail!\n");
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
BatMonitorTskCfg.IsRun = 1;
|
||||||
|
return SF_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
void* flash_poweroff_thread(void)
|
||||||
|
{
|
||||||
|
UINT16 i = 0;
|
||||||
|
SF_MESSAGE_BUF_S stMessageBuf = {0};
|
||||||
|
stMessageBuf.cmdId = CMD_LED;
|
||||||
|
stMessageBuf.arg1 = LED_STATUS_SLOWFLASH_ON;
|
||||||
|
stMessageBuf.arg2 = LED_GROUP_STATUS;
|
||||||
|
stMessageBuf.arg3 = LED_TYPE_GREEN;
|
||||||
|
sf_com_message_send_to_app(&stMessageBuf);
|
||||||
|
while((i < 10) && (FunKeySwitchTskCfg.IsRun))
|
||||||
|
{
|
||||||
|
usleep(500*1000);
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(i == 10) {
|
||||||
|
stMessageBuf.arg1 = SF_POWEROFF_KEYON;
|
||||||
|
stMessageBuf.cmdId = CMD_POWEROFF;
|
||||||
|
sf_com_message_send_to_app(&stMessageBuf);
|
||||||
|
}
|
||||||
|
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
SINT32 app_flash_poweroff_start(void)
|
||||||
|
{
|
||||||
|
SINT32 ret = SF_FAILURE;
|
||||||
|
if(FunKeySwitchTskCfg.IsRun)
|
||||||
|
{
|
||||||
|
SLOGE("thread has already run !!!\n");
|
||||||
|
return SF_FAILURE;
|
||||||
|
}
|
||||||
|
ret = pthread_create(&FunKeySwitchTskCfg.TskId, NULL, flash_poweroff_thread, NULL);
|
||||||
|
if(ret != SF_SUCCESS)
|
||||||
|
{ MLOGD("thread creat fail!\n");
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
MLOGI("\n");
|
||||||
|
FunKeySwitchTskCfg.IsRun = 1;
|
||||||
|
return SF_SUCCESS;
|
||||||
|
|
||||||
|
}
|
||||||
|
SINT32 app_flash_poweroff_stop(void)
|
||||||
|
{
|
||||||
|
SINT32 ret = 0;
|
||||||
|
|
||||||
|
FunKeySwitchTskCfg.IsRun = 0;
|
||||||
|
MLOGD("sf_flash_poweroff_stop\n");
|
||||||
|
ret = pthread_join(FunKeySwitchTskCfg.TskId, NULL);
|
||||||
|
if(ret != SF_SUCCESS)
|
||||||
|
{
|
||||||
|
MLOGD("thread stop fail!\n");
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
return SF_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
SINT8 app_flash_poweroff_task_IsRun(void)
|
||||||
|
{
|
||||||
|
return FunKeySwitchTskCfg.IsRun;
|
||||||
|
}
|
||||||
|
void* upgrade_restore_thread(void)
|
||||||
|
{
|
||||||
|
UINT16 i = 0;
|
||||||
|
|
||||||
|
SF_MESSAGE_BUF_S stMessageBuf = {0};
|
||||||
|
stMessageBuf.cmdId = CMD_LED;
|
||||||
|
stMessageBuf.arg1 = LED_STATUS_QUICKFLASH_ON;
|
||||||
|
stMessageBuf.arg2 = LED_GROUP_SD;
|
||||||
|
stMessageBuf.arg3 = LED_TYPE_RED;
|
||||||
|
sf_com_message_send_to_app(&stMessageBuf);
|
||||||
|
|
||||||
|
while(i < 5 && UpgradeRestoreTskCfg.IsRun)
|
||||||
|
{
|
||||||
|
sleep(1);
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
UpgradeRestoreTskCfg.IsRun = 0;
|
||||||
|
app_led_sd_status_return();
|
||||||
|
|
||||||
|
app_batmonitoring_start();
|
||||||
|
app_RegisterNet_start();
|
||||||
|
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
SINT32 app_upgrade_restore_start(void)
|
||||||
|
{
|
||||||
|
SINT32 ret = SF_FAILURE;
|
||||||
|
if(UpgradeRestoreTskCfg.IsRun)
|
||||||
|
{
|
||||||
|
SLOGE("thread has already run !!!\n");
|
||||||
|
return SF_FAILURE;
|
||||||
|
}
|
||||||
|
ret = pthread_create(&UpgradeRestoreTskCfg.TskId, NULL, upgrade_restore_thread, NULL);
|
||||||
|
if(ret != SF_SUCCESS)
|
||||||
|
{ MLOGD("thread creat fail!\n");
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
UpgradeRestoreTskCfg.IsRun = 1;
|
||||||
|
return SF_SUCCESS;
|
||||||
|
|
||||||
|
}
|
||||||
|
SINT32 app_upgrade_restore_stop(void)
|
||||||
|
{
|
||||||
|
SINT32 ret = 0;
|
||||||
|
|
||||||
|
UpgradeRestoreTskCfg.IsRun = 0;
|
||||||
|
MLOGD("sf_flash_poweroff_stop\n");
|
||||||
|
ret = pthread_join(UpgradeRestoreTskCfg.TskId, NULL);
|
||||||
|
if(ret != SF_SUCCESS)
|
||||||
|
{
|
||||||
|
MLOGD("thread stop fail!\n");
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
return SF_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
SINT8 app_upgrade_restore_IsRun(void)
|
||||||
|
{
|
||||||
|
return UpgradeRestoreTskCfg.IsRun;
|
||||||
|
}
|
||||||
|
|
||||||
|
void* upgrade_ota_restore_thread(void)
|
||||||
|
{
|
||||||
|
UINT16 i = 0;
|
||||||
|
|
||||||
|
SF_MESSAGE_BUF_S stMessageBuf = {0};
|
||||||
|
stMessageBuf.cmdId = CMD_LED;
|
||||||
|
stMessageBuf.arg1 = LED_STATUS_QUICKFLASH_ON;
|
||||||
|
stMessageBuf.arg2 = LED_GROUP_SD;
|
||||||
|
stMessageBuf.arg3 = LED_TYPE_RED;
|
||||||
|
sf_com_message_send_to_app(&stMessageBuf);
|
||||||
|
|
||||||
|
while(i < 5 && OtaUpgradeRestoreTskCfg.IsRun)
|
||||||
|
{
|
||||||
|
sleep(1);
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
OtaUpgradeRestoreTskCfg.IsRun = 0;
|
||||||
|
app_led_sd_status_return();
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
SINT32 app_upgrade_ota_restore_start(void)
|
||||||
|
{
|
||||||
|
SINT32 ret = SF_FAILURE;
|
||||||
|
if(OtaUpgradeRestoreTskCfg.IsRun)
|
||||||
|
{
|
||||||
|
SLOGE("thread has already run !!!\n");
|
||||||
|
return SF_FAILURE;
|
||||||
|
}
|
||||||
|
ret = pthread_create(&OtaUpgradeRestoreTskCfg.TskId, NULL, upgrade_ota_restore_thread, NULL);
|
||||||
|
if(ret != SF_SUCCESS)
|
||||||
|
{ MLOGD("thread creat fail!\n");
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
OtaUpgradeRestoreTskCfg.IsRun = 1;
|
||||||
|
return SF_SUCCESS;
|
||||||
|
|
||||||
|
}
|
||||||
|
SINT32 app_upgrade_ota_restore_stop(void)
|
||||||
|
{
|
||||||
|
SINT32 ret = 0;
|
||||||
|
|
||||||
|
OtaUpgradeRestoreTskCfg.IsRun = 0;
|
||||||
|
MLOGD("sf_flash_poweroff_stop\n");
|
||||||
|
ret = pthread_join(OtaUpgradeRestoreTskCfg.TskId, NULL);
|
||||||
|
if(ret != SF_SUCCESS)
|
||||||
|
{
|
||||||
|
MLOGD("thread stop fail!\n");
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
return SF_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
SINT8 app_upgrade_ota_restore_IsRun(void)
|
||||||
|
{
|
||||||
|
return OtaUpgradeRestoreTskCfg.IsRun;
|
||||||
|
}
|
||||||
|
|
||||||
|
SINT32 app_funkey_switch_check_start(void)
|
||||||
|
{
|
||||||
|
SINT32 ret = SF_FAILURE;
|
||||||
|
app_led_all_status_set(LED_STATUS_HOLD_ON,LED_TYPE_OFF);
|
||||||
|
app_pir_monitoring_stop();
|
||||||
|
ret = app_flash_poweroff_start();
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
SINT32 app_funkey_switch_check_stop(void)
|
||||||
|
{
|
||||||
|
app_flash_poweroff_stop();
|
||||||
|
sf_poweroff_type_set(SF_POWEROFF_NOT);
|
||||||
|
|
||||||
|
SF_MESSAGE_BUF_S stMessageBuf = {0};
|
||||||
|
stMessageBuf.cmdId = CMD_LED;
|
||||||
|
stMessageBuf.arg1 = LED_STATUS_HOLD_ON;
|
||||||
|
stMessageBuf.arg2 = LED_GROUP_SIGNAL;
|
||||||
|
stMessageBuf.arg3 = LED_TYPE_GREEN;
|
||||||
|
sf_com_message_send_to_app(&stMessageBuf);
|
||||||
|
|
||||||
|
app_pir_monitoring_start();
|
||||||
|
|
||||||
|
// sf_4G_signal_level_get(sf_statistics_param_get(),&signalLevel);
|
||||||
|
|
||||||
|
return SF_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void * usb_mode_Task(void * argv)
|
||||||
|
{
|
||||||
|
while(1)
|
||||||
|
{
|
||||||
|
if(sf_cap_status_get() > 0)
|
||||||
|
continue;
|
||||||
|
if(sf_usb_IsInsert() == 0)
|
||||||
|
sf_usb_app_mode_set(SF_USB_APP_CHARGE);
|
||||||
|
|
||||||
|
if(sf_usb_IsInsert() == 1 && sfusbstatus == 0)
|
||||||
|
{
|
||||||
|
if(sf_usb_app_mode_get() == SF_USB_APP_CHARGE)
|
||||||
|
{
|
||||||
|
if(sf_sd_status_get() == SF_SD_OK || sf_sd_status_get() == SF_SD_FULL)
|
||||||
|
{
|
||||||
|
sf_usb_app_mode_set(SF_USB_APP_MSDC);
|
||||||
|
system("/customer/gadget/udc-msdc.sh");
|
||||||
|
sfusbstatus = 1;
|
||||||
|
}
|
||||||
|
else if(sf_sd_status_get() == SF_SD_UNPLUGED || sf_sd_status_get() == SF_SD_OUT)
|
||||||
|
{
|
||||||
|
sf_usb_app_mode_set(SF_USB_APP_UVC);
|
||||||
|
system("echo uvc 1 > /tmp/cardv_fifo");
|
||||||
|
sfusbstatus = 2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if(sf_usb_IsInsert() != 1 && sfusbstatus != 0)
|
||||||
|
{
|
||||||
|
sf_usb_app_mode_set(SF_USB_APP_CHARGE);
|
||||||
|
sfusbstatus = 0;
|
||||||
|
|
||||||
|
SF_MESSAGE_BUF_S stMessageBuf = {0};
|
||||||
|
stMessageBuf.arg1 = SF_POWEROFF_KEYOFF;
|
||||||
|
stMessageBuf.cmdId = CMD_POWEROFF;
|
||||||
|
sf_com_message_send_to_app(&stMessageBuf);
|
||||||
|
}
|
||||||
|
sleep(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
SINT32 app_usb_mode_start(void)
|
||||||
|
{
|
||||||
|
SINT32 ret = SF_FAILURE;
|
||||||
|
if(UsbmodeTskCfg.IsRun)
|
||||||
|
{
|
||||||
|
SLOGE("thread has already run !!!\n");
|
||||||
|
return SF_FAILURE;
|
||||||
|
}
|
||||||
|
ret = pthread_create(&UsbmodeTskCfg.TskId, NULL, usb_mode_Task, NULL);
|
||||||
|
if(ret != SF_SUCCESS)
|
||||||
|
{ MLOGD("thread creat fail!\n");
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
UsbmodeTskCfg.IsRun = 1;
|
||||||
|
return SF_SUCCESS;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
SINT32 app_usb_mode_stop()
|
||||||
|
{
|
||||||
|
UINT16 ret = 0;
|
||||||
|
|
||||||
|
UsbmodeTskCfg.IsRun = 0;
|
||||||
|
MLOGD("sf_flash_poweroff_stop\n");
|
||||||
|
ret = pthread_join(UsbmodeTskCfg.TskId, NULL);
|
||||||
|
if(ret != SF_SUCCESS)
|
||||||
|
{
|
||||||
|
MLOGD("thread stop fail!\n");
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
return SF_SUCCESS;
|
||||||
|
}
|
||||||
|
SINT32 app_system_time_update(unsigned int rtosBootTime)
|
||||||
|
{
|
||||||
|
|
||||||
|
time_t timep;
|
||||||
|
struct tm* tm_t;
|
||||||
|
struct timeval tv;
|
||||||
|
SF_PARA_TIME_S rtcTime;
|
||||||
|
|
||||||
|
tm_t = localtime((time_t*)&rtosBootTime);
|
||||||
|
|
||||||
|
rtcTime.Year = tm_t->tm_year + 1900;
|
||||||
|
rtcTime.Mon = tm_t->tm_mon + 1;
|
||||||
|
rtcTime.Day = tm_t->tm_mday;
|
||||||
|
rtcTime.Hour = tm_t->tm_hour;
|
||||||
|
rtcTime.Min = tm_t->tm_min;
|
||||||
|
rtcTime.Sec = tm_t->tm_sec;
|
||||||
|
|
||||||
|
// SLOGI("%d-%d-%d %d:%d:%d\n",rtcTime.Year,rtcTime.Mon,rtcTime.Day,rtcTime.Hour,rtcTime.Min,rtcTime.Sec);
|
||||||
|
|
||||||
|
if(SF_TRUE == sf_sys_rtc_time_check(&rtcTime))
|
||||||
|
{
|
||||||
|
sf_sys_rtc_time_set(&rtcTime);
|
||||||
|
timep = mktime(tm_t);
|
||||||
|
tv.tv_sec = timep;
|
||||||
|
tv.tv_usec = 0;
|
||||||
|
if(settimeofday (&tv, NULL) < 0)
|
||||||
|
SLOGE("Set system datatime error[%s]!\n",strerror(errno));
|
||||||
|
}
|
||||||
|
|
||||||
|
return SF_SUCCESS;
|
||||||
|
}
|
||||||
|
SINT32 app_system_param_update()
|
||||||
|
{
|
||||||
|
SF_RTOSINFO_S stRtosData = {0};
|
||||||
|
sf_sys_rtosdata_get(&stRtosData);
|
||||||
|
sf_poweron_type_set((SF_STARTUP_TYPE_E)stRtosData.test2);
|
||||||
|
sf_statistics_param_get()->startup = (SF_STARTUP_TYPE_E)stRtosData.test2;
|
||||||
|
|
||||||
|
sf_set_mcu_sub_ver(stRtosData.McuSubVer);
|
||||||
|
sf_set_mcu_ver(stRtosData.McuVer);
|
||||||
|
SLOGD("MCUsubver:%d,MCUver:%d\n",stRtosData.McuSubVer,stRtosData.McuVer);
|
||||||
|
|
||||||
|
sf_statistics_param_get()->BatRemainCap = (UINT8)stRtosData.BatPer;
|
||||||
|
sf_statistics_param_get()->FcTemper = (UINT8)stRtosData.Fctemp;
|
||||||
|
MLOGD("BatRemainCap:%d,FcTemper:%d\n",sf_statistics_param_get()->BatRemainCap,sf_statistics_param_get()->FcTemper);
|
||||||
|
|
||||||
|
return SF_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
SINT32 app_system_poweroff(SF_POWEROFF_TYPE_E enType )
|
||||||
|
{
|
||||||
|
sf_poweroff_type_set(enType);
|
||||||
|
sf_mcu_reg_set(SF_MCU_POWEROFF,sf_poweroff_type_get());
|
||||||
|
/*
|
||||||
|
SF_STORE_ATTR_S storeattrs = {0};
|
||||||
|
SF_STARTUP_TYPE_E startup = SF_MCU_STARTUP_ONKEY;
|
||||||
|
SF_PDT_PARAM_CFG_S* pCustomer = sf_customer_param_get();
|
||||||
|
|
||||||
|
#if SF_QLOG_ENABLE
|
||||||
|
if(pCustomer->DebugMode)
|
||||||
|
{
|
||||||
|
system("killall qlog");
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// sf_sd_remove_file(SF_4G_PIC_THUMB_PATH,50);
|
||||||
|
// sf_sd_remove_file(SF_4G_SMALL_VIDEO_STREAM_PATH,50);
|
||||||
|
startup = sf_poweron_type_get();
|
||||||
|
pCustomer->Lastsetuptype = startup;
|
||||||
|
MLOGI("poweron type ending:[%d,%s]\n", startup, sf_poweron_type_string(startup));
|
||||||
|
if((startup != SF_MCU_STARTUP_ONKEY) && (startup != SF_MCU_STARTUP_NORMAL) && (startup != SF_MCU_STARTUP_OFF))
|
||||||
|
{
|
||||||
|
if(pCustomer->SdLoop == 1) {
|
||||||
|
sf_sd_info_get(&storeattrs);
|
||||||
|
if((storeattrs.SDStatus == 0) & (storeattrs.SDFree < SDLOOP_REMAIN_SPACE)) {
|
||||||
|
sf_sd_loopremove("/mnt/mmc/DCIM");
|
||||||
|
MLOGI("loop remove finished!!!\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(pCustomer->DebugMode)
|
||||||
|
sync();
|
||||||
|
|
||||||
|
if(pCustomer->ResetFlag == 1)
|
||||||
|
{ sf_poweroff_type_set(SF_POWEROFF_SYNC_PARAM);
|
||||||
|
pCustomer->ResetFlag = 0;
|
||||||
|
}
|
||||||
|
else if(pCustomer->SdLoop != 1 && sf_sd_status_get() == SF_SD_FULL) {
|
||||||
|
sf_poweroff_type_set(SF_POWEROFF_SD_FULL);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
sf_poweroff_type_set(enType);
|
||||||
|
|
||||||
|
if(sf_sd_status_get() != SF_SD_OUT)
|
||||||
|
sf_statistics_param_save(sf_statistics_param_get());
|
||||||
|
MLOGI("BatRemainCap = %d\n",sf_statistics_param_get()->BatRemainCap);
|
||||||
|
if(sf_statistics_param_get()->BatRemainCap > 0)
|
||||||
|
sf_customer_param_save(sf_customer_param_get());
|
||||||
|
|
||||||
|
sf_sys_poweroff(sf_poweroff_type_get());
|
||||||
|
*/
|
||||||
|
return SF_SUCCESS;
|
||||||
|
}
|
||||||
|
SINT32 app_http_time_by_timezone_set(void)
|
||||||
|
{
|
||||||
|
UINT32 second = 0;
|
||||||
|
SF_PDT_PARAM_CFG_S* pSfParam = sf_customer_param_get();
|
||||||
|
sf_sys_rtc_time_get(&rtcTime);
|
||||||
|
second = sf_get_seconds(rtcTime);
|
||||||
|
second -= pSfParam->TimeZone * 3600;
|
||||||
|
sf_get_date(second, &(sf_statistics_param_get()->httpTime));
|
||||||
|
return SF_SUCCESS;
|
||||||
|
}
|
||||||
|
SINT32 app_upgrade_sd_execute(void)
|
||||||
|
{
|
||||||
|
SINT8 halvalue = 0;
|
||||||
|
SF_MESSAGE_BUF_S stMessageBuf = {0};
|
||||||
|
SF_MUTEX_LOCK(GPIO_mutexLock);
|
||||||
|
sf_hal_gpio_init(SF_KEY_PIN_SYNC,GPIO_DIR_IN);
|
||||||
|
sf_hal_gpio_get(SF_KEY_PIN_SYNC,&halvalue);
|
||||||
|
sf_hal_gpio_deinit(SF_KEY_PIN_SYNC);
|
||||||
|
SF_MUTEX_UNLOCK(GPIO_mutexLock);
|
||||||
|
MLOGI("halvalue: %d\n",halvalue);
|
||||||
|
if(!(halvalue == 1 && SF_MCU_STARTUP_ONKEY == sf_poweron_type_get()))
|
||||||
|
goto _normal_deal;
|
||||||
|
|
||||||
|
sf_upgrade_status_set(SF_UPGRADE_ING);
|
||||||
|
|
||||||
|
if(upgrade_ota_file_IsExsit(SF_OTA_UPGRADE_FILE_PATH) == SF_FALSE) {
|
||||||
|
MLOGW("[%s] not existed in store!!!\n",SF_OTA_UPGRADE_FILE_PATH);
|
||||||
|
goto _error_deal_;
|
||||||
|
}
|
||||||
|
SF_RTOSINFO_S stRtosData = {0};
|
||||||
|
sf_sys_rtosdata_get(&stRtosData);
|
||||||
|
if(stRtosData.BatPer < 40) {
|
||||||
|
MLOGW("BatRemainCap [%d] is less than 40%\n",stRtosData.BatPer);
|
||||||
|
goto _error_deal_;
|
||||||
|
}
|
||||||
|
|
||||||
|
SINT32 s32ret = SF_SUCCESS;
|
||||||
|
// s32ret = sf_upgrade_ota_param_bak();
|
||||||
|
// if(s32ret != SF_SUCCESS)
|
||||||
|
// goto _error_deal_;
|
||||||
|
|
||||||
|
s32ret = sf_upgrade_ota_env_set();
|
||||||
|
if(s32ret != SF_SUCCESS)
|
||||||
|
goto _error_deal_;
|
||||||
|
|
||||||
|
sleep(2);
|
||||||
|
|
||||||
|
sf_mcu_wdg_off();
|
||||||
|
sleep(2);
|
||||||
|
|
||||||
|
stMessageBuf.arg1 = SF_POWEROFF_SYNC_PARAM;
|
||||||
|
stMessageBuf.cmdId = CMD_POWEROFF;
|
||||||
|
sf_com_message_send_to_app(&stMessageBuf);
|
||||||
|
|
||||||
|
return SF_SUCCESS;
|
||||||
|
|
||||||
|
_normal_deal:
|
||||||
|
|
||||||
|
if(!(SF_MCU_STARTUP_ONKEY == sf_poweron_type_get()))
|
||||||
|
return SF_FAILURE;
|
||||||
|
|
||||||
|
stMessageBuf.cmdId = CMD_LED;
|
||||||
|
stMessageBuf.arg1 = LED_STATUS_HOLD_ON;
|
||||||
|
stMessageBuf.arg2 = LED_GROUP_STATUS;
|
||||||
|
stMessageBuf.arg3 = LED_TYPE_GREEN;
|
||||||
|
sf_com_message_send_to_app(&stMessageBuf);
|
||||||
|
|
||||||
|
return SF_SUCCESS;
|
||||||
|
|
||||||
|
_error_deal_:
|
||||||
|
if(!(SF_MCU_STARTUP_ONKEY == sf_poweron_type_get()))
|
||||||
|
return SF_FAILURE;
|
||||||
|
sf_upgrade_status_set(SF_UPGRADE_FAIL);
|
||||||
|
stMessageBuf.cmdId = CMD_LED;
|
||||||
|
stMessageBuf.arg1 = LED_STATUS_HOLD_ON;
|
||||||
|
stMessageBuf.arg2 = LED_GROUP_STATUS;
|
||||||
|
stMessageBuf.arg3 = LED_TYPE_GREEN;
|
||||||
|
sf_com_message_send_to_app(&stMessageBuf);
|
||||||
|
if(!app_upgrade_restore_IsRun())
|
||||||
|
app_upgrade_restore_start();
|
||||||
|
|
||||||
|
return SF_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
SINT32 app_preinit(void)
|
||||||
|
{
|
||||||
|
SINT8 bUsbIsInsert = 0;
|
||||||
|
SINT8 bSimIsInsert = 0;
|
||||||
|
SF_STARTUP_TYPE_E startup = SF_MCU_STARTUP_ONKEY;
|
||||||
|
startup = sf_poweron_type_get();
|
||||||
|
|
||||||
|
|
||||||
|
bUsbIsInsert = sf_usb_IsInsert();
|
||||||
|
bSimIsInsert = sf_4G_sim_IsInsert();
|
||||||
|
|
||||||
|
if((startup == SF_MCU_STARTUP_NORMAL) && (!bUsbIsInsert))
|
||||||
|
{
|
||||||
|
app_led_poweroff();
|
||||||
|
}
|
||||||
|
if((bSimIsInsert) || (startup == SF_MCU_STARTUP_ONKEY))
|
||||||
|
{
|
||||||
|
sf_4G_usb_init();
|
||||||
|
MLOGD("sim card insert\n");
|
||||||
|
}
|
||||||
|
/*if(startup == SF_MCU_STARTUP_ONKEY)
|
||||||
|
{
|
||||||
|
app_pir_monitoring_start();
|
||||||
|
#ifndef SF_HARDWARE_TEST
|
||||||
|
app_auto_poweroff_start();
|
||||||
|
#endif
|
||||||
|
if(!app_upgrade_restore_IsRun())
|
||||||
|
app_batmonitoring_start();
|
||||||
|
}*/
|
||||||
|
return SF_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
#if __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
|
@ -61,16 +61,19 @@ static SINT32 message_queue_create(SF_CHAR *pathname,SINT32 *pMsgQueueId)
|
||||||
}
|
}
|
||||||
if((key = ftok(pathname,'z')) < 0)
|
if((key = ftok(pathname,'z')) < 0)
|
||||||
{
|
{
|
||||||
MLOGI("ftok error");
|
//MLOGI("ftok error");
|
||||||
|
printf("[%s:%d] ftok error\n", __FUNCTION__, __LINE__);
|
||||||
return SF_FAILURE;
|
return SF_FAILURE;
|
||||||
}
|
}
|
||||||
if ((*pMsgQueueId = msgget(key, IPC_CREAT | 0660)) == -1)
|
if ((*pMsgQueueId = msgget(key, IPC_CREAT | 0660)) == -1)
|
||||||
{
|
{
|
||||||
MLOGI("MsgQueueId = %#x\n",*pMsgQueueId);
|
printf("[%s:%d] MsgQueueId = %#x msgget failed errno.%02d is: %s\n", __FUNCTION__, __LINE__,*pMsgQueueId, errno, strerror(errno));
|
||||||
MLOGI("msgget failed errno.%02d is: %s\n", errno, strerror(errno));
|
//MLOGI("MsgQueueId = %#x\n");
|
||||||
|
//MLOGI("msgget failed errno.%02d is: %s\n");
|
||||||
return SF_FAILURE;
|
return SF_FAILURE;
|
||||||
}
|
}
|
||||||
MLOGI("MsgQueueId = %#x\n",*pMsgQueueId);
|
printf("[%s:%d] MsgQueueId = %#x\n", __FUNCTION__, __LINE__,*pMsgQueueId);
|
||||||
|
//MLOGI("\n");
|
||||||
return SF_SUCCESS;
|
return SF_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -22,6 +22,7 @@ extern "C" {
|
||||||
#include "sf_type.h"
|
#include "sf_type.h"
|
||||||
#include "sf_param_common.h"
|
#include "sf_param_common.h"
|
||||||
#include "sf_fileMng.h"
|
#include "sf_fileMng.h"
|
||||||
|
#include "sf_message_queue.h"
|
||||||
|
|
||||||
int sf_semId = -1;
|
int sf_semId = -1;
|
||||||
int sf_sharMemId = -1;
|
int sf_sharMemId = -1;
|
||||||
|
@ -145,6 +146,12 @@ void* share_mem_get(int shmID)
|
||||||
{
|
{
|
||||||
return shmat(shmID, NULL, 0);
|
return shmat(shmID, NULL, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int share_mem_dt(UIMenuStoreInfo *pSfCustomerPara)
|
||||||
|
{
|
||||||
|
return shmdt(pSfCustomerPara);
|
||||||
|
}
|
||||||
|
|
||||||
SINT32 sf_share_mem_init(SF_CHAR *pathname,int size,SINT32 *pshmID)
|
SINT32 sf_share_mem_init(SF_CHAR *pathname,int size,SINT32 *pshmID)
|
||||||
{
|
{
|
||||||
return share_mem_create(pathname,size,pshmID);
|
return share_mem_create(pathname,size,pshmID);
|
||||||
|
@ -166,33 +173,34 @@ SINT32 sf_share_mem_file_init(void)
|
||||||
pThumbFileCfg = (SF_SRCFILE_ATTR_S *)sf_share_mem_get(sf_sharMemfileId);
|
pThumbFileCfg = (SF_SRCFILE_ATTR_S *)sf_share_mem_get(sf_sharMemfileId);
|
||||||
if(pThumbFileCfg <= 0)
|
if(pThumbFileCfg <= 0)
|
||||||
{
|
{
|
||||||
MLOGI("creat share mem failed!!!\n");
|
printf("[%s:%d] creat share mem failed!!!\n", __FUNCTION__, __LINE__);
|
||||||
return SF_FAILURE;
|
return SF_FAILURE;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
sf_file_thumb_cfg_set(pThumbFileCfg);
|
//sf_file_thumb_cfg_set(pThumbFileCfg);
|
||||||
MLOGI("creat share mem succeed!!!\n");
|
printf("[%s:%d] creat share mem succeed!!!\n", __FUNCTION__, __LINE__);
|
||||||
return SF_SUCCESS;
|
return SF_SUCCESS;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return SF_FAILURE;
|
return SF_FAILURE;
|
||||||
}
|
}
|
||||||
SINT32 sf_share_mem_customer_init(void)
|
SINT32 sf_share_mem_customer_update(void)
|
||||||
{
|
{
|
||||||
SF_PDT_PARAM_CFG_S *pSfCustomerPara = 0;
|
UIMenuStoreInfo *pSfCustomerPara = 0;
|
||||||
if(SF_SUCCESS == sf_share_mem_init((char*)"/tmp/sf_share",sizeof(SF_PDT_PARAM_CFG_S),&sf_sharMemId))
|
if(SF_SUCCESS == sf_share_mem_init((char*)"/tmp/sf_share",sizeof(UIMenuStoreInfo),&sf_sharMemId))
|
||||||
{
|
{
|
||||||
pSfCustomerPara = (SF_PDT_PARAM_CFG_S *)sf_share_mem_get(sf_sharMemId);
|
pSfCustomerPara = (UIMenuStoreInfo *)sf_share_mem_get(sf_sharMemId);
|
||||||
if(pSfCustomerPara <= 0)
|
if(pSfCustomerPara <= 0)
|
||||||
{
|
{
|
||||||
MLOGI("creat share mem failed!!!\n");
|
printf("[%s:%d] creat share mem failed!!!\n", __FUNCTION__, __LINE__);
|
||||||
return SF_FAILURE;
|
return SF_FAILURE;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
sf_customer_param_set(pSfCustomerPara);
|
sf_customer_param_set(pSfCustomerPara);
|
||||||
MLOGI("creat share mem succeed!!!\n");
|
share_mem_dt(pSfCustomerPara);
|
||||||
|
printf("[%s:%d] creat share mem succeed ID:%d!!!\n", __FUNCTION__, __LINE__, sf_sharMemId);
|
||||||
return SF_SUCCESS;
|
return SF_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -200,6 +208,45 @@ SINT32 sf_share_mem_customer_init(void)
|
||||||
return SF_FAILURE;
|
return SF_FAILURE;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SINT32 sf_share_mem_customer_down(UINT32 to)
|
||||||
|
{
|
||||||
|
UIMenuStoreInfo *pSfCustomerPara = 0;
|
||||||
|
|
||||||
|
printf("[%s:%d] s\n", __FUNCTION__, __LINE__);
|
||||||
|
if(SF_SUCCESS == sf_share_mem_init((char*)"/tmp/sf_share",sizeof(UIMenuStoreInfo),&sf_sharMemId))
|
||||||
|
{
|
||||||
|
pSfCustomerPara = (UIMenuStoreInfo *)sf_share_mem_get(sf_sharMemId);
|
||||||
|
if(pSfCustomerPara <= 0)
|
||||||
|
{
|
||||||
|
printf("[%s:%d] creat share mem failed!!!\n", __FUNCTION__, __LINE__);
|
||||||
|
return SF_FAILURE;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
sf_customer_param_set_down(pSfCustomerPara);
|
||||||
|
share_mem_dt(pSfCustomerPara);
|
||||||
|
SF_MESSAGE_BUF_S stMessageBuf = {0};
|
||||||
|
stMessageBuf.arg1 = SF_PARA_CMD_UPDATE;
|
||||||
|
stMessageBuf.cmdId = CMD_PARA;
|
||||||
|
if(to)//to cardv
|
||||||
|
{
|
||||||
|
sf_com_message_send_to_cardv(&stMessageBuf);
|
||||||
|
}
|
||||||
|
else //to sf app
|
||||||
|
{
|
||||||
|
sf_com_message_send_to_app(&stMessageBuf);
|
||||||
|
}
|
||||||
|
|
||||||
|
printf("[%s:%d] creat share mem succeed ID:%d!!!\n", __FUNCTION__, __LINE__, sf_sharMemId);
|
||||||
|
return SF_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
return SF_FAILURE;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
SINT32 sf_share_mem_file_deinit(void)
|
SINT32 sf_share_mem_file_deinit(void)
|
||||||
{
|
{
|
||||||
return sf_share_mem_deinit(sf_sharMemfileId);
|
return sf_share_mem_deinit(sf_sharMemfileId);
|
||||||
|
|
|
@ -29,7 +29,6 @@ SINT32 sf_usb_IsInsert(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
#if __cplusplus
|
#if __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
|
|
|
@ -191,7 +191,8 @@ SINT32 sf_led_flash_stop(SF_LED_GROUD_E enLedGroupType)
|
||||||
return SF_SUCCESS;
|
return SF_SUCCESS;
|
||||||
}
|
}
|
||||||
SINT32 sf_led_event_process(SINT32 arg1,SINT32 arg2,SINT32 arg3)
|
SINT32 sf_led_event_process(SINT32 arg1,SINT32 arg2,SINT32 arg3)
|
||||||
{
|
{
|
||||||
|
return SF_SUCCESS;
|
||||||
SINT32 eventID = 0;
|
SINT32 eventID = 0;
|
||||||
// MLOGI("ARG1:%d,ARG2:%d,ARG3:%d\n",arg1,arg2,arg3);
|
// MLOGI("ARG1:%d,ARG2:%d,ARG3:%d\n",arg1,arg2,arg3);
|
||||||
sf_led_flash_stop(arg2);
|
sf_led_flash_stop(arg2);
|
||||||
|
@ -230,8 +231,569 @@ SINT32 sf_led_event_process(SINT32 arg1,SINT32 arg2,SINT32 arg3)
|
||||||
return SF_SUCCESS;
|
return SF_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if 1
|
||||||
|
|
||||||
|
pthread_t ledTskId;
|
||||||
|
|
||||||
|
//static BOOL isIrLedOn = FALSE;
|
||||||
|
static BOOL isGoToPir = FALSE;
|
||||||
|
|
||||||
|
static BOOL isUsbIn = FALSE;
|
||||||
|
#if HW_S530
|
||||||
|
pthread_t ledRunningTskId;
|
||||||
|
|
||||||
|
static BOOL isRunningLedOn = FALSE;
|
||||||
|
static UINT8 FormatSdFlag = 0;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
LedInfo_t LedInfo[SF_LED_ALL] = {
|
||||||
|
/* ledId, ledstate, times, gpioNum */
|
||||||
|
#if HW_S530
|
||||||
|
{SF_LED_STATUS_R, SF_LED_STATE_OFF, 0, SF_HAL_LED_STATUS_R},
|
||||||
|
{SF_LED_STATUS_G, SF_LED_STATE_OFF, 0, SF_HAL_LED_STATUS_G},
|
||||||
|
{SF_LED_SD_G, SF_LED_STATE_OFF, 0, SF_HAL_LED_SD_G},
|
||||||
|
{SF_LED_SD_R, SF_LED_STATE_OFF, 0, SF_HAL_LED_SD_R},
|
||||||
|
{SF_LED_WIFI, SF_LED_STATE_OFF, 0, SF_HAL_LED_WIFI},
|
||||||
|
{SF_LED_BAT1, SF_LED_STATE_OFF, 0, SF_HAL_LED_BAT1},
|
||||||
|
{SF_LED_BAT2, SF_LED_STATE_OFF, 0, SF_HAL_LED_BAT2},
|
||||||
|
{SF_LED_BAT3, SF_LED_STATE_OFF, 0, SF_HAL_LED_BAT3},
|
||||||
|
{SF_LED_BAT4, SF_LED_STATE_OFF, 0, SF_HAL_LED_BAT4},
|
||||||
|
{SF_LED_SIG1_R, SF_LED_STATE_OFF, 0, SF_HAL_LED_SIG1_R},
|
||||||
|
{SF_LED_SIG1_G, SF_LED_STATE_OFF, 0, SF_HAL_LED_SIG1_G},
|
||||||
|
{SF_LED_SIG2, SF_LED_STATE_OFF, 0, SF_HAL_LED_SIG_2},
|
||||||
|
{SF_LED_SIG3, SF_LED_STATE_OFF, 0, SF_HAL_LED_SIG_3},
|
||||||
|
{SF_LED_SIG4, SF_LED_STATE_OFF, 0, SF_HAL_LED_SIG_4},
|
||||||
|
#endif
|
||||||
|
{SF_LED_BUSY, SF_LED_STATE_OFF, 0, SF_HAL_LED_BUSY},
|
||||||
|
};
|
||||||
|
|
||||||
|
//ID FLG_ID_SF_LED = 0;
|
||||||
|
|
||||||
|
// Flag
|
||||||
|
//#define FLG_SF_LED_IDLE FLGPTN_BIT(0)
|
||||||
|
//#define FLG_SF_LED FLGPTN_BIT(1)
|
||||||
|
//#define FLG_SF_LED_ALL 0xFFFFFFFF
|
||||||
|
|
||||||
|
static void sf_led_on(LedId_t ledId)
|
||||||
|
{
|
||||||
|
//gpio_setPin(LedInfo[ledId].gpioNum);
|
||||||
|
//printf("[%s:%d] gpioNum:%d ledId:%d\n", __FUNCTION__, __LINE__,LedInfo[ledId].gpioNum,ledId);
|
||||||
|
sf_hal_gpio_set(LedInfo[ledId].gpioNum, SF_LED_STATE_ON);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static void sf_led_off(LedId_t ledId)
|
||||||
|
{
|
||||||
|
//gpio_clearPin(LedInfo[ledId].gpioNum);
|
||||||
|
//printf("[%s:%d] gpioNum:%d ledId:%d\n", __FUNCTION__, __LINE__,LedInfo[ledId].gpioNum,ledId);
|
||||||
|
sf_hal_gpio_set(LedInfo[ledId].gpioNum, SF_LED_STATE_OFF);
|
||||||
|
}
|
||||||
|
#if HW_S530
|
||||||
|
void sf_set_runningLed(BOOL status)
|
||||||
|
{
|
||||||
|
isRunningLedOn = status;
|
||||||
|
}
|
||||||
|
|
||||||
|
void* sf_runningLed_thread(void *arg)
|
||||||
|
{
|
||||||
|
UINT8 run = 0;
|
||||||
|
UINT8 time = 0;
|
||||||
|
|
||||||
|
while(1)
|
||||||
|
{
|
||||||
|
if(isRunningLedOn)
|
||||||
|
{
|
||||||
|
time++;
|
||||||
|
|
||||||
|
if(time == 50)
|
||||||
|
{
|
||||||
|
time = 0;
|
||||||
|
|
||||||
|
switch(run)
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
sf_led_set(SF_LED_SIG1_R, SF_LED_STATE_OFF);
|
||||||
|
sf_led_set(SF_LED_SIG1_G, SF_LED_STATE_OFF);
|
||||||
|
sf_led_set(SF_LED_SIG2, SF_LED_STATE_OFF);
|
||||||
|
sf_led_set(SF_LED_SIG3, SF_LED_STATE_OFF);
|
||||||
|
sf_led_set(SF_LED_SIG4, SF_LED_STATE_OFF);
|
||||||
|
run++;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 1:
|
||||||
|
sf_led_set(SF_LED_SIG1_R, SF_LED_STATE_OFF);
|
||||||
|
sf_led_set(SF_LED_SIG1_G, SF_LED_STATE_ON);
|
||||||
|
sf_led_set(SF_LED_SIG2, SF_LED_STATE_OFF);
|
||||||
|
sf_led_set(SF_LED_SIG3, SF_LED_STATE_OFF);
|
||||||
|
sf_led_set(SF_LED_SIG4, SF_LED_STATE_OFF);
|
||||||
|
run++;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 2:
|
||||||
|
sf_led_set(SF_LED_SIG1_R, SF_LED_STATE_OFF);
|
||||||
|
sf_led_set(SF_LED_SIG1_G, SF_LED_STATE_ON);
|
||||||
|
sf_led_set(SF_LED_SIG2, SF_LED_STATE_ON);
|
||||||
|
sf_led_set(SF_LED_SIG3, SF_LED_STATE_OFF);
|
||||||
|
sf_led_set(SF_LED_SIG4, SF_LED_STATE_OFF);
|
||||||
|
run++;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 3:
|
||||||
|
sf_led_set(SF_LED_SIG1_R, SF_LED_STATE_OFF);
|
||||||
|
sf_led_set(SF_LED_SIG1_G, SF_LED_STATE_ON);
|
||||||
|
sf_led_set(SF_LED_SIG2, SF_LED_STATE_ON);
|
||||||
|
sf_led_set(SF_LED_SIG3, SF_LED_STATE_ON);
|
||||||
|
sf_led_set(SF_LED_SIG4, SF_LED_STATE_OFF);
|
||||||
|
run++;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 4:
|
||||||
|
sf_led_set(SF_LED_SIG1_R, SF_LED_STATE_OFF);
|
||||||
|
sf_led_set(SF_LED_SIG1_G, SF_LED_STATE_ON);
|
||||||
|
sf_led_set(SF_LED_SIG2, SF_LED_STATE_ON);
|
||||||
|
sf_led_set(SF_LED_SIG3, SF_LED_STATE_ON);
|
||||||
|
sf_led_set(SF_LED_SIG4, SF_LED_STATE_ON);
|
||||||
|
run = 0;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
run = 0;
|
||||||
|
time = 0;
|
||||||
|
}
|
||||||
|
sf_sleep_ms(10);
|
||||||
|
}
|
||||||
|
|
||||||
|
printf("[%s:%d] e \n", __FUNCTION__, __LINE__);
|
||||||
|
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
void* sf_led_thread(void *arg)
|
||||||
|
{
|
||||||
|
|
||||||
|
UINT8 i = 0;
|
||||||
|
//FLGPTN FlgPtn;
|
||||||
|
printf("[%s:%d] s\n", __FUNCTION__, __LINE__);
|
||||||
|
while(1)
|
||||||
|
{
|
||||||
|
|
||||||
|
for(i = 0; i < SF_LED_ALL; i++)
|
||||||
|
{
|
||||||
|
if(isUsbIn)
|
||||||
|
{
|
||||||
|
if((i == SF_LED_BUSY)/* || (i == SF_LED_STATUS_G)*/)
|
||||||
|
{
|
||||||
|
sf_led_on(LedInfo[i].ledId);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
sf_led_off(LedInfo[i].ledId);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if(isGoToPir)
|
||||||
|
{
|
||||||
|
if(i < SF_LED_BUSY)
|
||||||
|
{
|
||||||
|
sf_led_off(LedInfo[i].ledId);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if(LedInfo[i].times == 0)
|
||||||
|
{
|
||||||
|
sf_led_off(LedInfo[i].ledId);
|
||||||
|
}
|
||||||
|
else if(LedInfo[i].times == 25) //50*10ms
|
||||||
|
{
|
||||||
|
sf_led_on(LedInfo[i].ledId);
|
||||||
|
}
|
||||||
|
else if(LedInfo[i].times == 50) //100*10ms
|
||||||
|
{
|
||||||
|
sf_led_off(LedInfo[i].ledId);
|
||||||
|
LedInfo[i].times = 0;
|
||||||
|
}
|
||||||
|
LedInfo[i].times++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if(LedInfo[i].ledstate == SF_LED_STATE_OFF)
|
||||||
|
{
|
||||||
|
sf_led_off(LedInfo[i].ledId);
|
||||||
|
}
|
||||||
|
else if(LedInfo[i].ledstate == SF_LED_STATE_ON)
|
||||||
|
{
|
||||||
|
sf_led_on(LedInfo[i].ledId);
|
||||||
|
}
|
||||||
|
#if HW_S530
|
||||||
|
else if(LedInfo[i].ledstate == SF_LED_STATE_SLOW_FLASHING)
|
||||||
|
{
|
||||||
|
if(LedInfo[i].times == 0)
|
||||||
|
{
|
||||||
|
sf_led_on(LedInfo[i].ledId);
|
||||||
|
}
|
||||||
|
else if(LedInfo[i].times == 50) //50*10ms
|
||||||
|
{
|
||||||
|
sf_led_off(LedInfo[i].ledId);
|
||||||
|
}
|
||||||
|
else if(LedInfo[i].times == 100) //100*10ms
|
||||||
|
{
|
||||||
|
sf_led_on(LedInfo[i].ledId);
|
||||||
|
LedInfo[i].times = 0;
|
||||||
|
}
|
||||||
|
LedInfo[i].times++;
|
||||||
|
}
|
||||||
|
else if(LedInfo[i].ledstate == SF_LED_STATE_FLASHING)
|
||||||
|
{
|
||||||
|
if(LedInfo[i].times == 0)
|
||||||
|
{
|
||||||
|
sf_led_on(LedInfo[i].ledId);
|
||||||
|
}
|
||||||
|
else if(LedInfo[i].times == 25) //25*10ms
|
||||||
|
{
|
||||||
|
sf_led_off(LedInfo[i].ledId);
|
||||||
|
}
|
||||||
|
else if(LedInfo[i].times == 50) //50*10ms
|
||||||
|
{
|
||||||
|
sf_led_on(LedInfo[i].ledId);
|
||||||
|
LedInfo[i].times = 0;
|
||||||
|
}
|
||||||
|
LedInfo[i].times++;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
sf_sleep_ms(10);
|
||||||
|
}
|
||||||
|
|
||||||
|
printf("[%s:%d] e \n", __FUNCTION__, __LINE__);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
UINT8 sf_led_set(LedId_t ledId, Ledstate_t ledstate)
|
||||||
|
{
|
||||||
|
UINT8 i = 0;
|
||||||
|
|
||||||
|
if(ledId == SF_LED_ALL)
|
||||||
|
{
|
||||||
|
/*printf("led id:ALL, state:%d\n", ledstate);*/
|
||||||
|
for(i = 0; i < SF_LED_ALL; i++)
|
||||||
|
{
|
||||||
|
LedInfo[i].ledstate = ledstate;
|
||||||
|
LedInfo[i].times = 0;
|
||||||
|
}
|
||||||
|
return SUCCESS;
|
||||||
|
}
|
||||||
|
else if(ledId < SF_LED_ALL)
|
||||||
|
{
|
||||||
|
/*printf("led id:%d, state:%d\n", ledId,ledstate);*/
|
||||||
|
LedInfo[ledId].ledstate = ledstate;
|
||||||
|
LedInfo[ledId].times = 0;
|
||||||
|
return SUCCESS;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return FAIL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Ledstate_t sf_led_get(LedId_t ledId)
|
||||||
|
{
|
||||||
|
return LedInfo[ledId].ledstate;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void sf_led_init(void)
|
||||||
|
{
|
||||||
|
UINT8 i = 0;
|
||||||
|
static UINT8 dofirst = 1;
|
||||||
|
printf("[%s:%d] s\n", __FUNCTION__, __LINE__);
|
||||||
|
if((!dofirst) || (SF_MCU_STARTUP_ONKEY != sf_poweron_type_get()))
|
||||||
|
return;
|
||||||
|
dofirst = 0;
|
||||||
|
/*gpio init*/
|
||||||
|
for(i = 0; i < SF_LED_ALL; i++)
|
||||||
|
{
|
||||||
|
|
||||||
|
//gpio_setDir(LedInfo[i].gpioNum, GPIO_DIR_OUTPUT);
|
||||||
|
|
||||||
|
//gpio_setPin(LedInfo[i].gpioNum);
|
||||||
|
sf_hal_gpio_init(LedInfo[i].gpioNum,GPIO_DIR_OUT);
|
||||||
|
//gpio_direction_output(LedInfo[i].gpioNum, GPIO_DIR_OUTPUT);
|
||||||
|
sf_hal_gpio_set(LedInfo[i].gpioNum, LedInfo[i].ledstate);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//vos_flag_create(&FLG_ID_SF_LED, NULL, "FLG_ID_SF_LED");
|
||||||
|
/*thread creat*/
|
||||||
|
|
||||||
|
pthread_create(&ledTskId, NULL, sf_led_thread, NULL);
|
||||||
|
#if HW_S530
|
||||||
|
/*thread creat*/
|
||||||
|
pthread_create(&ledRunningTskId, NULL, sf_runningLed_thread, NULL);
|
||||||
|
#endif
|
||||||
|
printf("[%s:%d] e SF_LED_ALL:%d\n", __FUNCTION__, __LINE__,SF_LED_ALL);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
void sf_sys_status_led_set(LedSysState_t ledSysStateId)
|
||||||
|
{
|
||||||
|
if((SF_MCU_STARTUP_ONKEY != sf_poweron_type_get()))
|
||||||
|
return;
|
||||||
|
//if((ledSysStateId != SF_LED_SYS_STATE_PIR_DETECT) && (ledSysStateId != SF_LED_SYS_STATE_PIR_NOT_DETECT))
|
||||||
|
printf("SYS LED SET %d\n", ledSysStateId);
|
||||||
|
switch(ledSysStateId)
|
||||||
|
{
|
||||||
|
#if HW_S530
|
||||||
|
case SF_LED_SYS_STATE_ERROR:
|
||||||
|
sf_led_set(SF_LED_STATUS_G, SF_LED_STATE_OFF);
|
||||||
|
sf_led_set(SF_LED_STATUS_R, SF_LED_STATE_FLASHING);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SF_LED_SYS_STATE_NORMAL:
|
||||||
|
sf_led_set(SF_LED_STATUS_G, SF_LED_STATE_ON);
|
||||||
|
sf_led_set(SF_LED_STATUS_R, SF_LED_STATE_OFF);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SF_LED_SYS_STATE_UPDATE:
|
||||||
|
sf_led_set(SF_LED_STATUS_G, SF_LED_STATE_FLASHING);
|
||||||
|
sf_led_set(SF_LED_STATUS_R, SF_LED_STATE_OFF);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SF_LED_SYS_STATE_SENDING:
|
||||||
|
sf_led_set(SF_LED_STATUS_G, SF_LED_STATE_SLOW_FLASHING);
|
||||||
|
sf_led_set(SF_LED_STATUS_R, SF_LED_STATE_OFF);
|
||||||
|
break;
|
||||||
|
case SF_LED_SYS_STATE_SEND_FAIL:
|
||||||
|
sf_led_set(SF_LED_STATUS_G, SF_LED_STATE_OFF);
|
||||||
|
sf_led_set(SF_LED_STATUS_R, SF_LED_STATE_ON);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SF_LED_SYS_STATE_SEND_SUCCESS:
|
||||||
|
sf_led_set(SF_LED_STATUS_G, SF_LED_STATE_ON);
|
||||||
|
sf_led_set(SF_LED_STATUS_R, SF_LED_STATE_OFF);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SF_LED_SYS_STATE_SD_NORMAL:
|
||||||
|
sf_led_set(SF_LED_SD_G, SF_LED_STATE_ON);
|
||||||
|
sf_led_set(SF_LED_SD_R, SF_LED_STATE_OFF);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SF_LED_SYS_STATE_SD_ERROR:
|
||||||
|
sf_led_set(SF_LED_SD_G, SF_LED_STATE_OFF);
|
||||||
|
sf_led_set(SF_LED_SD_R, SF_LED_STATE_ON);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SF_LED_SYS_STATE_SD_FULL:
|
||||||
|
sf_led_set(SF_LED_SD_G, SF_LED_STATE_ON);
|
||||||
|
sf_led_set(SF_LED_SD_R, SF_LED_STATE_ON);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SF_LED_SYS_STATE_SD_FORMAT_START:
|
||||||
|
FormatSdFlag = 1;
|
||||||
|
sf_led_set(SF_LED_BUSY, SF_LED_STATE_OFF);
|
||||||
|
sf_set_runningLed(0);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SF_LED_SYS_STATE_SD_FORMAT_SUCCESS:
|
||||||
|
FormatSdFlag = 2;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SF_LED_SYS_STATE_SD_FORMAT_FAIL:
|
||||||
|
FormatSdFlag = 3;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SF_LED_SYS_STATE_SD_FORMAT_EXIT:
|
||||||
|
FormatSdFlag = 0;
|
||||||
|
sf_led_set(SF_LED_BUSY, SF_LED_STATE_ON);
|
||||||
|
//sf_set_runningLed(0);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SF_LED_SYS_STATE_WIFI_DISCONNECT:
|
||||||
|
sf_led_set(SF_LED_WIFI, SF_LED_STATE_SLOW_FLASHING);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SF_LED_SYS_STATE_WIFI_CONNECTED:
|
||||||
|
sf_led_set(SF_LED_WIFI, SF_LED_STATE_ON);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SF_LED_SYS_STATE_BAT_0:
|
||||||
|
sf_led_set(SF_LED_BAT1, SF_LED_STATE_FLASHING);
|
||||||
|
sf_led_set(SF_LED_BAT2, SF_LED_STATE_OFF);
|
||||||
|
sf_led_set(SF_LED_BAT3, SF_LED_STATE_OFF);
|
||||||
|
sf_led_set(SF_LED_BAT4, SF_LED_STATE_OFF);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SF_LED_SYS_STATE_BAT_1:
|
||||||
|
sf_led_set(SF_LED_BAT1, SF_LED_STATE_ON);
|
||||||
|
sf_led_set(SF_LED_BAT2, SF_LED_STATE_OFF);
|
||||||
|
sf_led_set(SF_LED_BAT3, SF_LED_STATE_OFF);
|
||||||
|
sf_led_set(SF_LED_BAT4, SF_LED_STATE_OFF);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SF_LED_SYS_STATE_BAT_2:
|
||||||
|
sf_led_set(SF_LED_BAT1, SF_LED_STATE_ON);
|
||||||
|
sf_led_set(SF_LED_BAT2, SF_LED_STATE_ON);
|
||||||
|
sf_led_set(SF_LED_BAT3, SF_LED_STATE_OFF);
|
||||||
|
sf_led_set(SF_LED_BAT4, SF_LED_STATE_OFF);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SF_LED_SYS_STATE_BAT_3:
|
||||||
|
sf_led_set(SF_LED_BAT1, SF_LED_STATE_ON);
|
||||||
|
sf_led_set(SF_LED_BAT2, SF_LED_STATE_ON);
|
||||||
|
sf_led_set(SF_LED_BAT3, SF_LED_STATE_ON);
|
||||||
|
sf_led_set(SF_LED_BAT4, SF_LED_STATE_OFF);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SF_LED_SYS_STATE_BAT_4:
|
||||||
|
sf_led_set(SF_LED_BAT1, SF_LED_STATE_ON);
|
||||||
|
sf_led_set(SF_LED_BAT2, SF_LED_STATE_ON);
|
||||||
|
sf_led_set(SF_LED_BAT3, SF_LED_STATE_ON);
|
||||||
|
sf_led_set(SF_LED_BAT4, SF_LED_STATE_ON);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SF_LED_SYS_STATE_GPRS_NO_SIGNAL:
|
||||||
|
sf_set_runningLed(0);
|
||||||
|
sf_led_set(SF_LED_SIG1_R, SF_LED_STATE_ON);
|
||||||
|
sf_led_set(SF_LED_SIG1_G, SF_LED_STATE_OFF);
|
||||||
|
sf_led_set(SF_LED_SIG2, SF_LED_STATE_OFF);
|
||||||
|
sf_led_set(SF_LED_SIG3, SF_LED_STATE_OFF);
|
||||||
|
sf_led_set(SF_LED_SIG4, SF_LED_STATE_OFF);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SF_LED_SYS_STATE_GPRS_SIGNAL_0:
|
||||||
|
sf_set_runningLed(0);
|
||||||
|
sf_led_set(SF_LED_SIG1_R, SF_LED_STATE_OFF);
|
||||||
|
sf_led_set(SF_LED_SIG1_G, SF_LED_STATE_OFF);
|
||||||
|
sf_led_set(SF_LED_SIG2, SF_LED_STATE_OFF);
|
||||||
|
sf_led_set(SF_LED_SIG3, SF_LED_STATE_OFF);
|
||||||
|
sf_led_set(SF_LED_SIG4, SF_LED_STATE_OFF);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SF_LED_SYS_STATE_GPRS_SIGNAL_1:
|
||||||
|
sf_set_runningLed(0);
|
||||||
|
sf_led_set(SF_LED_SIG1_R, SF_LED_STATE_OFF);
|
||||||
|
sf_led_set(SF_LED_SIG1_G, SF_LED_STATE_ON);
|
||||||
|
sf_led_set(SF_LED_SIG2, SF_LED_STATE_OFF);
|
||||||
|
sf_led_set(SF_LED_SIG3, SF_LED_STATE_OFF);
|
||||||
|
sf_led_set(SF_LED_SIG4, SF_LED_STATE_OFF);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SF_LED_SYS_STATE_GPRS_SIGNAL_2:
|
||||||
|
sf_set_runningLed(0);
|
||||||
|
sf_led_set(SF_LED_SIG1_R, SF_LED_STATE_OFF);
|
||||||
|
sf_led_set(SF_LED_SIG1_G, SF_LED_STATE_ON);
|
||||||
|
sf_led_set(SF_LED_SIG2, SF_LED_STATE_ON);
|
||||||
|
sf_led_set(SF_LED_SIG3, SF_LED_STATE_OFF);
|
||||||
|
sf_led_set(SF_LED_SIG4, SF_LED_STATE_OFF);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SF_LED_SYS_STATE_GPRS_SIGNAL_3:
|
||||||
|
sf_set_runningLed(0);
|
||||||
|
sf_led_set(SF_LED_SIG1_R, SF_LED_STATE_OFF);
|
||||||
|
sf_led_set(SF_LED_SIG1_G, SF_LED_STATE_ON);
|
||||||
|
sf_led_set(SF_LED_SIG2, SF_LED_STATE_ON);
|
||||||
|
sf_led_set(SF_LED_SIG3, SF_LED_STATE_ON);
|
||||||
|
sf_led_set(SF_LED_SIG4, SF_LED_STATE_OFF);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SF_LED_SYS_STATE_GPRS_SIGNAL_4:
|
||||||
|
sf_set_runningLed(0);
|
||||||
|
sf_led_set(SF_LED_SIG1_R, SF_LED_STATE_OFF);
|
||||||
|
sf_led_set(SF_LED_SIG1_G, SF_LED_STATE_ON);
|
||||||
|
sf_led_set(SF_LED_SIG2, SF_LED_STATE_ON);
|
||||||
|
sf_led_set(SF_LED_SIG3, SF_LED_STATE_ON);
|
||||||
|
sf_led_set(SF_LED_SIG4, SF_LED_STATE_ON);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SF_LED_SYS_STATE_GPRS_SEARCH:
|
||||||
|
sf_set_runningLed(1);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SF_LED_SYS_STATE_SIM_ERROR:
|
||||||
|
sf_set_runningLed(0);
|
||||||
|
sf_led_set(SF_LED_SIG1_R, SF_LED_STATE_FLASHING);
|
||||||
|
sf_led_set(SF_LED_SIG1_G, SF_LED_STATE_OFF);
|
||||||
|
sf_led_set(SF_LED_SIG2, SF_LED_STATE_OFF);
|
||||||
|
sf_led_set(SF_LED_SIG3, SF_LED_STATE_OFF);
|
||||||
|
sf_led_set(SF_LED_SIG4, SF_LED_STATE_OFF);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SF_LED_SYS_STATE_SERVER_FAIL:
|
||||||
|
sf_set_runningLed(0);
|
||||||
|
sf_led_set(SF_LED_SIG1_R, SF_LED_STATE_SLOW_FLASHING);
|
||||||
|
sf_led_set(SF_LED_SIG1_G, SF_LED_STATE_OFF);
|
||||||
|
sf_led_set(SF_LED_SIG2, SF_LED_STATE_OFF);
|
||||||
|
sf_led_set(SF_LED_SIG3, SF_LED_STATE_OFF);
|
||||||
|
sf_led_set(SF_LED_SIG4, SF_LED_STATE_OFF);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SF_LED_SYS_STATE_DEBUG_ON:
|
||||||
|
sf_led_set(SF_LED_SD_G, SF_LED_STATE_FLASHING);
|
||||||
|
sf_led_set(SF_LED_SD_R, SF_LED_STATE_OFF);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SF_LED_SYS_STATE_DEBUG_OFF:
|
||||||
|
sf_led_set(SF_LED_STATUS_G, SF_LED_STATE_ON);
|
||||||
|
sf_led_set(SF_LED_STATUS_R, SF_LED_STATE_ON);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SF_LED_SYS_STATE_RESET:
|
||||||
|
sf_set_runningLed(0);
|
||||||
|
sf_led_set(SF_LED_ALL, SF_LED_STATE_ON);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SF_LED_SYS_STATE_USB_IN:
|
||||||
|
sf_set_runningLed(0);
|
||||||
|
sf_led_set(SF_LED_ALL, SF_LED_STATE_OFF);
|
||||||
|
sf_led_set(SF_LED_BUSY, SF_LED_STATE_ON);
|
||||||
|
sf_led_set(SF_LED_STATUS_G, SF_LED_STATE_ON);
|
||||||
|
isUsbIn = TRUE;
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
|
//#if HW_S510
|
||||||
|
// case SF_LED_SYS_STATE_UPDATE:
|
||||||
|
// sf_led_set(SF_LED_BUSY, SF_LED_STATE_SLOW_FLASHING);
|
||||||
|
// break;
|
||||||
|
//#endif
|
||||||
|
|
||||||
|
case SF_LED_SYS_STATE_GOING_TO_PIR:
|
||||||
|
isGoToPir = TRUE;
|
||||||
|
sf_led_set(SF_LED_BUSY, SF_LED_STATE_OFF);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SF_LED_SYS_STATE_EXIT_GO_TO_PIR:
|
||||||
|
isGoToPir = FALSE;
|
||||||
|
sf_led_set(SF_LED_BUSY, SF_LED_STATE_ON);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SF_LED_SYS_STATE_POWER_OFF:
|
||||||
|
#if HW_S530
|
||||||
|
sf_set_runningLed(0);
|
||||||
|
#endif
|
||||||
|
sf_led_set(SF_LED_ALL, SF_LED_STATE_OFF);
|
||||||
|
isGoToPir = FALSE;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SF_LED_SYS_STATE_PIR_DETECT:
|
||||||
|
sf_led_set(SF_LED_BUSY, SF_LED_STATE_OFF);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SF_LED_SYS_STATE_PIR_NOT_DETECT:
|
||||||
|
sf_led_set(SF_LED_BUSY, SF_LED_STATE_ON);
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
#if __cplusplus
|
#if __cplusplus
|
||||||
|
|
|
@ -28,6 +28,7 @@
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
#define GPIO_USB_MUX_S P_GPIO_2 //USB_MUX_S
|
||||||
|
|
||||||
SINT32 sf_hal_gpio_init(U32 gpio_num, int dir)
|
SINT32 sf_hal_gpio_init(U32 gpio_num, int dir)
|
||||||
{
|
{
|
||||||
|
@ -147,6 +148,19 @@ SINT32 sf_hal_gpio_deinit(U32 gpioNum)
|
||||||
return SF_SUCCESS;
|
return SF_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void sf_usb_mux_s(UINT32 cnt)
|
||||||
|
{
|
||||||
|
static UINT8 cntflag = 1;
|
||||||
|
printf("[%s:%d] s\n", __FUNCTION__, __LINE__);
|
||||||
|
if(1 == cntflag)
|
||||||
|
{
|
||||||
|
cntflag = 0;
|
||||||
|
gpio_direction_output(GPIO_USB_MUX_S, 1);
|
||||||
|
}
|
||||||
|
gpio_set_value(GPIO_USB_MUX_S, cnt);
|
||||||
|
printf("[%s:%d] e cnt:%d\n", __FUNCTION__, __LINE__,cnt);
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
#if __cplusplus
|
#if __cplusplus
|
||||||
}
|
}
|
||||||
|
|
|
@ -29,17 +29,22 @@
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
#include "sf_log.h"
|
|
||||||
#include "sf_message_queue.h"
|
|
||||||
#include "sf_param_common.h"
|
|
||||||
#include "sf_storeMng.h"
|
|
||||||
|
|
||||||
#if 1
|
#if 1
|
||||||
|
#include <sf_type.h>
|
||||||
#include <libfdt.h>
|
#include <libfdt.h>
|
||||||
#include <rtosfdt.h>
|
#include <rtosfdt.h>
|
||||||
#include <compiler.h>
|
#include <compiler.h>
|
||||||
#include <MemCheck.h>
|
#include <MemCheck.h>
|
||||||
#include "UIInfo/UIInfo.h"
|
#include "UIInfo/UIInfo.h"
|
||||||
|
//#include "UIInfo/UICfgDefault.h"
|
||||||
|
//#include "DCF.h"
|
||||||
|
|
||||||
|
#include "sf_log.h"
|
||||||
|
#include "sf_message_queue.h"
|
||||||
|
#include "sf_param_common.h"
|
||||||
|
#include "sf_storeMng.h"
|
||||||
|
|
||||||
#define MAKE_FDT_PARTITION_PATH(x) "/nor/partition_"#x
|
#define MAKE_FDT_PARTITION_PATH(x) "/nor/partition_"#x
|
||||||
|
|
||||||
|
@ -48,11 +53,11 @@ extern "C" {
|
||||||
#define XSTR(X) #X
|
#define XSTR(X) #X
|
||||||
#define STR(X) XSTR(X)
|
#define STR(X) XSTR(X)
|
||||||
|
|
||||||
UIMenuStoreInfo currentInfo = {0}; //#NT#Init the array to zero.
|
extern UIMenuStoreInfo currentInfo; //#NT#Init the array to zero.
|
||||||
UIMenuStoreInfo origInfo = {0}; /* backup */
|
extern UIMenuStoreInfo origInfo; /* backup */
|
||||||
|
|
||||||
BOOL bSysReady = 0;
|
//BOOL bSysReady = 0;
|
||||||
BOOL bAutoSystemReset = FALSE;
|
//BOOL bAutoSystemReset = FALSE;
|
||||||
|
|
||||||
UINT8 isCapRunning = 0;
|
UINT8 isCapRunning = 0;
|
||||||
static SF_STARTUP_TYPE_E StartMode = SF_MCU_STARTUP_ONKEY;
|
static SF_STARTUP_TYPE_E StartMode = SF_MCU_STARTUP_ONKEY;
|
||||||
|
@ -189,6 +194,7 @@ static int find_sys_mtd_device(char* result_buf, const UINT32 result_buf_size)
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
int sf_customer_param_load(void)
|
int sf_customer_param_load(void)
|
||||||
{
|
{
|
||||||
unsigned long long partition_ofs= 0, partition_size = 0;
|
unsigned long long partition_ofs= 0, partition_size = 0;
|
||||||
|
@ -199,10 +205,10 @@ int sf_customer_param_load(void)
|
||||||
void *tmpInfo = NULL;
|
void *tmpInfo = NULL;
|
||||||
size_t read_size;
|
size_t read_size;
|
||||||
|
|
||||||
sectorCnt = (sizeof(currentInfo) / _EMBMEM_BLK_SIZE_) + (sizeof(currentInfo) % _EMBMEM_BLK_SIZE_)? 1 : 0;
|
sectorCnt = (sizeof(UIMenuStoreInfo) / _EMBMEM_BLK_SIZE_) + (sizeof(UIMenuStoreInfo) % _EMBMEM_BLK_SIZE_)? 1 : 0;
|
||||||
|
|
||||||
ret = sf_UIInfo_GetStrgPartitionInfo(&partition_ofs, &partition_size, PARTITION_PATH_SYS);
|
ret = sf_UIInfo_GetStrgPartitionInfo(&partition_ofs, &partition_size, PARTITION_PATH_SYS);
|
||||||
if ((ret == 0) && (sizeof(currentInfo) < partition_size)) {
|
if ((ret == 0) && (sizeof(UIMenuStoreInfo) < partition_size)) {
|
||||||
|
|
||||||
char sys_mtd_dev_path[128] = {'\0'};
|
char sys_mtd_dev_path[128] = {'\0'};
|
||||||
ret = find_sys_mtd_device(sys_mtd_dev_path, sizeof(sys_mtd_dev_path));
|
ret = find_sys_mtd_device(sys_mtd_dev_path, sizeof(sys_mtd_dev_path));
|
||||||
|
@ -233,21 +239,21 @@ int sf_customer_param_load(void)
|
||||||
goto EXIT;
|
goto EXIT;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(((UIMenuStoreInfo*)tmpInfo)->uhInfoSize == sizeof(currentInfo)){
|
if(((UIMenuStoreInfo*)tmpInfo)->uhInfoSize == sizeof(UIMenuStoreInfo)){
|
||||||
memcpy(¤tInfo, tmpInfo, sizeof(currentInfo));
|
memcpy(¤tInfo, tmpInfo, sizeof(UIMenuStoreInfo));
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
printf("menu info size loaded from flash seems incorrect(old:%lu new:%lu), reset menu info\n",
|
printf("menu info size loaded from flash seems incorrect(old:%lu new:%lu), reset menu info\n",
|
||||||
((UIMenuStoreInfo*)tmpInfo)->uhInfoSize,
|
((UIMenuStoreInfo*)tmpInfo)->uhInfoSize,
|
||||||
sizeof(currentInfo)
|
sizeof(UIMenuStoreInfo)
|
||||||
);
|
);
|
||||||
//SysResetFlag();
|
//SysResetFlag();
|
||||||
currentInfo.uhInfoSize = sizeof(currentInfo);
|
currentInfo.uhInfoSize = sizeof(UIMenuStoreInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
UINT32 sum = MemCheck_CalcCheckSum16Bit((UINT32)tmpInfo, sizeof(currentInfo));
|
UINT32 sum = MemCheck_CalcCheckSum16Bit((UINT32)tmpInfo, sizeof(UIMenuStoreInfo));
|
||||||
printf("**************size = %lx / mov size = %u / sum = %lx **************\n",
|
printf("**************size = %lx / CamMode = %u / sum = %lx **************\n",
|
||||||
sizeof(currentInfo),
|
sizeof(UIMenuStoreInfo),
|
||||||
//((UIMenuStoreInfo*)tmpInfo)->UIParameter[FL_MOVIE_SIZE],
|
//((UIMenuStoreInfo*)tmpInfo)->UIParameter[FL_MOVIE_SIZE],
|
||||||
((UIMenuStoreInfo*)tmpInfo)->UIParameter[CamMode],
|
((UIMenuStoreInfo*)tmpInfo)->UIParameter[CamMode],
|
||||||
sum);
|
sum);
|
||||||
|
@ -257,7 +263,7 @@ EXIT:
|
||||||
|
|
||||||
if(ret){
|
if(ret){
|
||||||
//SysResetFlag();
|
//SysResetFlag();
|
||||||
currentInfo.uhInfoSize = sizeof(currentInfo);
|
currentInfo.uhInfoSize = sizeof(UIMenuStoreInfo);
|
||||||
}
|
}
|
||||||
//SysCheckFlag();
|
//SysCheckFlag();
|
||||||
origInfo = currentInfo;
|
origInfo = currentInfo;
|
||||||
|
@ -274,21 +280,509 @@ EXIT:
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
void SysSetFlag(UINT32 uiFlag, UINT32 uiValue)
|
void sf_sys_set_flag(UINT32 uiFlag, UINT32 uiValue)
|
||||||
{
|
{
|
||||||
currentInfo.UIParameter[uiFlag] = uiValue;
|
currentInfo.UIParameter[uiFlag] = uiValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
UINT32 SysGetFlag(UINT32 uiFlag)
|
UINT32 sf_sys_get_flag(UINT32 uiFlag)
|
||||||
{
|
{
|
||||||
return (currentInfo.UIParameter[uiFlag]);
|
return (currentInfo.UIParameter[uiFlag]);
|
||||||
}
|
}
|
||||||
|
|
||||||
UIMenuStoreInfo* sf_ui_para_get(void)
|
UIMenuStoreInfo* sf_app_ui_para_get(void)
|
||||||
{
|
{
|
||||||
return (UIMenuStoreInfo*)¤tInfo;
|
return (UIMenuStoreInfo*)¤tInfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if 0
|
||||||
|
static void SysLimitFlag(UINT32 uiFlag, UINT32 uiMinId, UINT32 uiMaxId, UINT32 uiDefaultId)
|
||||||
|
{
|
||||||
|
UINT32 uiValue = sf_sys_get_flag(uiFlag);
|
||||||
|
|
||||||
|
if ((uiValue < uiMinId) || (uiValue > uiMaxId - 1)) {
|
||||||
|
uiValue = uiDefaultId;
|
||||||
|
}
|
||||||
|
|
||||||
|
sf_sys_set_flag(uiFlag, uiValue);
|
||||||
|
}
|
||||||
|
|
||||||
|
void sf_SysCheckFlag(void)
|
||||||
|
{
|
||||||
|
// Check and limit system flag value
|
||||||
|
// Photo
|
||||||
|
SysLimitFlag(FL_PHOTO_SIZE, 0, PHOTO_SIZE_ID_MAX, DEFAULT_PHOTO_SIZE);
|
||||||
|
SysLimitFlag(FL_SCENE, 0, SCENE_ID_MAX, DEFAULT_SCENE);
|
||||||
|
SysLimitFlag(FL_QUALITY, 0, QUALITY_ID_MAX, DEFAULT_PHOTO_QUALITY);
|
||||||
|
SysLimitFlag(FL_SELFTIMER, 0, SELFTIMER_ID_MAX, DEFAULT_SELFTIMER);
|
||||||
|
SysLimitFlag(FL_ANTISHAKE, 0, ANTISHAKE_ID_MAX, DEFAULT_ANTISHAKING);
|
||||||
|
SysLimitFlag(FL_FD, 0, FD_ID_MAX, DEFAULT_FD);
|
||||||
|
SysLimitFlag(FL_WB, 0, WB_ID_MAX, DEFAULT_WB);
|
||||||
|
SysLimitFlag(FL_COLOR_EFFECT, 0, COLOR_EFFECT_ID_MAX, DEFAULT_PHOTO_COLOR);
|
||||||
|
SysLimitFlag(FL_CONTINUE_SHOT, 0, CONTINUE_SHOT_SETTING_MAX, DEFAULT_CONTINUE_SHOT);
|
||||||
|
SysLimitFlag(FL_SHARPNESS, 0, SHARPNESS_ID_MAX, DEFAULT_SHARPNESS);
|
||||||
|
SysLimitFlag(FL_EV, 0, EV_SETTING_MAX, DEFAULT_EV);
|
||||||
|
SysLimitFlag(FL_ISO, 0, ISO_ID_MAX, DEFAULT_ISO);
|
||||||
|
SysLimitFlag(FL_METERING, 0, METERING_ID_MAX, DEFAULT_METERING);
|
||||||
|
|
||||||
|
// Movie
|
||||||
|
SysLimitFlag(FL_MOVIE_SIZE, 0, MOVIE_SIZE_ID_MAX, DEFAULT_MOVIE_SIZE);
|
||||||
|
SysLimitFlag(FL_MOVIE_CYCLIC_REC, 0, MOVIE_CYCLICREC_ID_MAX, DEFAULT_MOVIE_CYCLICREC);
|
||||||
|
SysLimitFlag(FL_MOVIE_MOTION_DET, 0, MOVIE_MOTIONDET_ID_MAX, DEFAULT_MOVIE_MOTION_DET);
|
||||||
|
SysLimitFlag(FL_MOVIE_AUDIO, 0, MOVIE_AUDIO_ID_MAX, DEFAULT_MOVIE_AUDIO);
|
||||||
|
SysLimitFlag(FL_MOVIE_DATEIMPRINT, 0, MOVIE_DATEIMPRINT_ID_MAX, DEFAULT_MOVIE_DATEIMPRINT);
|
||||||
|
SysLimitFlag(FL_MOVIE_HDR, 0, MOVIE_HDR_ID_MAX, DEFAULT_MOVIE_HDR);
|
||||||
|
SysLimitFlag(FL_MOVIE_WDR, 0, MOVIE_WDR_ID_MAX, DEFAULT_MOVIE_WDR);
|
||||||
|
SysLimitFlag(FL_MOVIE_DEFOG, 0, MOVIE_DEFOG_ID_MAX, DEFAULT_MOVIE_DEFOG);
|
||||||
|
SysLimitFlag(FL_MOVIE_SENSOR_ROTATE, 0, SEN_ROTATE_MAX, DEFAULT_SENSOR_ROTATE);
|
||||||
|
SysLimitFlag(FL_MovieAudioRecIndex, 0, MOVIE_VOL_MAX, DEFAULT_MOVIE_REC_VOLUME);
|
||||||
|
SysLimitFlag(FL_MovieAudioRec, 0, MOVIE_AUD_REC_ID_MAX, DEFAULT_MOVIE_REC_AUD);
|
||||||
|
//#NT#2016/06/14#Charlie Chang -begin
|
||||||
|
//#NT#support contrast, audio in, audio in sample rate, flip, movie quality set
|
||||||
|
SysLimitFlag(FL_MOVIE_CONTRAST, 0, MOVIE_CONTRAST_ID_MAX, DEFAULT_MOVIE_CONTRAST);
|
||||||
|
SysLimitFlag(FL_MOVIE_AUDIOIN, 0, MOVIE_AUDIOIN_ID_MAX, DEFAULT_MOVIE_AUDIOIN);
|
||||||
|
SysLimitFlag(FL_MOVIE_AUDIOIN_SR, 0, MOVIE_AUDIOIN_SR_ID_MAX, DEFAULT_MOVIE_AUDIOIN_SR);
|
||||||
|
SysLimitFlag(FL_MOVIE_FLIP_MIRROR, 0, MOVIE_FLIP_MIRROR_ID_MAX, DEFAULT_MOVIE_FLIP_MIRROR);
|
||||||
|
SysLimitFlag(FL_MOVIE_QUALITY_SET, 0, MOVIE_QUALITY_SET_ID_MAX, DEFAULT_MOVIE_QUALITY_SET);
|
||||||
|
//#NT#2016/06/14#Charlie Chang -end
|
||||||
|
//#NT#2017/03/03#Jeah Yen -begin
|
||||||
|
//#NT# support sbs mode
|
||||||
|
SysLimitFlag(FL_MOVIE_SBS_MODE, 0, MOVIE_SBS_ID_MAX, DEFAULT_MOVIE_SBS_MODE);
|
||||||
|
//#NT#2017/03/03#Jeah Yen -end
|
||||||
|
SysLimitFlag(FL_MOVIE_CODEC, 0, MOVIE_CODEC_ID_MAX, DEFAULT_MOVIE_CODEC);
|
||||||
|
|
||||||
|
// Playback
|
||||||
|
SysLimitFlag(FL_PROTECT, 0, FILE_PROTECT_ID_MAX, DEFAULT_PROTECT);
|
||||||
|
SysLimitFlag(FL_MovieAudioPlayIndex, 0, MOVIE_AUDIO_VOL_SETTING_MAX, DEFAULT_MOVIE_PLAY_VOLUME);
|
||||||
|
|
||||||
|
// System
|
||||||
|
SysLimitFlag(FL_AudioPlayIndex, 0, AUDIO_VOL_MAX, DEFAULT_AUDIO_PLAY_VOLUME);
|
||||||
|
SysLimitFlag(FL_LANGUAGE, 0, LANG_ID_MAX, DEFAULT_LANGUAGE);
|
||||||
|
SysLimitFlag(FL_BEEP, 0, BEEP_ID_MAX, DEFAULT_BEEP);
|
||||||
|
SysLimitFlag(FL_AUTO_POWER_OFF, 0, POWEROFF_SETTING_MAX, DEFAULT_AUTO_POWER_OFF);
|
||||||
|
SysLimitFlag(FL_FREQUENCY, 0, FREQUENCY_ID_MAX, DEFAULT_FREQUENCY);
|
||||||
|
SysLimitFlag(FL_TV_MODE, 0, TV_MODE_ID_MAX, DEFAULT_TV_MODE);
|
||||||
|
SysLimitFlag(FL_DualDisp, 0, DUALDISP_SETTING_MAX, DEFAULT_DUALDISP);
|
||||||
|
|
||||||
|
SysLimitFlag(FL_DATE_FORMAT, 0, DATE_FORMAT_ID_MAX, DEFAULT_DATE_FORMAT);
|
||||||
|
SysLimitFlag(FL_OPENING_LOGO, 0, OPENING_LOGO_ID_MAX, DEFAULT_OPENING_LOGO);
|
||||||
|
SysLimitFlag(FL_LCD_DISPLAY, 0, DISPOUT_ID_MAX, DEFAULT_LCD_DISPLAY);
|
||||||
|
SysLimitFlag(FL_LCD_BRIGHTNESS, 0, LCDBRT_LVL_ID_MAX, DEFAULT_LCD_BRIGHTNESS);
|
||||||
|
SysLimitFlag(FL_MACRO, 0, MACRO_ID_MAX, DEFAULT_MACRO);
|
||||||
|
SysLimitFlag(FL_USB_MODE, 0, USB_MODE_ID_MAX, DEFAULT_USB_MODE);
|
||||||
|
|
||||||
|
// Sepcial flags
|
||||||
|
SysLimitFlag(FL_DCF_DIR_ID, MIN_DCF_DIR_NUM, MAX_DCF_DIR_NUM, MIN_DCF_DIR_NUM);
|
||||||
|
SysLimitFlag(FL_DCF_FILE_ID, MIN_DCF_FILE_NUM, MAX_DCF_FILE_NUM, MIN_DCF_FILE_NUM);
|
||||||
|
|
||||||
|
//Wi-Fi
|
||||||
|
SysLimitFlag(FL_WIFI_AUTO_RECORDING, 0, WIFI_AUTO_RECORDING_ID_MAX, DEFAULT_MOVIE_WIFI_AUTO_RECORDING_OPTION);
|
||||||
|
SysLimitFlag(FL_NetWorkMode, 0, NET_MODE_SETTING_MAX, DEFAULT_WIFI_MODE);
|
||||||
|
|
||||||
|
|
||||||
|
//#2023/02/10#Payton - begin
|
||||||
|
//=====================Sifar=============
|
||||||
|
SysLimitFlag(CamNameSwitch, 0, SF_CAMID_MAX, DEFAULT_SF_CAMID);
|
||||||
|
SysLimitFlag(CamMode, 0, SF_CAM_MODE_MAX, DEFAULT_BOOT_WORK_MODE);
|
||||||
|
SysLimitFlag(FlashLed, 0, SF_FLASH_LED_MAX, DEFAULT_FLASH_LED);
|
||||||
|
//ImgSize
|
||||||
|
SysLimitFlag(NightMode, 0, SF_NIGHT_MODE_MAX, DEFAULT_NIGHT_MODE);
|
||||||
|
//Multishot
|
||||||
|
//VideoSize
|
||||||
|
//VideoTimeMenu
|
||||||
|
SysLimitFlag(VideoLenth, VIDEO_LENTH_5, VIDEO_LENTH_MAX, DEFAULT_VIDEO_LENTH);
|
||||||
|
SysLimitFlag(PirSwitch, 0, SF_ON_OFF_MAX, DEFAULT_PIR_SWITCH);
|
||||||
|
SysLimitFlag(PirSensitivity, 0, SF_PIR_SENSITIVITY_MAX, DEFAULT_PIR_SENSITIVITY);
|
||||||
|
SysLimitFlag(PirDelaySwitch, 0, SF_ON_OFF_MAX, DEFAULT_PIR_DELAY_SWITCH);
|
||||||
|
SysLimitFlag(TimelapseSwitch, 0, SF_ON_OFF_MAX, DEFAULT_TIMELAPSE_SWITCH);
|
||||||
|
SysLimitFlag(WorkTime1Switch, 0, SF_ON_OFF_MAX, DEFAULT_WORKTIME_SWITCH);
|
||||||
|
SysLimitFlag(WorkTime2Switch, 0, SF_ON_OFF_MAX, DEFAULT_WORKTIME_SWITCH);
|
||||||
|
SysLimitFlag(SimAutoSwitch, 0, SF_SIM_SWITCH_MAX, DEFAULT_SIM_AUTO_SWITCH);
|
||||||
|
SysLimitFlag(SendMaxNum, 0, SF_SEND_MAX_NUM_MAX, DEFAULT_SEND_MAX_NUM);
|
||||||
|
SysLimitFlag(GprsMode, 0, SF_GPRS_MODE_MAX, DEFAULT_GPRS_MODE);
|
||||||
|
SysLimitFlag(DailyReportSwitch, 0, SF_ON_OFF_MAX, DEFAULT_DAILY_REPORT_SWITCH);
|
||||||
|
SysLimitFlag(ReDailyReport, 0, SF_ON_OFF_MAX, DEFAULT_REDAILY_REPORT_SWITCH);
|
||||||
|
SysLimitFlag(SimPinFlag, 0, SF_ON_OFF_MAX, DEFAULT_SIN_PIN_FLAG);
|
||||||
|
|
||||||
|
SysLimitFlag(GpsSwitch, 0, SF_ON_OFF_MAX, DEFAULT_GPS_SWITCH);
|
||||||
|
SysLimitFlag(Language, 0, LANG_ID_MAX, DEFAULT_LANGUAGE);
|
||||||
|
//////////////////
|
||||||
|
SysLimitFlag(DateStyle, 0, SF_DATE_TIME_MAX, DEFAULT_DATE_TIME);
|
||||||
|
SysLimitFlag(FL_DateFormatIndex, 0, SF_DATE_TIME_MAX, DEFAULT_DATE_TIME);
|
||||||
|
///////////////
|
||||||
|
SysLimitFlag(StampSwitch, 0, SF_ON_OFF_MAX, DEFAULT_STAMP_SWITCH);
|
||||||
|
SysLimitFlag(BatteryType, 0, SF_BATT_MAX, DEFAULT_BATTERY_TYPE);
|
||||||
|
SysLimitFlag(SdLoopSwitch, 0, SF_ON_OFF_MAX, DEFAULT_SD_LOOP_SWITCH);
|
||||||
|
SysLimitFlag(PwdSwitch, 0, SF_ON_OFF_MAX, DEFAULT_PWD_SWITCH);
|
||||||
|
SysLimitFlag(SendPhotoSwitch, 0, SF_ON_OFF_MAX, DEFAULT_SEND_PHOTO_SWITCH);
|
||||||
|
SysLimitFlag(SendVideoSwitch, 0, SF_ON_OFF_MAX, DEFAULT_SEND_VIDEO_SWITCH);
|
||||||
|
SysLimitFlag(SendPicSize, 0, SF_SEND_MAX, DEFAULT_SEND_PIC_SIZE);
|
||||||
|
SysLimitFlag(SendMultishotIndex1, 0, SF_ON_OFF_MAX, DEFAULT_SEND_MULTISHOT_INDEX1);
|
||||||
|
SysLimitFlag(SendMultishotIndex2, 0, SF_ON_OFF_MAX, DEFAULT_SEND_MULTISHOT_INDEX2);
|
||||||
|
SysLimitFlag(SendMultishotIndex3, 0, SF_ON_OFF_MAX, DEFAULT_SEND_MULTISHOT_INDEX3);
|
||||||
|
SysLimitFlag(SendMultishotIndex4, 0, SF_ON_OFF_MAX, DEFAULT_SEND_MULTISHOT_INDEX4);
|
||||||
|
SysLimitFlag(DateAuto, 0, SF_DATE_MAX, DEFAULT_DATE_AUTO);
|
||||||
|
//NTPZoneS,
|
||||||
|
//NTPZoneH,
|
||||||
|
//NTPZoneM,
|
||||||
|
SysLimitFlag(CamArmDiable, 0, SF_ON_OFF_MAX, DEFAULT_CAM_ARM_DIABLE);
|
||||||
|
SysLimitFlag(DebugMode, 0, SF_ON_OFF_MAX, DEFAULT_DEBUG_MODE);
|
||||||
|
SysLimitFlag(AutoOffSwitch, 0, SF_ON_OFF_MAX, DEFAULT_AUTO_OFF_SWITCH);
|
||||||
|
SysLimitFlag(AutoLogSwitch, 0, SF_ON_OFF_MAX, DEFAULT_AUTO_LOG_SWITCH);
|
||||||
|
SysLimitFlag(RawSwitch, 0, SF_ON_OFF_MAX, DEFAULT_RAW_SWITCH);
|
||||||
|
SysLimitFlag(GprsSwitch, 0, SF_ON_OFF_MAX, DEFAULT_GPRS_SWITCH);
|
||||||
|
SysLimitFlag(GpsSendFlag, 0, SF_ON_OFF_MAX, DEFAULT_GPS_SEND_FLAG);
|
||||||
|
SysLimitFlag(FristSendDailyAndGps, 0, SF_ON_OFF_MAX, DEFAULT_FRIST_SEND_DAILY_AND_GPS);
|
||||||
|
SysLimitFlag(NetGeneration, 0, SF_NET_MAX, DEFAULT_NET_GENERATION);
|
||||||
|
SysLimitFlag(NeedTimeSyncStartUp, 0, SF_NEED_TIME_SYNC_MAX, DEFAULT_NEED_TIME_SYNC);
|
||||||
|
SysLimitFlag(NetWorkNeedSearch, 0, SF_ON_OFF_MAX, DEFAULT_NET_WORK_NEED_SEARCH);
|
||||||
|
SysLimitFlag(QLogSwitch, 0, SF_ON_OFF_MAX, DEFAULT_QLOG_SWITCH);
|
||||||
|
SysLimitFlag(GpsAntiTheftSwitch, 0, SF_ON_OFF_MAX, DEFAULT_GPS_ANTI_THEFT_SWITCH);
|
||||||
|
SysLimitFlag(BatteryLogSwitch, 0, SF_ON_OFF_MAX, DEFAULT_BATTRERY_LOG_SWITCH);
|
||||||
|
|
||||||
|
SysLimitFlag(GpsNumber, 0, SF_ON_OFF_MAX, DEFAULT_GPS_NUMBER);
|
||||||
|
SysLimitFlag(TimeSend1Switch, 0, SF_ON_OFF_MAX, DEFAULT_GPS_NUMBER);
|
||||||
|
SysLimitFlag(TimeSend2Switch, 0, SF_ON_OFF_MAX, DEFAULT_GPS_NUMBER);
|
||||||
|
SysLimitFlag(TimeSend3Switch, 0, SF_ON_OFF_MAX, DEFAULT_GPS_NUMBER);
|
||||||
|
SysLimitFlag(TimeSend4Switch, 0, SF_ON_OFF_MAX, DEFAULT_GPS_NUMBER);
|
||||||
|
|
||||||
|
|
||||||
|
printf("%s:%d sifar para e\n", __FUNCTION__, __LINE__);
|
||||||
|
|
||||||
|
|
||||||
|
//#2023/02/10#Payton - end
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void sf_SysSetFixedFlag(void)
|
||||||
|
{
|
||||||
|
// Fixed some system flags as system reset
|
||||||
|
|
||||||
|
// Photo
|
||||||
|
sf_sys_set_flag(FL_CONTINUE_SHOT, DEFAULT_CONTINUE_SHOT);
|
||||||
|
sf_sys_set_flag(FL_SELFTIMER, DEFAULT_SELFTIMER);
|
||||||
|
|
||||||
|
// Movie
|
||||||
|
|
||||||
|
// Playback
|
||||||
|
sf_sys_set_flag(FL_PROTECT, DEFAULT_PROTECT);
|
||||||
|
|
||||||
|
// System
|
||||||
|
sf_sys_set_flag(FL_LCD_DISPLAY, DEFAULT_LCD_DISPLAY);
|
||||||
|
sf_sys_set_flag(FL_LCD_BRIGHTNESS, DEFAULT_LCD_BRIGHTNESS);
|
||||||
|
sf_sys_set_flag(FL_MovieDisIndex, MOVIE_DIS_OFF);
|
||||||
|
|
||||||
|
sf_sys_set_flag(FL_COMMON_LOCAL, WIFI_OFF);
|
||||||
|
sf_sys_set_flag(FL_IsCloneRec, CLONE_REC_OFF);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void sf_SysResetFlag(void)
|
||||||
|
{
|
||||||
|
UIMenuStoreInfo *puiPara = sf_app_ui_para_get();
|
||||||
|
// Set system flag default value here
|
||||||
|
// Photo
|
||||||
|
sf_sys_set_flag(FL_PHOTO_SIZE, DEFAULT_PHOTO_SIZE);
|
||||||
|
sf_sys_set_flag(FL_QUALITY, DEFAULT_PHOTO_QUALITY);
|
||||||
|
sf_sys_set_flag(FL_COLOR_EFFECT, DEFAULT_PHOTO_COLOR);
|
||||||
|
sf_sys_set_flag(FL_SCENE, DEFAULT_SCENE);
|
||||||
|
sf_sys_set_flag(FL_EV, DEFAULT_EV);
|
||||||
|
sf_sys_set_flag(FL_ISO, DEFAULT_ISO);
|
||||||
|
sf_sys_set_flag(FL_WB, DEFAULT_WB);
|
||||||
|
sf_sys_set_flag(FL_METERING, DEFAULT_METERING);
|
||||||
|
sf_sys_set_flag(FL_SHARPNESS, DEFAULT_SHARPNESS);
|
||||||
|
sf_sys_set_flag(FL_SATURATION, DEFAULT_SATURATION);
|
||||||
|
sf_sys_set_flag(FL_FD, DEFAULT_FD);
|
||||||
|
sf_sys_set_flag(FL_ANTISHAKE, DEFAULT_ANTISHAKING);
|
||||||
|
sf_sys_set_flag(FL_RSC, DEFAULT_RSC);
|
||||||
|
sf_sys_set_flag(FL_WDR, DEFAULT_WDR);
|
||||||
|
sf_sys_set_flag(FL_DUAL_CAM_MENU, DEFAULT_DUAL_CAM);
|
||||||
|
sf_sys_set_flag(FL_QUICK_REVIEW, DEFAULT_QUICK_REVIEW);
|
||||||
|
sf_sys_set_flag(FL_DATE_STAMP, DEFAULT_DATE_STAMP);
|
||||||
|
sf_sys_set_flag(FL_SELFTIMER, DEFAULT_SELFTIMER);
|
||||||
|
sf_sys_set_flag(FL_FLASH_MODE, DEFAULT_FLASH_MODE);
|
||||||
|
sf_sys_set_flag(FL_CONTINUE_SHOT, DEFAULT_CONTINUE_SHOT);
|
||||||
|
sf_sys_set_flag(FL_SHDR, DEFAULT_SHDR);
|
||||||
|
//#NT#2016/08/19#Lincy Lin#[0106935] -begin
|
||||||
|
//#NT# Support change WDR, SHDR, RSC setting will change mode after exit menu
|
||||||
|
sf_sys_set_flag(FL_RSC_MENU, DEFAULT_RSC);
|
||||||
|
sf_sys_set_flag(FL_WDR_MENU, DEFAULT_WDR);
|
||||||
|
sf_sys_set_flag(FL_SHDR_MENU, DEFAULT_SHDR);
|
||||||
|
//#NT#2016/08/19#Lincy Lin -end
|
||||||
|
|
||||||
|
sf_sys_set_flag(FL_DEFOG, DEFAULT_DEFOG);
|
||||||
|
|
||||||
|
// Movie
|
||||||
|
sf_sys_set_flag(FL_MOVIE_SIZE_MENU, DEFAULT_MOVIE_SIZE_DUAL);
|
||||||
|
|
||||||
|
sf_sys_set_flag(FL_MOVIE_QUALITY, DEFAULT_MOVIE_QUALITY);
|
||||||
|
sf_sys_set_flag(FL_MOVIE_COLOR, DEFAULT_MOVIE_COLOR);
|
||||||
|
sf_sys_set_flag(FL_MOVIE_CYCLIC_REC, DEFAULT_MOVIE_CYCLICREC);
|
||||||
|
sf_sys_set_flag(FL_MOVIE_MOTION_DET, DEFAULT_MOVIE_MOTION_DET);
|
||||||
|
sf_sys_set_flag(FL_MOVIE_AUDIO, DEFAULT_MOVIE_AUDIO);
|
||||||
|
sf_sys_set_flag(FL_MOVIE_DATEIMPRINT, DEFAULT_MOVIE_DATEIMPRINT);
|
||||||
|
sf_sys_set_flag(FL_MOVIE_HDR_MENU, DEFAULT_MOVIE_HDR);
|
||||||
|
sf_sys_set_flag(FL_MOVIE_WDR_MENU, DEFAULT_MOVIE_WDR);
|
||||||
|
sf_sys_set_flag(FL_MOVIE_DEFOG_MENU, DEFAULT_MOVIE_DEFOG);
|
||||||
|
sf_sys_set_flag(FL_MovieRSCIndex_MENU, DEFAULT_MOVIE_RSC);
|
||||||
|
sf_sys_set_flag(FL_MOVIE_SENSOR_ROTATE, DEFAULT_SENSOR_ROTATE);
|
||||||
|
sf_sys_set_flag(FL_MovieMCTFIndex, DEFAULT_MCTFINDEX);
|
||||||
|
sf_sys_set_flag(FL_MOVIE_PTZ, DEFAULT_MOVIE_PTZ);
|
||||||
|
sf_sys_set_flag(FL_MOVIE_URGENT_PROTECT_AUTO, DEFAULT_MOVIE_URGENT_PROTECT_AUTO);
|
||||||
|
sf_sys_set_flag(FL_MOVIE_URGENT_PROTECT_MANUAL, DEFAULT_MOVIE_URGENT_PROTECT_MANUAL);
|
||||||
|
sf_sys_set_flag(FL_MOVIE_IR_CUT, DEFAULT_IR_CUT);
|
||||||
|
//#NT#2016/07/26#KCHong#[0105955] -begin
|
||||||
|
//#NT#If ADAS is ON and timelapse changes to OFF, reopen movie mode
|
||||||
|
sf_sys_set_flag(FL_MOVIE_TIMELAPSE_REC_MENU, DEFAULT_MOVIE_TIMELAPSE_REC);
|
||||||
|
//#NT#2016/07/26#KCHong#[0105955] -end
|
||||||
|
sf_sys_set_flag(FL_MOVIE_PIM, DEFAULT_MOVIE_PIM);
|
||||||
|
//#NT#2016/07/12#KCHong#[0104994] -begin
|
||||||
|
//#NT#Use FL_MOVIE_LDWS_MENU & FL_MOVIE_FCW_MENU instead of FL_MOVIE_LDWS & FL_MOVIE_FCW
|
||||||
|
sf_sys_set_flag(FL_MOVIE_LDWS_MENU, DEFAULT_MOVIE_LDWS);
|
||||||
|
sf_sys_set_flag(FL_MOVIE_FCW_MENU, DEFAULT_MOVIE_FCWS);
|
||||||
|
//#NT#2016/07/12#KCHong#[0104994] -end
|
||||||
|
sf_sys_set_flag(FL_MovieAudioRecIndex, DEFAULT_MOVIE_REC_VOLUME);
|
||||||
|
sf_sys_set_flag(FL_MovieAudioRec, DEFAULT_MOVIE_REC_AUD);
|
||||||
|
sf_sys_set_flag(FL_MOVIE_DDD, DEFAULT_MOVIE_DDD);
|
||||||
|
sf_sys_set_flag(FL_MOVIE_ADAS_CAL, DEFAULT_MOVIE_ADAS_CAL);
|
||||||
|
sf_sys_set_flag(FL_MOVIE_CODEC, DEFAULT_MOVIE_CODEC);
|
||||||
|
sf_sys_set_flag(FL_MOVIE_CODEC_MENU, DEFAULT_MOVIE_CODEC);
|
||||||
|
|
||||||
|
// Playback
|
||||||
|
sf_sys_set_flag(FL_PROTECT, DEFAULT_PROTECT);
|
||||||
|
sf_sys_set_flag(FL_MovieAudioPlayIndex, DEFAULT_MOVIE_PLAY_VOLUME);
|
||||||
|
|
||||||
|
// System
|
||||||
|
sf_sys_set_flag(FL_AudioPlayIndex, DEFAULT_AUDIO_PLAY_VOLUME);
|
||||||
|
sf_sys_set_flag(FL_AUTO_POWER_OFF, DEFAULT_AUTO_POWER_OFF);
|
||||||
|
sf_sys_set_flag(FL_LCD_OFF, DEFAULT_LCD_OFF);
|
||||||
|
sf_sys_set_flag(FL_BEEP, DEFAULT_BEEP);
|
||||||
|
sf_sys_set_flag(FL_LANGUAGE, DEFAULT_LANGUAGE);
|
||||||
|
sf_sys_set_flag(FL_FREQUENCY, DEFAULT_FREQUENCY);
|
||||||
|
sf_sys_set_flag(FL_TV_MODE, DEFAULT_TV_MODE);
|
||||||
|
sf_sys_set_flag(FL_HDMI_MODE, DEFAULT_HDMI_MODE);
|
||||||
|
sf_sys_set_flag(FL_DATE_FORMAT, DEFAULT_DATE_FORMAT);
|
||||||
|
sf_sys_set_flag(FL_OPENING_LOGO, DEFAULT_OPENING_LOGO);
|
||||||
|
sf_sys_set_flag(FL_CPU2_DEFAULT, 1);
|
||||||
|
|
||||||
|
sf_sys_set_flag(FL_LCD_DISPLAY, DEFAULT_LCD_DISPLAY);
|
||||||
|
sf_sys_set_flag(FL_LCD_BRIGHTNESS, DEFAULT_LCD_BRIGHTNESS);
|
||||||
|
sf_sys_set_flag(FL_DualDisp, DEFAULT_DUALDISP);
|
||||||
|
sf_sys_set_flag(FL_MACRO, DEFAULT_MACRO);
|
||||||
|
sf_sys_set_flag(FL_USB_MODE, DEFAULT_USB_MODE);
|
||||||
|
sf_sys_set_flag(FL_GSENSOR, DEFAULT_GSENSOR);
|
||||||
|
sf_sys_set_flag(FL_EDGE, DEFAULT_EDGE);
|
||||||
|
sf_sys_set_flag(FL_NR, DEFAULT_NR);
|
||||||
|
|
||||||
|
//#NT#2016/06/14#Charlie Chang -begin
|
||||||
|
//#NT#support contrast, two way audio in and sample rate, flip, movie qualiity set
|
||||||
|
sf_sys_set_flag(FL_MOVIE_CONTRAST, DEFAULT_MOVIE_CONTRAST);
|
||||||
|
sf_sys_set_flag(FL_MOVIE_AUDIOIN, DEFAULT_MOVIE_AUDIOIN);
|
||||||
|
sf_sys_set_flag(FL_MOVIE_AUDIOIN_SR, DEFAULT_MOVIE_AUDIOIN_SR);
|
||||||
|
sf_sys_set_flag(FL_MOVIE_FLIP_MIRROR, DEFAULT_MOVIE_FLIP_MIRROR);
|
||||||
|
sf_sys_set_flag(FL_MOVIE_QUALITY_SET, DEFAULT_MOVIE_QUALITY_SET);
|
||||||
|
//#NT#2016/06/14#Charlie Chang -end
|
||||||
|
//#NT#2017/03/03#Jeah Yen -begin
|
||||||
|
//#NT# support sbs mode
|
||||||
|
sf_sys_set_flag(FL_MOVIE_SBS_MODE, DEFAULT_MOVIE_SBS_MODE);
|
||||||
|
//#NT#2017/03/03#Jeah Yen -end
|
||||||
|
// Wi-Fi
|
||||||
|
sf_sys_set_flag(FL_WIFI_AUTO_RECORDING, DEFAULT_MOVIE_WIFI_AUTO_RECORDING_OPTION);
|
||||||
|
sf_sys_set_flag(FL_NetWorkMode, DEFAULT_WIFI_MODE); // Reset To Wi-Fi mode to AP mode.
|
||||||
|
|
||||||
|
//#NT#2023/01/11#Eric - begin //#NT#Support
|
||||||
|
//=====================Sifar=============///Eric
|
||||||
|
//Ux_SendEvent(&UISetupObjCtrl, NVTEVT_EXE_BOOTWORKMODE, 1, sf_sys_get_flag(CamMode));
|
||||||
|
//#NT#2023/01/11#Eric - end
|
||||||
|
//#2023/02/10#Payton - begin
|
||||||
|
//=====================Sifar=============
|
||||||
|
sf_sys_set_flag(CamNameSwitch, DEFAULT_SF_CAMID);
|
||||||
|
sf_sys_set_flag(CamMode, DEFAULT_BOOT_WORK_MODE);
|
||||||
|
sf_sys_set_flag(FlashLed, DEFAULT_FLASH_LED);
|
||||||
|
//ImgSize
|
||||||
|
sf_sys_set_flag(NightMode, DEFAULT_NIGHT_MODE);
|
||||||
|
//Multishot
|
||||||
|
//VideoSize
|
||||||
|
//VideoTimeMenu
|
||||||
|
sf_sys_set_flag(VideoLenth, DEFAULT_VIDEO_LENTH);
|
||||||
|
sf_sys_set_flag(PirSwitch, DEFAULT_PIR_SWITCH);
|
||||||
|
sf_sys_set_flag(PirSensitivity, DEFAULT_PIR_SENSITIVITY);
|
||||||
|
sf_sys_set_flag(PirDelaySwitch, DEFAULT_PIR_DELAY_SWITCH);
|
||||||
|
|
||||||
|
sf_sys_set_flag(TimelapseSwitch, DEFAULT_TIMELAPSE_SWITCH);
|
||||||
|
if(sf_sys_get_flag(TimelapseSwitch))
|
||||||
|
{
|
||||||
|
puiPara->TimelapseTime.Hour = 0;
|
||||||
|
puiPara->TimelapseTime.Min = 0;
|
||||||
|
puiPara->TimelapseTime.Sec = 5;
|
||||||
|
}
|
||||||
|
|
||||||
|
sf_sys_set_flag(WorkTime1Switch, DEFAULT_WORKTIME_SWITCH);
|
||||||
|
if(sf_sys_get_flag(WorkTime1Switch))
|
||||||
|
{
|
||||||
|
puiPara->WorkTime[0].StartTime.Hour = 16;
|
||||||
|
puiPara->WorkTime[0].StartTime.Min = 0;
|
||||||
|
puiPara->WorkTime[0].StopTime.Hour = 20;
|
||||||
|
puiPara->WorkTime[0].StopTime.Min = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
sf_sys_set_flag(WorkTime2Switch, DEFAULT_WORKTIME_SWITCH);
|
||||||
|
if(sf_sys_get_flag(WorkTime2Switch))
|
||||||
|
{
|
||||||
|
puiPara->WorkTime[1].StartTime.Hour = 5;
|
||||||
|
puiPara->WorkTime[1].StartTime.Min = 0;
|
||||||
|
puiPara->WorkTime[1].StopTime.Hour = 8;
|
||||||
|
puiPara->WorkTime[1].StopTime.Min = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
sf_sys_set_flag(SimAutoSwitch, DEFAULT_SIM_AUTO_SWITCH);
|
||||||
|
sf_sys_set_flag(SendMaxNum, DEFAULT_SEND_MAX_NUM);
|
||||||
|
sf_sys_set_flag(GprsMode, DEFAULT_GPRS_MODE);
|
||||||
|
sf_sys_set_flag(DailyReportSwitch, DEFAULT_DAILY_REPORT_SWITCH);
|
||||||
|
sf_sys_set_flag(ReDailyReport, DEFAULT_REDAILY_REPORT_SWITCH);
|
||||||
|
sf_sys_set_flag(SimPinFlag, DEFAULT_SIN_PIN_FLAG);
|
||||||
|
sf_sys_set_flag(GpsSwitch, DEFAULT_GPS_SWITCH);
|
||||||
|
sf_sys_set_flag(Language, DEFAULT_LANGUAGE);
|
||||||
|
///////////////
|
||||||
|
sf_sys_set_flag(DateStyle, DEFAULT_DATE_TIME);
|
||||||
|
sf_sys_set_flag(FL_DateFormatIndex, DEFAULT_DATE_TIME);
|
||||||
|
/////////////
|
||||||
|
sf_sys_set_flag(StampSwitch, DEFAULT_STAMP_SWITCH);
|
||||||
|
sf_sys_set_flag(BatteryType, DEFAULT_BATTERY_TYPE);
|
||||||
|
sf_sys_set_flag(SdLoopSwitch, DEFAULT_SD_LOOP_SWITCH);
|
||||||
|
sf_sys_set_flag(PwdSwitch, DEFAULT_PWD_SWITCH);
|
||||||
|
sf_sys_set_flag(SendPhotoSwitch, DEFAULT_SEND_PHOTO_SWITCH);
|
||||||
|
sf_sys_set_flag(SendVideoSwitch, DEFAULT_SEND_VIDEO_SWITCH);
|
||||||
|
sf_sys_set_flag(SendPicSize, DEFAULT_SEND_PIC_SIZE);
|
||||||
|
sf_sys_set_flag(SendMultishotIndex1, DEFAULT_SEND_MULTISHOT_INDEX1);
|
||||||
|
sf_sys_set_flag(SendMultishotIndex2, DEFAULT_SEND_MULTISHOT_INDEX2);
|
||||||
|
sf_sys_set_flag(SendMultishotIndex3, DEFAULT_SEND_MULTISHOT_INDEX3);
|
||||||
|
sf_sys_set_flag(SendMultishotIndex4, DEFAULT_SEND_MULTISHOT_INDEX4);
|
||||||
|
sf_sys_set_flag(DateAuto, DEFAULT_DATE_AUTO);
|
||||||
|
//NTPZoneS,
|
||||||
|
//NTPZoneH,
|
||||||
|
//NTPZoneM,
|
||||||
|
sf_sys_set_flag(CamArmDiable, DEFAULT_CAM_ARM_DIABLE);
|
||||||
|
sf_sys_set_flag(DebugMode, DEFAULT_DEBUG_MODE);
|
||||||
|
sf_sys_set_flag(AutoOffSwitch, DEFAULT_AUTO_OFF_SWITCH);
|
||||||
|
sf_sys_set_flag(AutoLogSwitch, DEFAULT_AUTO_LOG_SWITCH);
|
||||||
|
sf_sys_set_flag(RawSwitch, DEFAULT_RAW_SWITCH);
|
||||||
|
sf_sys_set_flag(GprsSwitch, DEFAULT_GPRS_SWITCH);
|
||||||
|
sf_sys_set_flag(GpsSendFlag, DEFAULT_GPS_SEND_FLAG);
|
||||||
|
sf_sys_set_flag(FristSendDailyAndGps, DEFAULT_FRIST_SEND_DAILY_AND_GPS);
|
||||||
|
sf_sys_set_flag(NetGeneration, DEFAULT_NET_GENERATION);
|
||||||
|
sf_sys_set_flag(NeedTimeSyncStartUp, DEFAULT_NEED_TIME_SYNC);
|
||||||
|
sf_sys_set_flag(NetWorkNeedSearch, DEFAULT_NET_WORK_NEED_SEARCH);
|
||||||
|
sf_sys_set_flag(QLogSwitch, DEFAULT_QLOG_SWITCH);
|
||||||
|
sf_sys_set_flag(GpsAntiTheftSwitch, DEFAULT_GPS_ANTI_THEFT_SWITCH);
|
||||||
|
sf_sys_set_flag(BatteryLogSwitch, DEFAULT_BATTRERY_LOG_SWITCH);
|
||||||
|
|
||||||
|
sf_sys_set_flag(GpsNumber, DEFAULT_GPS_NUMBER);
|
||||||
|
sf_sys_set_flag(TimeSend1Switch, DEFAULT_TIMESEND1_SWITCH);
|
||||||
|
sf_sys_set_flag(TimeSend2Switch, DEFAULT_TIMESEND2_SWITCH);
|
||||||
|
sf_sys_set_flag(TimeSend3Switch, DEFAULT_TIMESEND3_SWITCH);
|
||||||
|
sf_sys_set_flag(TimeSend4Switch, DEFAULT_TIMESEND4_SWITCH);
|
||||||
|
//sf_set_pir_sensitivity(7);
|
||||||
|
|
||||||
|
|
||||||
|
printf("%s:%d sifar para e\n", __FUNCTION__, __LINE__);
|
||||||
|
|
||||||
|
|
||||||
|
//#2023/02/10#Payton - end
|
||||||
|
sf_SysSetFixedFlag();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void sf_Save_MenuInfo(void)
|
||||||
|
{
|
||||||
|
unsigned long long partition_ofs= 0, partition_size = 0;
|
||||||
|
int ret = 0;
|
||||||
|
FILE *sys_mtd_fp = NULL;
|
||||||
|
INT32 rw_len = 0;
|
||||||
|
UINT32 sectorCnt;
|
||||||
|
void* tmpInfo = NULL;
|
||||||
|
size_t write_size;
|
||||||
|
char cmd[128] = {'\0'};
|
||||||
|
printf("%s:%d s\n", __FUNCTION__, __LINE__);
|
||||||
|
|
||||||
|
SysCheckFlag();
|
||||||
|
|
||||||
|
/* check if sys param changed */
|
||||||
|
if(memcmp(¤tInfo, &origInfo, sizeof(UIMenuStoreInfo)) == 0){
|
||||||
|
printf("menu info is not changed\n");
|
||||||
|
goto EXIT;
|
||||||
|
}
|
||||||
|
|
||||||
|
sectorCnt = (sizeof(UIMenuStoreInfo) / _EMBMEM_BLK_SIZE_) + ((sizeof(UIMenuStoreInfo) % _EMBMEM_BLK_SIZE_)? 1 : 0);
|
||||||
|
|
||||||
|
ret = sf_UIInfo_GetStrgPartitionInfo(&partition_ofs, &partition_size, PARTITION_PATH_SYS);
|
||||||
|
if ((ret == 0) && (sizeof(UIMenuStoreInfo) < partition_size)) {
|
||||||
|
char sys_mtd_dev_path[128] = {'\0'};
|
||||||
|
ret = find_sys_mtd_device(sys_mtd_dev_path, sizeof(sys_mtd_dev_path));
|
||||||
|
if(ret){
|
||||||
|
goto EXIT;
|
||||||
|
}
|
||||||
|
|
||||||
|
sys_mtd_fp = fopen(sys_mtd_dev_path, "wb");
|
||||||
|
if(!sys_mtd_fp){
|
||||||
|
printf("open %s failed!\n", sys_mtd_dev_path);
|
||||||
|
ret = -1;
|
||||||
|
goto EXIT;
|
||||||
|
}
|
||||||
|
|
||||||
|
write_size = sectorCnt * _EMBMEM_BLK_SIZE_;
|
||||||
|
tmpInfo = malloc(write_size);
|
||||||
|
if(!tmpInfo){
|
||||||
|
printf("allocate tmpInfo failed!\n");
|
||||||
|
ret = -1;
|
||||||
|
goto EXIT;
|
||||||
|
}
|
||||||
|
|
||||||
|
sprintf(cmd, "flash_eraseall -N %s", sys_mtd_dev_path);
|
||||||
|
printf("%s\n", cmd);
|
||||||
|
ret = system(cmd);
|
||||||
|
if(ret){
|
||||||
|
printf("flash_eraseall failed!\n");
|
||||||
|
goto EXIT;
|
||||||
|
}
|
||||||
|
|
||||||
|
memset(tmpInfo, 0xFF, write_size);
|
||||||
|
currentInfo.uhInfoSize = sizeof(UIMenuStoreInfo);
|
||||||
|
memcpy(tmpInfo, ¤tInfo, sizeof(UIMenuStoreInfo));
|
||||||
|
rw_len = fwrite(tmpInfo, 1, write_size, sys_mtd_fp);
|
||||||
|
if(rw_len != (INT32)(write_size)) {
|
||||||
|
printf("fwrite size not matched(%ld / %ld)!\n", rw_len, write_size);
|
||||||
|
ret = -1;
|
||||||
|
goto EXIT;
|
||||||
|
}
|
||||||
|
fflush(sys_mtd_fp);
|
||||||
|
|
||||||
|
UINT32 sum = MemCheck_CalcCheckSum16Bit((UINT32)tmpInfo, sizeof(UIMenuStoreInfo));
|
||||||
|
printf("**************size = %lx / mov size = %u / sum = %lx **************\n",
|
||||||
|
sizeof(UIMenuStoreInfo),
|
||||||
|
((UIMenuStoreInfo*)tmpInfo)->UIParameter[FL_MOVIE_SIZE],
|
||||||
|
sum);
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
printf("can't get partition info or menu info size exceed partition size!\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
EXIT:
|
||||||
|
if(sys_mtd_fp){
|
||||||
|
fclose(sys_mtd_fp);
|
||||||
|
sys_mtd_fp = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(tmpInfo){
|
||||||
|
free(tmpInfo);
|
||||||
|
tmpInfo = NULL;
|
||||||
|
}
|
||||||
|
printf("%s:%d e\n", __FUNCTION__, __LINE__);
|
||||||
|
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
@ -367,11 +861,19 @@ SF_PDT_PARAM_CFG_S* sf_customer_param_get(void)
|
||||||
{
|
{
|
||||||
return &StCustomerParam;
|
return &StCustomerParam;
|
||||||
}
|
}
|
||||||
void sf_customer_param_set(SF_PDT_PARAM_CFG_S *pSfCustomerPara)
|
void sf_customer_param_set(UIMenuStoreInfo *pSfCustomerPara)
|
||||||
{
|
{
|
||||||
memcpy(&StCustomerParam,pSfCustomerPara,sizeof(SF_PDT_PARAM_CFG_S));
|
//currentInfo = *pSfCustomerPara;
|
||||||
|
memcpy(¤tInfo,pSfCustomerPara,sizeof(UIMenuStoreInfo));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void sf_customer_param_set_down(UIMenuStoreInfo *pSfCustomerPara)
|
||||||
|
{
|
||||||
|
//currentInfo = *pSfCustomerPara;
|
||||||
|
memcpy(pSfCustomerPara,¤tInfo,sizeof(UIMenuStoreInfo));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void sf_customer_param_reset(SF_PDT_PARAM_CFG_S *psfpdtparam,UINT8 sysRet)
|
void sf_customer_param_reset(SF_PDT_PARAM_CFG_S *psfpdtparam,UINT8 sysRet)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
@ -385,7 +887,7 @@ SINT32 sf_customer_param_save(SF_PDT_PARAM_CFG_S *pSfCustomerPara)
|
||||||
SINT32 ret = 0;
|
SINT32 ret = 0;
|
||||||
SINT32 fd = 0;
|
SINT32 fd = 0;
|
||||||
UINT32 CheckSum = 0;
|
UINT32 CheckSum = 0;
|
||||||
UINT32 lenth = 0;
|
SINT32 lenth = 0;
|
||||||
|
|
||||||
lenth = sizeof(SF_PDT_PARAM_CFG_S);
|
lenth = sizeof(SF_PDT_PARAM_CFG_S);
|
||||||
|
|
||||||
|
@ -492,7 +994,7 @@ SINT32 sf_statistics_param_save(SF_PDT_PARAM_STATISTICS_S* pStatisticsParam)
|
||||||
SINT32 fd = 0;
|
SINT32 fd = 0;
|
||||||
SINT32 ret = 0;
|
SINT32 ret = 0;
|
||||||
UINT32 CheckSum = 0;
|
UINT32 CheckSum = 0;
|
||||||
UINT32 lenth = 0;
|
SINT32 lenth = 0;
|
||||||
|
|
||||||
lenth = sizeof(SF_PDT_PARAM_STATISTICS_S);
|
lenth = sizeof(SF_PDT_PARAM_STATISTICS_S);
|
||||||
|
|
||||||
|
@ -532,7 +1034,7 @@ SINT32 sf_statistics_param_load(SF_PDT_PARAM_STATISTICS_S* pStatisticsParam)
|
||||||
SINT32 i = 0;
|
SINT32 i = 0;
|
||||||
SINT32 fd = 0;
|
SINT32 fd = 0;
|
||||||
UINT32 CheckSum = 0;
|
UINT32 CheckSum = 0;
|
||||||
UINT32 lenth = 0;
|
SINT32 lenth = 0;
|
||||||
SINT32 ret = SF_SUCCESS;
|
SINT32 ret = SF_SUCCESS;
|
||||||
static SINT32 loadFalg = 0;
|
static SINT32 loadFalg = 0;
|
||||||
SF_PDT_PARAM_CFG_S *pSfCustomerPara = sf_customer_param_get();
|
SF_PDT_PARAM_CFG_S *pSfCustomerPara = sf_customer_param_get();
|
||||||
|
@ -646,6 +1148,46 @@ UINT8 sf_cap_status_get(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*************************************************
|
||||||
|
Function: sf_signal_level_get
|
||||||
|
Description: get signal level
|
||||||
|
Input: netFlagG: 4/3/2 G cqSignal:signal val
|
||||||
|
Output: N/A
|
||||||
|
Return: signal level
|
||||||
|
Others: N/A
|
||||||
|
*************************************************/
|
||||||
|
UINT8 sf_signal_level_get(UINT8 netFlagG, UINT8 cqSignal)
|
||||||
|
{
|
||||||
|
UINT8 signalLevel = 0;
|
||||||
|
|
||||||
|
if(netFlagG == 4)
|
||||||
|
{
|
||||||
|
if(cqSignal <= 105)
|
||||||
|
{
|
||||||
|
signalLevel = 4;
|
||||||
|
}
|
||||||
|
else if(cqSignal <= 115)
|
||||||
|
{
|
||||||
|
signalLevel = 3;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
signalLevel = 2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (cqSignal < 8)
|
||||||
|
signalLevel = 2;
|
||||||
|
else if (cqSignal < 14)
|
||||||
|
signalLevel = 3;
|
||||||
|
else
|
||||||
|
signalLevel = 4;
|
||||||
|
}
|
||||||
|
|
||||||
|
return signalLevel;
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
#if __cplusplus
|
#if __cplusplus
|
||||||
}
|
}
|
||||||
|
|
|
@ -845,8 +845,18 @@ unsigned char sf_commu_parse_mcu_data(unsigned char * src, unsigned int len)
|
||||||
stMessageBuf.cmdId = CMD_KEY;
|
stMessageBuf.cmdId = CMD_KEY;
|
||||||
stMessageBuf.arg1 = SF_EVENT_KEY_SHORT_CLICK;
|
stMessageBuf.arg1 = SF_EVENT_KEY_SHORT_CLICK;
|
||||||
stMessageBuf.arg2 = SF_KEY_PIN_DATAREADY;
|
stMessageBuf.arg2 = SF_KEY_PIN_DATAREADY;
|
||||||
sf_com_message_send_to_app(&stMessageBuf);
|
stMessageBuf.arg3 = (val[0] & 0x1F);
|
||||||
|
sf_com_message_send_to_cardv(&stMessageBuf);
|
||||||
ret = 0x05;
|
ret = 0x05;
|
||||||
|
if(stMessageBuf.arg3 == 3) //ON
|
||||||
|
{
|
||||||
|
sf_set_pir_statu_flag(1);
|
||||||
|
printf("%s:%d-------PIR Key Pressed.------\n", __FUNCTION__, __LINE__);
|
||||||
|
}
|
||||||
|
else if((stMessageBuf.arg3 == 0) || (stMessageBuf.arg3 == 1)) //ON
|
||||||
|
{//PIR MODE: ON->OFF/ ON->SETUP
|
||||||
|
sf_set_module_sleep_flag(0);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -889,8 +899,6 @@ static void * sf_commu_mcu_task(void * argv)
|
||||||
unsigned char temp_end1 = 0;
|
unsigned char temp_end1 = 0;
|
||||||
unsigned char temp_end2 = 0;
|
unsigned char temp_end2 = 0;
|
||||||
unsigned char copy_size = 0;
|
unsigned char copy_size = 0;
|
||||||
sf_commu_mcu_interface_init(115200, 'N', 8, 1, 'N');
|
|
||||||
sf_commu_mcu_open();
|
|
||||||
mcubuf_reset();
|
mcubuf_reset();
|
||||||
while(sf_commu_mcu_exit == 0)
|
while(sf_commu_mcu_exit == 0)
|
||||||
{
|
{
|
||||||
|
@ -1002,8 +1010,10 @@ void sf_commu_mcu_task_start(void)
|
||||||
{
|
{
|
||||||
if(sf_commu_mcu_exit == 1)
|
if(sf_commu_mcu_exit == 1)
|
||||||
{
|
{
|
||||||
pthread_create(&sfCommuMcuThread, NULL, sf_commu_mcu_task, NULL);
|
|
||||||
sf_commu_mcu_exit = 0;
|
sf_commu_mcu_exit = 0;
|
||||||
|
sf_commu_mcu_interface_init(115200, 'N', 8, 1, 'N');
|
||||||
|
sf_commu_mcu_open();
|
||||||
|
pthread_create(&sfCommuMcuThread, NULL, sf_commu_mcu_task, NULL);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -27,6 +27,7 @@
|
||||||
#include <sf_storeMng.h>
|
#include <sf_storeMng.h>
|
||||||
#include "sf_commu_mcu.h"
|
#include "sf_commu_mcu.h"
|
||||||
#include "sf_commu_mcu_reg.h"
|
#include "sf_commu_mcu_reg.h"
|
||||||
|
#include <sf_device.h>
|
||||||
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
|
@ -40,7 +41,7 @@ static unsigned char McuSubVersion = 0;
|
||||||
static unsigned short McuVersion = 0;
|
static unsigned short McuVersion = 0;
|
||||||
static unsigned char McuProductInfo = 0;
|
static unsigned char McuProductInfo = 0;
|
||||||
|
|
||||||
unsigned char McuPowerOnMode = 0;//=>PWR_ON_SETUP
|
//unsigned char McuPowerOnMode = 0;//=>PWR_ON_SETUP
|
||||||
unsigned char CameraMode = 0; //bit0~3:1 Picture,2 Video,3 TimeLapse,4 PIC+video; bit7:0 fast capture. bit7:1 Normal capture
|
unsigned char CameraMode = 0; //bit0~3:1 Picture,2 Video,3 TimeLapse,4 PIC+video; bit7:0 fast capture. bit7:1 Normal capture
|
||||||
unsigned char IrLedPercent = 0;
|
unsigned char IrLedPercent = 0;
|
||||||
unsigned char McuBatMode = 0;
|
unsigned char McuBatMode = 0;
|
||||||
|
@ -50,6 +51,13 @@ unsigned int powerSave_t1 = 0;
|
||||||
unsigned char DailyReportStartMode = 0;
|
unsigned char DailyReportStartMode = 0;
|
||||||
unsigned char POWEROFF = 0;
|
unsigned char POWEROFF = 0;
|
||||||
SF_TIME_S sfMcuTime = { 0 };
|
SF_TIME_S sfMcuTime = { 0 };
|
||||||
|
static BOOL ConfigureModeFlag = 0; /* 0: HTC Mode, 1: Nomal Mode */
|
||||||
|
static UINT8 PowerOnMode = 0; //=>PWR_ON_SETUP
|
||||||
|
static UINT32 simCardInsert=0;
|
||||||
|
static UINT8 gModuleSleep = 1;
|
||||||
|
static UINT8 isSignalReady = 0;
|
||||||
|
static UINT32 GPRS_ERRNO = 0;
|
||||||
|
static UINT32 SmsCheck = 0;
|
||||||
|
|
||||||
UINT8 sf_mcu_read(UINT32 reg, UINT8 *data)
|
UINT8 sf_mcu_read(UINT32 reg, UINT8 *data)
|
||||||
{
|
{
|
||||||
|
@ -115,6 +123,7 @@ unsigned char sf_mcu_power_on_para_get (MCUParam_t attrId)
|
||||||
unsigned char mcuReg[REG_SIZE] = { 0 };
|
unsigned char mcuReg[REG_SIZE] = { 0 };
|
||||||
unsigned char mcuData[REG_SIZE] = { 0 };
|
unsigned char mcuData[REG_SIZE] = { 0 };
|
||||||
unsigned char i = 0;
|
unsigned char i = 0;
|
||||||
|
SF_TIME_S time;
|
||||||
|
|
||||||
if(attrId == SF_MCU_STARTMODE)
|
if(attrId == SF_MCU_STARTMODE)
|
||||||
{
|
{
|
||||||
|
@ -144,8 +153,12 @@ unsigned char sf_mcu_power_on_para_get (MCUParam_t attrId)
|
||||||
dataTemp2 = mcuData[i++];
|
dataTemp2 = mcuData[i++];
|
||||||
IRSHTTER = (dataTemp2 << 8) | dataTemp1;
|
IRSHTTER = (dataTemp2 << 8) | dataTemp1;
|
||||||
}
|
}
|
||||||
|
printf(" start mode = %d IRSHTTER = %d\n", startMode, IRSHTTER);
|
||||||
|
sf_mcu_rtc_get(&time);
|
||||||
|
sf_sys_rtc_time_set(&time);
|
||||||
|
sf_poweron_type_set(startMode);
|
||||||
|
|
||||||
McuPowerOnMode = startMode;
|
//McuPowerOnMode = startMode;
|
||||||
return startMode;
|
return startMode;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -176,7 +189,7 @@ unsigned char sf_mcu_rtc_get (SF_TIME_S *time)
|
||||||
unsigned char sf_mcu_wdg_off(void)
|
unsigned char sf_mcu_wdg_off(void)
|
||||||
{
|
{
|
||||||
unsigned char i = 0;
|
unsigned char i = 0;
|
||||||
unsigned char regsize =0;
|
//unsigned char regsize =0;
|
||||||
unsigned char mcuReg[2] = {0};
|
unsigned char mcuReg[2] = {0};
|
||||||
unsigned char mcuPara[2] = {0};
|
unsigned char mcuPara[2] = {0};
|
||||||
|
|
||||||
|
@ -186,12 +199,13 @@ unsigned char sf_mcu_wdg_off(void)
|
||||||
mcuReg[i] = DSP_WRITE_FLG;
|
mcuReg[i] = DSP_WRITE_FLG;
|
||||||
mcuPara[i++] = 1;
|
mcuPara[i++] = 1;
|
||||||
|
|
||||||
regsize = i;
|
//regsize = i;
|
||||||
|
|
||||||
for(i=0; i<regsize; i++)
|
/*for(i=0; i<regsize; i++)
|
||||||
{
|
{
|
||||||
sf_commu_set_mcu(mcuReg[i], mcuPara[i]);
|
sf_commu_set_mcu(mcuReg[i], mcuPara[i]);
|
||||||
}
|
}*/
|
||||||
|
sf_mcu_write_multi(mcuReg, mcuPara, i);
|
||||||
|
|
||||||
return SF_SUCCESS;
|
return SF_SUCCESS;
|
||||||
}
|
}
|
||||||
|
@ -226,10 +240,11 @@ unsigned char sf_mcu_wdg_set(unsigned char value)
|
||||||
printf("[sf_mcu_watchdog_set],add[%d]---value:%x\n", mcuReg[i], mcuPara[i]);
|
printf("[sf_mcu_watchdog_set],add[%d]---value:%x\n", mcuReg[i], mcuPara[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
for(i=0; i<regsize; i++)
|
/*for(i=0; i<regsize; i++)
|
||||||
{
|
{
|
||||||
sf_commu_set_mcu(mcuReg[i], mcuPara[i]);
|
sf_commu_set_mcu(mcuReg[i], mcuPara[i]);
|
||||||
}
|
}*/
|
||||||
|
sf_mcu_write_multi(mcuReg, mcuPara, i);
|
||||||
|
|
||||||
return SF_SUCCESS;
|
return SF_SUCCESS;
|
||||||
}
|
}
|
||||||
|
@ -291,24 +306,55 @@ UINT8 sf_set_digit_pir_pulse_cnt(UINT8 pirs)
|
||||||
|
|
||||||
return digPirPulseCnt[pirs];
|
return digPirPulseCnt[pirs];
|
||||||
}
|
}
|
||||||
|
/*************************************************
|
||||||
|
Function: sf_mcu_analog_pir_sen_convert
|
||||||
|
Description: Analog PIR Sensitivity Convert
|
||||||
|
Input: digPir sensitivity
|
||||||
|
Output: N/A
|
||||||
|
Return: Analog PIR Sensitivity
|
||||||
|
Others: N/A
|
||||||
|
*************************************************/
|
||||||
|
unsigned char sf_mcu_analog_pir_sen_convert(unsigned char pirs)
|
||||||
|
{
|
||||||
|
unsigned char pirlevel = 0;
|
||||||
|
|
||||||
|
if(pirs > 6)
|
||||||
|
pirlevel = 0;
|
||||||
|
else if(pirs > 3)
|
||||||
|
pirlevel = 1;
|
||||||
|
else
|
||||||
|
pirlevel = 2;
|
||||||
|
|
||||||
|
return pirlevel;
|
||||||
|
}
|
||||||
|
|
||||||
unsigned char sf_mcu_reg_set(MCUParam_t attrId, unsigned char val)
|
unsigned char sf_mcu_reg_set(MCUParam_t attrId, unsigned char val)
|
||||||
{
|
{
|
||||||
unsigned char mcuReg[70] = {0};
|
unsigned char mcuReg[70] = {0};
|
||||||
unsigned char mcuData[70] = {0};
|
unsigned char mcuData[70] = {0};
|
||||||
unsigned char regsize =0;
|
//unsigned char regsize =0;
|
||||||
unsigned char i = 0;
|
unsigned char i = 0;
|
||||||
unsigned char temp = 0;
|
unsigned char temp = 0;
|
||||||
//unsigned char dailyReportFlag = 1;
|
//unsigned char dailyReportFlag = 1;
|
||||||
unsigned char paraSyncFlag = 0;
|
unsigned char paraSyncFlag = 0;
|
||||||
//unsigned char gpsAlwaysFlag = 0;
|
unsigned char gpsAlwaysFlag = 0;
|
||||||
unsigned char DigPirPulseCount = 0;
|
//unsigned char DigPirPulseCount = 0;
|
||||||
unsigned char DigPirWindowTime = 0;
|
//unsigned char DigPirWindowTime = 0;
|
||||||
SF_PDT_PARAM_CFG_S *puiPara = sf_customer_param_get();
|
UIMenuStoreInfo *puiPara = sf_app_ui_para_get();
|
||||||
SF_PARA_TIME_S date = { 0 };
|
SF_PARA_TIME_S date = { 0 };
|
||||||
|
|
||||||
|
SINT32 isUsb = sf_usb_IsInsert();
|
||||||
|
SINT32 isCard = sf_in_card_exist();
|
||||||
|
SINT32 isCardFull = sf_is_card_full();
|
||||||
//CameraBootSetting_t* pCameraBootSetting = CameraBootSettingGetHandle();
|
//CameraBootSetting_t* pCameraBootSetting = CameraBootSettingGetHandle();
|
||||||
|
|
||||||
if (attrId > SF_MCU_PARAM_MAX)
|
MLOGI("isUsb = %d isCard = %d isCardFull = %d\n", isUsb, isCard, isCardFull);
|
||||||
|
if(!isCard)
|
||||||
|
{
|
||||||
|
isCard = sf_is_card();
|
||||||
|
MLOGI("isUsb = %d isCard = %d isCardFull = %d\n", isUsb, isCard, isCardFull);
|
||||||
|
}
|
||||||
|
if (attrId > SF_MCU_PARAM_MAX)
|
||||||
{
|
{
|
||||||
MLOGE("attrId ERROR!\n");
|
MLOGE("attrId ERROR!\n");
|
||||||
return -1;
|
return -1;
|
||||||
|
@ -318,8 +364,8 @@ 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("GPSEnterResetModeFlag = %d\n", puiPara->GPSEnterResetModeFlag);
|
MLOGI("NeedTimeSyncStartUp = %d\n", sf_sys_get_flag(NeedTimeSyncStartUp));
|
||||||
if(puiPara->GPSEnterResetModeFlag == 1)
|
if(sf_sys_get_flag(NeedTimeSyncStartUp) == 1)
|
||||||
{
|
{
|
||||||
paraSyncFlag = 1;
|
paraSyncFlag = 1;
|
||||||
}
|
}
|
||||||
|
@ -341,23 +387,58 @@ unsigned char sf_mcu_reg_set(MCUParam_t attrId, unsigned char val)
|
||||||
mcuReg[i] = SF_RTC_SEC;
|
mcuReg[i] = SF_RTC_SEC;
|
||||||
mcuData[i++] = date.Sec;
|
mcuData[i++] = date.Sec;
|
||||||
|
|
||||||
|
if((sf_sys_get_flag(GpsSwitch) == 1) && (sf_sys_get_flag(GpsNumber)))
|
||||||
|
{
|
||||||
|
gpsAlwaysFlag=1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
gpsAlwaysFlag=0;
|
||||||
|
}
|
||||||
|
|
||||||
if(puiPara->PirSwitch)
|
if(sf_sys_get_flag(PirSensitivity))
|
||||||
temp = 0x01;
|
temp = 0x01;
|
||||||
else
|
else
|
||||||
temp = 0x00;
|
temp = 0x00;
|
||||||
|
|
||||||
if(puiPara->GprsMode == 0)
|
|
||||||
temp |= 0x20;
|
|
||||||
|
|
||||||
if(puiPara->TimelapseSwitch)
|
if(1 == sf_sys_get_flag(TimelapseSwitch))
|
||||||
temp |= 0x02;
|
{
|
||||||
|
temp |= 0x02;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(1 == sf_sys_get_flag(PirDelaySwitch))
|
||||||
|
{
|
||||||
|
temp |= 0x04;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
if(puiPara->PirDelaySwitch)
|
printf("[%s:%d]paraSyncFlag=%d\n", __FUNCTION__, __LINE__, paraSyncFlag);
|
||||||
temp |= 0x04;
|
|
||||||
if(paraSyncFlag )
|
if(paraSyncFlag)
|
||||||
temp |= 0x08;
|
{
|
||||||
|
temp |= 0x08;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//if(puiPara->dailyReport)
|
||||||
|
if(/*(puiPara->GpsSwitch) && */(paraSyncFlag == 1))
|
||||||
|
{
|
||||||
|
temp &= ~0x10;
|
||||||
|
}
|
||||||
|
else if(simCardInsert) //dailyreport alway open
|
||||||
|
{
|
||||||
|
temp |= 0x10;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if(sf_sys_get_flag(TimeSend1Switch) == 1)
|
||||||
|
temp |= 0x20;
|
||||||
|
|
||||||
|
if(sf_sys_get_flag(TimeSend2Switch) == 1)
|
||||||
|
temp |= 0x40;
|
||||||
|
|
||||||
|
if(gpsAlwaysFlag && simCardInsert)
|
||||||
|
temp |= 0x80;
|
||||||
|
|
||||||
temp |= 0x10;
|
temp |= 0x10;
|
||||||
|
|
||||||
|
@ -366,103 +447,15 @@ unsigned char sf_mcu_reg_set(MCUParam_t attrId, unsigned char val)
|
||||||
|
|
||||||
temp = 0;
|
temp = 0;
|
||||||
|
|
||||||
|
if(sf_sys_get_flag(TimelapseSwitch))
|
||||||
if(paraSyncFlag)
|
|
||||||
{
|
|
||||||
mcuReg[i] = GPS_POWER_TIMER_CLEAR;
|
|
||||||
mcuData[i++] = 1;
|
|
||||||
mcuReg[i] = GPS_POWER_CTRL;
|
|
||||||
mcuData[i++] = 1;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
mcuReg[i] = GPS_POWER_CTRL;
|
|
||||||
mcuData[i++] = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
MLOGI("PirSensitivity=%d\n", puiPara->PirSensitivity);
|
|
||||||
mcuReg[i] = ANALOG_PIR_SENSITIVITY;
|
|
||||||
temp = puiPara->PirSensitivity;
|
|
||||||
|
|
||||||
|
|
||||||
// if(paraSyncFlag) {
|
|
||||||
// temp |= 0x10;
|
|
||||||
// }
|
|
||||||
|
|
||||||
MLOGI("GprsMode:%d\n",puiPara->GprsMode);
|
|
||||||
// #ifdef SF_HARDWARE_TEST
|
|
||||||
// temp |= 0x40; //bit 6-bit5: 2 instant, 1 hybird, 0: daily
|
|
||||||
// #else
|
|
||||||
|
|
||||||
if((puiPara->GprsMode < 10))
|
|
||||||
{
|
|
||||||
if((puiPara->GprsMode == 1))
|
|
||||||
temp |= 0x40; //bit 6-bit5: 2 instant, 1 hybird, 0: daily
|
|
||||||
else
|
|
||||||
temp |= 0x20; //bit 6-bit5: 2 instant, 1 hybird, 0: daily
|
|
||||||
}
|
|
||||||
// #endif
|
|
||||||
if((puiPara->GprsSwitch))
|
|
||||||
temp |= 0x80;
|
|
||||||
if((val == SF_POWEROFF_SYNC_PARAM))
|
|
||||||
temp &= 0x9F;
|
|
||||||
|
|
||||||
mcuData[i++] = temp;
|
|
||||||
|
|
||||||
#if 1 //DIGITAL_PIR
|
|
||||||
MLOGI("DigitPirSensitivity=%d\n", puiPara->DigitPirSensitivity);
|
|
||||||
DigPirPulseCount = sf_set_digit_pir_pulse_cnt(puiPara->DigitPirSensitivity);
|
|
||||||
DigPirWindowTime = 0;
|
|
||||||
|
|
||||||
mcuReg[i] = DIGITAL_PIR_SENSITIVITY;
|
|
||||||
|
|
||||||
mcuData[i++] = sf_set_digit_pir_level(puiPara->DigitPirSensitivity);
|
|
||||||
mcuReg[i] = DIGITAL_PIR_CFG;
|
|
||||||
mcuData[i++] = DigPirWindowTime<<4 | DigPirPulseCount;
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
//DSP busy/idle
|
|
||||||
|
|
||||||
mcuReg[i] = DSP_BUSY_STATUS;
|
|
||||||
mcuData[i++] = 0;
|
|
||||||
|
|
||||||
temp = 1;
|
|
||||||
if(val == SF_POWEROFF_SD_FULL || SF_SD_FULL == sf_sd_status_get())
|
|
||||||
temp |= 0x02;
|
|
||||||
if(val == SF_POWEROFF_NO_SD)
|
|
||||||
temp &= ~0x01;
|
|
||||||
|
|
||||||
mcuReg[i] = SYS_STATUS;
|
|
||||||
mcuData[i++] = temp;
|
|
||||||
|
|
||||||
|
|
||||||
temp = 0;
|
|
||||||
if((val == SF_POWEROFF_KEYON) || (val == SF_POWEROFF_SYNC_PARAM))
|
|
||||||
temp |= 0x01; //bit0-3:1, reboot in A
|
|
||||||
else if(val == SF_POWEROFF_AUTO)
|
|
||||||
temp |= 0x81; // bit7:1 auto power when 3min no operation
|
|
||||||
else if(val == SF_POWEROFF_LOW_BAT)
|
|
||||||
temp |= 0x40;
|
|
||||||
|
|
||||||
mcuReg[i] = POWEROFF_TYPE;
|
|
||||||
mcuData[i++] = temp;
|
|
||||||
|
|
||||||
//battery recovery
|
|
||||||
mcuReg[i] = VBAT_RECOVER_VAL;
|
|
||||||
mcuData[i++] = 72; //SF_BATT_RECOVERY;
|
|
||||||
|
|
||||||
|
|
||||||
if(puiPara->TimelapseSwitch)
|
|
||||||
{
|
{
|
||||||
mcuReg[i] = TIMELAPSE_HOUR;
|
mcuReg[i] = TIMELAPSE_HOUR;
|
||||||
mcuData[i++] = puiPara->TimelapseTime.Hour;
|
mcuData[i++] = puiPara->TimelapseTime.Hour;
|
||||||
mcuReg[i] = TIMELAPSE_MINUTE;
|
mcuReg[i] = TIMELAPSE_MINUTE;
|
||||||
mcuData[i++] = puiPara->TimelapseTime.Min;
|
mcuData[i++] = puiPara->TimelapseTime.Min;
|
||||||
mcuReg[i] = TIMELAPSE_SEC;
|
mcuReg[i] = TIMELAPSE_SEC;
|
||||||
|
|
||||||
if((puiPara->TimelapseSwitch)&&(puiPara->TimelapseTime.Hour==0)&&(puiPara->TimelapseTime.Min==0)&&(puiPara->TimelapseTime.Sec==0))
|
if((sf_sys_get_flag(TimelapseSwitch)) && (puiPara->TimelapseTime.Hour == 0) && (puiPara->TimelapseTime.Min == 0) && (puiPara->TimelapseTime.Sec == 0))
|
||||||
mcuData[i++] = 5;
|
mcuData[i++] = 5;
|
||||||
else
|
else
|
||||||
mcuData[i++] = puiPara->TimelapseTime.Sec;
|
mcuData[i++] = puiPara->TimelapseTime.Sec;
|
||||||
|
@ -476,217 +469,353 @@ unsigned char sf_mcu_reg_set(MCUParam_t attrId, unsigned char val)
|
||||||
mcuReg[i] = TIMELAPSE_SEC;
|
mcuReg[i] = TIMELAPSE_SEC;
|
||||||
mcuData[i++] = 0;
|
mcuData[i++] = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(puiPara->PirDelaySwitch)
|
if(sf_sys_get_flag(PirDelaySwitch))
|
||||||
{
|
{
|
||||||
mcuReg[i] = PIR_DELAY_HOUR;
|
mcuReg[i] = PIR_DELAY_HOUR;
|
||||||
mcuData[i++] = puiPara->PirDelayTime.Hour;
|
mcuData[i++] = puiPara->PirDelayTime.Hour;
|
||||||
mcuReg[i] = PIR_DELAY_MINUTE;
|
mcuReg[i] = PIR_DELAY_MINUTE;
|
||||||
mcuData[i++] = puiPara->PirDelayTime.Min;
|
mcuData[i++] = puiPara->PirDelayTime.Min;
|
||||||
mcuReg[i] = PIR_DELAY_SEC;
|
mcuReg[i] = PIR_DELAY_SEC;
|
||||||
mcuData[i++] = puiPara->PirDelayTime.Sec;
|
mcuData[i++] = puiPara->PirDelayTime.Sec;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
mcuReg[i] = PIR_DELAY_HOUR;
|
mcuReg[i] = PIR_DELAY_HOUR;
|
||||||
mcuData[i++] = 0;
|
mcuData[i++] = 0;
|
||||||
mcuReg[i] = PIR_DELAY_MINUTE;
|
mcuReg[i] = PIR_DELAY_MINUTE;
|
||||||
mcuData[i++] = 0;
|
mcuData[i++] = 0;
|
||||||
mcuReg[i] = PIR_DELAY_SEC;
|
mcuReg[i] = PIR_DELAY_SEC;
|
||||||
mcuData[i++] = 0;
|
mcuData[i++] = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(paraSyncFlag)
|
if(paraSyncFlag)
|
||||||
{
|
{
|
||||||
mcuReg[i] = TIME_SYNC_HOUR;
|
mcuReg[i] = TIME_SYNC_HOUR;
|
||||||
mcuData[i++] = 0;
|
mcuData[i++] = 0;
|
||||||
mcuReg[i] = TIME_SYNC_MINUTE;
|
mcuReg[i] = TIME_SYNC_MINUTE;
|
||||||
mcuData[i++] = 1;
|
mcuData[i++] = 0;
|
||||||
mcuReg[i] = TIME_SYNC_SEC;
|
mcuReg[i] = TIME_SYNC_SEC;
|
||||||
mcuData[i++] = 30;
|
mcuData[i++] = 1;
|
||||||
|
|
||||||
}
|
}
|
||||||
MLOGI("GPSWaitRestartFlag = %d\n", puiPara->GPSWaitRestartFlag);
|
|
||||||
|
if(sf_sys_get_flag(DailyReportSwitch))
|
||||||
if(puiPara->GprsMode == 1)
|
|
||||||
{
|
{
|
||||||
mcuReg[i] = DAILY_REPORT_HOUR;
|
mcuReg[i] = DAILY_REPORT_HOUR;
|
||||||
mcuData[i++] = (date.Hour + 2) % 24;
|
mcuData[i++] = puiPara->DailyReportTime2.Hour;
|
||||||
mcuReg[i] = DAILY_REPORT_MINUTE;
|
mcuReg[i] = DAILY_REPORT_MINUTE;
|
||||||
mcuData[i++] = date.Min;
|
mcuData[i++] = puiPara->DailyReportTime2.Min;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// if(puiPara->DailyReportTime.Min == 30)
|
mcuReg[i] = DAILY_REPORT_HOUR;
|
||||||
// {
|
mcuData[i++] =0;
|
||||||
// puiPara->DailyReportTime.Min = 2;
|
mcuReg[i] = DAILY_REPORT_MINUTE;
|
||||||
// }
|
mcuData[i++] =0;
|
||||||
if(puiPara->GPSWaitRestartFlag == 2)
|
|
||||||
{ puiPara->DailyReportTime.Hour = 0;
|
|
||||||
puiPara->DailyReportTime.Min = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(puiPara->GprsMode != 2 && puiPara->GPSWaitRestartFlag == 1)
|
|
||||||
{
|
|
||||||
|
|
||||||
mcuReg[i] = DAILY_REPORT_HOUR;
|
|
||||||
mcuData[i++] = (date.Hour + 1) % 24;
|
|
||||||
mcuReg[i] = DAILY_REPORT_MINUTE;
|
|
||||||
mcuData[i++] = (date.Min) % 60;
|
|
||||||
puiPara->GPSWaitRestartFlag = 0;
|
|
||||||
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
puiPara->GPSWaitRestartFlag = 0;
|
|
||||||
if((date.Min + puiPara->DailyReportTime.Min) > 59)
|
|
||||||
{
|
|
||||||
mcuReg[i] = DAILY_REPORT_HOUR;
|
|
||||||
mcuData[i++] = (date.Hour + puiPara->DailyReportTime.Hour +1) % 24;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
mcuReg[i] = DAILY_REPORT_HOUR;
|
|
||||||
mcuData[i++] = (date.Hour + puiPara->DailyReportTime.Hour) % 24;
|
|
||||||
}
|
|
||||||
|
|
||||||
mcuReg[i] = DAILY_REPORT_MINUTE;
|
|
||||||
MLOGI("now time =[%02d:%02d:%02d],DailyReportTimer = [%02d:%02d:00]\n",date.Hour,date.Min,date.Sec, puiPara->DailyReportTime.Hour,puiPara->DailyReportTime.Min);
|
|
||||||
|
|
||||||
|
|
||||||
if(puiPara->DailyReportTime.Hour == 24)
|
|
||||||
mcuData[i++] = (date.Min + puiPara->DailyReportTime.Min - 1) % 60;
|
|
||||||
else
|
|
||||||
mcuData[i++] = (date.Min + puiPara->DailyReportTime.Min) % 60;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
mcuReg[i] = DAILY_SEND1_HOUR;
|
||||||
|
mcuData[i++] = puiPara->TimeSend1.Hour;
|
||||||
|
mcuReg[i] = DAILY_SEND1_MINUTE;
|
||||||
|
mcuData[i++] = puiPara->TimeSend1.Min;
|
||||||
|
|
||||||
|
mcuReg[i] = DAILY_SEND2_HOUR;
|
||||||
|
mcuData[i++] = puiPara->TimeSend2.Hour;
|
||||||
#if 1 //no use
|
|
||||||
if(puiPara->WorkMode == 1)
|
|
||||||
{
|
|
||||||
|
|
||||||
mcuReg[i] = DAILY_SEND1_HOUR;
|
|
||||||
mcuData[i++] = puiPara->TimeSend1.Hour;
|
|
||||||
mcuReg[i] = DAILY_SEND1_MINUTE;
|
|
||||||
mcuData[i++] = puiPara->TimeSend1.Min;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
mcuReg[i] = DAILY_SEND2_HOUR;
|
|
||||||
mcuData[i++] = puiPara->TimeSend2;
|
|
||||||
mcuReg[i] = DAILY_SEND2_MINUTE;
|
mcuReg[i] = DAILY_SEND2_MINUTE;
|
||||||
mcuData[i++] = puiPara->TimeSend2;
|
mcuData[i++] = puiPara->TimeSend2.Min;
|
||||||
|
|
||||||
mcuReg[i] = DAILY_SEND3_HOUR;
|
mcuReg[i] = ANALOG_PIR_SENSITIVITY;
|
||||||
mcuData[i++] = puiPara->TimeSend3;
|
temp = sf_mcu_analog_pir_sen_convert(sf_sys_get_flag(PirSensitivity));
|
||||||
|
//hybrid mode 4G module keep sleep
|
||||||
|
if((sf_sys_get_flag(NetWorkNeedSearch) != 3) && simCardInsert && gModuleSleep)
|
||||||
|
{
|
||||||
|
//bit 5-bit 6, daily mode 0, hybrid mode 1, instant mode 2
|
||||||
|
if((sf_sys_get_flag(GprsMode) == 1) || (paraSyncFlag))
|
||||||
|
{
|
||||||
|
temp |= 0x40;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if ((sf_sys_get_flag(GprsMode) == 2) && isSignalReady && (GPRS_ERRNO == 0))
|
||||||
|
temp |= 0x20;
|
||||||
|
|
||||||
|
//sf_pdp_flg_set(0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(((sf_sys_get_flag(GprsSwitch)) && (simCardInsert) && (sf_sys_get_flag(SendType) == 0)) || (paraSyncFlag))
|
||||||
|
{
|
||||||
|
temp |= 0x80;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
//sf_pdp_flg_set(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
mcuData[i++] = temp;
|
||||||
|
|
||||||
|
mcuReg[i] = DIGITAL_PIR_SENSITIVITY;
|
||||||
|
mcuData[i++] = sf_sys_get_flag(DigitPirSensitivity);//PirDigtSensRegValue[SysGetFlag(PirSensitivity)];
|
||||||
|
mcuReg[i] = DIGITAL_PIR_CFG;
|
||||||
|
mcuData[i++] = (sf_sys_get_flag(DigitPirWindowTime) << 4) | sf_sys_get_flag(DigitPirCnt);
|
||||||
|
//mcuData[i++] = (PirDigtSensRegValue[SysGetFlag(PirSensitivity)] <= 10 ? 1 : 0);
|
||||||
|
|
||||||
|
//DSP busy/idle
|
||||||
|
mcuReg[i] = DSP_BUSY_STATUS;
|
||||||
|
mcuData[i++] = 0;
|
||||||
|
|
||||||
|
mcuReg[i] = SYS_STATUS;
|
||||||
|
mcuData[i++] = isUsb << 2 | isCardFull << 1 | isCard << 0;
|
||||||
|
|
||||||
|
mcuReg[i] = POWEROFF_TYPE;
|
||||||
|
temp = 0;
|
||||||
|
|
||||||
|
if(simCardInsert && (sf_sys_get_flag(NetWorkNeedSearch))
|
||||||
|
&& ((PowerOnMode == PWR_ON_AUTO) || (PowerOnMode == PWR_ON_SETUP) || (PowerOnMode == PWR_ON_DAILY_REPORT)))/* SET->ON, OFF->ON*/
|
||||||
|
temp = 1;
|
||||||
|
else if(SmsCheck)
|
||||||
|
temp = 2;
|
||||||
|
|
||||||
|
if (!(sf_get_pir_statu_flag() || (PowerOnMode == PWR_ON_AUTO)))
|
||||||
|
temp |= (val == APP_POWER_OFF_BATT_EMPTY) << 6;
|
||||||
|
|
||||||
|
mcuData[i++] = (val==APP_POWER_OFF_APO)<<7 | temp;
|
||||||
|
|
||||||
|
//battery recovery
|
||||||
|
mcuReg[i] = VBAT_RECOVER_VAL;
|
||||||
|
mcuData[i++] = SF_BATT_RECOVERY;
|
||||||
|
|
||||||
|
if(sf_sys_get_flag(WorkTime1Switch))
|
||||||
|
{
|
||||||
|
mcuReg[i] = WORKTIME1_SWITCH;
|
||||||
|
mcuData[i++] = 0xFF;
|
||||||
|
|
||||||
|
mcuReg[i] = WORKTIME1_START_HOUR;
|
||||||
|
mcuData[i++] = puiPara->WorkTime[0].StartTime.Hour;
|
||||||
|
mcuReg[i] = WORKTIME1_START_MINUTE;
|
||||||
|
mcuData[i++] = puiPara->WorkTime[0].StartTime.Min;
|
||||||
|
|
||||||
|
mcuReg[i] = WORKTIME1_STOP_HOUR;
|
||||||
|
mcuData[i++] = puiPara->WorkTime[0].StopTime.Hour;
|
||||||
|
mcuReg[i] = WORKTIME1_STOP_MINUTE;
|
||||||
|
mcuData[i++] = puiPara->WorkTime[0].StopTime.Min;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
mcuReg[i] = WORKTIME1_SWITCH;
|
||||||
|
mcuData[i++] = 0;
|
||||||
|
|
||||||
|
mcuReg[i] = WORKTIME1_START_HOUR;
|
||||||
|
mcuData[i++] = 0;
|
||||||
|
mcuReg[i] = WORKTIME1_START_MINUTE;
|
||||||
|
mcuData[i++] = 0;
|
||||||
|
|
||||||
|
mcuReg[i] = WORKTIME1_STOP_HOUR;
|
||||||
|
mcuData[i++] = 0;
|
||||||
|
mcuReg[i] = WORKTIME1_STOP_MINUTE;
|
||||||
|
mcuData[i++] = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(sf_sys_get_flag(WorkTime2Switch))
|
||||||
|
{
|
||||||
|
mcuReg[i] = WORKTIME2_SWITCH;
|
||||||
|
mcuData[i++] = 0xFF;
|
||||||
|
|
||||||
|
mcuReg[i] = WORKTIME2_START_HOUR;
|
||||||
|
mcuData[i++] = puiPara->WorkTime[1].StartTime.Hour;
|
||||||
|
mcuReg[i] = WORKTIME2_START_MINUTE;
|
||||||
|
mcuData[i++] = puiPara->WorkTime[1].StartTime.Min;
|
||||||
|
|
||||||
|
mcuReg[i] = WORKTIME2_STOP_HOUR;
|
||||||
|
mcuData[i++] = puiPara->WorkTime[1].StopTime.Hour;
|
||||||
|
mcuReg[i] = WORKTIME2_STOP_MINUTE;
|
||||||
|
mcuData[i++] = puiPara->WorkTime[1].StopTime.Min;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
mcuReg[i] = WORKTIME2_SWITCH;
|
||||||
|
mcuData[i++] = 0;
|
||||||
|
|
||||||
|
mcuReg[i] = WORKTIME2_START_HOUR;
|
||||||
|
mcuData[i++] = 0;
|
||||||
|
mcuReg[i] = WORKTIME2_START_MINUTE;
|
||||||
|
mcuData[i++] = 0;
|
||||||
|
|
||||||
|
mcuReg[i] = WORKTIME2_STOP_HOUR;
|
||||||
|
mcuData[i++] = 0;
|
||||||
|
mcuReg[i] = WORKTIME2_STOP_MINUTE;
|
||||||
|
mcuData[i++] = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if((sf_sys_get_flag(GpsSwitch) || sf_sys_get_flag(FristSendDailyAndGps)) && (((SF_MCU_STARTUP_ONKEY == sf_poweron_type_get())) || paraSyncFlag))
|
||||||
|
{
|
||||||
|
mcuReg[i] = GPS_POWER_TIMER_CLEAR;
|
||||||
|
mcuData[i++] = 1;
|
||||||
|
mcuReg[i] = GPS_POWER_CTRL;
|
||||||
|
mcuData[i++] = 1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
mcuReg[i] = GPS_POWER_CTRL;
|
||||||
|
mcuData[i++] = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
temp = 0;
|
||||||
|
|
||||||
|
if(sf_sys_get_flag(TimeSend3Switch) == 1)
|
||||||
|
temp |= 0x01;
|
||||||
|
|
||||||
|
if(sf_sys_get_flag(TimeSend4Switch) == 1)
|
||||||
|
temp |= 0x02;
|
||||||
|
|
||||||
|
mcuReg[i] = FUNCTION_SWTICH1;
|
||||||
|
mcuData[i++] = temp;
|
||||||
|
|
||||||
|
mcuReg[i] = DAILY_SEND3_HOUR;
|
||||||
|
mcuData[i++] = puiPara->TimeSend3.Hour;
|
||||||
mcuReg[i] = DAILY_SEND3_MINUTE;
|
mcuReg[i] = DAILY_SEND3_MINUTE;
|
||||||
mcuData[i++] = puiPara->TimeSend3;
|
mcuData[i++] = puiPara->TimeSend3.Min;
|
||||||
|
|
||||||
mcuReg[i] = DAILY_SEND4_HOUR;
|
mcuReg[i] = DAILY_SEND4_HOUR;
|
||||||
mcuData[i++] = puiPara->TimeSend4;
|
mcuData[i++] = puiPara->TimeSend4.Hour;
|
||||||
mcuReg[i] = DAILY_SEND4_MINUTE;
|
mcuReg[i] = DAILY_SEND4_MINUTE;
|
||||||
mcuData[i++] = puiPara->TimeSend4;
|
mcuData[i++] = puiPara->TimeSend4.Min;
|
||||||
*/
|
}
|
||||||
#endif
|
else if(attrId == SF_MCU_CTRL_MODULE_PIR)
|
||||||
|
{
|
||||||
|
mcuReg[i] = ANALOG_PIR_SENSITIVITY;
|
||||||
|
|
||||||
if(puiPara->WorkTime1Switch)
|
temp = sf_sys_get_flag(PirSensitivity);//sf_mcu_analog_pir_sen_convert(SysGetFlag(DigPirSensitivity));
|
||||||
{
|
|
||||||
mcuReg[i] = WORKTIME1_SWITCH;
|
if(sf_sys_get_flag(GprsMode))//hybrid mode 4G module keep sleep
|
||||||
|
{
|
||||||
if(puiPara->WorkTime[0].StartTime.Day > 0)
|
temp |= 0x40;
|
||||||
{
|
}
|
||||||
mcuData[i++] = puiPara->WorkTime[0].StartTime.Day;
|
|
||||||
}
|
if((sf_sys_get_flag(GprsMode)) && (val == 1))
|
||||||
else
|
{
|
||||||
{
|
temp |= 0x80;
|
||||||
mcuData[i++] = 0xFF;
|
}
|
||||||
}
|
else
|
||||||
|
{
|
||||||
|
//sf_pdp_flg_set(0);
|
||||||
|
}
|
||||||
|
|
||||||
mcuReg[i] = WORKTIME1_START_HOUR;
|
mcuData[i++] = temp;
|
||||||
mcuData[i++] = puiPara->WorkTime[0].StartTime.Hour;
|
|
||||||
mcuReg[i] = WORKTIME1_START_MINUTE;
|
|
||||||
mcuData[i++] = puiPara->WorkTime[0].StartTime.Min;
|
|
||||||
|
|
||||||
mcuReg[i] = WORKTIME1_STOP_HOUR;
|
if(ConfigureModeFlag)
|
||||||
mcuData[i++] = puiPara->WorkTime[0].StopTime.Hour;
|
{
|
||||||
|
mcuReg[i] = DIGITAL_PIR_SENSITIVITY;
|
||||||
mcuReg[i] = WORKTIME1_STOP_MINUTE;
|
mcuData[i++] = sf_sys_get_flag(DigitPirSensitivity);//PirDigtSensRegValue[SysGetFlag(PirSensitivity)];
|
||||||
mcuData[i++] = puiPara->WorkTime[0].StopTime.Min;
|
mcuReg[i] = DIGITAL_PIR_CFG;
|
||||||
}
|
mcuData[i++] = (sf_sys_get_flag(DigitPirWindowTime) << 4) | sf_sys_get_flag(DigitPirCnt);
|
||||||
else
|
}
|
||||||
{
|
|
||||||
mcuReg[i] = WORKTIME1_SWITCH;
|
|
||||||
mcuData[i++] = 0;
|
|
||||||
|
|
||||||
mcuReg[i] = WORKTIME1_START_HOUR;
|
if((sf_sys_get_flag(GpsSwitch) || sf_sys_get_flag(FristSendDailyAndGps)) && (ConfigureModeFlag || paraSyncFlag))
|
||||||
mcuData[i++] = 0;
|
{
|
||||||
mcuReg[i] = WORKTIME1_START_MINUTE;
|
mcuReg[i] = GPS_POWER_TIMER_CLEAR;
|
||||||
mcuData[i++] = 0;
|
mcuData[i++] = 1;
|
||||||
|
mcuReg[i] = GPS_POWER_CTRL;
|
||||||
|
mcuData[i++] = 1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
mcuReg[i] = GPS_POWER_CTRL;
|
||||||
|
mcuData[i++] = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if(attrId == SF_MCU_PARA)
|
||||||
|
{
|
||||||
|
mcuReg[i] = ANALOG_PIR_SENSITIVITY;
|
||||||
|
|
||||||
|
temp = sf_sys_get_flag(PirSensitivity);//sf_mcu_analog_pir_sen_convert(puiPara->PirSensitivity);
|
||||||
|
|
||||||
|
if((sf_sys_get_flag(GprsMode)) && (gModuleSleep == 1))//hybrid mode 4G module keep sleep
|
||||||
|
{
|
||||||
|
temp |= 0x40;
|
||||||
|
}
|
||||||
|
|
||||||
mcuReg[i] = WORKTIME1_STOP_HOUR;
|
if((sf_sys_get_flag(GprsMode)) && (simCardInsert))
|
||||||
mcuData[i++] = 0;
|
{
|
||||||
mcuReg[i] = WORKTIME1_STOP_MINUTE;
|
temp |= 0x80;
|
||||||
mcuData[i++] = 0;
|
}
|
||||||
}
|
else
|
||||||
|
{
|
||||||
|
//sf_pdp_flg_set(0);
|
||||||
|
}
|
||||||
|
|
||||||
if(puiPara->WorkTime2Switch)
|
mcuData[i++] = temp;
|
||||||
{
|
|
||||||
mcuReg[i] = WORKTIME2_SWITCH;
|
printf("[%s:%d] temp:0x%02x GprsSwitch:%lu simCardInsert:%lu\n", __FUNCTION__, __LINE__, temp, sf_sys_get_flag(GprsSwitch), simCardInsert);
|
||||||
if(puiPara->WorkTime[1].StartTime.Day > 0)
|
mcuReg[i] = DIGITAL_PIR_SENSITIVITY;
|
||||||
{
|
mcuData[i++] = sf_sys_get_flag(DigitPirSensitivity);//PirDigtSensRegValue[SysGetFlag(PirSensitivity)];
|
||||||
mcuData[i++] = puiPara->WorkTime[1].StartTime.Day;
|
mcuReg[i] = DIGITAL_PIR_CFG;
|
||||||
}
|
mcuData[i++] = (sf_sys_get_flag(DigitPirWindowTime) << 4) | sf_sys_get_flag(DigitPirCnt);
|
||||||
else
|
|
||||||
{
|
|
||||||
mcuData[i++] = 0xFF;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
mcuReg[i] = WORKTIME2_START_HOUR;
|
mcuReg[i] = SYS_STATUS;
|
||||||
mcuData[i++] = puiPara->WorkTime[1].StartTime.Hour;
|
mcuData[i++] = sf_sys_get_flag(CamArmDiable) << 6 | isUsb << 2 | isCardFull << 1 | isCard << 0;
|
||||||
mcuReg[i] = WORKTIME2_START_MINUTE;
|
|
||||||
mcuData[i++] = puiPara->WorkTime[1].StartTime.Min;
|
|
||||||
|
|
||||||
mcuReg[i] = WORKTIME2_STOP_HOUR;
|
if((sf_sys_get_flag(GpsSwitch) || sf_sys_get_flag(FristSendDailyAndGps)) && (ConfigureModeFlag || paraSyncFlag))
|
||||||
mcuData[i++] = puiPara->WorkTime[1].StopTime.Hour;
|
{
|
||||||
mcuReg[i] = WORKTIME2_STOP_MINUTE;
|
mcuReg[i] = GPS_POWER_TIMER_CLEAR;
|
||||||
mcuData[i++] = puiPara->WorkTime[1].StopTime.Min;
|
mcuData[i++] = 1;
|
||||||
}
|
mcuReg[i] = GPS_POWER_CTRL;
|
||||||
else
|
mcuData[i++] = 1;
|
||||||
{
|
}
|
||||||
mcuReg[i] = WORKTIME2_SWITCH;
|
else
|
||||||
mcuData[i++] = 0;
|
{
|
||||||
|
mcuReg[i] = GPS_POWER_CTRL;
|
||||||
mcuReg[i] = WORKTIME2_START_HOUR;
|
mcuData[i++] = 0;
|
||||||
mcuData[i++] = 0;
|
}
|
||||||
mcuReg[i] = WORKTIME2_START_MINUTE;
|
}
|
||||||
mcuData[i++] = 0;
|
else if(attrId == SF_MCU_RESET_MODULE)
|
||||||
|
{
|
||||||
mcuReg[i] = WORKTIME2_STOP_HOUR;
|
mcuReg[i] = SYS_STATUS;
|
||||||
mcuData[i++] = 0;
|
mcuData[i++] = sf_sys_get_flag(CamArmDiable) << 6 | isUsb << 2 | isCardFull << 1 | isCard << 0 | 0x10;
|
||||||
mcuReg[i] = WORKTIME2_STOP_MINUTE;
|
//sf_pdp_flg_set(0);
|
||||||
mcuData[i++] = 0;
|
}
|
||||||
}
|
else if(attrId == SF_MCU_SOFT_UPDATE)
|
||||||
}
|
{
|
||||||
|
mcuReg[i] = SYS_STATUS;
|
||||||
mcuReg[i] = DSP_WRITE_FLG; //MCU set end
|
|
||||||
mcuData[i++] = 1;
|
if(val == 1)
|
||||||
|
{
|
||||||
regsize = i;
|
mcuData[i++] = sf_sys_get_flag(CamArmDiable) << 6 | isUsb << 2 | isCardFull << 1 | isCard << 0 | 0x08;
|
||||||
|
}
|
||||||
for(i = 0; i < regsize; i++)
|
else
|
||||||
{
|
{
|
||||||
sf_commu_set_mcu(mcuReg[i], mcuData[i]);
|
mcuData[i++] = sf_sys_get_flag(CamArmDiable) << 6 | isUsb << 2 | isCardFull << 1 | isCard << 0;
|
||||||
}
|
}
|
||||||
return 0;
|
}
|
||||||
|
else if(attrId == SF_MCU_POWER_RESTART)
|
||||||
|
{
|
||||||
|
mcuReg[i] = SYS_STATUS;
|
||||||
|
mcuData[i++] = sf_sys_get_flag(CamArmDiable) << 6 | isUsb << 2 | isCardFull << 1 | isCard << 0 | 0x20;
|
||||||
|
}
|
||||||
|
else if(attrId == SF_MCU_PIR_RESTART)
|
||||||
|
{
|
||||||
|
mcuReg[i] = SYS_STATUS;
|
||||||
|
mcuData[i++] = sf_sys_get_flag(CamArmDiable) << 6 | isUsb << 2 | isCardFull << 1 | isCard << 0 | 0x80;
|
||||||
|
}
|
||||||
|
|
||||||
|
mcuReg[i] = DSP_WRITE_FLG; //MCU set end
|
||||||
|
mcuData[i++] = 1;
|
||||||
|
//printf("[%s:%d] mcuData[%d]0x%02x\n", __FUNCTION__, __LINE__, (i - 1), mcuData[(i - 1)]);
|
||||||
|
#if 0
|
||||||
|
|
||||||
|
if((attrId == SF_MCU_POWEROFF) && puiPara->DebugMode && IS_CARD_EXIST)
|
||||||
|
{
|
||||||
|
for(j = 0; j < i; j++)
|
||||||
|
{
|
||||||
|
printf("W_addr[%2d]=0x%02x\n",mcuReg[j],mcuData[j]);
|
||||||
|
}
|
||||||
|
|
||||||
|
sf_debug_save_log();
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
sf_mcu_write_multi(mcuReg, mcuData, i);
|
||||||
|
return SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
SF_TIME_S sf_get_mcu_poweroff_date(void)
|
SF_TIME_S sf_get_mcu_poweroff_date(void)
|
||||||
{
|
{
|
||||||
return sfMcuTime;
|
return sfMcuTime;
|
||||||
|
@ -818,10 +947,10 @@ void sf_mcu_version_get(unsigned char *mcuVer)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
unsigned char sf_mcu_start_mode_get(void)
|
//unsigned char sf_mcu_start_mode_get(void)
|
||||||
{
|
//{
|
||||||
return McuPowerOnMode;
|
// return McuPowerOnMode;
|
||||||
}
|
//}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -891,6 +1020,82 @@ unsigned short sf_get_mcu_ver(void)
|
||||||
return McuVersion;
|
return McuVersion;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*************************************************
|
||||||
|
Function: sf_get_power_on_mode
|
||||||
|
Description: get power start mode
|
||||||
|
Input: N/A
|
||||||
|
Output: N/A
|
||||||
|
Return: 0:ON mode 1:OFF mode
|
||||||
|
Others: N/A
|
||||||
|
*************************************************/
|
||||||
|
UINT8 sf_get_power_on_mode(void)
|
||||||
|
{
|
||||||
|
static int ModeFlag = 1;
|
||||||
|
if(ModeFlag)
|
||||||
|
{
|
||||||
|
ModeFlag = 0;
|
||||||
|
PowerOnMode = sf_mcu_power_on_para_get(SF_MCU_POWERON);
|
||||||
|
PowerOnMode &= 0x0f;
|
||||||
|
if(1 == PowerOnMode)
|
||||||
|
{
|
||||||
|
ConfigureModeFlag = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return PowerOnMode;
|
||||||
|
}
|
||||||
|
UINT8 sf_convert_power_on_mode(void)
|
||||||
|
{
|
||||||
|
PowerOnMode &= 0x0f;
|
||||||
|
//printf("[%s:%d]PowerOnMode=0x%x\n",__FUNCTION__,__LINE__,PowerOnMode);
|
||||||
|
return PowerOnMode;
|
||||||
|
}
|
||||||
|
|
||||||
|
BOOL sf_get_mode_flag(void)
|
||||||
|
{
|
||||||
|
//printf("[%s:%d] ConfigureModeFlag:%d\n",__FUNCTION__,__LINE__,ConfigureModeFlag);
|
||||||
|
return ConfigureModeFlag;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*************************************************
|
||||||
|
Function: sf_mcu_get_irshtter
|
||||||
|
Description: get IRSHTTER.
|
||||||
|
Input: N/A
|
||||||
|
Output: N/A
|
||||||
|
Return: IRSHTTER
|
||||||
|
Others: N/A
|
||||||
|
*************************************************/
|
||||||
|
UINT16 sf_mcu_get_irshtter(void)
|
||||||
|
{
|
||||||
|
UINT8 dataTemp1 = 0, dataTemp2 = 0;
|
||||||
|
|
||||||
|
UINT8 mcuReg[REG_SIZE] = { 0 };
|
||||||
|
UINT8 mcuData[REG_SIZE] = { 0 };
|
||||||
|
UINT8 i = 0;
|
||||||
|
|
||||||
|
mcuReg[i++] = LUMINANCE_L;
|
||||||
|
mcuReg[i++] = LUMINANCE_H;
|
||||||
|
sf_mcu_read_multi(mcuReg, mcuData, i);
|
||||||
|
i = 0;
|
||||||
|
|
||||||
|
dataTemp1= mcuData[i++];
|
||||||
|
dataTemp2 = mcuData[i++];
|
||||||
|
|
||||||
|
IRSHTTER = (dataTemp2 << 8) | dataTemp1;
|
||||||
|
|
||||||
|
printf("IRSHTTER = %d\n", IRSHTTER);
|
||||||
|
|
||||||
|
return IRSHTTER;
|
||||||
|
}
|
||||||
|
|
||||||
|
void sf_set_module_sleep_flag(UINT8 flag)
|
||||||
|
{
|
||||||
|
gModuleSleep = flag;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
#if __cplusplus
|
#if __cplusplus
|
||||||
}
|
}
|
||||||
|
|
|
@ -30,7 +30,7 @@ extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static SF_OTA_ATTRS stOtaAttrs = {0};
|
static SF_OTA_ATTRS stOtaAttrs = {0};
|
||||||
static SINT32 packet_log_printf(UINT8 *pbuf,UINT16 lenth)
|
SINT32 packet_log_printf(UINT8 *pbuf,UINT16 lenth)
|
||||||
{
|
{
|
||||||
UINT16 i= 0;
|
UINT16 i= 0;
|
||||||
for(i = 0;i < lenth;i++)
|
for(i = 0;i < lenth;i++)
|
||||||
|
@ -241,7 +241,7 @@ static SINT32 upgrade_ota_addfileheader(void)
|
||||||
static SINT32 upgrade_md5_check_code_get(SF_CHAR *filename, UINT8 digest[], UINT32 offset, UINT32 size)
|
static SINT32 upgrade_md5_check_code_get(SF_CHAR *filename, UINT8 digest[], UINT32 offset, UINT32 size)
|
||||||
{
|
{
|
||||||
MD5_CTX context;
|
MD5_CTX context;
|
||||||
UINT32 len = 0, i = 0;
|
UINT32 len = 0;
|
||||||
UINT32 flieSize = 0;
|
UINT32 flieSize = 0;
|
||||||
UINT8 buffer[1024] = {0};
|
UINT8 buffer[1024] = {0};
|
||||||
int fd = 0;
|
int fd = 0;
|
|
@ -1,11 +0,0 @@
|
||||||
CUR_ROOT := $(shell pwd)
|
|
||||||
DUAL_OS_EN ?= 1
|
|
||||||
SF_CS_DIR :=$(CUR_ROOT)/../..
|
|
||||||
ALKAID_DIR ?=$(SF_CS_DIR)/../../../..
|
|
||||||
PROJECT_DIR ?=$(ALKAID_DIR)/project
|
|
||||||
include $(SF_CS_DIR)/build/config.mk
|
|
||||||
|
|
||||||
MODULE_NAME :=$(CUR_DIR_NAME)
|
|
||||||
SRC_DIR := $(CUR_ROOT)/src
|
|
||||||
|
|
||||||
include $(SF_CS_DIR)/build/modbuild.mk
|
|
BIN
code/hdal/vendor/output/libvendor_ai2_pub.a
vendored
BIN
code/hdal/vendor/output/libvendor_ai2_pub.a
vendored
Binary file not shown.
BIN
code/hdal/vendor/output/libvendor_ai2_pub2.a
vendored
BIN
code/hdal/vendor/output/libvendor_ai2_pub2.a
vendored
Binary file not shown.
|
@ -214,6 +214,21 @@ typedef enum {
|
||||||
#define A_GPIO_0 (0 + A_GPI_SHIFT_BASE) ///< A_GPIO[0]
|
#define A_GPIO_0 (0 + A_GPI_SHIFT_BASE) ///< A_GPIO[0]
|
||||||
#define A_GPIO_1 (1 + A_GPI_SHIFT_BASE) ///< A_GPIO[1]
|
#define A_GPIO_1 (1 + A_GPI_SHIFT_BASE) ///< A_GPIO[1]
|
||||||
#define A_GPIO_2 (2 + A_GPI_SHIFT_BASE) ///< A_GPIO[2]
|
#define A_GPIO_2 (2 + A_GPI_SHIFT_BASE) ///< A_GPIO[2]
|
||||||
|
|
||||||
|
/*GPIO DSI Data register*/
|
||||||
|
#define DSI_GPIO_SHIFT_BASE 224
|
||||||
|
#define DSI_GPIO_0 (0 + DSI_GPIO_SHIFT_BASE) ///< DSI_GPIO[0]
|
||||||
|
#define DSI_GPIO_1 (1 + DSI_GPIO_SHIFT_BASE) ///< DSI_GPIO[1]
|
||||||
|
#define DSI_GPIO_2 (2 + DSI_GPIO_SHIFT_BASE) ///< DSI_GPIO[2]
|
||||||
|
#define DSI_GPIO_3 (3 + DSI_GPIO_SHIFT_BASE) ///< DSI_GPIO[3]
|
||||||
|
#define DSI_GPIO_4 (4 + DSI_GPIO_SHIFT_BASE) ///< DSI_GPIO[4]
|
||||||
|
#define DSI_GPIO_5 (5 + DSI_GPIO_SHIFT_BASE) ///< DSI_GPIO[5]
|
||||||
|
#define DSI_GPIO_6 (6 + DSI_GPIO_SHIFT_BASE) ///< DSI_GPIO[6]
|
||||||
|
#define DSI_GPIO_7 (7 + DSI_GPIO_SHIFT_BASE) ///< DSI_GPIO[7]
|
||||||
|
#define DSI_GPIO_8 (8 + DSI_GPIO_SHIFT_BASE) ///< DSI_GPIO[8]
|
||||||
|
#define DSI_GPIO_9 (9 + DSI_GPIO_SHIFT_BASE) ///< DSI_GPIO[9]
|
||||||
|
#define DSI_GPIO_10 (10+ DSI_GPIO_SHIFT_BASE) ///< DSI_GPIO[10]
|
||||||
|
|
||||||
//@}
|
//@}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -11,6 +11,7 @@ CARDV_DIR = $(APP_DIR)/source/cardv
|
||||||
CARDV_SOURCE_DIR = $(CARDV_DIR)/SrcCode
|
CARDV_SOURCE_DIR = $(CARDV_DIR)/SrcCode
|
||||||
CARDV_SOURCE_UIINFO_DIR = $(CARDV_SOURCE_DIR)/UIWnd/LVGL_SPORTCAM/UIInfo
|
CARDV_SOURCE_UIINFO_DIR = $(CARDV_SOURCE_DIR)/UIWnd/LVGL_SPORTCAM/UIInfo
|
||||||
SIFAR_DIR = $(LIBRARY_DIR)/source/sifar/code
|
SIFAR_DIR = $(LIBRARY_DIR)/source/sifar/code
|
||||||
|
SIFAR_APP_DIR = $(APP_DIR)/source/sf_app/code/include
|
||||||
SIFAR_OUTPUT_DIR = $(LIBRARY_DIR)/source/sifar/output/
|
SIFAR_OUTPUT_DIR = $(LIBRARY_DIR)/source/sifar/output/
|
||||||
MEDIA_DIR = $(NVT_HDAL_DIR)/vendor/media
|
MEDIA_DIR = $(NVT_HDAL_DIR)/vendor/media
|
||||||
CARDV_SOURCE_LVGL_SPORTCAM_DIR = $(CARDV_SOURCE_DIR)/UIWnd/LVGL_SPORTCAM
|
CARDV_SOURCE_LVGL_SPORTCAM_DIR = $(CARDV_SOURCE_DIR)/UIWnd/LVGL_SPORTCAM
|
||||||
|
@ -32,8 +33,11 @@ EXTRA_INCLUDE += \
|
||||||
-I$(CARDV_SOURCE_UIINFO_DIR) \
|
-I$(CARDV_SOURCE_UIINFO_DIR) \
|
||||||
-I$(CARDV_SOURCE_DIR) \
|
-I$(CARDV_SOURCE_DIR) \
|
||||||
-I$(SIFAR_DIR)/include \
|
-I$(SIFAR_DIR)/include \
|
||||||
|
-I$(SIFAR_APP_DIR) \
|
||||||
-I$(INCLUDE_DIR) \
|
-I$(INCLUDE_DIR) \
|
||||||
-I$(KDRV_DIR)/include \
|
-I$(KDRV_DIR)/include \
|
||||||
|
-I$(KDRV_DIR)/include/plat \
|
||||||
|
-I$(KDRV_DIR)/include/comm \
|
||||||
-I$(KFLOW_DIR)/include \
|
-I$(KFLOW_DIR)/include \
|
||||||
-I$(MEDIA_DIR)/include \
|
-I$(MEDIA_DIR)/include \
|
||||||
-I$(CARDV_SOURCE_LVGL_SPORTCAM_DIR) \
|
-I$(CARDV_SOURCE_LVGL_SPORTCAM_DIR) \
|
||||||
|
@ -69,7 +73,12 @@ SRC = \
|
||||||
code/source/common/sf_common.c \
|
code/source/common/sf_common.c \
|
||||||
code/source/common/sf_led.c \
|
code/source/common/sf_led.c \
|
||||||
code/source/common/sf_battery.c \
|
code/source/common/sf_battery.c \
|
||||||
code/source/module/sf_tcp.c
|
code/source/module/sf_tcp.c \
|
||||||
|
$(APP_DIR)/source/sf_app/code/source/logMng/sf_log.c \
|
||||||
|
$(APP_DIR)/source/sf_app/code/source/qrcodeMng/sf_base64.c \
|
||||||
|
$(APP_DIR)/source/sf_app/code/source/paramMng/sf_param_common.c \
|
||||||
|
$(APP_DIR)/source/sf_app/code/source/commMng/sf_message_queue.c \
|
||||||
|
$(APP_DIR)/source/sf_app/code/source/commMng/sf_share_mem.c
|
||||||
|
|
||||||
# code/source/common/sf_message_queue.c \
|
# code/source/common/sf_message_queue.c \
|
||||||
# code/source/common/sf_share_mem.c \
|
# code/source/common/sf_share_mem.c \
|
||||||
|
|
|
@ -20,5 +20,7 @@ void sf_battery_thread_init(void);
|
||||||
UINT8 sf_get_night_led_flag(void);
|
UINT8 sf_get_night_led_flag(void);
|
||||||
void sf_set_night_led_flag(UINT8 flag);
|
void sf_set_night_led_flag(UINT8 flag);
|
||||||
UINT32 sf_battery_level_get(void);
|
UINT32 sf_battery_level_get(void);
|
||||||
|
void sf_view_osd_battery_draw(UINT8 bShow);
|
||||||
|
UINT8 sf_battery_value_get(UINT8 nightMode);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -65,6 +65,7 @@ BOOL sf_cmd_mcu_power_on_para_get(unsigned char argc, char **argv);
|
||||||
UINT32 sf_set_pir_sensitivity(UINT8 pirs);
|
UINT32 sf_set_pir_sensitivity(UINT8 pirs);
|
||||||
void sf_usb_mux_s(UINT32 cnt);
|
void sf_usb_mux_s(UINT32 cnt);
|
||||||
BOOL sf_cmd_usb_mux_s(unsigned char argc, char **argv);
|
BOOL sf_cmd_usb_mux_s(unsigned char argc, char **argv);
|
||||||
|
void sf_cardv_message_thread_init(void);
|
||||||
|
|
||||||
#define SF_SD_DISK "A:"
|
#define SF_SD_DISK "A:"
|
||||||
#define SF_SD_ROOT "/mnt/sd/"
|
#define SF_SD_ROOT "/mnt/sd/"
|
||||||
|
|
|
@ -17,6 +17,9 @@
|
||||||
//#include <sf_log.h>
|
//#include <sf_log.h>
|
||||||
//#include <sf_message_queue.h>
|
//#include <sf_message_queue.h>
|
||||||
//#include <sf_share_mem.h>
|
//#include <sf_share_mem.h>
|
||||||
|
#include <sf_param_enum.h>
|
||||||
|
#include <sf_message_queue.h>
|
||||||
|
#include <sf_commMng.h>
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -21,9 +21,26 @@
|
||||||
#ifndef __SF_LED_H__
|
#ifndef __SF_LED_H__
|
||||||
#define __SF_LED_H__
|
#define __SF_LED_H__
|
||||||
|
|
||||||
|
#include "UIInfo/UIInfo.h"
|
||||||
|
|
||||||
typedef enum LedId_e
|
typedef enum LedId_e
|
||||||
{
|
{
|
||||||
|
#if HW_S530
|
||||||
|
SF_LED_STATUS_R,
|
||||||
|
SF_LED_STATUS_G,
|
||||||
|
SF_LED_SD_G,
|
||||||
|
SF_LED_SD_R,
|
||||||
|
SF_LED_WIFI,
|
||||||
|
SF_LED_BAT1,
|
||||||
|
SF_LED_BAT2,
|
||||||
|
SF_LED_BAT3,
|
||||||
|
SF_LED_BAT4,
|
||||||
|
SF_LED_SIG1_R,
|
||||||
|
SF_LED_SIG1_G,
|
||||||
|
SF_LED_SIG2,
|
||||||
|
SF_LED_SIG3,
|
||||||
|
SF_LED_SIG4,
|
||||||
|
#endif
|
||||||
SF_LED_BUSY,
|
SF_LED_BUSY,
|
||||||
SF_LED_ALL,
|
SF_LED_ALL,
|
||||||
}LedId_t;
|
}LedId_t;
|
||||||
|
@ -47,21 +64,25 @@ typedef enum LedSysState_e
|
||||||
SF_LED_SYS_STATE_SD_NORMAL,/*6*/
|
SF_LED_SYS_STATE_SD_NORMAL,/*6*/
|
||||||
SF_LED_SYS_STATE_SD_ERROR,
|
SF_LED_SYS_STATE_SD_ERROR,
|
||||||
SF_LED_SYS_STATE_SD_FULL,
|
SF_LED_SYS_STATE_SD_FULL,
|
||||||
SF_LED_SYS_STATE_WIFI_DISCONNECT,/*9*/
|
SF_LED_SYS_STATE_SD_FORMAT_START,
|
||||||
|
SF_LED_SYS_STATE_SD_FORMAT_SUCCESS,
|
||||||
|
SF_LED_SYS_STATE_SD_FORMAT_FAIL,
|
||||||
|
SF_LED_SYS_STATE_SD_FORMAT_EXIT,
|
||||||
|
SF_LED_SYS_STATE_WIFI_DISCONNECT,/*13*/
|
||||||
SF_LED_SYS_STATE_WIFI_CONNECTED,
|
SF_LED_SYS_STATE_WIFI_CONNECTED,
|
||||||
SF_LED_SYS_STATE_BAT_0,/*11*/
|
SF_LED_SYS_STATE_BAT_0,/*15*/
|
||||||
SF_LED_SYS_STATE_BAT_1,
|
SF_LED_SYS_STATE_BAT_1,
|
||||||
SF_LED_SYS_STATE_BAT_2,
|
SF_LED_SYS_STATE_BAT_2,
|
||||||
SF_LED_SYS_STATE_BAT_3,
|
SF_LED_SYS_STATE_BAT_3,
|
||||||
SF_LED_SYS_STATE_BAT_4,
|
SF_LED_SYS_STATE_BAT_4,
|
||||||
/*SF_LED_SYS_STATE_BAT_LOW,*/
|
/*SF_LED_SYS_STATE_BAT_LOW,*/
|
||||||
SF_LED_SYS_STATE_GPRS_NO_SIGNAL,/*16*/
|
SF_LED_SYS_STATE_GPRS_NO_SIGNAL,/*20*/
|
||||||
SF_LED_SYS_STATE_GPRS_SIGNAL_0,
|
SF_LED_SYS_STATE_GPRS_SIGNAL_0,
|
||||||
SF_LED_SYS_STATE_GPRS_SIGNAL_1,
|
SF_LED_SYS_STATE_GPRS_SIGNAL_1,
|
||||||
SF_LED_SYS_STATE_GPRS_SIGNAL_2,
|
SF_LED_SYS_STATE_GPRS_SIGNAL_2,
|
||||||
SF_LED_SYS_STATE_GPRS_SIGNAL_3,
|
SF_LED_SYS_STATE_GPRS_SIGNAL_3,
|
||||||
SF_LED_SYS_STATE_GPRS_SIGNAL_4,
|
SF_LED_SYS_STATE_GPRS_SIGNAL_4,
|
||||||
SF_LED_SYS_STATE_GPRS_SEARCH,/*22*/
|
SF_LED_SYS_STATE_GPRS_SEARCH,/*26*/
|
||||||
SF_LED_SYS_STATE_SIM_ERROR,
|
SF_LED_SYS_STATE_SIM_ERROR,
|
||||||
SF_LED_SYS_STATE_SERVER_FAIL,
|
SF_LED_SYS_STATE_SERVER_FAIL,
|
||||||
SF_LED_SYS_STATE_DEBUG_ON,
|
SF_LED_SYS_STATE_DEBUG_ON,
|
||||||
|
@ -71,7 +92,7 @@ typedef enum LedSysState_e
|
||||||
SF_LED_SYS_STATE_GOING_TO_PIR,
|
SF_LED_SYS_STATE_GOING_TO_PIR,
|
||||||
SF_LED_SYS_STATE_EXIT_GO_TO_PIR,
|
SF_LED_SYS_STATE_EXIT_GO_TO_PIR,
|
||||||
SF_LED_SYS_STATE_POWER_OFF,
|
SF_LED_SYS_STATE_POWER_OFF,
|
||||||
SF_LED_SYS_STATE_PIR_DETECT,
|
SF_LED_SYS_STATE_PIR_DETECT,/*36*/
|
||||||
SF_LED_SYS_STATE_PIR_NOT_DETECT,
|
SF_LED_SYS_STATE_PIR_NOT_DETECT,
|
||||||
}LedSysState_t;
|
}LedSysState_t;
|
||||||
|
|
||||||
|
|
|
@ -26,7 +26,7 @@
|
||||||
#define SUCCESS 0
|
#define SUCCESS 0
|
||||||
#define FAIL 1
|
#define FAIL 1
|
||||||
|
|
||||||
#define SF_MCU_NIGHT_MODE_LUMINANCE 380
|
#define SF_MCU_NIGHT_MODE_LUMINANCE 600
|
||||||
|
|
||||||
#define DIGITAL_PIR 1
|
#define DIGITAL_PIR 1
|
||||||
|
|
||||||
|
@ -420,6 +420,10 @@ void sf_set_sim_insert(UINT8 sim);
|
||||||
UINT8 sf_get_mcu_rtc_set_sys(void);
|
UINT8 sf_get_mcu_rtc_set_sys(void);
|
||||||
unsigned short sf_get_mcu_ver(void);
|
unsigned short sf_get_mcu_ver(void);
|
||||||
UINT16 sf_mcu_get_irshtter(void);
|
UINT16 sf_mcu_get_irshtter(void);
|
||||||
|
void sf_mcu_set_irshtter(UINT16 data);
|
||||||
|
UINT16 sf_get_irshtter(void);
|
||||||
|
void sf_set_power_on_mode(UINT8 data);
|
||||||
|
void sf_set_module_sleep_flag(UINT8 flag);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -237,6 +237,48 @@ UINT32 sf_battery_adc_value_get_once(void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if HW_S530
|
||||||
|
|
||||||
|
/*************************************************
|
||||||
|
Function: sf_battery_level_update
|
||||||
|
Description: Get battery Voltage with Level.
|
||||||
|
Input: N/A
|
||||||
|
Output: N/A
|
||||||
|
Return: N/A
|
||||||
|
Others: N/A
|
||||||
|
*************************************************/
|
||||||
|
void sf_battery_level_update(void)
|
||||||
|
{
|
||||||
|
UINT8 batteryVal = 0;
|
||||||
|
UINT8 batteryLevel = SF_BATT_LEVEL_0;
|
||||||
|
|
||||||
|
batteryVal = sf_battery_value_get(sf_get_night_led_flag());
|
||||||
|
|
||||||
|
if(batteryVal >= 70)
|
||||||
|
{
|
||||||
|
batteryLevel = SF_BATT_LEVEL_4;
|
||||||
|
}
|
||||||
|
else if(batteryVal >= 40)
|
||||||
|
{
|
||||||
|
batteryLevel = SF_BATT_LEVEL_3;
|
||||||
|
}
|
||||||
|
else if(batteryVal >= 20)
|
||||||
|
{
|
||||||
|
batteryLevel = SF_BATT_LEVEL_2;
|
||||||
|
}
|
||||||
|
else if(batteryVal >= 1)
|
||||||
|
{
|
||||||
|
batteryLevel = SF_BATT_LEVEL_1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
batteryLevel = SF_BATT_LEVEL_0;
|
||||||
|
}
|
||||||
|
sf_LatestBattLevel = batteryLevel;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#else
|
||||||
/*************************************************
|
/*************************************************
|
||||||
Function: sf_battery_level_update
|
Function: sf_battery_level_update
|
||||||
Description: Get battery Voltage with Level.
|
Description: Get battery Voltage with Level.
|
||||||
|
@ -250,7 +292,7 @@ void sf_battery_level_update(void)
|
||||||
UINT8 batteryVal = 0;
|
UINT8 batteryVal = 0;
|
||||||
UINT8 batteryLevel = SF_BATT_LEVEL_0;
|
UINT8 batteryLevel = SF_BATT_LEVEL_0;
|
||||||
|
|
||||||
if(IsNightLedOn)
|
if(sf_get_night_led_flag())
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -353,7 +395,7 @@ void sf_battery_level_update(void)
|
||||||
printf("battery levle=%d\n", sf_LatestBattLevel);
|
printf("battery levle=%d\n", sf_LatestBattLevel);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
/*************************************************
|
/*************************************************
|
||||||
Function: sf_check_low_battery
|
Function: sf_check_low_battery
|
||||||
Description: check is low battery in auto mode.
|
Description: check is low battery in auto mode.
|
||||||
|
@ -373,7 +415,7 @@ BOOL sf_check_low_battery(void)
|
||||||
|
|
||||||
sf_battery_level_update();
|
sf_battery_level_update();
|
||||||
|
|
||||||
if(IsNightLedOn)
|
if(sf_get_night_led_flag())
|
||||||
{
|
{
|
||||||
if(SysGetFlag(BatteryType) == SF_BATT_ALKALINE)
|
if(SysGetFlag(BatteryType) == SF_BATT_ALKALINE)
|
||||||
{
|
{
|
||||||
|
@ -658,6 +700,8 @@ void sf_battery_level_polling(void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sf_battery_level_update();
|
||||||
|
|
||||||
ret = sf_check_low_battery();
|
ret = sf_check_low_battery();
|
||||||
|
|
||||||
|
@ -668,16 +712,22 @@ void sf_battery_level_polling(void)
|
||||||
|
|
||||||
if(batTempLevel != sf_LatestBattLevel)
|
if(batTempLevel != sf_LatestBattLevel)
|
||||||
{
|
{
|
||||||
//sp5kHostMsgSend(APP_UI_MSG_TRANSFER_REFLUSH, 0, 0, 0);
|
|
||||||
batTempLevel = sf_LatestBattLevel;
|
batTempLevel = sf_LatestBattLevel;
|
||||||
|
#if HW_S530
|
||||||
|
sf_view_osd_battery_draw(TRUE);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
if(ret == TRUE)
|
if(ret == TRUE)
|
||||||
{
|
{
|
||||||
if(IsNightLedOn)
|
if(sf_get_night_led_flag())
|
||||||
{
|
{
|
||||||
//sf_ir_led_set(0, 0, 0);
|
sf_ir_led_set(0, 0, 0, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//the Module not need sleep.
|
||||||
|
//gModuleSleep = 0;
|
||||||
|
sf_set_module_sleep_flag(0);
|
||||||
|
|
||||||
if(battEmpty == 0)
|
if(battEmpty == 0)
|
||||||
{
|
{
|
||||||
|
@ -686,6 +736,22 @@ void sf_battery_level_polling(void)
|
||||||
//Ux_PostEvent(NVTEVT_SYSTEM_SHUTDOWN, 1, APP_POWER_OFF_BATT_EMPTY); //shutdown start
|
//Ux_PostEvent(NVTEVT_SYSTEM_SHUTDOWN, 1, APP_POWER_OFF_BATT_EMPTY); //shutdown start
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else if(sf_LatestBattLevel == SF_BATT_LEVEL_1)
|
||||||
|
{
|
||||||
|
if((sf_battery_value_get(sf_get_night_led_flag()) < 10) && (sf_led_get(SF_LED_BAT1) != SF_LED_STATE_SLOW_FLASHING))
|
||||||
|
{
|
||||||
|
printf("[%s:%d] SF_LED_BAT1 SF_LED_STATE_SLOW_FLASHING\n", __FUNCTION__, __LINE__);
|
||||||
|
sf_led_set(SF_LED_BAT1, SF_LED_STATE_SLOW_FLASHING);
|
||||||
|
}
|
||||||
|
else if((sf_battery_value_get(sf_get_night_led_flag()) == 10) && (sf_led_get(SF_LED_BAT1) != SF_LED_STATE_ON))
|
||||||
|
{
|
||||||
|
printf("[%s:%d] SF_LED_BAT1 SF_LED_STATE_SLOW_FLASHING\n", __FUNCTION__, __LINE__);
|
||||||
|
sf_led_set(SF_LED_BAT1, SF_LED_STATE_ON);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
}
|
||||||
}
|
}
|
||||||
THREAD_RETTYPE sf_battery_check_thread(void *arg)
|
THREAD_RETTYPE sf_battery_check_thread(void *arg)
|
||||||
{
|
{
|
||||||
|
@ -740,4 +806,291 @@ UINT32 sf_battery_level_get(void)
|
||||||
return (UINT32)sf_LatestBattLevel;
|
return (UINT32)sf_LatestBattLevel;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void sf_view_osd_battery_draw(UINT8 bShow)
|
||||||
|
{
|
||||||
|
printf("[%s:%d] s\n", __FUNCTION__, __LINE__);
|
||||||
|
#if HW_S530
|
||||||
|
if(!sf_get_mode_flag())
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(bShow)
|
||||||
|
{
|
||||||
|
switch(sf_battery_level_get())
|
||||||
|
{
|
||||||
|
case SF_BATT_LEVEL_0:
|
||||||
|
sf_sys_status_led_set(SF_LED_SYS_STATE_BAT_0);
|
||||||
|
break;
|
||||||
|
case SF_BATT_LEVEL_1:
|
||||||
|
sf_sys_status_led_set(SF_LED_SYS_STATE_BAT_1);
|
||||||
|
break;
|
||||||
|
case SF_BATT_LEVEL_2:
|
||||||
|
sf_sys_status_led_set(SF_LED_SYS_STATE_BAT_2);
|
||||||
|
break;
|
||||||
|
case SF_BATT_LEVEL_3:
|
||||||
|
sf_sys_status_led_set(SF_LED_SYS_STATE_BAT_3);
|
||||||
|
break;
|
||||||
|
case SF_BATT_LEVEL_4:
|
||||||
|
sf_sys_status_led_set(SF_LED_SYS_STATE_BAT_4);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
printf("[%s:%d] e\n", __FUNCTION__, __LINE__);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*************************************************
|
||||||
|
Function: sf_battery_value_get
|
||||||
|
Description: get battery value x%
|
||||||
|
Input: nightMode or no
|
||||||
|
Output: N/A
|
||||||
|
Return: battery value x%
|
||||||
|
Others: N/A
|
||||||
|
*************************************************/
|
||||||
|
UINT8 sf_battery_value_get(UINT8 nightMode)
|
||||||
|
{
|
||||||
|
UINT8 value = 0;
|
||||||
|
UINT8 batteryVal = 0;
|
||||||
|
|
||||||
|
if(IsPowerDcIn == 0)
|
||||||
|
{
|
||||||
|
//printf("BatMedian:%d\n", BatMedian);
|
||||||
|
if(LiPolymerVoltageVal)
|
||||||
|
{
|
||||||
|
batteryVal = LiPolymerVoltageVal;
|
||||||
|
|
||||||
|
if(batteryVal < 65)
|
||||||
|
{
|
||||||
|
if(nightMode && (batteryVal >= 43))
|
||||||
|
value = 1;
|
||||||
|
else
|
||||||
|
value = 0;
|
||||||
|
}
|
||||||
|
else if(batteryVal < 71)
|
||||||
|
{
|
||||||
|
value = 1;
|
||||||
|
}
|
||||||
|
else if(batteryVal < 72)
|
||||||
|
{
|
||||||
|
value = 10;
|
||||||
|
}
|
||||||
|
else if(batteryVal < 73)
|
||||||
|
{
|
||||||
|
value = 20;
|
||||||
|
}
|
||||||
|
else if(batteryVal < 74)
|
||||||
|
{
|
||||||
|
value = 30;
|
||||||
|
}
|
||||||
|
else if(batteryVal < 75)
|
||||||
|
{
|
||||||
|
value = 40;
|
||||||
|
}
|
||||||
|
else if(batteryVal < 76)
|
||||||
|
{
|
||||||
|
value = 50;
|
||||||
|
}
|
||||||
|
else if(batteryVal < 77)
|
||||||
|
{
|
||||||
|
value = 60;
|
||||||
|
}
|
||||||
|
else if(batteryVal < 78)
|
||||||
|
{
|
||||||
|
value = 70;
|
||||||
|
}
|
||||||
|
else if(batteryVal < 79)
|
||||||
|
{
|
||||||
|
value = 80;
|
||||||
|
}
|
||||||
|
else if(batteryVal < 81)
|
||||||
|
{
|
||||||
|
value = 90;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
value = 100;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
batteryVal = BatVoltageVal;
|
||||||
|
|
||||||
|
if(SysGetFlag(BatteryType) == SF_BATT_ALKALINE) //ALK
|
||||||
|
{
|
||||||
|
if(batteryVal < 62)
|
||||||
|
{
|
||||||
|
if(nightMode && (batteryVal >= 43))
|
||||||
|
value = 1;
|
||||||
|
else
|
||||||
|
value = 0;
|
||||||
|
}
|
||||||
|
else if(batteryVal < 65)
|
||||||
|
{
|
||||||
|
value = 1;
|
||||||
|
}
|
||||||
|
else if(batteryVal < 69)
|
||||||
|
{
|
||||||
|
value = 10;
|
||||||
|
}
|
||||||
|
else if(batteryVal < 71)
|
||||||
|
{
|
||||||
|
value = 20;
|
||||||
|
}
|
||||||
|
else if(batteryVal < 72)
|
||||||
|
{
|
||||||
|
value = 30;
|
||||||
|
}
|
||||||
|
else if(batteryVal < 73)
|
||||||
|
{
|
||||||
|
value = 40;
|
||||||
|
}
|
||||||
|
else if(batteryVal < 75)
|
||||||
|
{
|
||||||
|
value = 50;
|
||||||
|
}
|
||||||
|
else if(batteryVal < 76)
|
||||||
|
{
|
||||||
|
value = 60;
|
||||||
|
}
|
||||||
|
else if(batteryVal < 78)
|
||||||
|
{
|
||||||
|
value = 70;
|
||||||
|
}
|
||||||
|
else if(batteryVal < 80)
|
||||||
|
{
|
||||||
|
value = 80;
|
||||||
|
}
|
||||||
|
else if(batteryVal < 83)
|
||||||
|
{
|
||||||
|
value = 90;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
value = 100;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if(SysGetFlag(BatteryType) == SF_BATT_NI_MH) //NIH
|
||||||
|
{
|
||||||
|
if(batteryVal < 60)
|
||||||
|
{
|
||||||
|
if(nightMode && (batteryVal >= 43))
|
||||||
|
value = 1;
|
||||||
|
else
|
||||||
|
value = 0;
|
||||||
|
}
|
||||||
|
else if(batteryVal < 61)
|
||||||
|
{
|
||||||
|
value = 1;
|
||||||
|
}
|
||||||
|
else if(batteryVal < 62)
|
||||||
|
{
|
||||||
|
value = 10;
|
||||||
|
}
|
||||||
|
else if(batteryVal < 64)
|
||||||
|
{
|
||||||
|
value = 20;
|
||||||
|
}
|
||||||
|
else if(batteryVal < 65)
|
||||||
|
{
|
||||||
|
value = 30;
|
||||||
|
}
|
||||||
|
else if(batteryVal < 67)
|
||||||
|
{
|
||||||
|
value = 40;
|
||||||
|
}
|
||||||
|
else if(batteryVal < 68)
|
||||||
|
{
|
||||||
|
value = 50;
|
||||||
|
}
|
||||||
|
else if(batteryVal < 70)
|
||||||
|
{
|
||||||
|
value = 60;
|
||||||
|
}
|
||||||
|
else if(batteryVal < 71)
|
||||||
|
{
|
||||||
|
value = 70;
|
||||||
|
}
|
||||||
|
else if(batteryVal < 73)
|
||||||
|
{
|
||||||
|
value = 80;
|
||||||
|
}
|
||||||
|
else if(batteryVal < 75)
|
||||||
|
{
|
||||||
|
value = 90;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
value = 100;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if(batteryVal < 62)
|
||||||
|
{
|
||||||
|
if(nightMode && (batteryVal >= 43))
|
||||||
|
value = 1;
|
||||||
|
else
|
||||||
|
value = 0;
|
||||||
|
}
|
||||||
|
else if(batteryVal < 75)
|
||||||
|
{
|
||||||
|
value = 1;
|
||||||
|
}
|
||||||
|
else if(batteryVal < 80)
|
||||||
|
{
|
||||||
|
value = 10;
|
||||||
|
}
|
||||||
|
else if(batteryVal < 82)
|
||||||
|
{
|
||||||
|
value = 20;
|
||||||
|
}
|
||||||
|
else if(batteryVal < 83)
|
||||||
|
{
|
||||||
|
value = 30;
|
||||||
|
}
|
||||||
|
else if(batteryVal < 84)
|
||||||
|
{
|
||||||
|
value = 40;
|
||||||
|
}
|
||||||
|
else if(batteryVal < 86)
|
||||||
|
{
|
||||||
|
value = 50;
|
||||||
|
}
|
||||||
|
else if(batteryVal < 91)
|
||||||
|
{
|
||||||
|
value = 60;
|
||||||
|
}
|
||||||
|
else if(batteryVal < 92)
|
||||||
|
{
|
||||||
|
value = 70;
|
||||||
|
}
|
||||||
|
else if(batteryVal < 93)
|
||||||
|
{
|
||||||
|
value = 80;
|
||||||
|
}
|
||||||
|
else if(batteryVal < 94)
|
||||||
|
{
|
||||||
|
value = 90;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
value = 100;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
value = 100;
|
||||||
|
}
|
||||||
|
|
||||||
|
return value;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -29,6 +29,7 @@
|
||||||
#include <sys/ioctl.h>
|
#include <sys/ioctl.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
#include <pthread.h>
|
||||||
|
|
||||||
#include <kwrap/util.h>
|
#include <kwrap/util.h>
|
||||||
#include <sys/wait.h>
|
#include <sys/wait.h>
|
||||||
|
@ -53,6 +54,10 @@
|
||||||
#include "UIFlowPhoto/UIFlowPhotoFuncs.h"
|
#include "UIFlowPhoto/UIFlowPhotoFuncs.h"
|
||||||
#include "UIFlowMovie/UIFlowMovieFuncs.h"
|
#include "UIFlowMovie/UIFlowMovieFuncs.h"
|
||||||
|
|
||||||
|
#include <sf_message_queue.h>
|
||||||
|
#include <sf_param_enum.h>
|
||||||
|
#include <sf_keymng.h>
|
||||||
|
#include <sf_param_struct.h>
|
||||||
|
|
||||||
BOOL isGoing2PowerOff = FALSE;
|
BOOL isGoing2PowerOff = FALSE;
|
||||||
UINT16 AutoOfftime = 0;
|
UINT16 AutoOfftime = 0;
|
||||||
|
@ -1096,4 +1101,200 @@ BOOL sf_cmd_usb_mux_s(unsigned char argc, char **argv)
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*************************************************
|
||||||
|
Function: sf_signal_led_show
|
||||||
|
Description: signal led show
|
||||||
|
Input: signal level
|
||||||
|
Output: N/A
|
||||||
|
Return: N/A
|
||||||
|
Others: N/A
|
||||||
|
*************************************************/
|
||||||
|
void sf_signal_led_show(UINT8 signalLevel)
|
||||||
|
{
|
||||||
|
if(signalLevel == 0)
|
||||||
|
sf_sys_status_led_set(SF_LED_SYS_STATE_GPRS_SIGNAL_0);
|
||||||
|
else if (signalLevel == 1)
|
||||||
|
sf_sys_status_led_set(SF_LED_SYS_STATE_GPRS_SIGNAL_1);
|
||||||
|
else if (signalLevel == 2)
|
||||||
|
sf_sys_status_led_set(SF_LED_SYS_STATE_GPRS_SIGNAL_2);
|
||||||
|
else if (signalLevel == 3)
|
||||||
|
sf_sys_status_led_set(SF_LED_SYS_STATE_GPRS_SIGNAL_3);
|
||||||
|
else
|
||||||
|
sf_sys_status_led_set(SF_LED_SYS_STATE_GPRS_SIGNAL_4);
|
||||||
|
}
|
||||||
|
|
||||||
|
static SINT32 sf_cardv_proccess_cmd_mcu(SF_MESSAGE_BUF_S *pMessageBuf)
|
||||||
|
{
|
||||||
|
printf("[%s:%d] ID = %#x\n", __FUNCTION__, __LINE__,pMessageBuf->arg1);
|
||||||
|
//SF_MESSAGE_BUF_S stMessageBuf = {0};
|
||||||
|
|
||||||
|
switch(pMessageBuf->arg1)
|
||||||
|
{
|
||||||
|
case SF_MCU_CMD_POWERON:
|
||||||
|
sf_set_power_on_mode(pMessageBuf->arg2);
|
||||||
|
sf_mcu_set_irshtter(pMessageBuf->arg3);
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return SF_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
static SINT32 sf_cardv_proccess_cmd_key(SF_MESSAGE_BUF_S *pMessageBuf)
|
||||||
|
{
|
||||||
|
printf("[%s:%d] ID = %#x\n", __FUNCTION__, __LINE__,pMessageBuf->arg1);
|
||||||
|
//SF_MESSAGE_BUF_S stMessageBuf = {0};
|
||||||
|
|
||||||
|
switch(pMessageBuf->arg1)
|
||||||
|
{
|
||||||
|
case SF_EVENT_KEY_SHORT_CLICK:
|
||||||
|
if(SF_KEY_PIN_DATAREADY == pMessageBuf->arg2)
|
||||||
|
{
|
||||||
|
sf_mcu_dataready_ck(pMessageBuf->arg3);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return SF_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
static SINT32 app_proccess_cmd_para_update(SF_MESSAGE_BUF_S *pMessageBuf)
|
||||||
|
{
|
||||||
|
printf("[%s:%d] ID = %#x\n", __FUNCTION__, __LINE__,pMessageBuf->arg1);
|
||||||
|
|
||||||
|
switch(pMessageBuf->arg1)
|
||||||
|
{
|
||||||
|
case SF_PARA_CMD_UPDATE:
|
||||||
|
sf_share_mem_customer_update();
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return SF_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void sf_cardv_proccess_cmd_gprs(SF_MESSAGE_BUF_S *pMessageBuf)
|
||||||
|
{
|
||||||
|
UINT8 netSearchStep = pMessageBuf->arg1;
|
||||||
|
UINT8 cq_Signal = pMessageBuf->arg2;
|
||||||
|
UINT32 simCardInsert = ((pMessageBuf->arg3) >> 0) & 1;
|
||||||
|
UINT8 gGPRSNoRespone = ((pMessageBuf->arg3) >> 1) & 1;
|
||||||
|
UINT32 FtpOpenOk = ((pMessageBuf->arg3) >> 2) & 1;
|
||||||
|
|
||||||
|
if (sf_get_fw_update())
|
||||||
|
return;
|
||||||
|
|
||||||
|
if(SysGetFlag(GprsSwitch) == SF_ON)
|
||||||
|
{
|
||||||
|
|
||||||
|
printf("simCardInsert=%d gprs_search_process=%d cq_Signal=%d gGPRSNoRespone=%d ", simCardInsert, netSearchStep, cq_Signal, gGPRSNoRespone);
|
||||||
|
|
||||||
|
if(!simCardInsert)
|
||||||
|
{
|
||||||
|
sf_sys_status_led_set(SF_LED_SYS_STATE_SIM_ERROR);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if(netSearchStep == GPRS_SEARCH_STEP_IDLE)
|
||||||
|
{
|
||||||
|
sf_sys_status_led_set(SF_LED_SYS_STATE_GPRS_SEARCH);
|
||||||
|
}
|
||||||
|
/*else if(gprs_search_process == GPRS_SEARCH_STEP_INIT)
|
||||||
|
{
|
||||||
|
appOsdLib_TextIDDraw(0, 32, SP5K_GFX_ALIGN_TOP_LEFT, ID_STR_MODULE_INIT);
|
||||||
|
}*/
|
||||||
|
else if(netSearchStep == GPRS_SEARCH_STEP_SEARCH)
|
||||||
|
{
|
||||||
|
sf_sys_status_led_set(SF_LED_SYS_STATE_GPRS_SEARCH);
|
||||||
|
}
|
||||||
|
else if(netSearchStep == GPRS_SEARCH_STEP_SYNC_TIME)
|
||||||
|
{
|
||||||
|
//sf_signal_led_show(sf_signal_level_get(puiPara->NetFlagG, cq_Signal));
|
||||||
|
}
|
||||||
|
else if(netSearchStep == GPRS_SEARCH_STEP_GPS_LOCATE)
|
||||||
|
{
|
||||||
|
//sf_signal_led_show(sf_signal_level_get(puiPara->NetFlagG, cq_Signal));
|
||||||
|
}
|
||||||
|
/*else if(gprs_search_process == GPRS_SEARCH_STEP_INIT_FAILED)
|
||||||
|
{
|
||||||
|
appOsdLib_TextIDDraw(0, 32, SP5K_GFX_ALIGN_TOP_LEFT, ID_STR_MODULE_ERROR);
|
||||||
|
}*/
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if((cq_Signal == 0) && (gGPRSNoRespone == 0))
|
||||||
|
{
|
||||||
|
if(!sf_get_fw_update())
|
||||||
|
{
|
||||||
|
sf_sys_status_led_set(SF_LED_SYS_STATE_SIM_ERROR);
|
||||||
|
sf_sys_status_led_set(SF_LED_SYS_STATE_ERROR);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if(cq_Signal == 0)
|
||||||
|
{
|
||||||
|
sf_sys_status_led_set(SF_LED_SYS_STATE_GPRS_NO_SIGNAL);
|
||||||
|
}
|
||||||
|
else if(FtpOpenOk == FAIL)
|
||||||
|
{
|
||||||
|
sf_sys_status_led_set(SF_LED_SYS_STATE_SERVER_FAIL);
|
||||||
|
}
|
||||||
|
else //if(cq_Signal < 32)
|
||||||
|
{
|
||||||
|
sf_signal_led_show(sf_signal_level_get(SysGetFlag(NetGeneration), cq_Signal));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void* sf_cardv_message_thread(void *argv)
|
||||||
|
{
|
||||||
|
SINT32 ret = 0;
|
||||||
|
SF_MESSAGE_BUF_S stMessagebuf = {0};
|
||||||
|
while(1)
|
||||||
|
{
|
||||||
|
ret = sf_com_message_recv_from_cardv(&stMessagebuf);
|
||||||
|
if(ret !=SF_SUCCESS)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
printf("cmdId:%#x,paramBuf[%d]\n",stMessagebuf.cmdId,stMessagebuf.arg1);
|
||||||
|
switch(stMessagebuf.cmdId)
|
||||||
|
{
|
||||||
|
case CMD_MCU:
|
||||||
|
sf_cardv_proccess_cmd_mcu(&stMessagebuf);
|
||||||
|
break;
|
||||||
|
case CMD_KEY:
|
||||||
|
sf_cardv_proccess_cmd_key(&stMessagebuf);
|
||||||
|
break;
|
||||||
|
case CMD_PARA:
|
||||||
|
app_proccess_cmd_para_update(&stMessagebuf);
|
||||||
|
break;
|
||||||
|
case CMD_GPRS:
|
||||||
|
sf_cardv_proccess_cmd_gprs(&stMessagebuf);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void sf_cardv_message_thread_init(void)
|
||||||
|
{
|
||||||
|
signed int s32Ret = 0;
|
||||||
|
pthread_t cardv_tStartUpThread = 0;
|
||||||
|
s32Ret = pthread_create(&cardv_tStartUpThread, NULL, sf_cardv_message_thread, NULL);
|
||||||
|
if (0 != s32Ret)
|
||||||
|
{
|
||||||
|
printf("%s:%d thread create failed\n", __FUNCTION__, __LINE__);
|
||||||
|
}
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -48,18 +48,39 @@
|
||||||
static BOOL isGoToPir = FALSE;
|
static BOOL isGoToPir = FALSE;
|
||||||
|
|
||||||
static BOOL isUsbIn = FALSE;
|
static BOOL isUsbIn = FALSE;
|
||||||
|
#if HW_S530
|
||||||
|
|
||||||
|
static BOOL isRunningLedOn = FALSE;
|
||||||
|
static UINT8 FormatSdFlag = 0;
|
||||||
|
#endif
|
||||||
|
|
||||||
LedInfo_t LedInfo[SF_LED_ALL] = {
|
LedInfo_t LedInfo[SF_LED_ALL] = {
|
||||||
/* ledId, ledstate, times, gpioNum */
|
/* ledId, ledstate, times, gpioNum */
|
||||||
{SF_LED_BUSY, SF_LED_STATE_ON, 0, GPIO_GREEN_LED},
|
#if HW_S530
|
||||||
|
{SF_LED_STATUS_R, SF_LED_STATE_OFF, 0, GPIO_LED_STATUS_R},
|
||||||
|
{SF_LED_STATUS_G, SF_LED_STATE_OFF, 0, GPIO_LED_STATUS_G},
|
||||||
|
{SF_LED_SD_G, SF_LED_STATE_OFF, 0, GPIO_LED_SD_G},
|
||||||
|
{SF_LED_SD_R, SF_LED_STATE_OFF, 0, GPIO_LED_SD_R},
|
||||||
|
{SF_LED_WIFI, SF_LED_STATE_OFF, 0, GPIO_LED_WIFI_B},
|
||||||
|
{SF_LED_BAT1, SF_LED_STATE_OFF, 0, GPIO_LED_BAT_1},
|
||||||
|
{SF_LED_BAT2, SF_LED_STATE_OFF, 0, GPIO_LED_BAT_2},
|
||||||
|
{SF_LED_BAT3, SF_LED_STATE_OFF, 0, GPIO_LED_BAT_3},
|
||||||
|
{SF_LED_BAT4, SF_LED_STATE_OFF, 0, GPIO_LED_BAT_4},
|
||||||
|
{SF_LED_SIG1_R, SF_LED_STATE_OFF, 0, GPIO_LED_SIG_1_R},
|
||||||
|
{SF_LED_SIG1_G, SF_LED_STATE_OFF, 0, GPIO_LED_SIG_1_G},
|
||||||
|
{SF_LED_SIG2, SF_LED_STATE_OFF, 0, GPIO_LED_SIG_2},
|
||||||
|
{SF_LED_SIG3, SF_LED_STATE_OFF, 0, GPIO_LED_SIG_3},
|
||||||
|
{SF_LED_SIG4, SF_LED_STATE_OFF, 0, GPIO_LED_SIG_4},
|
||||||
|
#endif
|
||||||
|
{SF_LED_BUSY, SF_LED_STATE_OFF, 0, GPIO_GREEN_LED},
|
||||||
};
|
};
|
||||||
|
|
||||||
ID FLG_ID_SF_LED = 0;
|
//ID FLG_ID_SF_LED = 0;
|
||||||
|
|
||||||
// Flag
|
// Flag
|
||||||
#define FLG_SF_LED_IDLE FLGPTN_BIT(0)
|
//#define FLG_SF_LED_IDLE FLGPTN_BIT(0)
|
||||||
#define FLG_SF_LED FLGPTN_BIT(1)
|
//#define FLG_SF_LED FLGPTN_BIT(1)
|
||||||
#define FLG_SF_LED_ALL 0xFFFFFFFF
|
//#define FLG_SF_LED_ALL 0xFFFFFFFF
|
||||||
|
|
||||||
static void sf_led_on(LedId_t ledId)
|
static void sf_led_on(LedId_t ledId)
|
||||||
{
|
{
|
||||||
|
@ -75,6 +96,90 @@ static void sf_led_off(LedId_t ledId)
|
||||||
//printf("[%s:%d] gpioNum:%d ledId:%d\n", __FUNCTION__, __LINE__,LedInfo[ledId].gpioNum,ledId);
|
//printf("[%s:%d] gpioNum:%d ledId:%d\n", __FUNCTION__, __LINE__,LedInfo[ledId].gpioNum,ledId);
|
||||||
gpio_set_value(LedInfo[ledId].gpioNum, SF_LED_STATE_OFF);
|
gpio_set_value(LedInfo[ledId].gpioNum, SF_LED_STATE_OFF);
|
||||||
}
|
}
|
||||||
|
#if HW_S530
|
||||||
|
void sf_set_runningLed(BOOL status)
|
||||||
|
{
|
||||||
|
isRunningLedOn = status;
|
||||||
|
}
|
||||||
|
|
||||||
|
THREAD_RETTYPE sf_runningLed_thread(void *arg)
|
||||||
|
{
|
||||||
|
THREAD_ENTRY();
|
||||||
|
UINT8 run = 0;
|
||||||
|
UINT8 time = 0;
|
||||||
|
|
||||||
|
while(1)
|
||||||
|
{
|
||||||
|
if(isRunningLedOn)
|
||||||
|
{
|
||||||
|
time++;
|
||||||
|
|
||||||
|
if(time == 50)
|
||||||
|
{
|
||||||
|
time = 0;
|
||||||
|
|
||||||
|
switch(run)
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
sf_led_set(SF_LED_SIG1_R, SF_LED_STATE_OFF);
|
||||||
|
sf_led_set(SF_LED_SIG1_G, SF_LED_STATE_OFF);
|
||||||
|
sf_led_set(SF_LED_SIG2, SF_LED_STATE_OFF);
|
||||||
|
sf_led_set(SF_LED_SIG3, SF_LED_STATE_OFF);
|
||||||
|
sf_led_set(SF_LED_SIG4, SF_LED_STATE_OFF);
|
||||||
|
run++;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 1:
|
||||||
|
sf_led_set(SF_LED_SIG1_R, SF_LED_STATE_OFF);
|
||||||
|
sf_led_set(SF_LED_SIG1_G, SF_LED_STATE_ON);
|
||||||
|
sf_led_set(SF_LED_SIG2, SF_LED_STATE_OFF);
|
||||||
|
sf_led_set(SF_LED_SIG3, SF_LED_STATE_OFF);
|
||||||
|
sf_led_set(SF_LED_SIG4, SF_LED_STATE_OFF);
|
||||||
|
run++;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 2:
|
||||||
|
sf_led_set(SF_LED_SIG1_R, SF_LED_STATE_OFF);
|
||||||
|
sf_led_set(SF_LED_SIG1_G, SF_LED_STATE_ON);
|
||||||
|
sf_led_set(SF_LED_SIG2, SF_LED_STATE_ON);
|
||||||
|
sf_led_set(SF_LED_SIG3, SF_LED_STATE_OFF);
|
||||||
|
sf_led_set(SF_LED_SIG4, SF_LED_STATE_OFF);
|
||||||
|
run++;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 3:
|
||||||
|
sf_led_set(SF_LED_SIG1_R, SF_LED_STATE_OFF);
|
||||||
|
sf_led_set(SF_LED_SIG1_G, SF_LED_STATE_ON);
|
||||||
|
sf_led_set(SF_LED_SIG2, SF_LED_STATE_ON);
|
||||||
|
sf_led_set(SF_LED_SIG3, SF_LED_STATE_ON);
|
||||||
|
sf_led_set(SF_LED_SIG4, SF_LED_STATE_OFF);
|
||||||
|
run++;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 4:
|
||||||
|
sf_led_set(SF_LED_SIG1_R, SF_LED_STATE_OFF);
|
||||||
|
sf_led_set(SF_LED_SIG1_G, SF_LED_STATE_ON);
|
||||||
|
sf_led_set(SF_LED_SIG2, SF_LED_STATE_ON);
|
||||||
|
sf_led_set(SF_LED_SIG3, SF_LED_STATE_ON);
|
||||||
|
sf_led_set(SF_LED_SIG4, SF_LED_STATE_ON);
|
||||||
|
run = 0;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
run = 0;
|
||||||
|
time = 0;
|
||||||
|
}
|
||||||
|
vos_util_delay_ms(10);
|
||||||
|
}
|
||||||
|
|
||||||
|
printf("[%s:%d] e \n", __FUNCTION__, __LINE__);
|
||||||
|
THREAD_RETURN(0);
|
||||||
|
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
THREAD_RETTYPE sf_led_thread(void *arg)
|
THREAD_RETTYPE sf_led_thread(void *arg)
|
||||||
|
@ -82,18 +187,18 @@ THREAD_RETTYPE sf_led_thread(void *arg)
|
||||||
|
|
||||||
THREAD_ENTRY();
|
THREAD_ENTRY();
|
||||||
UINT8 i = 0;
|
UINT8 i = 0;
|
||||||
FLGPTN FlgPtn;
|
//FLGPTN FlgPtn;
|
||||||
printf("[%s:%d] s\n", __FUNCTION__, __LINE__);
|
printf("[%s:%d] s\n", __FUNCTION__, __LINE__);
|
||||||
while((!sf_is_usb_flag()) && (sf_get_power_off_flag() != 1))
|
while((!sf_is_usb_flag()) && (sf_get_power_off_flag() != 1))
|
||||||
{
|
{
|
||||||
if((!isGoToPir) && (!isUsbIn))
|
/*if((!isGoToPir) && (!isUsbIn))
|
||||||
{
|
{
|
||||||
vos_flag_set(FLG_ID_SF_LED, FLG_SF_LED_IDLE);
|
vos_flag_set(FLG_ID_SF_LED, FLG_SF_LED_IDLE);
|
||||||
//PROFILE_TASK_IDLE();
|
//PROFILE_TASK_IDLE();
|
||||||
vos_flag_wait(&FlgPtn, FLG_ID_SF_LED, FLG_SF_LED, TWF_ORW | TWF_CLR);
|
vos_flag_wait(&FlgPtn, FLG_ID_SF_LED, FLG_SF_LED, TWF_ORW | TWF_CLR);
|
||||||
//PROFILE_TASK_BUSY();
|
//PROFILE_TASK_BUSY();
|
||||||
vos_flag_clr(FLG_ID_SF_LED, FLG_SF_LED_IDLE);
|
vos_flag_clr(FLG_ID_SF_LED, FLG_SF_LED_IDLE);
|
||||||
}
|
}*/
|
||||||
|
|
||||||
for(i = 0; i < SF_LED_ALL; i++)
|
for(i = 0; i < SF_LED_ALL; i++)
|
||||||
{
|
{
|
||||||
|
@ -139,13 +244,49 @@ THREAD_RETTYPE sf_led_thread(void *arg)
|
||||||
else if(LedInfo[i].ledstate == SF_LED_STATE_ON)
|
else if(LedInfo[i].ledstate == SF_LED_STATE_ON)
|
||||||
{
|
{
|
||||||
sf_led_on(LedInfo[i].ledId);
|
sf_led_on(LedInfo[i].ledId);
|
||||||
}
|
}
|
||||||
|
#if HW_S530
|
||||||
|
else if(LedInfo[i].ledstate == SF_LED_STATE_SLOW_FLASHING)
|
||||||
|
{
|
||||||
|
if(LedInfo[i].times == 0)
|
||||||
|
{
|
||||||
|
sf_led_on(LedInfo[i].ledId);
|
||||||
|
}
|
||||||
|
else if(LedInfo[i].times == 50) //50*10ms
|
||||||
|
{
|
||||||
|
sf_led_off(LedInfo[i].ledId);
|
||||||
|
}
|
||||||
|
else if(LedInfo[i].times == 100) //100*10ms
|
||||||
|
{
|
||||||
|
sf_led_on(LedInfo[i].ledId);
|
||||||
|
LedInfo[i].times = 0;
|
||||||
|
}
|
||||||
|
LedInfo[i].times++;
|
||||||
|
}
|
||||||
|
else if(LedInfo[i].ledstate == SF_LED_STATE_FLASHING)
|
||||||
|
{
|
||||||
|
if(LedInfo[i].times == 0)
|
||||||
|
{
|
||||||
|
sf_led_on(LedInfo[i].ledId);
|
||||||
|
}
|
||||||
|
else if(LedInfo[i].times == 25) //25*10ms
|
||||||
|
{
|
||||||
|
sf_led_off(LedInfo[i].ledId);
|
||||||
|
}
|
||||||
|
else if(LedInfo[i].times == 50) //50*10ms
|
||||||
|
{
|
||||||
|
sf_led_on(LedInfo[i].ledId);
|
||||||
|
LedInfo[i].times = 0;
|
||||||
|
}
|
||||||
|
LedInfo[i].times++;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
vos_util_delay_ms(10);
|
vos_util_delay_ms(10);
|
||||||
}
|
}
|
||||||
|
|
||||||
vos_flag_destroy(FLG_ID_SF_LED);
|
/*vos_flag_destroy(FLG_ID_SF_LED);
|
||||||
FLG_ID_SF_LED = 0;
|
FLG_ID_SF_LED = 0;*/
|
||||||
printf("[%s:%d] e \n", __FUNCTION__, __LINE__);
|
printf("[%s:%d] e \n", __FUNCTION__, __LINE__);
|
||||||
THREAD_RETURN(0);
|
THREAD_RETURN(0);
|
||||||
}
|
}
|
||||||
|
@ -187,6 +328,7 @@ Ledstate_t sf_led_get(LedId_t ledId)
|
||||||
|
|
||||||
void sf_led_init(void)
|
void sf_led_init(void)
|
||||||
{
|
{
|
||||||
|
return;
|
||||||
UINT8 i = 0;
|
UINT8 i = 0;
|
||||||
static UINT8 dofirst = 1;
|
static UINT8 dofirst = 1;
|
||||||
printf("[%s:%d] s\n", __FUNCTION__, __LINE__);
|
printf("[%s:%d] s\n", __FUNCTION__, __LINE__);
|
||||||
|
@ -206,11 +348,16 @@ void sf_led_init(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
vos_flag_create(&FLG_ID_SF_LED, NULL, "FLG_ID_SF_LED");
|
//vos_flag_create(&FLG_ID_SF_LED, NULL, "FLG_ID_SF_LED");
|
||||||
/*thread creat*/
|
/*thread creat*/
|
||||||
s_handle_led = vos_task_create(sf_led_thread, NULL, "sf_led_thread", 25, 2048);
|
s_handle_led = vos_task_create(sf_led_thread, NULL, "sf_led_thread", 25, 2048);
|
||||||
vos_task_resume(s_handle_led);
|
vos_task_resume(s_handle_led);
|
||||||
printf("[%s:%d] e\n", __FUNCTION__, __LINE__);
|
#if HW_S530
|
||||||
|
/*thread creat*/
|
||||||
|
s_handle_led = vos_task_create(sf_runningLed_thread, NULL, "sf_runningLed_thread", 25, 2048);
|
||||||
|
vos_task_resume(s_handle_led);
|
||||||
|
#endif
|
||||||
|
printf("[%s:%d] e SF_LED_ALL:%d\n", __FUNCTION__, __LINE__,SF_LED_ALL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -218,10 +365,230 @@ void sf_led_init(void)
|
||||||
|
|
||||||
void sf_sys_status_led_set(LedSysState_t ledSysStateId)
|
void sf_sys_status_led_set(LedSysState_t ledSysStateId)
|
||||||
{
|
{
|
||||||
if((ledSysStateId != SF_LED_SYS_STATE_PIR_DETECT) && (ledSysStateId != SF_LED_SYS_STATE_PIR_NOT_DETECT))
|
SF_MESSAGE_BUF_S stMessageBuf = {0};
|
||||||
|
|
||||||
|
stMessageBuf.arg1 = ledSysStateId;
|
||||||
|
stMessageBuf.cmdId = CMD_LED;
|
||||||
|
sf_com_message_send_to_app(&stMessageBuf);
|
||||||
|
|
||||||
|
return;
|
||||||
|
//if((ledSysStateId != SF_LED_SYS_STATE_PIR_DETECT) && (ledSysStateId != SF_LED_SYS_STATE_PIR_NOT_DETECT))
|
||||||
printf("SYS LED SET %d\n", ledSysStateId);
|
printf("SYS LED SET %d\n", ledSysStateId);
|
||||||
switch(ledSysStateId)
|
switch(ledSysStateId)
|
||||||
{
|
{
|
||||||
|
#if HW_S530
|
||||||
|
case SF_LED_SYS_STATE_ERROR:
|
||||||
|
sf_led_set(SF_LED_STATUS_G, SF_LED_STATE_OFF);
|
||||||
|
sf_led_set(SF_LED_STATUS_R, SF_LED_STATE_FLASHING);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SF_LED_SYS_STATE_NORMAL:
|
||||||
|
sf_led_set(SF_LED_STATUS_G, SF_LED_STATE_ON);
|
||||||
|
sf_led_set(SF_LED_STATUS_R, SF_LED_STATE_OFF);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SF_LED_SYS_STATE_UPDATE:
|
||||||
|
sf_led_set(SF_LED_STATUS_G, SF_LED_STATE_FLASHING);
|
||||||
|
sf_led_set(SF_LED_STATUS_R, SF_LED_STATE_OFF);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SF_LED_SYS_STATE_SENDING:
|
||||||
|
sf_led_set(SF_LED_STATUS_G, SF_LED_STATE_SLOW_FLASHING);
|
||||||
|
sf_led_set(SF_LED_STATUS_R, SF_LED_STATE_OFF);
|
||||||
|
break;
|
||||||
|
case SF_LED_SYS_STATE_SEND_FAIL:
|
||||||
|
sf_led_set(SF_LED_STATUS_G, SF_LED_STATE_OFF);
|
||||||
|
sf_led_set(SF_LED_STATUS_R, SF_LED_STATE_ON);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SF_LED_SYS_STATE_SEND_SUCCESS:
|
||||||
|
sf_led_set(SF_LED_STATUS_G, SF_LED_STATE_ON);
|
||||||
|
sf_led_set(SF_LED_STATUS_R, SF_LED_STATE_OFF);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SF_LED_SYS_STATE_SD_NORMAL:
|
||||||
|
sf_led_set(SF_LED_SD_G, SF_LED_STATE_ON);
|
||||||
|
sf_led_set(SF_LED_SD_R, SF_LED_STATE_OFF);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SF_LED_SYS_STATE_SD_ERROR:
|
||||||
|
sf_led_set(SF_LED_SD_G, SF_LED_STATE_OFF);
|
||||||
|
sf_led_set(SF_LED_SD_R, SF_LED_STATE_ON);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SF_LED_SYS_STATE_SD_FULL:
|
||||||
|
sf_led_set(SF_LED_SD_G, SF_LED_STATE_ON);
|
||||||
|
sf_led_set(SF_LED_SD_R, SF_LED_STATE_ON);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SF_LED_SYS_STATE_SD_FORMAT_START:
|
||||||
|
FormatSdFlag = 1;
|
||||||
|
sf_led_set(SF_LED_BUSY, SF_LED_STATE_OFF);
|
||||||
|
sf_set_runningLed(0);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SF_LED_SYS_STATE_SD_FORMAT_SUCCESS:
|
||||||
|
FormatSdFlag = 2;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SF_LED_SYS_STATE_SD_FORMAT_FAIL:
|
||||||
|
FormatSdFlag = 3;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SF_LED_SYS_STATE_SD_FORMAT_EXIT:
|
||||||
|
FormatSdFlag = 0;
|
||||||
|
sf_led_set(SF_LED_BUSY, SF_LED_STATE_ON);
|
||||||
|
//sf_set_runningLed(0);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SF_LED_SYS_STATE_WIFI_DISCONNECT:
|
||||||
|
sf_led_set(SF_LED_WIFI, SF_LED_STATE_SLOW_FLASHING);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SF_LED_SYS_STATE_WIFI_CONNECTED:
|
||||||
|
sf_led_set(SF_LED_WIFI, SF_LED_STATE_ON);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SF_LED_SYS_STATE_BAT_0:
|
||||||
|
sf_led_set(SF_LED_BAT1, SF_LED_STATE_FLASHING);
|
||||||
|
sf_led_set(SF_LED_BAT2, SF_LED_STATE_OFF);
|
||||||
|
sf_led_set(SF_LED_BAT3, SF_LED_STATE_OFF);
|
||||||
|
sf_led_set(SF_LED_BAT4, SF_LED_STATE_OFF);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SF_LED_SYS_STATE_BAT_1:
|
||||||
|
sf_led_set(SF_LED_BAT1, SF_LED_STATE_ON);
|
||||||
|
sf_led_set(SF_LED_BAT2, SF_LED_STATE_OFF);
|
||||||
|
sf_led_set(SF_LED_BAT3, SF_LED_STATE_OFF);
|
||||||
|
sf_led_set(SF_LED_BAT4, SF_LED_STATE_OFF);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SF_LED_SYS_STATE_BAT_2:
|
||||||
|
sf_led_set(SF_LED_BAT1, SF_LED_STATE_ON);
|
||||||
|
sf_led_set(SF_LED_BAT2, SF_LED_STATE_ON);
|
||||||
|
sf_led_set(SF_LED_BAT3, SF_LED_STATE_OFF);
|
||||||
|
sf_led_set(SF_LED_BAT4, SF_LED_STATE_OFF);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SF_LED_SYS_STATE_BAT_3:
|
||||||
|
sf_led_set(SF_LED_BAT1, SF_LED_STATE_ON);
|
||||||
|
sf_led_set(SF_LED_BAT2, SF_LED_STATE_ON);
|
||||||
|
sf_led_set(SF_LED_BAT3, SF_LED_STATE_ON);
|
||||||
|
sf_led_set(SF_LED_BAT4, SF_LED_STATE_OFF);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SF_LED_SYS_STATE_BAT_4:
|
||||||
|
sf_led_set(SF_LED_BAT1, SF_LED_STATE_ON);
|
||||||
|
sf_led_set(SF_LED_BAT2, SF_LED_STATE_ON);
|
||||||
|
sf_led_set(SF_LED_BAT3, SF_LED_STATE_ON);
|
||||||
|
sf_led_set(SF_LED_BAT4, SF_LED_STATE_ON);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SF_LED_SYS_STATE_GPRS_NO_SIGNAL:
|
||||||
|
sf_set_runningLed(0);
|
||||||
|
sf_led_set(SF_LED_SIG1_R, SF_LED_STATE_ON);
|
||||||
|
sf_led_set(SF_LED_SIG1_G, SF_LED_STATE_OFF);
|
||||||
|
sf_led_set(SF_LED_SIG2, SF_LED_STATE_OFF);
|
||||||
|
sf_led_set(SF_LED_SIG3, SF_LED_STATE_OFF);
|
||||||
|
sf_led_set(SF_LED_SIG4, SF_LED_STATE_OFF);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SF_LED_SYS_STATE_GPRS_SIGNAL_0:
|
||||||
|
sf_set_runningLed(0);
|
||||||
|
sf_led_set(SF_LED_SIG1_R, SF_LED_STATE_OFF);
|
||||||
|
sf_led_set(SF_LED_SIG1_G, SF_LED_STATE_OFF);
|
||||||
|
sf_led_set(SF_LED_SIG2, SF_LED_STATE_OFF);
|
||||||
|
sf_led_set(SF_LED_SIG3, SF_LED_STATE_OFF);
|
||||||
|
sf_led_set(SF_LED_SIG4, SF_LED_STATE_OFF);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SF_LED_SYS_STATE_GPRS_SIGNAL_1:
|
||||||
|
sf_set_runningLed(0);
|
||||||
|
sf_led_set(SF_LED_SIG1_R, SF_LED_STATE_OFF);
|
||||||
|
sf_led_set(SF_LED_SIG1_G, SF_LED_STATE_ON);
|
||||||
|
sf_led_set(SF_LED_SIG2, SF_LED_STATE_OFF);
|
||||||
|
sf_led_set(SF_LED_SIG3, SF_LED_STATE_OFF);
|
||||||
|
sf_led_set(SF_LED_SIG4, SF_LED_STATE_OFF);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SF_LED_SYS_STATE_GPRS_SIGNAL_2:
|
||||||
|
sf_set_runningLed(0);
|
||||||
|
sf_led_set(SF_LED_SIG1_R, SF_LED_STATE_OFF);
|
||||||
|
sf_led_set(SF_LED_SIG1_G, SF_LED_STATE_ON);
|
||||||
|
sf_led_set(SF_LED_SIG2, SF_LED_STATE_ON);
|
||||||
|
sf_led_set(SF_LED_SIG3, SF_LED_STATE_OFF);
|
||||||
|
sf_led_set(SF_LED_SIG4, SF_LED_STATE_OFF);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SF_LED_SYS_STATE_GPRS_SIGNAL_3:
|
||||||
|
sf_set_runningLed(0);
|
||||||
|
sf_led_set(SF_LED_SIG1_R, SF_LED_STATE_OFF);
|
||||||
|
sf_led_set(SF_LED_SIG1_G, SF_LED_STATE_ON);
|
||||||
|
sf_led_set(SF_LED_SIG2, SF_LED_STATE_ON);
|
||||||
|
sf_led_set(SF_LED_SIG3, SF_LED_STATE_ON);
|
||||||
|
sf_led_set(SF_LED_SIG4, SF_LED_STATE_OFF);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SF_LED_SYS_STATE_GPRS_SIGNAL_4:
|
||||||
|
sf_set_runningLed(0);
|
||||||
|
sf_led_set(SF_LED_SIG1_R, SF_LED_STATE_OFF);
|
||||||
|
sf_led_set(SF_LED_SIG1_G, SF_LED_STATE_ON);
|
||||||
|
sf_led_set(SF_LED_SIG2, SF_LED_STATE_ON);
|
||||||
|
sf_led_set(SF_LED_SIG3, SF_LED_STATE_ON);
|
||||||
|
sf_led_set(SF_LED_SIG4, SF_LED_STATE_ON);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SF_LED_SYS_STATE_GPRS_SEARCH:
|
||||||
|
sf_set_runningLed(1);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SF_LED_SYS_STATE_SIM_ERROR:
|
||||||
|
sf_set_runningLed(0);
|
||||||
|
sf_led_set(SF_LED_SIG1_R, SF_LED_STATE_FLASHING);
|
||||||
|
sf_led_set(SF_LED_SIG1_G, SF_LED_STATE_OFF);
|
||||||
|
sf_led_set(SF_LED_SIG2, SF_LED_STATE_OFF);
|
||||||
|
sf_led_set(SF_LED_SIG3, SF_LED_STATE_OFF);
|
||||||
|
sf_led_set(SF_LED_SIG4, SF_LED_STATE_OFF);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SF_LED_SYS_STATE_SERVER_FAIL:
|
||||||
|
sf_set_runningLed(0);
|
||||||
|
sf_led_set(SF_LED_SIG1_R, SF_LED_STATE_SLOW_FLASHING);
|
||||||
|
sf_led_set(SF_LED_SIG1_G, SF_LED_STATE_OFF);
|
||||||
|
sf_led_set(SF_LED_SIG2, SF_LED_STATE_OFF);
|
||||||
|
sf_led_set(SF_LED_SIG3, SF_LED_STATE_OFF);
|
||||||
|
sf_led_set(SF_LED_SIG4, SF_LED_STATE_OFF);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SF_LED_SYS_STATE_DEBUG_ON:
|
||||||
|
sf_led_set(SF_LED_SD_G, SF_LED_STATE_FLASHING);
|
||||||
|
sf_led_set(SF_LED_SD_R, SF_LED_STATE_OFF);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SF_LED_SYS_STATE_DEBUG_OFF:
|
||||||
|
sf_led_set(SF_LED_STATUS_G, SF_LED_STATE_ON);
|
||||||
|
sf_led_set(SF_LED_STATUS_R, SF_LED_STATE_ON);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SF_LED_SYS_STATE_RESET:
|
||||||
|
sf_set_runningLed(0);
|
||||||
|
sf_led_set(SF_LED_ALL, SF_LED_STATE_ON);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SF_LED_SYS_STATE_USB_IN:
|
||||||
|
sf_set_runningLed(0);
|
||||||
|
sf_led_set(SF_LED_ALL, SF_LED_STATE_OFF);
|
||||||
|
sf_led_set(SF_LED_BUSY, SF_LED_STATE_ON);
|
||||||
|
sf_led_set(SF_LED_STATUS_G, SF_LED_STATE_ON);
|
||||||
|
isUsbIn = TRUE;
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
|
//#if HW_S510
|
||||||
|
// case SF_LED_SYS_STATE_UPDATE:
|
||||||
|
// sf_led_set(SF_LED_BUSY, SF_LED_STATE_SLOW_FLASHING);
|
||||||
|
// break;
|
||||||
|
//#endif
|
||||||
|
|
||||||
case SF_LED_SYS_STATE_GOING_TO_PIR:
|
case SF_LED_SYS_STATE_GOING_TO_PIR:
|
||||||
isGoToPir = TRUE;
|
isGoToPir = TRUE;
|
||||||
sf_led_set(SF_LED_BUSY, SF_LED_STATE_OFF);
|
sf_led_set(SF_LED_BUSY, SF_LED_STATE_OFF);
|
||||||
|
@ -233,6 +600,9 @@ void sf_sys_status_led_set(LedSysState_t ledSysStateId)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SF_LED_SYS_STATE_POWER_OFF:
|
case SF_LED_SYS_STATE_POWER_OFF:
|
||||||
|
#if HW_S530
|
||||||
|
sf_set_runningLed(0);
|
||||||
|
#endif
|
||||||
sf_led_set(SF_LED_ALL, SF_LED_STATE_OFF);
|
sf_led_set(SF_LED_ALL, SF_LED_STATE_OFF);
|
||||||
isGoToPir = FALSE;
|
isGoToPir = FALSE;
|
||||||
break;
|
break;
|
||||||
|
@ -248,8 +618,8 @@ void sf_sys_status_led_set(LedSysState_t ledSysStateId)
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if(FLG_ID_SF_LED)
|
//if(FLG_ID_SF_LED)
|
||||||
vos_flag_set(FLG_ID_SF_LED, FLG_SF_LED);
|
// vos_flag_set(FLG_ID_SF_LED, FLG_SF_LED);
|
||||||
}
|
}
|
||||||
|
|
||||||
void sf_trigger_time_led_cb(UINT32 cnt)
|
void sf_trigger_time_led_cb(UINT32 cnt)
|
||||||
|
|
|
@ -74,6 +74,11 @@ UINT32 sf_check_card_full(void)
|
||||||
if(0 == SysGetFlag(SdLoopSwitch))
|
if(0 == SysGetFlag(SdLoopSwitch))
|
||||||
{
|
{
|
||||||
IsCardFull = TRUE;
|
IsCardFull = TRUE;
|
||||||
|
SF_MESSAGE_BUF_S stMessageBuf = {0};
|
||||||
|
|
||||||
|
stMessageBuf.arg1 = CMD_SD_FULL;
|
||||||
|
stMessageBuf.cmdId = CMD_SD;
|
||||||
|
sf_com_message_send_to_app(&stMessageBuf);
|
||||||
}
|
}
|
||||||
printf("%s:%d sd card is full diskFree=%d\r\n",__FUNCTION__,__LINE__,diskFree);
|
printf("%s:%d sd card is full diskFree=%d\r\n",__FUNCTION__,__LINE__,diskFree);
|
||||||
}
|
}
|
||||||
|
|
|
@ -803,7 +803,8 @@ void sf_mcu_dataready_get(void)
|
||||||
if(startMode == 0) //OFF
|
if(startMode == 0) //OFF
|
||||||
{
|
{
|
||||||
sf_set_power_off_flag(1);
|
sf_set_power_off_flag(1);
|
||||||
gModuleSleep = 0;
|
//gModuleSleep = 0;
|
||||||
|
sf_set_module_sleep_flag(0);
|
||||||
//LCD_BACKLIGHT_OFF;
|
//LCD_BACKLIGHT_OFF;
|
||||||
//profLogPrintf(0,"[sf_mcu_dataready_get],APP_POWER_OFF_NORMAL");
|
//profLogPrintf(0,"[sf_mcu_dataready_get],APP_POWER_OFF_NORMAL");
|
||||||
printf("[power off] %s(%d)\n", __FUNCTION__, __LINE__);
|
printf("[power off] %s(%d)\n", __FUNCTION__, __LINE__);
|
||||||
|
@ -825,6 +826,7 @@ void sf_mcu_dataready_get(void)
|
||||||
{
|
{
|
||||||
if((startMode == 0) || (startMode == 1)) //PIR MODE: ON->OFF/ ON->SETUP
|
if((startMode == 0) || (startMode == 1)) //PIR MODE: ON->OFF/ ON->SETUP
|
||||||
{
|
{
|
||||||
|
sf_set_module_sleep_flag(0);
|
||||||
gModuleSleep = 0; //power off 4G module
|
gModuleSleep = 0; //power off 4G module
|
||||||
sf_set_power_off_flag(1);
|
sf_set_power_off_flag(1);
|
||||||
printf("[power off] %s(%d)\n", __FUNCTION__, __LINE__);
|
printf("[power off] %s(%d)\n", __FUNCTION__, __LINE__);
|
||||||
|
@ -2017,8 +2019,16 @@ unsigned short sf_get_mcu_ver(void)
|
||||||
*************************************************/
|
*************************************************/
|
||||||
UINT16 sf_mcu_get_irshtter(void)
|
UINT16 sf_mcu_get_irshtter(void)
|
||||||
{
|
{
|
||||||
UINT8 dataTemp1 = 0, dataTemp2 = 0;
|
SF_MESSAGE_BUF_S stMessageBuf = {0};
|
||||||
|
stMessageBuf.arg1 = SF_MCU_CMD_POWERON;
|
||||||
|
stMessageBuf.cmdId = CMD_MCU;
|
||||||
|
sf_com_message_send_to_app(&stMessageBuf);
|
||||||
|
printf("IRSHTTER = %d\n", IRSHTTER);
|
||||||
|
|
||||||
|
return IRSHTTER;
|
||||||
|
/*
|
||||||
|
UINT8 dataTemp1 = 0, dataTemp2 = 0;
|
||||||
|
|
||||||
#if HUNTING_MCU_I2C == ENABLE
|
#if HUNTING_MCU_I2C == ENABLE
|
||||||
sf_mcu_read(LUMINANCE_L, &dataTemp1);
|
sf_mcu_read(LUMINANCE_L, &dataTemp1);
|
||||||
sf_mcu_read(LUMINANCE_H, &dataTemp2);
|
sf_mcu_read(LUMINANCE_H, &dataTemp2);
|
||||||
|
@ -2040,7 +2050,70 @@ UINT16 sf_mcu_get_irshtter(void)
|
||||||
|
|
||||||
printf("IRSHTTER = %d\n", IRSHTTER);
|
printf("IRSHTTER = %d\n", IRSHTTER);
|
||||||
|
|
||||||
|
return IRSHTTER;*/
|
||||||
|
}
|
||||||
|
|
||||||
|
/*************************************************
|
||||||
|
Function: sf_get_irshtter
|
||||||
|
Description: get IRSHTTER.
|
||||||
|
Input: N/A
|
||||||
|
Output: N/A
|
||||||
|
Return: IRSHTTER
|
||||||
|
Others: N/A
|
||||||
|
*************************************************/
|
||||||
|
UINT16 sf_get_irshtter(void)
|
||||||
|
{
|
||||||
return IRSHTTER;
|
return IRSHTTER;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*************************************************
|
||||||
|
Function: sf_mcu_set_irshtter
|
||||||
|
Description: get IRSHTTER.
|
||||||
|
Input: N/A
|
||||||
|
Output: N/A
|
||||||
|
Return: IRSHTTER
|
||||||
|
Others: N/A
|
||||||
|
*************************************************/
|
||||||
|
void sf_mcu_set_irshtter(UINT16 data)
|
||||||
|
{
|
||||||
|
IRSHTTER = data;
|
||||||
|
printf("IRSHTTER = %d\n", IRSHTTER);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*************************************************
|
||||||
|
Function: sf_set_power_on_mode
|
||||||
|
Description: set power start mode
|
||||||
|
Input: N/A
|
||||||
|
Output: N/A
|
||||||
|
Return: 0:ON mode 1:OFF mode
|
||||||
|
Others: N/A
|
||||||
|
*************************************************/
|
||||||
|
void sf_set_power_on_mode(UINT8 data)
|
||||||
|
{
|
||||||
|
static int ModeFlag = 1;
|
||||||
|
if(ModeFlag)
|
||||||
|
{
|
||||||
|
ModeFlag = 0;
|
||||||
|
PowerOnMode = data;
|
||||||
|
PowerOnMode &= 0x0f;
|
||||||
|
if(1 == PowerOnMode)
|
||||||
|
{
|
||||||
|
ConfigureModeFlag = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
printf("start mode = %d\n", PowerOnMode);
|
||||||
|
}
|
||||||
|
|
||||||
|
void sf_set_module_sleep_flag(UINT8 flag)
|
||||||
|
{
|
||||||
|
gModuleSleep = flag;
|
||||||
|
#if HUNTING_CAMERA_4G == ENABLE
|
||||||
|
SF_MESSAGE_BUF_S stMessageBuf = {0};
|
||||||
|
stMessageBuf.arg2 = (SINT32)gModuleSleep;
|
||||||
|
stMessageBuf.arg1 = SF_MCU_CMD_MODULE_SLEEP;
|
||||||
|
stMessageBuf.cmdId = CMD_MCU;
|
||||||
|
sf_com_message_send_to_app(&stMessageBuf);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
pwm2{pinmux = <0x000000>;};
|
pwm2{pinmux = <0x000000>;};
|
||||||
ccnt{pinmux = <0x0>;};
|
ccnt{pinmux = <0x0>;};
|
||||||
audio{pinmux = <0x0>;};
|
audio{pinmux = <0x0>;};
|
||||||
lcd{pinmux = <0x10000000>;};
|
lcd{pinmux = <0x0>;};
|
||||||
tv{pinmux = <0x0>;};
|
tv{pinmux = <0x0>;};
|
||||||
eth{pinmux = <0x0>;};
|
eth{pinmux = <0x0>;};
|
||||||
misc{pinmux = <0x0>;};
|
misc{pinmux = <0x0>;};
|
||||||
|
|
|
@ -156,6 +156,8 @@ UINT32 DrvGPIO_GetPhotoMovieModeFromMonitor(void)
|
||||||
switch(value)
|
switch(value)
|
||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
|
sf_mcu_reg_set(SF_MCU_POWEROFF,0);
|
||||||
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
g_uiBootMode = DX_HUNTING_MODE_OTHER;
|
g_uiBootMode = DX_HUNTING_MODE_OTHER;
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -1042,8 +1042,6 @@ void flow_preview_uninit_module(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
#if 1 //for pre set ae
|
#if 1 //for pre set ae
|
||||||
|
|
||||||
|
|
||||||
static UINT32 ae_adc_tbl[57][3] = {
|
static UINT32 ae_adc_tbl[57][3] = {
|
||||||
#if 1 //for S530 200K RSS photodie
|
#if 1 //for S530 200K RSS photodie
|
||||||
{980, 44, 1000},
|
{980, 44, 1000},
|
||||||
|
@ -1068,11 +1066,11 @@ static UINT32 ae_adc_tbl[57][3] = {
|
||||||
{813, 8333, 1280},
|
{813, 8333, 1280},
|
||||||
{809, 8333, 2380},
|
{809, 8333, 2380},
|
||||||
{799, 16666, 4300},
|
{799, 16666, 4300},
|
||||||
{787, 16666, 6390},
|
{787, 16666, 4300},//6390},
|
||||||
{735, 16666, 7990},
|
{735, 16666, 4300},// 7990},
|
||||||
{686, 16666, 8460},
|
{686, 16666, 6390},//8460},
|
||||||
{652, 16666, 9530},
|
{652, 16666, 6390},//9530},
|
||||||
{613, 16666, 10690},
|
{613, 16666, 7990},//10690},
|
||||||
{576, 16666, 2310},//night
|
{576, 16666, 2310},//night
|
||||||
{541, 16666, 2310},
|
{541, 16666, 2310},
|
||||||
{509, 16666, 2310},
|
{509, 16666, 2310},
|
||||||
|
@ -1082,19 +1080,19 @@ static UINT32 ae_adc_tbl[57][3] = {
|
||||||
{399, 16666, 2310},
|
{399, 16666, 2310},
|
||||||
{363, 16666, 2310},
|
{363, 16666, 2310},
|
||||||
{322, 16666, 2310},// 12190},
|
{322, 16666, 2310},// 12190},
|
||||||
{288, 16666, 2310},// 26600},
|
{288, 33333, 4300},// 26600},
|
||||||
{246, 16666, 2310}, //45770},
|
{246, 33333, 4300}, //45770},
|
||||||
{216, 16666, 2310},
|
{216, 33333, 4300},
|
||||||
{188, 16666, 1000},
|
{188, 33333, 4300},
|
||||||
{162, 16666, 1000},
|
{162, 33333, 4300},
|
||||||
{151, 16666, 1000},
|
{151, 33333, 5300},
|
||||||
{138, 16666, 1000},
|
{138, 33333, 5300},
|
||||||
{118, 16666, 1000},
|
{118, 33333, 5300},
|
||||||
{96, 16666, 1280},
|
{96, 33333, 5300},
|
||||||
{80, 16666, 2000},
|
{80, 33333, 5300},
|
||||||
{62, 16666, 2000},
|
{62, 33333, 5300},
|
||||||
{48, 20000, 2000},
|
{48, 33333, 5300},
|
||||||
{35, 20000, 2000},
|
{35, 33333, 2000},
|
||||||
{26, 33333, 1100},
|
{26, 33333, 1100},
|
||||||
{19, 33333, 1100},
|
{19, 33333, 1100},
|
||||||
{13, 33333, 1100},
|
{13, 33333, 1100},
|
||||||
|
@ -1165,12 +1163,12 @@ static UINT32 ae_adc_tbl[57][3] = {
|
||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
void ae_adc_get_exp_photo(UINT16 adc_value, UINT32 *exptime, UINT32 *isogain)
|
void ae_adc_get_exp_photo(UINT16 adc_value, UINT32 *exptime, UINT32 *isogain)
|
||||||
{
|
{
|
||||||
UINT32 idx0=0, idx1=0;
|
UINT32 idx0=0, idx1=0;
|
||||||
UINT32 exptime0, exptime1, isogain0, isogain1;
|
UINT32 exptime0, isogain0;
|
||||||
UINT32 adc_ev, ev0, ev1;
|
//UINT32 exptime1, isogain1;
|
||||||
|
//UINT32 adc_ev, ev0, ev1;
|
||||||
|
|
||||||
for(idx1=1; idx1<57; idx1++) {
|
for(idx1=1; idx1<57; idx1++) {
|
||||||
//if(adc_value > ae_adc_tbl[idx1][0])
|
//if(adc_value > ae_adc_tbl[idx1][0])
|
||||||
|
@ -1188,15 +1186,15 @@ void ae_adc_get_exp_photo(UINT16 adc_value, UINT32 *exptime, UINT32 *isogain)
|
||||||
|
|
||||||
exptime0 = ae_adc_tbl[idx0][1];
|
exptime0 = ae_adc_tbl[idx0][1];
|
||||||
isogain0 = (ae_adc_tbl[idx0][2]);
|
isogain0 = (ae_adc_tbl[idx0][2]);
|
||||||
exptime1 = ae_adc_tbl[idx1][1];
|
//exptime1 = ae_adc_tbl[idx1][1];
|
||||||
isogain1 = (ae_adc_tbl[idx1][2]);
|
//isogain1 = (ae_adc_tbl[idx1][2]);
|
||||||
ev0 = (exptime0 * isogain0);
|
///ev0 = (exptime0 * isogain0);
|
||||||
ev1 = (exptime1 * isogain1);
|
//ev1 = (exptime1 * isogain1);
|
||||||
|
|
||||||
adc_ev = ((ev1 - ev0) * (adc_value - ae_adc_tbl[idx1][0]))/(ae_adc_tbl[idx0][0] - ae_adc_tbl[idx1][0]) + ev0;
|
//adc_ev = ((ev1 - ev0) * (adc_value - ae_adc_tbl[idx1][0]))/(ae_adc_tbl[idx0][0] - ae_adc_tbl[idx1][0]) + ev0;
|
||||||
|
|
||||||
*exptime = exptime0;
|
*exptime = exptime0;
|
||||||
*isogain = (adc_ev / exptime0);
|
*isogain = isogain0;//(adc_ev / exptime0);
|
||||||
}
|
}
|
||||||
DBG_WRN("idx = %d, %d, adc = %d, fast open preset exp = %d, %d\r\n", idx0, idx1, adc_value, *exptime, *isogain);
|
DBG_WRN("idx = %d, %d, adc = %d, fast open preset exp = %d, %d\r\n", idx0, idx1, adc_value, *exptime, *isogain);
|
||||||
}
|
}
|
||||||
|
|
|
@ -98,7 +98,7 @@
|
||||||
#define POWERON_TRACE DISABLE //stop and wait for user enter cmd: "dsc boot"
|
#define POWERON_TRACE DISABLE //stop and wait for user enter cmd: "dsc boot"
|
||||||
#define POWERON_BOOT_REPORT ENABLE
|
#define POWERON_BOOT_REPORT ENABLE
|
||||||
#define POWERON_FAST_BOOT DISABLE
|
#define POWERON_FAST_BOOT DISABLE
|
||||||
#define POWERON_FAST_BOOT_MSG ENABLE//DISABLE // disable boot msg for fast boot, but hard to debug
|
#define POWERON_FAST_BOOT_MSG DISABLE // disable boot msg for fast boot, but hard to debug
|
||||||
#define POWERON_FAST_CPU2_BOOT DISABLE
|
#define POWERON_FAST_CPU2_BOOT DISABLE
|
||||||
#define POWERON_FAST_RECORD DISABLE
|
#define POWERON_FAST_RECORD DISABLE
|
||||||
#define POWERON_FAST_WIFI DISABLE //NOTE: need to enable POWERON_FAST_CPU2_BOOT too
|
#define POWERON_FAST_WIFI DISABLE //NOTE: need to enable POWERON_FAST_CPU2_BOOT too
|
||||||
|
@ -936,6 +936,7 @@
|
||||||
#define HUNTING_CAMERA_SYS_PARTITION_NAME sys
|
#define HUNTING_CAMERA_SYS_PARTITION_NAME sys
|
||||||
#define HUNTING_CAMERA_BOOT_LINUX ENABLE
|
#define HUNTING_CAMERA_BOOT_LINUX ENABLE
|
||||||
#define HUNTING_CAMERA_MCU ENABLE
|
#define HUNTING_CAMERA_MCU ENABLE
|
||||||
|
#define HUNTING_CAMERA_4G ENABLE//DISABLE
|
||||||
#define PHOTO_STAMP_ISP_STATUS ENABLE
|
#define PHOTO_STAMP_ISP_STATUS ENABLE
|
||||||
#define PHOTO_PREVIEW_SLICE_ENC_FUNC ENABLE
|
#define PHOTO_PREVIEW_SLICE_ENC_FUNC ENABLE
|
||||||
#define PHOTO_PREVIEW_SLICE_ENC_VER2_FUNC ENABLE
|
#define PHOTO_PREVIEW_SLICE_ENC_VER2_FUNC ENABLE
|
||||||
|
|
|
@ -390,9 +390,16 @@ static void insmod_sensor(void)
|
||||||
|
|
||||||
static void sie_vd_cb(const UINT32 vd_cnt)
|
static void sie_vd_cb(const UINT32 vd_cnt)
|
||||||
{
|
{
|
||||||
if(vd_cnt == (PHOTOFAST_CAP_FRAME_CNT-1)){
|
/*if(vd_cnt == 0){
|
||||||
vos_perf_list_mark("sie_vd", __LINE__, vd_cnt);
|
vos_perf_list_mark("sie_vd", __LINE__, vd_cnt);
|
||||||
}
|
}
|
||||||
|
else if(vd_cnt == 1){
|
||||||
|
vos_perf_list_mark("sie_vd", __LINE__, vd_cnt);
|
||||||
|
}
|
||||||
|
else if(vd_cnt == (PHOTOFAST_CAP_FRAME_CNT-1)){
|
||||||
|
vos_perf_list_mark("sie_vd", __LINE__, vd_cnt);
|
||||||
|
}*/
|
||||||
|
vos_perf_list_mark("sie_vd", __LINE__, vd_cnt);
|
||||||
//if(vd_cnt == 3)
|
//if(vd_cnt == 3)
|
||||||
// sf_trigger_time_led_cb(vd_cnt);
|
// sf_trigger_time_led_cb(vd_cnt);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1309,8 +1309,8 @@ THREAD_RETTYPE PhotoFast_FlowPreviewThread(void *arg)
|
||||||
HD_PATH_ID vprc_path = 0, vout_path = 0, vcap_path = 0;
|
HD_PATH_ID vprc_path = 0, vout_path = 0, vcap_path = 0;
|
||||||
UINT32 max_cnt = 0;
|
UINT32 max_cnt = 0;
|
||||||
BOOL start_cap = FALSE;
|
BOOL start_cap = FALSE;
|
||||||
//IQT_SHARPNESS_LV sharpness_lv = {0};
|
IQT_SHARPNESS_LV sharpness_lv = {0};
|
||||||
//IQT_NR_LV nr_lv = {0};
|
IQT_NR_LV nr_lv = {0};
|
||||||
AET_STATUS_INFO ae_status = {0};
|
AET_STATUS_INFO ae_status = {0};
|
||||||
|
|
||||||
flow_preview_get_path(&vcap_path, FLOW_PREIVEW_VCAP_PATH, 0);
|
flow_preview_get_path(&vcap_path, FLOW_PREIVEW_VCAP_PATH, 0);
|
||||||
|
@ -1363,14 +1363,14 @@ THREAD_RETTYPE PhotoFast_FlowPreviewThread(void *arg)
|
||||||
nvt_cmdsys_runcmd("ae set_speed 0 128 600 600 100 ");
|
nvt_cmdsys_runcmd("ae set_speed 0 128 600 600 100 ");
|
||||||
//nvt_cmdsys_runcmd("iq dbg 0 0 ");
|
//nvt_cmdsys_runcmd("iq dbg 0 0 ");
|
||||||
//nvt_cmdsys_runcmd("iq dbg 0 8 ");
|
//nvt_cmdsys_runcmd("iq dbg 0 8 ");
|
||||||
/*
|
|
||||||
nr_lv.id = 0;
|
nr_lv.id = 0;
|
||||||
nr_lv.lv = 200;
|
nr_lv.lv = 175;
|
||||||
vendor_isp_set_iq(IQT_ITEM_NR_LV, &nr_lv); //50~200
|
vendor_isp_set_iq(IQT_ITEM_NR_LV, &nr_lv); //50~200
|
||||||
sharpness_lv.id = 0;
|
sharpness_lv.id = 0;
|
||||||
sharpness_lv.lv = 50;
|
sharpness_lv.lv = 70;
|
||||||
vendor_isp_set_iq(IQT_ITEM_SHARPNESS_LV, &sharpness_lv);
|
vendor_isp_set_iq(IQT_ITEM_SHARPNESS_LV, &sharpness_lv);
|
||||||
*/
|
|
||||||
|
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -1439,7 +1439,19 @@ THREAD_RETTYPE PhotoFast_FlowPreviewThread(void *arg)
|
||||||
//if(g_bFrmCnt < PHOTOFAST_CAP_FRAME_CNT){
|
//if(g_bFrmCnt < PHOTOFAST_CAP_FRAME_CNT){
|
||||||
// vos_perf_list_mark("yuv", __LINE__, 0);
|
// vos_perf_list_mark("yuv", __LINE__, 0);
|
||||||
//}
|
//}
|
||||||
/* if(0){//++g_bFrmCnt >= 5){//PHOTOFAST_CAP_FRAME_CNT){
|
if(capturcnt==1){//++g_bFrmCnt >= 5){//PHOTOFAST_CAP_FRAME_CNT){
|
||||||
|
|
||||||
|
nr_lv.id = 0;
|
||||||
|
nr_lv.lv = 125;
|
||||||
|
vendor_isp_set_iq(IQT_ITEM_NR_LV, &nr_lv); //50~200
|
||||||
|
sharpness_lv.id = 0;
|
||||||
|
sharpness_lv.lv = 90;
|
||||||
|
vendor_isp_set_iq(IQT_ITEM_SHARPNESS_LV, &sharpness_lv);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if(capturcnt==2){//++g_bFrmCnt >= 5){//PHOTOFAST_CAP_FRAME_CNT){
|
||||||
|
|
||||||
nr_lv.id = 0;
|
nr_lv.id = 0;
|
||||||
nr_lv.lv = 100;
|
nr_lv.lv = 100;
|
||||||
|
@ -1448,9 +1460,9 @@ THREAD_RETTYPE PhotoFast_FlowPreviewThread(void *arg)
|
||||||
sharpness_lv.lv = 100;
|
sharpness_lv.lv = 100;
|
||||||
vendor_isp_set_iq(IQT_ITEM_SHARPNESS_LV, &sharpness_lv);
|
vendor_isp_set_iq(IQT_ITEM_SHARPNESS_LV, &sharpness_lv);
|
||||||
|
|
||||||
}*/
|
}
|
||||||
if (captureflag) capturcnt++;
|
if (captureflag) capturcnt++;
|
||||||
if (capturcnt>6) {
|
if (capturcnt>4) {
|
||||||
// DBG_ERR(">>>>>>>>>>>>capture adj:%d capcnt:%d frmcnt:%d\r\n",ae_status.status_info.state_adj,capturcnt,g_bFrmCnt);
|
// DBG_ERR(">>>>>>>>>>>>capture adj:%d capcnt:%d frmcnt:%d\r\n",ae_status.status_info.state_adj,capturcnt,g_bFrmCnt);
|
||||||
//if(++g_bFrmCnt >= 10){//PHOTOFAST_CAP_FRAME_CNT){
|
//if(++g_bFrmCnt >= 10){//PHOTOFAST_CAP_FRAME_CNT){
|
||||||
#if HUNTING_PHOTO_FAST_AE_60_FPS == ENABLE
|
#if HUNTING_PHOTO_FAST_AE_60_FPS == ENABLE
|
||||||
|
@ -1627,8 +1639,15 @@ static void PhotoFast_ShutDown(void)
|
||||||
vos_perf_list_dump();
|
vos_perf_list_dump();
|
||||||
PhotoFast_TriggerFrm_Dump();
|
PhotoFast_TriggerFrm_Dump();
|
||||||
#endif
|
#endif
|
||||||
#if HUNTING_CAMERA_MCU
|
#if HUNTING_CAMERA_MCU == ENABLE
|
||||||
sf_mcu_reg_set(SF_MCU_POWEROFF,0);
|
|
||||||
|
#if HUNTING_CAMERA_4G == ENABLE
|
||||||
|
fastboot_set_done(BOOT_FLOW_BOOT);
|
||||||
|
flow_wait_linux();
|
||||||
|
#else
|
||||||
|
sf_mcu_reg_set(SF_MCU_POWEROFF,0);
|
||||||
|
#endif
|
||||||
|
|
||||||
#else
|
#else
|
||||||
fastboot_set_done(BOOT_FLOW_BOOT);
|
fastboot_set_done(BOOT_FLOW_BOOT);
|
||||||
flow_wait_linux();
|
flow_wait_linux();
|
||||||
|
@ -1640,7 +1659,7 @@ static void PhotoFast_ShutDown(void)
|
||||||
PhotoFast_TriggerFrm_Dump();
|
PhotoFast_TriggerFrm_Dump();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if HUNTING_CAMERA_MCU
|
#if HUNTING_CAMERA_MCU == ENABLE
|
||||||
sf_mcu_reg_set(SF_MCU_POWEROFF,0);
|
sf_mcu_reg_set(SF_MCU_POWEROFF,0);
|
||||||
#endif
|
#endif
|
||||||
hwpower_set_power_key(POWER_ID_PSW1, 0xFF);
|
hwpower_set_power_key(POWER_ID_PSW1, 0xFF);
|
||||||
|
@ -1658,6 +1677,8 @@ void Set_NIGHTMODE(UINT32 id, UINT8 isSnapVideo)
|
||||||
AWBT_MANUAL awb_manual = {0};
|
AWBT_MANUAL awb_manual = {0};
|
||||||
HD_RESULT hd_ret;
|
HD_RESULT hd_ret;
|
||||||
|
|
||||||
|
//IQT_EDGE_PARAM edge = {0};
|
||||||
|
|
||||||
if(sf_is_night_mode(0) ==TRUE)
|
if(sf_is_night_mode(0) ==TRUE)
|
||||||
{
|
{
|
||||||
if ((hd_ret = vendor_isp_init()) != HD_OK) {
|
if ((hd_ret = vendor_isp_init()) != HD_OK) {
|
||||||
|
@ -1674,11 +1695,22 @@ void Set_NIGHTMODE(UINT32 id, UINT8 isSnapVideo)
|
||||||
awb_manual.manual.g_gain= 256;
|
awb_manual.manual.g_gain= 256;
|
||||||
awb_manual.manual.b_gain= 256;
|
awb_manual.manual.b_gain= 256;
|
||||||
vendor_isp_set_awb(AWBT_ITEM_MANUAL, &awb_manual);
|
vendor_isp_set_awb(AWBT_ITEM_MANUAL, &awb_manual);
|
||||||
|
|
||||||
|
|
||||||
night_mode.id = 0;
|
night_mode.id = 0;
|
||||||
night_mode.mode = 1;
|
night_mode.mode = 1;
|
||||||
vendor_isp_set_iq(IQT_ITEM_NIGHT_MODE, &night_mode);
|
vendor_isp_set_iq(IQT_ITEM_NIGHT_MODE, &night_mode);
|
||||||
|
/*
|
||||||
|
edge.id =0;
|
||||||
|
vendor_isp_get_iq(IQT_ITEM_EDGE_PARAM, &edge);
|
||||||
|
edge.edge.es_map_lut[8] = 64;
|
||||||
|
edge.edge.es_map_lut[9] = 72;
|
||||||
|
edge.edge.es_map_lut[10] = 80;
|
||||||
|
edge.edge.es_map_lut[12] = 84;
|
||||||
|
edge.edge.es_map_lut[13] = 84;
|
||||||
|
edge.edge.es_map_lut[14] = 84;
|
||||||
|
edge.edge.es_map_lut[15] = 84;
|
||||||
|
vendor_isp_set_iq(IQT_ITEM_EDGE_PARAM, &edge);
|
||||||
|
*/
|
||||||
if ((hd_ret = vendor_isp_uninit()) != HD_OK) {
|
if ((hd_ret = vendor_isp_uninit()) != HD_OK) {
|
||||||
DBG_ERR("vendor_isp_uninit() fail(%d)\r\n", hd_ret);
|
DBG_ERR("vendor_isp_uninit() fail(%d)\r\n", hd_ret);
|
||||||
}
|
}
|
||||||
|
|
|
@ -51,6 +51,86 @@ extern UINT32 Cap_cnt;
|
||||||
extern UINT32 ae_preset_exp;
|
extern UINT32 ae_preset_exp;
|
||||||
extern UINT32 ae_preset_iso;
|
extern UINT32 ae_preset_iso;
|
||||||
|
|
||||||
|
void PhotoStamp_get_isp_status_jpg(UINT32 id, char* Buf, UINT32 BufLen)
|
||||||
|
{
|
||||||
|
AET_STATUS_INFO ae_status = {0};
|
||||||
|
AWBT_STATUS awb_status = {0};
|
||||||
|
IQT_WDR_PARAM wdr = {0};
|
||||||
|
//IQT_3DNR_PARAM nr_3d = {0};
|
||||||
|
//IQT_DEFOG_PARAM defog = {0};
|
||||||
|
id = 0;
|
||||||
|
ae_status.id = id;
|
||||||
|
if(vendor_isp_init()== HD_ERR_NG)
|
||||||
|
DBG_ERR("init error\r\n");
|
||||||
|
vendor_isp_get_ae(AET_ITEM_STATUS, &ae_status);
|
||||||
|
awb_status.id = id;
|
||||||
|
vendor_isp_get_awb(AWBT_ITEM_STATUS, &awb_status);
|
||||||
|
wdr.id = id;
|
||||||
|
vendor_isp_get_iq(IQT_ITEM_WDR_PARAM, &wdr);
|
||||||
|
//nr_3d.id= id;
|
||||||
|
//vendor_isp_get_iq(IQT_ITEM_3DNR_PARAM, &nr_3d);
|
||||||
|
//defog.id = id;
|
||||||
|
//vendor_isp_get_iq(IQT_ITEM_DEFOG_PARAM, &defog);
|
||||||
|
struct tm Curr_gsDateTime ={0};
|
||||||
|
Curr_gsDateTime = hwclock_get_time(TIME_ID_CURRENT);
|
||||||
|
//sprintf(strStampDateTime, "%04d/%02d/%02d %02d:%02d:%02d", Curr_gsDateTime.tm_year, Curr_gsDateTime.tm_mon, Curr_gsDateTime.tm_mday, Curr_gsDateTime.tm_hour, Curr_gsDateTime.tm_min, Curr_gsDateTime.tm_sec);
|
||||||
|
|
||||||
|
#if 1
|
||||||
|
//snprintf(Buf, BufLen, "%d %d %3d %4d %4d %4d %4d %d %4d %4d %4d %4d %04d/%02d/%02d %02d:%02d:%02d %d%c",
|
||||||
|
//snprintf(Buf, BufLen, "6 %d %d %3d %4d %4d %d %d %d %4d %4d %4d %4d %4d%c",// %d%c",
|
||||||
|
/*snprintf(Buf, BufLen, "%d %d %3d %4d %4d %d %d %d %4d %4d %4d %4d %4d%c %04d/%02d/%02d %02d:%02d:%02d",
|
||||||
|
|
||||||
|
(INT)(ae_status.status_info.iso_gain[0]),
|
||||||
|
(INT)(ae_status.status_info.expotime[0]),
|
||||||
|
(INT)(ae_status.status_info.lv/100000),
|
||||||
|
(INT)(ae_status.status_info.lum),
|
||||||
|
(INT)(ae_status.status_info.expect_lum),
|
||||||
|
(INT)(ae_status.status_info.overexp_adj),
|
||||||
|
(INT)(ae_status.status_info.overexp_cnt),
|
||||||
|
(INT)(wdr.wdr.enable),
|
||||||
|
(INT)(awb_status.status.cur_r_gain),
|
||||||
|
(INT)(awb_status.status.cur_g_gain),
|
||||||
|
(INT)(awb_status.status.cur_b_gain),
|
||||||
|
(INT)(awb_status.status.cur_ct),
|
||||||
|
(INT)(IRSHTTER),
|
||||||
|
Curr_gsDateTime.tm_year,
|
||||||
|
Curr_gsDateTime.tm_mon,
|
||||||
|
Curr_gsDateTime.tm_mday,
|
||||||
|
Curr_gsDateTime.tm_hour,
|
||||||
|
Curr_gsDateTime.tm_min,
|
||||||
|
Curr_gsDateTime.tm_sec,
|
||||||
|
//(INT)(Init_Adc),
|
||||||
|
//(INT)(nr_3d._3dnr.enable),
|
||||||
|
'\0'
|
||||||
|
);*/
|
||||||
|
//DBG_DUMP("isp Buf=%s\r\n",Buf);
|
||||||
|
snprintf(Buf, BufLen, "%d %d %3d %d %d %3d %3d %3d %4d %d %d %d %d %02d/%02d %02d:%02d:%02d",
|
||||||
|
(INT)(ae_status.status_info.state_adj),
|
||||||
|
(INT)(ae_status.status_info.lum),
|
||||||
|
(INT)(ae_status.status_info.expect_lum),
|
||||||
|
(INT)(ae_status.status_info.iso_gain[0]),
|
||||||
|
(INT)(ae_status.status_info.expotime[0]),
|
||||||
|
(INT)(ae_status.status_info.lv/100000),
|
||||||
|
(INT)(awb_status.status.cur_r_gain),
|
||||||
|
(INT)(awb_status.status.cur_b_gain),
|
||||||
|
(INT)(awb_status.status.cur_ct),
|
||||||
|
IRSHTTER,
|
||||||
|
Cap_cnt,
|
||||||
|
ae_preset_exp,
|
||||||
|
ae_preset_iso,
|
||||||
|
//Curr_gsDateTime.tm_year,
|
||||||
|
Curr_gsDateTime.tm_mon,
|
||||||
|
Curr_gsDateTime.tm_mday,
|
||||||
|
Curr_gsDateTime.tm_hour,
|
||||||
|
Curr_gsDateTime.tm_min,
|
||||||
|
Curr_gsDateTime.tm_sec);
|
||||||
|
|
||||||
|
printf("%s:%d Buf=%s\r\n",__FUNCTION__,__LINE__,Buf);
|
||||||
|
#endif
|
||||||
|
vendor_isp_uninit();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
void PhotoStamp_get_isp_status(UINT32 id, char* Buf, UINT32 BufLen)
|
void PhotoStamp_get_isp_status(UINT32 id, char* Buf, UINT32 BufLen)
|
||||||
{
|
{
|
||||||
AET_STATUS_INFO ae_status = {0};
|
AET_STATUS_INFO ae_status = {0};
|
||||||
|
@ -104,7 +184,7 @@ void PhotoStamp_get_isp_status(UINT32 id, char* Buf, UINT32 BufLen)
|
||||||
'\0'
|
'\0'
|
||||||
);*/
|
);*/
|
||||||
//DBG_DUMP("isp Buf=%s\r\n",Buf);
|
//DBG_DUMP("isp Buf=%s\r\n",Buf);
|
||||||
snprintf(Buf, BufLen, "%d %d %3d %d %d %3d %3d %3d %4d %d %d %d %d %04d/%02d/%02d %02d:%02d:%02d",
|
snprintf(Buf, BufLen, "ae_adj:%d cur_lum:%d target_lum:%3d iso:%d exp:%d lv:%3d awbrg:%3d awbbg:%3d ct:%4d adc:%d aecnt:%d preae_exp:%d preae_iso:%d %04d/%02d/%02d %02d:%02d:%02d",
|
||||||
(INT)(ae_status.status_info.state_adj),
|
(INT)(ae_status.status_info.state_adj),
|
||||||
(INT)(ae_status.status_info.lum),
|
(INT)(ae_status.status_info.lum),
|
||||||
(INT)(ae_status.status_info.expect_lum),
|
(INT)(ae_status.status_info.expect_lum),
|
||||||
|
@ -177,7 +257,7 @@ void PhotoFastCapDateImprint_InitBuff(void)
|
||||||
|
|
||||||
#if PHOTO_STAMP_ISP_STATUS == ENABLE
|
#if PHOTO_STAMP_ISP_STATUS == ENABLE
|
||||||
memset(photo_aesteam, '\0', sizeof(photo_aesteam));
|
memset(photo_aesteam, '\0', sizeof(photo_aesteam));
|
||||||
PhotoStamp_get_isp_status(0,&photo_aesteam[0],64);
|
PhotoStamp_get_isp_status_jpg(0,&photo_aesteam[0],64);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
lv_user_font_conv_draw_cfg_init(&stamp_text.draw_cfg);
|
lv_user_font_conv_draw_cfg_init(&stamp_text.draw_cfg);
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
#define CFG_PHOTOFAST_SLICE_ENC_PRIMARY_BUF_HEIGHT 1080
|
#define CFG_PHOTOFAST_SLICE_ENC_PRIMARY_BUF_HEIGHT 1080
|
||||||
#define CFG_PHOTOFAST_SLICE_ENC_PRIMARY_BUF_SIZE VDO_YUV_BUFSIZE(CFG_PHOTOFAST_SLICE_ENC_PRIMARY_BUF_WIDTH, CFG_PHOTOFAST_SLICE_ENC_PRIMARY_BUF_HEIGHT, HD_VIDEO_PXLFMT_YUV420)
|
#define CFG_PHOTOFAST_SLICE_ENC_PRIMARY_BUF_SIZE VDO_YUV_BUFSIZE(CFG_PHOTOFAST_SLICE_ENC_PRIMARY_BUF_WIDTH, CFG_PHOTOFAST_SLICE_ENC_PRIMARY_BUF_HEIGHT, HD_VIDEO_PXLFMT_YUV420)
|
||||||
#define CFG_PHOTOFAST_SLICE_ENC_BS_BUF_RATIO 8 /* (yuv size / ratio) + header = bs buf size */
|
#define CFG_PHOTOFAST_SLICE_ENC_BS_BUF_RATIO 8 /* (yuv size / ratio) + header = bs buf size */
|
||||||
#define CFG_PHOTOFAST_SLICE_ENC_INIT_QUALITY_PRIMARY 85
|
#define CFG_PHOTOFAST_SLICE_ENC_INIT_QUALITY_PRIMARY 75
|
||||||
#define CFG_PHOTOFAST_SLICE_ENC_INIT_QUALITY_THUMBNAIL 70
|
#define CFG_PHOTOFAST_SLICE_ENC_INIT_QUALITY_THUMBNAIL 70
|
||||||
#define CFG_PHOTOFAST_SLICE_ENC_INIT_QUALITY_SCREENNAIL 70
|
#define CFG_PHOTOFAST_SLICE_ENC_INIT_QUALITY_SCREENNAIL 70
|
||||||
#define CFG_PHOTOFAST_SLICE_ENC_QUALITY_DOWN_STEP 3
|
#define CFG_PHOTOFAST_SLICE_ENC_QUALITY_DOWN_STEP 3
|
||||||
|
|
|
@ -6,6 +6,7 @@
|
||||||
#include <WiFiIpc/nvtwifi.h>
|
#include <WiFiIpc/nvtwifi.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
//============Sifar==============///Payton
|
||||||
#ifndef SF_DATA_UI_TYPE
|
#ifndef SF_DATA_UI_TYPE
|
||||||
#define SF_DATA_UI_TYPE
|
#define SF_DATA_UI_TYPE
|
||||||
|
|
||||||
|
@ -16,9 +17,9 @@ typedef struct sf_PARA_TIME_S
|
||||||
UINT16 Mon;
|
UINT16 Mon;
|
||||||
UINT16 Day;
|
UINT16 Day;
|
||||||
|
|
||||||
UINT8 Hour;
|
UINT16 Hour;
|
||||||
UINT8 Min;
|
UINT16 Min;
|
||||||
UINT8 Sec;
|
UINT16 Sec;
|
||||||
} SF_PARA_TIME_S;
|
} SF_PARA_TIME_S;
|
||||||
|
|
||||||
typedef struct sf_WORKTIME_S
|
typedef struct sf_WORKTIME_S
|
||||||
|
|
|
@ -39,7 +39,7 @@
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//#endif
|
//#endif
|
||||||
#define SF_MCU_NIGHT_MODE_LUMINANCE 80
|
#define SF_MCU_NIGHT_MODE_LUMINANCE 600
|
||||||
|
|
||||||
#define DIGITAL_PIR 1
|
#define DIGITAL_PIR 1
|
||||||
|
|
||||||
|
|
|
@ -681,7 +681,7 @@ unsigned char sf_commu_parse_mcu_data(unsigned char * src, unsigned int len)
|
||||||
//stMessageBuf.arg1 = SF_EVENT_KEY_SHORT_CLICK;
|
//stMessageBuf.arg1 = SF_EVENT_KEY_SHORT_CLICK;
|
||||||
//stMessageBuf.arg2 = SF_KEY_PIN_DATAREADY;
|
//stMessageBuf.arg2 = SF_KEY_PIN_DATAREADY;
|
||||||
//sf_com_message_send_to_app(&stMessageBuf);
|
//sf_com_message_send_to_app(&stMessageBuf);
|
||||||
ret = 0x05;
|
ret = 0x05;
|
||||||
Ux_PostEvent(NVTEVT_SYSTEM_SHUTDOWN, 1, APP_POWER_OFF_APO);
|
Ux_PostEvent(NVTEVT_SYSTEM_SHUTDOWN, 1, APP_POWER_OFF_APO);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
};
|
};
|
||||||
ae_curve_gen_movie {
|
ae_curve_gen_movie {
|
||||||
size = [10 01 00 00];
|
size = [10 01 00 00];
|
||||||
data = [f4 01 00 00 00 00 00 00 2c 00 00 00 64 00 00 00 00 00 00 00 00 00 00 00 1a 41 00 00 90 01 00 00 00 00 00 00 00 00 00 00 35 82 00 00 90 01 00 00 00 00 00 00 00 00 00 00 35 82 00 00 40 06 00 00 00 00 00 00 00 00 00 00 35 82 00 00 00 32 00 00 00 00 00 00 00 00 00 00 80 38 01 00 00 19 00 00 00 00 00 00 00 00 00 00 20 4e 00 00 c8 00 00 00 00 00 00 00 00 00 00 00 20 4e 00 00 c8 00 00 00 00 00 00 00 00 00 00 00 20 4e 00 00 c8 00 00 00 00 00 00 00 00 00 00 00 20 4e 00 00 c8 00 00 00 00 00 00 00 00 00 00 00 20 4e 00 00 c8 00 00 00 00 00 00 00 00 00 00 00 20 4e 00 00 c8 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 00 19 00 00 01 00 00 00 10 00 00 00 01 00 00 00 b8 0b 00 00 b8 0b 00 00 60 09 00 00 e2 04 00 00 d0 07 00 00 d0 07 00 00 dc 05 00 00 dc 05 00 00 b0 04 00 00 b0 04 00 00 00 00 00 00 f6 ec 00 00 00 00 00 00];
|
data = [f4 01 00 00 01 00 00 00 2c 00 00 00 64 00 00 00 00 00 00 00 00 00 00 00 1a 41 00 00 90 01 00 00 00 00 00 00 00 00 00 00 35 82 00 00 90 01 00 00 00 00 00 00 00 00 00 00 35 82 00 00 40 06 00 00 00 00 00 00 00 00 00 00 35 82 00 00 00 32 00 00 00 00 00 00 00 00 00 00 80 38 01 00 00 19 00 00 00 00 00 00 00 00 00 00 20 4e 00 00 c8 00 00 00 00 00 00 00 00 00 00 00 20 4e 00 00 c8 00 00 00 00 00 00 00 00 00 00 00 20 4e 00 00 c8 00 00 00 00 00 00 00 00 00 00 00 20 4e 00 00 c8 00 00 00 00 00 00 00 00 00 00 00 20 4e 00 00 c8 00 00 00 00 00 00 00 00 00 00 00 20 4e 00 00 c8 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 00 19 00 00 01 00 00 00 10 00 00 00 01 00 00 00 b8 0b 00 00 b8 0b 00 00 60 09 00 00 e2 04 00 00 d0 07 00 00 d0 07 00 00 dc 05 00 00 dc 05 00 00 b0 04 00 00 b0 04 00 00 00 00 00 00 f6 ec 00 00 00 00 00 00];
|
||||||
};
|
};
|
||||||
ae_meter_window {
|
ae_meter_window {
|
||||||
size = [00 01 00 00];
|
size = [00 01 00 00];
|
||||||
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue
Block a user