1.wifi修改;2.卡死问题修改;3.iq更新

This commit is contained in:
payton 2023-05-25 20:11:10 +08:00
parent 809e5c246c
commit 40758008c6
91 changed files with 13218 additions and 433 deletions

2
.gitignore vendored
View File

@ -11,3 +11,5 @@ modules.order
Module.symvers Module.symvers
/.vs /.vs
/.vscode /.vscode
*.cache
*compile_commands.json

File diff suppressed because it is too large Load Diff

View File

@ -1 +1 @@
/home/payton/na51089_linux_sdk/na51089_linux_sdk/BSP/linux-kernel/arch/arm/plat-novatek/include/plat-na51089 /home/payton/S530/BSP/linux-kernel/arch/arm/plat-novatek/include/plat-na51089

View File

@ -1 +1 @@
/home/payton/na51089_linux_sdk/na51089_linux_sdk/BSP/linux-kernel/arch/arm/plat-novatek/plat-na51089 /home/payton/S530/BSP/linux-kernel/arch/arm/plat-novatek/plat-na51089

View File

@ -1 +1 @@
/home/payton/na51089_linux_sdk/na51089_linux_sdk/code/hdal /home/payton/S530/code/hdal

View File

@ -1 +1 @@
/home/payton/na51089_linux_sdk/na51089_linux_sdk/code/vos /home/payton/S530/code/vos

View File

@ -0,0 +1,304 @@
#!/bin/sh
#
# History:
# 2013/06/24 - [Tao Wu] Create file
# 2016/06/22 - [Tao Wu] Update file
#
# Copyright (c) 2015 Ambarella International LP
#
# This file and its contents ("Software") are protected by intellectual
# property rights including, without limitation, U.S. and/or foreign
# copyrights. This Software is also the confidential and proprietary
# information of Ambarella International LP and its licensors. You may not use, reproduce,
# disclose, distribute, modify, or otherwise prepare derivative works of this
# Software or any portion thereof except pursuant to a signed license agreement
# or nondisclosure agreement with Ambarella International LP or its authorized affiliates.
# In the absence of such an agreement, you agree to promptly notify and return
# this Software to Ambarella International LP.
#
# This file includes sample code and is only for internal testing and evaluation. If you
# distribute this sample code (whether in source, object, or binary code form), it will be
# without any warranty or indemnity protection from Ambarella International LP or its affiliates.
#
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
# INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF NON-INFRINGEMENT,
# MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
# IN NO EVENT SHALL AMBARELLA INTERNATIONAL LP OR ITS AFFILIATES BE LIABLE FOR ANY DIRECT,
# INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
# LOSS OF USE, DATA, OR PROFITS; COMPUTER FAILURE OR MALFUNCTION; OR BUSINESS
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
#
HOSTAP_VERSION="1.1.2"
encryption=$1
ssid=$2
passwd=$3
channel=$4
DEVICE=$5
DIR_CONFIG=/tmp/config
############# HOSTAP CONFIG ###############
WOWLAN=1
HOSTAP_CTRL_INTERFACE=/var/run/hostapd
HOST_CONFIG=$DIR_CONFIG/hostapd.conf
DEFAULT_CHANNEL=1
HOST_MAX_STA=1
AP_PIN=12345670
DRIVER=nl80211
wpa_group_rekey=120
############# DHCP Server ###############
LOCAL_IP=192.168.1.1
LOCAL_NETMASK=255.255.255.0
DHCP_IP_START=192.168.1.20
DHCP_IP_END=192.168.1.100
############# Exit Error Number ###############
ERRNO_OK=0
ERRNO_PARAM=1
ERRNO_ENV=2
#ERRNO_SSID_NOT_FOUND=3
#ERRNO_PASSWORD_WRONG=4
#####################################
usages()
{
echo "Version: ${HOSTAP_VERSION}"
echo "This script used to Setup/Stop WiFi AP mode with hostapd"
echo "usage: $0 [open|wpa3|wpa2|wpa|wpawpa2|wps] <SSID> <Password> <Channel>"
echo ""
echo "Example:"
echo "Setup AP[Open]: $0 open <SSID> 0 <Channel>"
echo "Setup AP[Encrypt]: $0 [wpa3|wpa2|wpa|wpawpa2] <SSID> <Password> <Channel>"
echo "Setup AP[WPA2+WPS]:$0 wps <SSID> <Password> <Channel>"
echo " [Control AP] # hostapd_cli -i<interface> [wps_pbc | wps_pin any <PIN>] (PIN:${AP_PIN})"
echo "Stop AP mode: $0 stop"
echo ""
echo "NOTICE: Using interface AP[${DEVICE}] by default, change it if necessary."
exit $ERRNO_OK
}
# kill process
kill_apps()
{
#the max times to kill app
local KILL_NUM_MAX=10
for app in "$@"
do
local kill_num=0
while [ "$(pgrep "${app}")" != "" ]
do
if [ $kill_num -ge $KILL_NUM_MAX ]; then
echo "Please try execute \"killall ${app}\" by yourself"
exit $ERRNO_ENV
else
killall -9 "${app}"
sleep 1
fi
kill_num=$((kill_num + 1));
done
done
}
stop_wifi_app()
{
kill_apps udhcpc dnsmasq NetworkManager hostapd_cli hostapd
ifconfig ${DEVICE} down
}
################ AP Mode #####################
check_encrypt()
{
if [ "${encryption}" != "open" ]; then
len=${#passwd}
if [ "$len" -lt 8 ]; then
echo "Password length at least 8"
exit 1
fi
fi
}
check_channel()
{
if [ ${#channel} -gt 0 ]; then
if [ "${channel}" -gt 196 ] || [ "${channel}" -lt 1 ]; then
echo "Your Channel is wrong(1 ~ 196), using Channel ${DEFAULT_CHANNEL} by default."
channel=$DEFAULT_CHANNEL
fi
else
echo "No specified channel, using default channel ${DEFAULT_CHANNEL}."
channel=$DEFAULT_CHANNEL
fi
}
generate_hostapd_conf()
{
if [ -f ${HOST_CONFIG} ]; then
## Use the saved config, Do not need generate new config except failed to connect.
return ;
fi
mkdir -p $DIR_CONFIG
check_encrypt
check_channel
echo "AP: SSID[${ssid}], Password[${passwd}], Encryption[${encryption}], Channel[${channel}]."
echo "interface=${DEVICE}" > ${HOST_CONFIG}
echo "ctrl_interface=${HOSTAP_CTRL_INTERFACE}" >> ${HOST_CONFIG}
echo "driver=${DRIVER}" >> ${HOST_CONFIG}
echo "ctrl_interface_group=0" >> ${HOST_CONFIG}
echo "ignore_broadcast_ssid=0" >> ${HOST_CONFIG}
echo "auth_algs=1" >> ${HOST_CONFIG}
# echo "country_code=CN" >> ${HOST_CONFIG}
## This for WiFi suspend/resume
#if [ $WOWLAN -eq 1 ]; then
#echo "wowlan_triggers=any" >> ${HOST_CONFIG}
#fi
{
echo "beacon_int=100"
echo "dtim_period=1"
echo "preamble=0"
echo "ssid=${ssid}"
echo "max_num_sta=${HOST_MAX_STA}"
} >> ${HOST_CONFIG}
if [ ${channel} -gt 14 ]; then
echo "hw_mode=a" >> ${HOST_CONFIG}
fi
echo "channel=${channel}" >> ${HOST_CONFIG}
if [ "${encryption}" != "open" ]; then
local len_passwd=${#passwd}
local local_passwd_value=""
if [ "$len_passwd" -eq 64 ]; then
echo "passphrase length is 64, using hex type"
local_passwd_value="${passwd}"
elif [ "$len_passwd" -ge 8 ] && [ "$len_passwd" -le 63 ]; then
local_passwd_value="${passwd}"
else
echo "Invalid passphrase length ${len_passwd} (expected: 8..63 or 64 hex)"
rm -rf ${HOST_CONFIG}
exit $ERRNO_PARAM
fi
fi
case ${encryption} in
open)
;;
wpa3)
echo "wpa=2" >> ${HOST_CONFIG}
echo "wpa_key_mgmt=SAE" >> ${HOST_CONFIG}
echo "rsn_pairwise=CCMP" >> ${HOST_CONFIG}
echo "wpa_passphrase=${local_passwd_value}" >> ${HOST_CONFIG}
echo "ieee80211w=2" >> ${HOST_CONFIG}
# echo "sae_password=${local_passwd_value}" >> ${HOST_CONFIG}
;;
wpa2)
echo "wpa=2" >> ${HOST_CONFIG}
echo "wpa_key_mgmt=WPA-PSK" >> ${HOST_CONFIG}
echo "wpa_pairwise=CCMP" >> ${HOST_CONFIG}
echo "wpa_passphrase=${local_passwd_value}" >> ${HOST_CONFIG}
;;
wpa)
echo "wpa=1" >> ${HOST_CONFIG}
echo "wpa_key_mgmt=WPA-PSK" >> ${HOST_CONFIG}
echo "wpa_pairwise=TKIP" >> ${HOST_CONFIG}
echo "wpa_passphrase=${local_passwd_value}" >> ${HOST_CONFIG}
;;
wpawpa2)
echo "wpa=2" >> ${HOST_CONFIG}
echo "wpa_key_mgmt=WPA-PSK" >> ${HOST_CONFIG}
echo "wpa_pairwise=CCMP" >> ${HOST_CONFIG}
echo "wpa_passphrase=${local_passwd_value}" >> ${HOST_CONFIG}
;;
wps)
echo "wpa=2" >> ${HOST_CONFIG}
echo "wpa_key_mgmt=WPA-PSK" >> ${HOST_CONFIG}
echo "wpa_pairwise=CCMP" >> ${HOST_CONFIG}
echo "wpa_passphrase=${local_passwd_value}" >> ${HOST_CONFIG}
echo "wps_state=2" >> ${HOST_CONFIG}
echo "eap_server=1" >> ${HOST_CONFIG}
echo "ap_pin=${AP_PIN}" >> ${HOST_CONFIG}
echo "config_methods=label display push_button keypad ethernet" >> ${HOST_CONFIG}
echo "wps_pin_requests=/var/run/hostapd.pin-req" >> ${HOST_CONFIG}
;;
*)
echo "Not support encryption [$encryption]"
exit $ERRNO_PARAM
;;
esac
#echo "wpa_group_rekey=$wpa_group_rekey" >> ${HOST_CONFIG}
#echo "ignore_broadcast_ssid=0" >> ${HOST_CONFIG}
#echo "ap_setup_locked=0" >> ${HOST_CONFIG}
echo "hw_mode=g" >> ${HOST_CONFIG}
echo "ieee80211n=1">>${HOST_CONFIG}
}
start_dhcp_server()
{
## Start DHCP Server ##
#mkdir -p /var/lib/misc
#mkdir -p /etc/dnsmasq.d
#dnsmasq -i${DEVICE} --no-daemon --no-resolv --no-poll --dhcp-range=${DHCP_IP_START},${DHCP_IP_END},1h &
udhcpd /appfs/etc/udhcpd.conf &
}
hostapd_start_ap()
{
## Setup interface and set IP,gateway##
echo "Using Interface AP:[${DEVICE}]"
ifconfig ${DEVICE} ${LOCAL_IP} up
route add default netmask ${LOCAL_NETMASK} gw ${LOCAL_IP}
## Start Hostapd ##
CMD="hostapd ${HOST_CONFIG} -e /appfs/etc/bpi/entropy.bin -B"
echo "CMD=${CMD}"
$CMD
#start_dhcp_server
echo "HostAP Setup Finished."
}
clear_config()
{
rm -rf ${HOST_CONFIG}
}
################ Main ###################
## Show usage when no parameter
if [ $# -eq 0 ]; then
usages
fi
## Start WiFi
if [ $# -gt 1 ]; then
clear_config
fi
case ${encryption} in
"stop")
stop_wifi_app
;;
open|wpa3|wpa2|wpa|wpawpa2|wps)
generate_hostapd_conf
hostapd_start_ap
;;
*)
echo "Please Select Encryption [open|wpa3|wpa2|wpa|wpawpa2|wps] or stop"
exit $ERRNO_PARAM
;;
esac
########################################

View File

@ -2,13 +2,13 @@
modprobe 8189fs modprobe 8189fs
echo "Configuring loopback interface" echo "Configuring loopback interface 8189fs"
ifconfig lo 127.0.0.1 ifconfig lo 127.0.0.1
#FOR WiFi Sample #FOR WiFi Sample
ifconfig wlan0 up ifconfig wlan0 up
ifconfig wlan0 192.168.1.3 ifconfig wlan0 192.168.1.1
hostapd -B -dd /etc/wifiap_wpa2.conf #hostapd -B -dd /etc/wifiap_wpa2.conf
#DHCP Deamon #DHCP Deamon
udhcpd -fS /etc/udhcpdw.conf & #udhcpd -fS /etc/udhcpdw.conf &

View File

@ -5,7 +5,8 @@ NETWORK_SETUP_SCRIPT="/etc/init.d/net_init.sh"
do_wifi_init() do_wifi_init()
{ {
if [ "$NVT_SDIO_WIFI" == "NVT_SDIO_WIFI_RTK" ]; then if [ "$NVT_SDIO_WIFI" == "NVT_SDIO_WIFI_RTK" ]; then
/etc/init.d/BS_Net_wifiap8189ftv #/etc/init.d/BS_Net_wifiap8189ftv
echo "Configuring BS_Net_wifiap8189ftv sf stop"
elif [ "$NVT_SDIO_WIFI" == "NVT_SDIO_WIFI_BRCM" ]; then elif [ "$NVT_SDIO_WIFI" == "NVT_SDIO_WIFI_BRCM" ]; then
modprobe bcmdhd modprobe bcmdhd
# TBD # TBD

View File

@ -2,117 +2,89 @@
# Values shown are defaults # Values shown are defaults
# The start and end of the IP lease block # The start and end of the IP lease block
start 192.168.1.20 start 192.168.1.20
end 192.168.1.254 end 192.168.1.254
# The interface that udhcpd will use # The interface that udhcpd will use
interface wlan0 interface wlan0
#interface ap0
# The maximum number of leases (includes addresses reserved # The maximim number of leases (includes addresses reserved
# by OFFER's, DECLINE's, and ARP conflicts). Will be corrected # by OFFER's, DECLINE's, and ARP conficts). Will be corrected
# if it's bigger than IP lease block, but it ok to make it # if it's bigger than IP lease block, but it ok to make it
# smaller than lease block. # smaller than lease block.
#max_leases 254 #max_leases 254
# The time period at which udhcpd will write out a dhcpd.leases
# file. If this is 0, udhcpd will never automatically write a
# lease file. Specified in seconds.
#auto_time 7200
# The amount of time that an IP will be reserved (leased to nobody) # The amount of time that an IP will be reserved (leased to nobody)
# if a DHCP decline message is received (seconds) # if a DHCP decline message is received (seconds).
#decline_time 3600 #decline_time 3600
# The amount of time that an IP will be reserved # The amount of time that an IP will be reserved
# if an ARP conflict occurs (seconds) # if an ARP conflct occurs (seconds).
#conflict_time 3600 #conflict_time 3600
# How long an offered address is reserved (seconds) # How long an offered address is reserved (seconds).
#offer_time 60 #offer_time 60
# If client asks for lease below this value, it will be rounded up # If client asks for lease below this value, it will be rounded up
# to this value (seconds) # to this value (seconds).
#min_lease 60 #min_lease 60
# The location of the pid file
#pidfile /var/run/udhcpd.pid
# The location of the leases file # The location of the leases file
#lease_file /var/lib/misc/udhcpd.leases #lease_file /var/lib/misc/udhcpd.leases
# The time period at which udhcpd will write out leases file. # The location of the pid file
# If this is 0, udhcpd will never automatically write leases file. #pidfile /var/run/udhcpd.pid
# Specified in seconds.
#auto_time 7200
# Every time udhcpd writes a leases file, the below script will be called # Everytime udhcpd writes a leases file, the below script will be called.
#notify_file # default: no script #notify_file # default: no script
#notify_file dumpleases # useful for debugging #notify_file dumpleases # useful for debugging
# The following are bootp specific options # The following are bootp specific options, settable by udhcpd.
# next server to use in bootstrap #siaddr 192.168.0.22 #default: 0.0.0.0
#siaddr 192.168.1.22 # default: 0.0.0.0 (none) #sname zorak #default: none
# tftp server name #boot_file /var/nfs_root #default: none
#sname zorak # default: none
# tftp file to download (e.g. kernel image)
#boot_file /var/nfs_root # default: none
# Static leases map # The remainer of options are DHCP options and can be specifed with the
#static_lease 00:60:08:11:CE:4E 192.168.1.54
#static_lease 00:60:08:11:CE:3E 192.168.1.44
# The remainder of options are DHCP options and can be specified with the
# keyword 'opt' or 'option'. If an option can take multiple items, such # keyword 'opt' or 'option'. If an option can take multiple items, such
# as the dns option, they can be listed on the same line, or multiple # as the dns option, they can be listed on the same line, or multiple
# lines. # lines. The only option with a default is 'lease'.
# Examples: # Examples:
#opt dns 192.168.10.2 192.168.10.10 opt dns 192.168.1.1
#opt dns 8.8.8.8 4.2.2.2
option subnet 255.255.255.0 option subnet 255.255.255.0
#opt router 192.168.10.2 opt router 192.168.1.1
#opt router 192.168.1.2
#opt wins 192.168.10.10 #opt wins 192.168.10.10
#opt wins 0.0.0.0 #option dns 129.219.13.81 # appened to above DNS servers for a total of 3
#option dns 129.219.13.81 # appended to above DNS servers for a total of 3
option domain local option domain local
option lease 864000 # default: 10 days option lease 864000 # 10 days of seconds
# option msstaticroutes 10.0.0.0/8 10.127.0.1 # single static route
# option staticroutes 10.0.0.0/8 10.127.0.1, 10.11.12.0/24 10.11.12.1
# Arbitrary option in hex form:
# option 0x08 01020304 # option 8: "cookie server IP addr: 1.2.3.4"
# Currently supported options (for more info, see options.c): # Currently supported options (for more info, see options.c):
#opt lease NUM #opt subnet
#opt subnet IP #opt timezone
#opt broadcast IP #opt router
#opt router IP_LIST #opt timesrv
#opt ipttl NUM #opt namesrv
#opt mtu NUM #opt dns
#opt hostname STRING # client's hostname #opt logsrv
#opt domain STRING # client's domain suffix #opt cookiesrv
#opt search STRING_LIST # search domains #opt lprsrv
#opt nisdomain STRING #opt bootsize
#opt timezone NUM # (localtime - UTC_time) in seconds. signed #opt domain
#opt tftp STRING # tftp server name #opt swapsrv
#opt bootfile STRING # tftp file to download (e.g. kernel image) #opt rootpath
#opt bootsize NUM # size of that file #opt ipttl
#opt rootpath STRING # (NFS) path to mount as root fs #opt mtu
#opt wpad STRING #opt broadcast
#opt serverid IP # default: server's IP #opt wins
#opt message STRING # error message (udhcpd sends it on success too) #opt lease
#opt vlanid NUM # 802.1P VLAN ID #opt ntpsrv
#opt vlanpriority NUM # 802.1Q VLAN priority #opt tftp
# Options specifying server(s) #opt bootfile
#opt dns IP_LIST
#opt wins IP_LIST # Static leases map
#opt nissrv IP_LIST #static_lease 00:60:08:11:CE:4E 192.168.0.54
#opt ntpsrv IP_LIST #static_lease 00:60:08:11:CE:3E 192.168.0.44
#opt lprsrv IP_LIST
#opt swapsrv IP
# Options specifying routes
#opt routes IP_PAIR_LIST
#opt staticroutes STATIC_ROUTES # RFC 3442 classless static route option
#opt msstaticroutes STATIC_ROUTES # same, using MS option number
# Obsolete options, no longer supported
#opt logsrv IP_LIST # 704/UDP log server (not syslog!)
#opt namesrv IP_LIST # IEN 116 name server, obsolete (August 1979!!!)
#opt cookiesrv IP_LIST # RFC 865 "quote of the day" server, rarely (never?) used
#opt timesrv IP_LIST # RFC 868 time server, rarely (never?) used
# TODO: in development
#opt userclass STRING # RFC 3004. set of LASCII strings. "I am a printer" etc
#opt sipserv STRING LIST # RFC 3361. flag byte, then: 0: domain names, 1: IP addrs

View File

@ -1,58 +1,17 @@
interface=wlan0 interface=wlan0
driver=rtl871xdrv
ssid=680apwpa2 ssid=680apwpa2
channel=3 channel=6
ieee80211n=1 wpa=0
wpa_passphrase=1234567890
driver=nl80211
beacon_int=100
hw_mode=g hw_mode=g
wpa=2 ieee80211n=1
wpa_passphrase=12345678 wme_enabled=1
wpa_key_mgmt=WPA-PSK wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP wpa_pairwise=CCMP
rsn_pairwise=CCMP rsn_pairwise=CCMP
#bridge=br0 max_num_sta=1
wpa_group_rekey=86400
##### WPA/IEEE 802.11i configuration ##########################################
# Enable WPA. Setting this variable configures the AP to require WPA (either
# WPA-PSK or WPA-RADIUS/EAP based on other configuration). For WPA-PSK, either
# wpa_psk or wpa_passphrase must be set and wpa_key_mgmt must include WPA-PSK.
# For WPA-RADIUS/EAP, ieee8021x must be set (but without dynamic WEP keys),
# RADIUS authentication server must be configured, and WPA-EAP must be included
# in wpa_key_mgmt.
# This field is a bit field that can be used to enable WPA (IEEE 802.11i/D3.0)
# and/or WPA2 (full IEEE 802.11i/RSN):
# bit0 = WPA
# bit1 = IEEE 802.11i/RSN (WPA2) (dot11RSNAEnabled)
#wpa=1
# WPA pre-shared keys for WPA-PSK. This can be either entered as a 256-bit
# secret in hex format (64 hex digits), wpa_psk, or as an ASCII passphrase
# (8..63 characters) that will be converted to PSK. This conversion uses SSID
# so the PSK changes when ASCII passphrase is used and the SSID is changed.
# wpa_psk (dot11RSNAConfigPSKValue)
# wpa_passphrase (dot11RSNAConfigPSKPassPhrase)
#wpa_psk=0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef
#wpa_passphrase=secret passphrase
# Set of accepted key management algorithms (WPA-PSK, WPA-EAP, or both). The
# entries are separated with a space. WPA-PSK-SHA256 and WPA-EAP-SHA256 can be
# added to enable SHA256-based stronger algorithms.
# (dot11RSNAConfigAuthenticationSuitesTable)
#wpa_key_mgmt=WPA-PSK WPA-EAP
# Set of accepted cipher suites (encryption algorithms) for pairwise keys
# (unicast packets). This is a space separated list of algorithms:
# CCMP = AES in Counter mode with CBC-MAC [RFC 3610, IEEE 802.11i/D7.0]
# TKIP = Temporal Key Integrity Protocol [IEEE 802.11i/D7.0]
# Group cipher suite (encryption algorithm for broadcast and multicast frames)
# is automatically selected based on this configuration. If only CCMP is
# allowed as the pairwise cipher, group cipher will also be CCMP. Otherwise,
# TKIP will be used as the group cipher.
# (dot11RSNAConfigPairwiseCiphersTable)
# Pairwise cipher for WPA (v1) (default: TKIP)
#wpa_pairwise=TKIP CCMP
# Pairwise cipher for RSN/WPA2 (default: use wpa_pairwise value)
#rsn_pairwise=CCMP

View File

@ -56,6 +56,13 @@ if [ "$1" == "ap" ]; then
echo ieee80211n=1 >> /var/run/hostapd.conf echo ieee80211n=1 >> /var/run/hostapd.conf
echo driver=nl80211 >> /var/run/hostapd.conf echo driver=nl80211 >> /var/run/hostapd.conf
echo ctrl_interface=/var/run/hostapd >> /var/run/hostapd.conf echo ctrl_interface=/var/run/hostapd >> /var/run/hostapd.conf
echo ctrl_interface_group=0 >> /var/run/hostapd.conf
echo ignore_broadcast_ssid=0 >> /var/run/hostapd.conf
echo auth_algs=1 >> /var/run/hostapd.conf
echo beacon_int=100 >> /var/run/hostapd.conf
echo dtim_period=1 >> /var/run/hostapd.conf
echo preamble=0 >> /var/run/hostapd.conf
echo wpa_key_mgmt=WPA-PSK >> /var/run/hostapd.conf
#echo channel=6 >> /var/run/hostapd.conf #echo channel=6 >> /var/run/hostapd.conf
if [ "$2" == "0" ]; then if [ "$2" == "0" ]; then

View File

@ -7,6 +7,7 @@
"sf_common.h": "c", "sf_common.h": "c",
"sf_filemng.h": "c", "sf_filemng.h": "c",
"sf_systemmng.h": "c", "sf_systemmng.h": "c",
"sf_commu_mcu_reg.h": "c" "sf_commu_mcu_reg.h": "c",
"sf_battery.h": "c"
} }
} }

View File

@ -23,6 +23,7 @@ void GxStrg_Det(UINT32 DevID, DX_HANDLE StrgDXH)
{ {
UINT32 uiDxState = 0; UINT32 uiDxState = 0;
static UINT32 uiStrgCardPrevSts = DET_CARD_UNKNOWN; static UINT32 uiStrgCardPrevSts = DET_CARD_UNKNOWN;
static BOOL isFormat = FALSE;
if (FALSE == GxStrg_IsValidDevID(DevID)) { if (FALSE == GxStrg_IsValidDevID(DevID)) {
DBG_WRN("Invalid DevID(%d)\r\n", DevID); DBG_WRN("Invalid DevID(%d)\r\n", DevID);
@ -42,11 +43,16 @@ void GxStrg_Det(UINT32 DevID, DX_HANDLE StrgDXH)
// Debounce // Debounce
if ((uiStrgCardCurSts == uiStrgCardPrevSts) && if ((uiStrgCardCurSts == uiStrgCardPrevSts) &&
(uiStrgCardCurSts != uiStrgCardStatus)) { (uiStrgCardCurSts != uiStrgCardStatus)) {
isFormat = g_LnxStrgStatus[DevID].IsFormatted;
DBG_DUMP("isFormat = %lu\n", isFormat);
switch (uiStrgCardCurSts) { switch (uiStrgCardCurSts) {
case DET_CARD_INSERTED: case DET_CARD_INSERTED:
if (g_fpStrgCB) { if (g_fpStrgCB) {
(*g_fpStrgCB)(STRG_CB_INSERTED, DevID, 0); (*g_fpStrgCB)(STRG_CB_INSERTED, DevID, 0);
} }
break; break;
case DET_CARD_REMOVED: case DET_CARD_REMOVED:
if (g_fpStrgCB) { if (g_fpStrgCB) {
@ -63,6 +69,22 @@ void GxStrg_Det(UINT32 DevID, DX_HANDLE StrgDXH)
uiStrgCardStatus = uiStrgCardCurSts; uiStrgCardStatus = uiStrgCardCurSts;
} }
if ((uiStrgCardCurSts == uiStrgCardPrevSts) &&
(uiStrgCardCurSts == uiStrgCardStatus) &&
(uiStrgCardCurSts == DET_CARD_INSERTED) &&
(isFormat == FALSE) &&
(g_LnxStrgStatus[DevID].IsFormatted == TRUE)
) {
DBG_DUMP("STRG_CB_MOUNT_FINISH from GxStrg\n");
isFormat = g_LnxStrgStatus[DevID].IsFormatted;
if (g_fpStrgCB) {
(*g_fpStrgCB)(STRG_CB_MOUNT_FINISH, DevID, 0);
}
}
uiStrgCardPrevSts = uiStrgCardCurSts; uiStrgCardPrevSts = uiStrgCardCurSts;
} }

View File

@ -228,7 +228,7 @@ static INT32 GxStrgLnx_ChkStatus(UINT32 DevId)
//0. if the storage object is set, detect card insert //0. if the storage object is set, detect card insert
if (g_pCurStrgDXH[DevId]) { if (g_pCurStrgDXH[DevId]) {
if (GxStrgLnx_DetStrgCard(g_pCurStrgDXH[DevId])) { if (GxStrgLnx_DetStrgCard(g_pCurStrgDXH[DevId])) {
DBG_IND("Found %s is inserted\r\n", DevPath, pMountPath); DBG_IND("Found %s is inserted on %s\r\n", DevPath, pMountPath);
StrgCbVal = STRG_CB_INSERTED; StrgCbVal = STRG_CB_INSERTED;
bIsFormatted = FALSE; bIsFormatted = FALSE;
goto label_exit; goto label_exit;
@ -250,13 +250,18 @@ label_exit:
g_LnxStrgStatus[DevId].IsInserted = (StrgCbVal == STRG_CB_INSERTED); g_LnxStrgStatus[DevId].IsInserted = (StrgCbVal == STRG_CB_INSERTED);
g_LnxStrgStatus[DevId].IsReadOnly = bIsReadOnly; g_LnxStrgStatus[DevId].IsReadOnly = bIsReadOnly;
g_LnxStrgStatus[DevId].IsFormatted = bIsFormatted; g_LnxStrgStatus[DevId].IsFormatted = bIsFormatted;
DBG_DUMP("MntPath %s, IsInserted %d, IsReadOnly %d, bIsFormatted %d\r\n", DBG_IND("MntPath %s, IsInserted %d, IsReadOnly %d, bIsFormatted %d\r\n",
g_FSInitParam[DevId].FSParam.szMountPath, g_FSInitParam[DevId].FSParam.szMountPath,
g_LnxStrgStatus[DevId].IsInserted, g_LnxStrgStatus[DevId].IsInserted,
g_LnxStrgStatus[DevId].IsReadOnly, g_LnxStrgStatus[DevId].IsReadOnly,
g_LnxStrgStatus[DevId].IsFormatted); g_LnxStrgStatus[DevId].IsFormatted);
StrgCbValPrev = StrgCbVal; StrgCbValPrev = StrgCbVal;
} }
if(g_LnxStrgStatus[DevId].IsInserted && bIsFormatted && !g_LnxStrgStatus[DevId].IsFormatted){
g_LnxStrgStatus[DevId].IsFormatted = bIsFormatted;
}
return 0; return 0;
} }

View File

@ -710,7 +710,7 @@
#define _NETWORK_ON_ETH_ #define _NETWORK_ON_ETH_
#endif #endif
#define MAC_APPEN_SSID ENABLE #define MAC_APPEN_SSID DISABLE//ENABLE
#define ACL_TIME 15000 //minmum 15 sec #define ACL_TIME 15000 //minmum 15 sec
#define WIFI_APP_MANUFACTURER "NVT" #define WIFI_APP_MANUFACTURER "NVT"
#define WIFI_APP_MODLE "CarDV_WiFi" #define WIFI_APP_MODLE "CarDV_WiFi"
@ -918,7 +918,7 @@
#define HUNTING_MCU_I2C DISABLE #define HUNTING_MCU_I2C DISABLE
#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 "7MD4RCwD3T3" #define SF_BASE_VERSION "7MD4RCwD3T6"
#define HW_S530 1 #define HW_S530 1
#define PHOTO_ISP_STAMP DISABLE #define PHOTO_ISP_STAMP DISABLE

View File

@ -50,6 +50,7 @@
#include "UICommon.h" #include "UICommon.h"
//#include "dma.h" //#include "dma.h"
#include "PStore.h" #include "PStore.h"
#include "sf_sd_common.h"
#if (USE_DCF == ENABLE) #if (USE_DCF == ENABLE)
#include "DCF.h" #include "DCF.h"
#endif #endif
@ -472,8 +473,8 @@ void System_OnStrgInit_FS(void)
DCF_SetParm(DCF_PRMID_REMOVE_DUPLICATE_FILE, TRUE); DCF_SetParm(DCF_PRMID_REMOVE_DUPLICATE_FILE, TRUE);
DCF_SetParm(DCF_PRMID_SET_VALID_FILE_FMT, DCF_FILE_TYPE_JPG|DCF_FILE_TYPE_MP4|DCF_FILE_TYPE_MOV); DCF_SetParm(DCF_PRMID_SET_VALID_FILE_FMT, DCF_FILE_TYPE_JPG|DCF_FILE_TYPE_MP4|DCF_FILE_TYPE_MOV);
DCF_SetParm(DCF_PRMID_SET_DEP_FILE_FMT, DCF_FILE_TYPE_JPG|DCF_FILE_TYPE_WAV|DCF_FILE_TYPE_MPO); DCF_SetParm(DCF_PRMID_SET_DEP_FILE_FMT, DCF_FILE_TYPE_JPG|DCF_FILE_TYPE_WAV|DCF_FILE_TYPE_MPO);
DCF_SetDirFreeChars("HUNTI"); DCF_SetDirFreeChars("MEDIA");
DCF_SetFileFreeChars(DCF_FILE_TYPE_ANYFORMAT, "IMAG"); DCF_SetFileFreeChars(DCF_FILE_TYPE_ANYFORMAT, "SYFW");
} }
#endif #endif
} }
@ -708,7 +709,7 @@ INT32 System_OnStrgInsert(VControl *pCtrl, UINT32 paramNum, UINT32 *paramArray)
dcfParm.WorkbuffSize = POOL_SIZE_DCF_BUFFER; dcfParm.WorkbuffSize = POOL_SIZE_DCF_BUFFER;
DCF_Open(&dcfParm); DCF_Open(&dcfParm);
DCF_ScanObj(); // DCF_ScanObj();
} }
#endif #endif
@ -718,6 +719,9 @@ INT32 System_OnStrgInsert(VControl *pCtrl, UINT32 paramNum, UINT32 *paramArray)
} else { } else {
System_SetState(SYS_STATE_CARD, CARD_INSERTED); System_SetState(SYS_STATE_CARD, CARD_INSERTED);
DBG_IND("Card inserted\r\n"); DBG_IND("Card inserted\r\n");
#if HUNTING_CAMERA_MCU == ENABLE
sf_check_card_full();
#endif
} }
return NVTEVT_CONSUME; return NVTEVT_CONSUME;
} }
@ -843,9 +847,9 @@ INT32 System_OnStrgAttach(VControl *pCtrl, UINT32 paramNum, UINT32 *paramArray)
switch (result) { switch (result) {
case FST_STA_OK: case FST_STA_OK:
#if (USE_DCF == ENABLE) #if (USE_DCF == ENABLE)
if (!UI_GetData(FL_IsCopyToCarding)) { // if (!UI_GetData(FL_IsCopyToCarding)) {
DCF_ScanObj(); DCF_ScanObj();
} // }
#endif #endif
System_SetState(SYS_STATE_FS, FS_INIT_OK); System_SetState(SYS_STATE_FS, FS_INIT_OK);

View File

@ -141,7 +141,7 @@ static BOOL System_InsmodUsb(BOOL isHost)
if(driver_path){ if(driver_path){
memset(cmd, '\0', sizeof(cmd)); memset(cmd, '\0', sizeof(cmd));
snprintf(cmd, sizeof(cmd), "insmod %s/%s/%s", isHost ? "" : "/etc" /* ramdisk */, driver_path_prefix, driver_path); snprintf(cmd, sizeof(cmd), "insmod %s/%s/%s", isHost ? "" : "" /* ramdisk */, driver_path_prefix, driver_path);
//DBG_DUMP("%s\n", cmd); //DBG_DUMP("%s\n", cmd);
printf("[%s:%d] %s\n", __FUNCTION__, __LINE__, cmd); printf("[%s:%d] %s\n", __FUNCTION__, __LINE__, cmd);
system(cmd); system(cmd);
@ -364,7 +364,7 @@ INT32 System_OnUsbInsert(VControl *pCtrl, UINT32 paramNum, UINT32 *paramArray)
// temporarily do nothing for Movie + UVC // temporarily do nothing for Movie + UVC
#else #else
#if 0 //temporally support MSDC only #if 1 //temporally support MSDC only
Ux_SendEvent(0, NVTEVT_SYSTEM_MODE, 1, PRIMARY_MODE_USBMSDC); Ux_SendEvent(0, NVTEVT_SYSTEM_MODE, 1, PRIMARY_MODE_USBMSDC);
#else #else
Ux_SendEvent(0, NVTEVT_SYSTEM_MODE, 1, PRIMARY_MODE_USBMENU); Ux_SendEvent(0, NVTEVT_SYSTEM_MODE, 1, PRIMARY_MODE_USBMENU);

View File

@ -379,6 +379,19 @@ int NvtMain(void)
stMessageBuf.arg1 = SF_MCU_CMD_POWERON; stMessageBuf.arg1 = SF_MCU_CMD_POWERON;
stMessageBuf.cmdId = CMD_MCU; stMessageBuf.cmdId = CMD_MCU;
sf_com_message_send_to_app(&stMessageBuf); sf_com_message_send_to_app(&stMessageBuf);
sf_sys_status_led_set(SF_LED_SYS_STATE_PIR_NOT_DETECT);
sf_battery_check_init();
sf_battery_thread_init();
/*wifi init*/
if(sf_get_mode_flag())
{
stMessageBuf.arg1 = SF_WIFI_CMD_START;
stMessageBuf.cmdId = CMD_WIFI;
sf_com_message_send_to_cardv(&stMessageBuf);
}
#else #else
sf_mcu_init(); sf_mcu_init();
sf_get_power_on_mode(); sf_get_power_on_mode();
@ -388,8 +401,7 @@ int NvtMain(void)
sf_led_init(); sf_led_init();
#endif #endif
sf_sd_exist_reg_cb(DrvCARD_DetStrgCard); sf_sd_exist_reg_cb(DrvCARD_DetStrgCard);
sf_sys_status_led_set(SF_LED_SYS_STATE_PIR_NOT_DETECT);
sf_battery_thread_init();
} }
else else
{ {

View File

@ -27,6 +27,9 @@
#endif #endif
#include "Utility/SwTimer.h" #include "Utility/SwTimer.h"
#if HUNTING_CAMERA_MCU == ENABLE
#include <sf_inc.h>
#endif
//#NT#2016/05/30#Lincy Lin -end //#NT#2016/05/30#Lincy Lin -end
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
#define __MODULE__ UIBKGObj #define __MODULE__ UIBKGObj
@ -847,6 +850,9 @@ UINT32 BackgroundFormatCard(void)
DBG_FUNC("Call FileSys_FormatDisk() ret=%d\r\n", ret); DBG_FUNC("Call FileSys_FormatDisk() ret=%d\r\n", ret);
if (ret == FST_STA_OK) { if (ret == FST_STA_OK) {
#if HUNTING_CAMERA_MCU == ENABLE
sf_set_card_statu(CMD_FORMAT_SD_OK);
#endif
// reset file ID (for FileDB) // reset file ID (for FileDB)
#if USE_FILEDB #if USE_FILEDB
if (UI_GetData(FL_IsUseFileDB)) { if (UI_GetData(FL_IsUseFileDB)) {
@ -874,6 +880,12 @@ UINT32 BackgroundFormatCard(void)
vos_util_delay_ms(1000); vos_util_delay_ms(1000);
SysMain_system("sync"); SysMain_system("sync");
} }
else
{
#if HUNTING_CAMERA_MCU == ENABLE
sf_set_card_statu(CMD_FORMAT_SD_ERR);
#endif
}
MovieExe_ResetFileSN(); MovieExe_ResetFileSN();
DBG_FUNC_END("\r\n"); DBG_FUNC_END("\r\n");
return (UINT32)ret; return (UINT32)ret;

View File

@ -1132,13 +1132,26 @@ static void MovieExe_FileNamingCB(MOVIE_CFG_REC_ID id, char *pFileName)
DCF_MakeObjPath(nextFolderID, nextFileID, DCF_FILE_TYPE_MP4, pFileName); DCF_MakeObjPath(nextFolderID, nextFileID, DCF_FILE_TYPE_MP4, pFileName);
DCF_AddDBfile(pFileName); DCF_AddDBfile(pFileName);
DBG_DUMP("%s added to DCF\r\n", pFileName); DBG_DUMP("%s added to DCF\r\n", pFileName);
#if HUNTING_CAMERA_MCU == ENABLE
char tmp[NMC_TOTALFILEPATH_MAX_LEN] = {'\0'};
sprintf(tmp, "S%03d%04d.JPG", nextFolderID, nextFileID);
if(id == _CFG_REC_ID_1){
snprintf(thumb_current_path_main, sizeof(thumb_current_path_main), "%s", tmp);
}
else if(id == _CFG_CLONE_ID_1){
snprintf(thumb_current_path_clone, sizeof(thumb_current_path_clone), "%s", tmp);
}
DBG_DUMP("last send file:%s\r\n", tmp);
#else
if(id == _CFG_REC_ID_1){ if(id == _CFG_REC_ID_1){
snprintf(thumb_current_path_main, sizeof(thumb_current_path_main), "%s", pFileName); snprintf(thumb_current_path_main, sizeof(thumb_current_path_main), "%s", pFileName);
} }
else if(id == _CFG_CLONE_ID_1){ else if(id == _CFG_CLONE_ID_1){
snprintf(thumb_current_path_clone, sizeof(thumb_current_path_clone), "%s", pFileName); snprintf(thumb_current_path_clone, sizeof(thumb_current_path_clone), "%s", pFileName);
} }
#endif
} }
#endif #endif
@ -1419,10 +1432,15 @@ static void MovieExe_UserEventCb(UINT32 id, MOVIE_USER_CB_EVENT event_id, UINT32
char tmp[256] = {'\0'}; char tmp[256] = {'\0'};
#if HUNTING_CAMERA_MCU == ENABLE
snprintf(tmp, sizeof(tmp), "%s%s", MOVIE_THUMB_PATH, thumb_current_path); /* DCF 8.3 naming rule */
#else
snprintf(tmp, sizeof(tmp), "%s%s", MOVIE_THUMB_PATH, (thumb_current_path + (length - 12))); /* DCF 8.3 naming rule */ snprintf(tmp, sizeof(tmp), "%s%s", MOVIE_THUMB_PATH, (thumb_current_path + (length - 12))); /* DCF 8.3 naming rule */
snprintf(tmp + strlen(tmp) - 3, sizeof(tmp), "%s", "JPG"); snprintf(tmp + strlen(tmp) - 3, sizeof(tmp), "%s", "JPG");
#endif
DBG_DUMP("MOVIE_USER_CB_EVENT_JENC_DONE %s\n", tmp); DBG_DUMP("%s:%d MOVIE_USER_CB_EVENT_JENC_DONE %s\n", __FUNCTION__, __LINE__, tmp);
FST_FILE fp = FileSys_OpenFile(tmp, FST_OPEN_ALWAYS | FST_OPEN_WRITE); FST_FILE fp = FileSys_OpenFile(tmp, FST_OPEN_ALWAYS | FST_OPEN_WRITE);

View File

@ -28,6 +28,7 @@
#include <cyg/infra/maincmd.h> #include <cyg/infra/maincmd.h>
//#NT#2018/03/21#Niven Cho -end //#NT#2018/03/21#Niven Cho -end
#endif #endif
#include <sf_wifi_svr.h>
#define _NETWORK_ON_CPU1_ ENABLE #define _NETWORK_ON_CPU1_ ENABLE
@ -360,7 +361,7 @@ char gSSID_AP_default[NVT_WSC_MAX_SSID_LEN] = "NVT_CARDV";
char gPASSPHRASE[NVT_MAX_WEP_KEY_LEN] = "12345678"; char gPASSPHRASE[NVT_MAX_WEP_KEY_LEN] = "12345678";
char gPASSPHRASE_AP_default[NVT_MAX_WEP_KEY_LEN] = "12345678"; char gPASSPHRASE_AP_default[NVT_MAX_WEP_KEY_LEN] = "12345678";
char gCurrIP[NVT_WIFIIPC_IP_MAX_LEN] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; char gCurrIP[NVT_WIFIIPC_IP_MAX_LEN] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
UINT32 gChannel = 0;//default 0:auto UINT32 gChannel = 6;//default 0:auto
char gLastMacAddr[NVT_WIFIIPC_IP_MAX_LEN] = {0}; char gLastMacAddr[NVT_WIFIIPC_IP_MAX_LEN] = {0};
char gRemoveMacAddr[NVT_WIFIIPC_IP_MAX_LEN] = {0}; char gRemoveMacAddr[NVT_WIFIIPC_IP_MAX_LEN] = {0};
char currentMacAddr[NVT_WIFIIPC_IP_MAX_LEN] = {0}; char currentMacAddr[NVT_WIFIIPC_IP_MAX_LEN] = {0};
@ -392,7 +393,7 @@ UINT32 gSendPeerIP = 0;
#define EXAM_NET_LEASE_DNS_WLAN0 "0.0.0.0" #define EXAM_NET_LEASE_DNS_WLAN0 "0.0.0.0"
#define EXAM_NET_LEASE_WINS_WLAN0 "0.0.0.0" #define EXAM_NET_LEASE_WINS_WLAN0 "0.0.0.0"
#define EXAM_NET_AP_IP "192.168.1.254" #define EXAM_NET_AP_IP "192.168.1.1"
#define EXAM_NET_STA_IP "192.168.1.89" #define EXAM_NET_STA_IP "192.168.1.89"
#define EXAM_NET_P2P_IP "192.168.49.207" #define EXAM_NET_P2P_IP "192.168.49.207"
@ -1261,7 +1262,19 @@ void UINet_WifiSettings(nvt_wifi_settings *pwifi, UINT32 mode, UINT32 security)
pwifi->p2pmode = NVT_P2P_TMP_GO; pwifi->p2pmode = NVT_P2P_TMP_GO;
pwifi->is_configured = 1; pwifi->is_configured = 1;
} }
memset(gSSID,'\0', sizeof(gSSID));
memset(gPASSPHRASE,'\0', sizeof(gPASSPHRASE));
if (WiFiIpc_get_wlan0_efuse_mac(gMacAddr) < 0)
{
DBG_IND("wifi_get_wlan0_efuse_mac() fail. Use hardcoded mac.\r\n");
}
else
{
sprintf(gSSID,"REVEAL_%02X%02X%02X",gMacAddr[3],gMacAddr[4],gMacAddr[5]);
}
sprintf(gPASSPHRASE,"%s",ptMenuStoreInfo->WifiApPWD);
printf("[%s:%d] gSSID:%s gPASSPHRASE:%s\n", __FUNCTION__, __LINE__,gSSID, gPASSPHRASE);
if (ptMenuStoreInfo->strSSID[0] == 0) { if (ptMenuStoreInfo->strSSID[0] == 0) {
#if 0//(MAC_APPEN_SSID==ENABLE) #if 0//(MAC_APPEN_SSID==ENABLE)
snprintf(pwifi->ssid, NVT_WSC_MAX_SSID_LEN, "%s%02x%02x%02x%02x%02x%02x", gSSID, gMacAddr[0], gMacAddr[1], gMacAddr[2], snprintf(pwifi->ssid, NVT_WSC_MAX_SSID_LEN, "%s%02x%02x%02x%02x%02x%02x", gSSID, gMacAddr[0], gMacAddr[1], gMacAddr[2],
@ -1323,6 +1336,7 @@ void UINet_WifiSettings(nvt_wifi_settings *pwifi, UINT32 mode, UINT32 security)
strcpy(pwifi->wep_key3, "12345678901234567890123456"); strcpy(pwifi->wep_key3, "12345678901234567890123456");
strcpy(pwifi->wep_key4, "12345678901234567890123456"); strcpy(pwifi->wep_key4, "12345678901234567890123456");
} }
printf("[%s:%d] ssid:%s passphrase:%s\n", __FUNCTION__, __LINE__,pwifi->ssid, pwifi->passphrase);
} }
void UINet_WifiP2PReInit(void) void UINet_WifiP2PReInit(void)
@ -1513,7 +1527,9 @@ INT32 UINet_WifiInit(UINT32 mode, UINT32 security)
#if _TODO #if _TODO
WiFiIpc_interface_config("wlan0", gCurrIP, "255.255.255.0"); WiFiIpc_interface_config("wlan0", gCurrIP, "255.255.255.0");
#else #else
WiFiIpc_interface_up("wlan0"); //WiFiIpc_interface_up("wlan0");
sf_wifi_hw_init();
#endif #endif
if (_g_bFirstWifi) { if (_g_bFirstWifi) {
TM_BOOT_END("network", "up"); TM_BOOT_END("network", "up");
@ -1594,10 +1610,61 @@ INT32 UINet_WifiInit(UINT32 mode, UINT32 security)
//#NT#2016/08/05#Niven Cho -end //#NT#2016/08/05#Niven Cho -end
//Ux_PostEvent(NVTEVT_WIFI_STATE, 2, NET_STATE_WIFI_START, result); //Ux_PostEvent(NVTEVT_WIFI_STATE, 2, NET_STATE_WIFI_START, result);
sf_wifi_app_start();
return result; return result;
} }
INT32 sf_net_wifi_init(UINT32 mode, UINT32 security)
{
UINT32 result = 0;
nvt_wifi_settings *pwifi = &wifiConfig;
DBG_IND("set wifi %d %d \r\n", mode, security);
system("modprobe 8189fs");
sleep(2);
system("ifconfig lo 127.0.0.1");
memset(pwifi, 0, sizeof(nvt_wifi_settings));
memset(gMacAddr, 0, sizeof(gMacAddr));
UINet_WifiSettings(pwifi, mode, security);
WiFiIpc_Config(pwifi);
memset(gCurrIP, 0, NVT_WIFIIPC_IP_MAX_LEN);
snprintf(gCurrIP, NVT_WIFIIPC_IP_MAX_LEN, "%s", EXAM_NET_AP_IP);
sf_wifi_hw_init();
DBG_IND("Default IP=%s\r\n", gCurrIP);
WifiCmd_InstallID();
UINet_HFSInit();
UINet_RtspInit();
sf_wifi_app_start();
ImageApp_Common_RtspStart(0);
return result;
}
INT32 sf_net_wifi_uninit(UINT32 mode)
{
UINT32 ret = 0;
//UINet_HFSUnInit();
//WifiCmd_UninstallID();
//UINet_RtspUnInit();
ImageApp_Common_RtspStop(0);
return ret;
}
INT32 UINet_WifiUnInit(UINT32 mode) INT32 UINet_WifiUnInit(UINT32 mode)
{ {
UINT32 ret = 0; UINT32 ret = 0;

View File

@ -35,6 +35,8 @@ extern BOOL UINet_CPU2_Init(void);
extern BOOL UINet_AppIpc_Init(void); extern BOOL UINet_AppIpc_Init(void);
extern BOOL UINet_AppIpc_UnInit(void); extern BOOL UINet_AppIpc_UnInit(void);
extern INT32 UINet_WifiInit(UINT32 mode, UINT32 security); extern INT32 UINet_WifiInit(UINT32 mode, UINT32 security);
extern INT32 sf_net_wifi_init(UINT32 mode, UINT32 security);
extern INT32 sf_net_wifi_uninit(UINT32 mode);
extern INT32 UINet_LanInit(UINT32 mode); extern INT32 UINet_LanInit(UINT32 mode);
extern INT32 UINet_HFSInit(void); extern INT32 UINet_HFSInit(void);
extern INT32 UINet_OnvifInit(void); extern INT32 UINet_OnvifInit(void);

View File

@ -5052,6 +5052,9 @@ static INT32 PhotoExe_Preview_SliceEncode_Encode_Screennail_RC(HD_VIDEO_FRAME* v
} }
} }
} }
else{
break;
}
} while(1); } while(1);
@ -6314,10 +6317,22 @@ INT32 PhotoExe_Preview_SliceEncode_CB3(void* user_data)
char* file_path = ImageApp_Photo_GetLastWriteFilePath(); char* file_path = ImageApp_Photo_GetLastWriteFilePath();
char tmp[256] = {'\0'}; char tmp[256] = {'\0'};
UINT32 length = strlen(file_path); UINT32 length = strlen(file_path);
#if HUNTING_CAMERA_MCU == ENABLE
char folder[4], number[5];
strncpy(folder, file_path + length - 21, 3); // 复制到目标数组
folder[3] = '\0'; // 添加结尾符
strncpy(number, file_path + length - 8, 4); // 复制到目标数组
number[4] = '\0'; // 添加结尾符
snprintf(tmp, sizeof(tmp), "%sW%s%s.JPG", PHOTO_THUMB_PATH, folder, number); /* DCF 8.3 naming rule */
#else
snprintf(tmp, sizeof(tmp), "%s%s", PHOTO_THUMB_PATH, file_path + length - 12); /* DCF 8.3 naming rule */ snprintf(tmp, sizeof(tmp), "%s%s", PHOTO_THUMB_PATH, file_path + length - 12); /* DCF 8.3 naming rule */
snprintf(tmp + strlen(tmp) - 3, sizeof(tmp), "%s", "JPG"); snprintf(tmp + strlen(tmp) - 3, sizeof(tmp), "%s", "JPG");
#endif
DBG_IND("PHOTO THUMB %s\n", tmp); DBG_IND("PHOTO THUMB %s\n", tmp);
FST_FILE fp = FileSys_OpenFile(tmp, FST_OPEN_ALWAYS | FST_OPEN_WRITE); FST_FILE fp = FileSys_OpenFile(tmp, FST_OPEN_ALWAYS | FST_OPEN_WRITE);
@ -6327,12 +6342,9 @@ INT32 PhotoExe_Preview_SliceEncode_CB3(void* user_data)
#if HUNTING_CAMERA_MCU == ENABLE #if HUNTING_CAMERA_MCU == ENABLE
char tmp2[64] = {'\0'}; char tmp2[64] = {'\0'};
memset(tmp, '\0', sizeof(tmp)); memset(tmp, '\0', sizeof(tmp));
snprintf(tmp, sizeof(tmp), "%s%s", SF_SD_THUMB_PATH, file_path + length - 12); /* DCF 8.3 naming rule */ snprintf(tmp, sizeof(tmp), "%sW%s%s.JPG", SF_SD_THUMB_PATH, folder, number); /* DCF 8.3 naming rule */
snprintf(tmp + strlen(tmp) - 3, sizeof(tmp), "%s", "JPG"); snprintf(tmp2, sizeof(tmp2), "W%s%s.JPG", folder, number); /* DCF 8.3 naming rule */
snprintf(tmp2, sizeof(tmp2), "%s", file_path + length - 12); /* DCF 8.3 naming rule */
snprintf(tmp2 + strlen(tmp2) - 3, sizeof(tmp2), "%s", "JPG");
DBG_DUMP("PHOTO THUMB %s \n %s\n", tmp, tmp2); DBG_DUMP("PHOTO THUMB %s \n %s\n", tmp, tmp2);
sf_file_thumb_cfg_fill(tmp, tmp2, queue_ele_in->jpg_thumb_size, SF_FILE_TYPE_PIC_SMALL); sf_file_thumb_cfg_fill(tmp, tmp2, queue_ele_in->jpg_thumb_size, SF_FILE_TYPE_PIC_SMALL);
UIMenuStoreInfo *puiPara = sf_ui_para_get(); UIMenuStoreInfo *puiPara = sf_ui_para_get();
if(SF_CAM_MODE_PHOTO == puiPara->CamMode) if(SF_CAM_MODE_PHOTO == puiPara->CamMode)
@ -6472,7 +6484,9 @@ INT32 PhotoExe_Preview_SliceEncode2(VControl *pCtrl, UINT32 paramNum, UINT32 *pa
DBG_ERR("init lfqueue23 failed\n"); DBG_ERR("init lfqueue23 failed\n");
goto EXIT; goto EXIT;
} }
#if HUNTING_CAMERA_MCU == ENABLE
max_cnt = 1;
#else
switch (UI_GetData(FL_CONTINUE_SHOT)) switch (UI_GetData(FL_CONTINUE_SHOT))
{ {
case CONTINUE_SHOT_BURST: case CONTINUE_SHOT_BURST:
@ -6489,6 +6503,8 @@ INT32 PhotoExe_Preview_SliceEncode2(VControl *pCtrl, UINT32 paramNum, UINT32 *pa
max_cnt = 1; max_cnt = 1;
break; break;
} }
#endif
/*************************************************************************************** /***************************************************************************************
* task1 * task1

View File

@ -786,6 +786,9 @@ void UiDateImprint_ChkUpdateData(DATE_IMPRINT_INFO *pInfo)
//if (pInfo->pCapInfo->event == CAP_DS_EVENT_QV || pInfo->pCapInfo->event == CAP_DS_EVENT_SCR) { //if (pInfo->pCapInfo->event == CAP_DS_EVENT_QV || pInfo->pCapInfo->event == CAP_DS_EVENT_SCR) {
if (pInfo->pCapInfo->event == CAP_DS_EVENT_QV || bGenEn) { if (pInfo->pCapInfo->event == CAP_DS_EVENT_QV || bGenEn) {
#if HUNTING_CAMERA_MCU == ENABLE
pInfo->isStrDirty = UiDateImprint_UpdateDate(pInfo->StrBuf,sizeof(pInfo->StrBuf));
#else
if ((UI_GetData(FL_CONTINUE_SHOT) == CONTINUE_SHOT_BURST_3)) { if ((UI_GetData(FL_CONTINUE_SHOT) == CONTINUE_SHOT_BURST_3)) {
if (pInfo->pic_cnt == 0) if (pInfo->pic_cnt == 0)
pInfo->isStrDirty = UiDateImprint_UpdateDate(pInfo->StrBuf,sizeof(pInfo->StrBuf)); pInfo->isStrDirty = UiDateImprint_UpdateDate(pInfo->StrBuf,sizeof(pInfo->StrBuf));
@ -795,6 +798,7 @@ void UiDateImprint_ChkUpdateData(DATE_IMPRINT_INFO *pInfo)
else { else {
pInfo->isStrDirty = UiDateImprint_UpdateDate(pInfo->StrBuf,sizeof(pInfo->StrBuf)); pInfo->isStrDirty = UiDateImprint_UpdateDate(pInfo->StrBuf,sizeof(pInfo->StrBuf));
} }
#endif
} }
#if 0 #if 0
// need to update primary info to screenail // need to update primary info to screenail

View File

@ -401,6 +401,10 @@ static void UIFlowMenuCommonItem_ScrOpen(lv_obj_t* obj)
MenuItem_OnOpen(obj); MenuItem_OnOpen(obj);
#if HUNTING_CAMERA_MCU == ENABLE
sf_set_menu_open(TRUE);
#endif
} }
static void UIFlowMenuCommonItem_Key(lv_obj_t* obj, uint32_t key) static void UIFlowMenuCommonItem_Key(lv_obj_t* obj, uint32_t key)
@ -452,6 +456,10 @@ static void UIFlowMenuCommonItem_ScrClose(lv_obj_t* obj)
DBG_DUMP("%s\r\n", __func__); DBG_DUMP("%s\r\n", __func__);
MenuItem_OnClose(obj); MenuItem_OnClose(obj);
#if HUNTING_CAMERA_MCU == ENABLE
sf_set_menu_open(FALSE);
#endif
} }

View File

@ -1007,7 +1007,10 @@ static void UIFlowMovie_Key(lv_obj_t* obj, uint32_t key)
switch(key) switch(key)
{ {
case LV_USER_KEY_SHUTTER2: case LV_USER_KEY_SHUTTER2:
{ {
#if HUNTING_CAMERA_MCU == ENABLE
sf_rtsp_stop();
#endif
UIFlowMovie_OnExeRecord(obj); UIFlowMovie_OnExeRecord(obj);
break; break;
} }
@ -1248,6 +1251,13 @@ void UIFlowMovieEventCallback(lv_obj_t* obj, lv_event_t event)
{ {
case LV_PLUGIN_EVENT_SCR_OPEN: case LV_PLUGIN_EVENT_SCR_OPEN:
UIFlowMovie_ScrOpen(obj); UIFlowMovie_ScrOpen(obj);
#if HUNTING_CAMERA_MCU == ENABLE
UIMenuStoreInfo *puiPara = sf_ui_para_get();
if((puiPara->CamMode == SF_CAM_MODE_VIDEO))
{
sf_rtsp_restart();
}
#endif
break; break;
case LV_PLUGIN_EVENT_SCR_CLOSE: case LV_PLUGIN_EVENT_SCR_CLOSE:

View File

@ -25,7 +25,7 @@
#define FD_FRAME_RATE 3//10 //(10frame/30fps) = 333ms = update time #define FD_FRAME_RATE 3//10 //(10frame/30fps) = 333ms = update time
#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__ UIFlowPhoto #define __MODULE__ UIFlowPhoto
#define __DBGLVL__ ((THIS_DBGLVL>=PRJ_DBG_LVL)?THIS_DBGLVL:PRJ_DBG_LVL) #define __DBGLVL__ ((THIS_DBGLVL>=PRJ_DBG_LVL)?THIS_DBGLVL:PRJ_DBG_LVL)
@ -436,6 +436,10 @@ static void UIFlowPhoto_OnExeCaptureStop(lv_obj_t* obj)
static void UIFlowPhoto_OnExeCaptureStart(lv_obj_t* obj) static void UIFlowPhoto_OnExeCaptureStart(lv_obj_t* obj)
{ {
if (FlowPhoto_IsStorageErr() == TRUE) {
DBG_ERR("UIFlowPhoto_OnKeyShutter2: storage err!\r\n");
return;
}
switch (gPhotoData.State) { switch (gPhotoData.State) {
case PHOTO_ST_VIEW: case PHOTO_ST_VIEW:
@ -485,7 +489,7 @@ static void UIFlowPhoto_OnExeCaptureStart(lv_obj_t* obj)
return NVTEVT_CONSUME; return NVTEVT_CONSUME;
} }
#endif #endif
#if HUNTING_CAMERA_MCU != ENABLE
// check free pic number // check free pic number
if (SysGetFlag(FL_CONTINUE_SHOT) != CONTINUE_SHOT_OFF) { if (SysGetFlag(FL_CONTINUE_SHOT) != CONTINUE_SHOT_OFF) {
if (FlowPhoto_GetFreePicNum() < 2) { if (FlowPhoto_GetFreePicNum() < 2) {
@ -501,7 +505,8 @@ static void UIFlowPhoto_OnExeCaptureStart(lv_obj_t* obj)
#endif #endif
} }
} }
#endif
switch (SysGetFlag(FL_SELFTIMER)) { // set capture mode by system flag switch (SysGetFlag(FL_SELFTIMER)) { // set capture mode by system flag
case SELFTIMER_2SEC: case SELFTIMER_2SEC:
UIFlowPhoto_update_selftimer_cnt(2); UIFlowPhoto_update_selftimer_cnt(2);
@ -1049,6 +1054,9 @@ void UIFlowPhoto_UpdateInfo(lv_obj_t* obj, const LV_USER_EVENT_NVTMSG_DATA* msg)
break; break;
case UIAPPPHOTO_CB_CAPSTART: case UIAPPPHOTO_CB_CAPSTART:
#if HUNTING_CAMERA_MCU == ENABLE
sf_set_cap_statu(TRUE);
#endif
if(obj == UIFlowPhoto) if(obj == UIFlowPhoto)
lv_obj_set_hidden(obj, true); lv_obj_set_hidden(obj, true);
@ -1084,6 +1092,9 @@ void UIFlowPhoto_UpdateInfo(lv_obj_t* obj, const LV_USER_EVENT_NVTMSG_DATA* msg)
UI_SetData(FL_NextMode, iNextMode); UI_SetData(FL_NextMode, iNextMode);
Ux_PostEvent(NVTEVT_SYSTEM_MODE, 1, iNextMode); Ux_PostEvent(NVTEVT_SYSTEM_MODE, 1, iNextMode);
} }
#if HUNTING_CAMERA_MCU == ENABLE
sf_set_cap_statu(FALSE);
#endif
break; break;
case UIAPPPHOTO_CB_FDEND: case UIAPPPHOTO_CB_FDEND:
@ -1181,6 +1192,9 @@ static void UIFlowPhoto_Key(lv_obj_t* obj, uint32_t key)
{ {
case LV_USER_KEY_SHUTTER2: case LV_USER_KEY_SHUTTER2:
{ {
#if HUNTING_CAMERA_MCU == ENABLE
sf_rtsp_stop();
#endif
UIFlowPhoto_OnExeCaptureStart(obj); UIFlowPhoto_OnExeCaptureStart(obj);
break; break;
} }
@ -1264,6 +1278,13 @@ void UIFlowPhotoEventCallback(lv_obj_t* obj, lv_event_t event)
{ {
case LV_PLUGIN_EVENT_SCR_OPEN: case LV_PLUGIN_EVENT_SCR_OPEN:
UIFlowPhoto_ScrOpen(obj); UIFlowPhoto_ScrOpen(obj);
#if HUNTING_CAMERA_MCU == ENABLE
UIMenuStoreInfo *puiPara = sf_ui_para_get();
if((puiPara->CamMode == SF_CAM_MODE_PHOTO) || (puiPara->CamMode == SF_CAM_MODE_PHOTO_VIDEO))
{
sf_rtsp_restart();
}
#endif
break; break;
case LV_PLUGIN_EVENT_SCR_CLOSE: case LV_PLUGIN_EVENT_SCR_CLOSE:

View File

@ -28,6 +28,9 @@ CHAR *Get_FreePicNumString(UINT32 uiValue)
void FlowPhoto_DoCapture(void) void FlowPhoto_DoCapture(void)
{ {
#if HUNTING_CAMERA_MCU == ENABLE
Ux_SendEvent(&CustomPhotoObjCtrl, NVTEVT_EXE_CAPTURE_START, 1, ON_CAPTURE_SINGLE);
#else
#if (PHOTO_MODE==ENABLE) #if (PHOTO_MODE==ENABLE)
switch (SysGetFlag(FL_CONTINUE_SHOT)) { switch (SysGetFlag(FL_CONTINUE_SHOT)) {
case CONTINUE_SHOT_BURST_3: case CONTINUE_SHOT_BURST_3:
@ -61,6 +64,7 @@ void FlowPhoto_DoCapture(void)
} }
#endif #endif
#endif
} }
BOOL FlowPhoto_GetSDStatus(void) BOOL FlowPhoto_GetSDStatus(void)

View File

@ -26,6 +26,7 @@ static void UIFlowWifiWait_NVTMSG(lv_obj_t* obj, const LV_USER_EVENT_NVTMSG_DATA
NVTEVT message = msg->paramArray[ONDONE_PARAM_INDEX_CMD]; NVTEVT message = msg->paramArray[ONDONE_PARAM_INDEX_CMD];
switch (message) { switch (message) {
case NVTEVT_BKW_WIFI_ON: { case NVTEVT_BKW_WIFI_ON: {
printf("[%s:%d] s\n", __FUNCTION__, __LINE__);
//open wifi link //open wifi link
if (UI_GetData(FL_WIFI_LINK) == WIFI_LINK_OK) { if (UI_GetData(FL_WIFI_LINK) == WIFI_LINK_OK) {
//change to wifi mode,would close wait wnd //change to wifi mode,would close wait wnd

View File

@ -29,6 +29,11 @@ void UIFlowWrnMsgAPI_Open_StringID(lv_plugin_res_id id, uint16_t auto_close_tim
DBG_WRN("warning message box is already opened and not closed yet, ignore request"); DBG_WRN("warning message box is already opened and not closed yet, ignore request");
return; return;
} }
#if (DRAM_SIZE_64MB_DISP_OFF == ENABLE)
{
return;
}
#endif
/************************************************************************************* /*************************************************************************************
* message box created by builder's generated code is a sample and should keep invisible, * message box created by builder's generated code is a sample and should keep invisible,

View File

@ -181,7 +181,7 @@
#if defined(_MODEL_565_HUNTING_EVB_LINUX_4G_68CS_) #if defined(_MODEL_565_HUNTING_EVB_LINUX_4G_68CS_)
#define DEFAULT_PIR_SENSITIVITY SF_PIR_SENSITIVITY_HIGH #define DEFAULT_PIR_SENSITIVITY SF_PIR_SENSITIVITY_HIGH
#elif defined(_MODEL_565_HUNTING_EVB_LINUX_4G_S530_) #elif defined(_MODEL_565_HUNTING_EVB_LINUX_4G_S530_)
#define DEFAULT_PIR_SENSITIVITY SF_PIR_SENSITIVITY_0//SF_PIR_SENSITIVITY_7 #define DEFAULT_PIR_SENSITIVITY SF_PIR_SENSITIVITY_7
#endif #endif
#define DEFAULT_NET_WORK_NEED_SEARCH SF_OFF #define DEFAULT_NET_WORK_NEED_SEARCH SF_OFF
#define DEFAULT_GPRS_SWITCH SF_OFF #define DEFAULT_GPRS_SWITCH SF_OFF

View File

@ -1627,7 +1627,7 @@ void SysResetFlag(void)
puiPara->CamNameSwitch = DEFAULT_SF_CAMID; puiPara->CamNameSwitch = DEFAULT_SF_CAMID;
puiPara->CamMode = DEFAULT_BOOT_WORK_MODE; puiPara->CamMode = DEFAULT_BOOT_WORK_MODE;
puiPara->FlashLed = DEFAULT_FLASH_LED; puiPara->FlashLed = DEFAULT_FLASH_LED;
//ImgSize puiPara->ImgSize = DEFAULT_PHOTO_SIZE;
puiPara->NightMode = DEFAULT_NIGHT_MODE; puiPara->NightMode = DEFAULT_NIGHT_MODE;
//Multishot //Multishot
//VideoSize //VideoSize
@ -1714,11 +1714,20 @@ void SysResetFlag(void)
memset(puiPara ->FtpsPort, '\0', sizeof(puiPara ->FtpsPort)); memset(puiPara ->FtpsPort, '\0', sizeof(puiPara ->FtpsPort));
memset(puiPara ->FtpsUsr, '\0', sizeof(puiPara ->FtpsUsr)); memset(puiPara ->FtpsUsr, '\0', sizeof(puiPara ->FtpsUsr));
memset(puiPara ->FtpsPwd,'\0', sizeof(puiPara ->FtpsPwd)); memset(puiPara ->FtpsPwd,'\0', sizeof(puiPara ->FtpsPwd));
memset(puiPara ->WifiApPWD,'\0', sizeof(puiPara ->WifiApPWD));
#if(WIFI_FUNC==ENABLE)
memset(puiPara ->strSSID,'\0', sizeof(puiPara ->strSSID));
memset(puiPara ->strPASSPHRASE,'\0', sizeof(puiPara ->strPASSPHRASE));
memset(puiPara ->strSSID_hotspot_1,'\0', sizeof(puiPara ->strSSID_hotspot_1));
memset(puiPara ->strPASSPHRASE_hotspot_1,'\0', sizeof(puiPara ->strPASSPHRASE_hotspot_1));
#endif
strcpy((char *)puiPara ->FtpIp, "119.23.174.139"); strcpy((char *)puiPara ->FtpIp, "119.23.174.139");
strcpy((char *)puiPara ->FtpPort, "21"); strcpy((char *)puiPara ->FtpPort, "21");
strcpy((char *)puiPara ->FtpUsr, "cameraftp"); strcpy((char *)puiPara ->FtpUsr, "cameraftp");
strcpy((char *)puiPara ->FtpPwd, "camera123456"); strcpy((char *)puiPara ->FtpPwd, "camera123456");
strcpy((char *)puiPara ->WifiApPWD, "Reveal2021");
#if defined(_MODEL_565_HUNTING_EVB_LINUX_4G_S530_) #if defined(_MODEL_565_HUNTING_EVB_LINUX_4G_S530_)
puiPara->GpsNumber = DEFAULT_GPS_NUMBER; puiPara->GpsNumber = DEFAULT_GPS_NUMBER;

View File

@ -526,6 +526,7 @@ typedef struct _UIMenuUIMenuStoreInfo {
UINT8 WifiMode; UINT8 WifiMode;
UINT8 WifiApPWD[16]; UINT8 WifiApPWD[16];
UINT8 Zoom; UINT8 Zoom;
UINT32 FileKey;
//============Sifar==============///Payton //============Sifar==============///Payton
} UIMenuStoreInfo; } UIMenuStoreInfo;
@ -772,9 +773,9 @@ enum _PHOTO_SIZE {
#if PHOTO_PREVIEW_SLICE_ENC_FUNC #if PHOTO_PREVIEW_SLICE_ENC_FUNC
PHOTO_SIZE_40M, PHOTO_SIZE_40M,
#endif #endif
PHOTO_SIZE_24M,
PHOTO_SIZE_16M, PHOTO_SIZE_16M,
PHOTO_SIZE_12M, PHOTO_SIZE_12M,
PHOTO_SIZE_10M,
PHOTO_SIZE_8M, PHOTO_SIZE_8M,
PHOTO_SIZE_5M, PHOTO_SIZE_5M,
PHOTO_SIZE_3M, PHOTO_SIZE_3M,
@ -784,12 +785,20 @@ enum _PHOTO_SIZE {
PHOTO_SIZE_1M, PHOTO_SIZE_1M,
PHOTO_SIZE_15M, PHOTO_SIZE_15M,
PHOTO_SIZE_14M, PHOTO_SIZE_14M,
PHOTO_SIZE_10M,
PHOTO_SIZE_7M, PHOTO_SIZE_7M,
PHOTO_SIZE_7MHD, PHOTO_SIZE_7MHD,
PHOTO_SIZE_4M, PHOTO_SIZE_4M,
PHOTO_SIZE_2M, PHOTO_SIZE_2M,
}; };
enum _SCREEN_PHOTO_SIZE {
SCREEN_PHOTO_SIZE_VGA,
SCREEN_PHOTO_SIZE_XGA,
SCREEN_PHOTO_SIZE_2_76M,
SCREEN_PHOTO_SIZE_ID_MAX,
};
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Photo Quality // Photo Quality
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------

View File

@ -30,9 +30,9 @@ static PHOTO_SIZE_PARAM g_PhotoCapSizeTable[PHOTO_SIZE_ID_MAX + 2] = {
#if PHOTO_PREVIEW_SLICE_ENC_FUNC || POWERON_FAST_SLICE_ENC #if PHOTO_PREVIEW_SLICE_ENC_FUNC || POWERON_FAST_SLICE_ENC
{7552, 4248, IMAGERATIO_4_3, "40M"}, /* 40M */ {7552, 4248, IMAGERATIO_4_3, "40M"}, /* 40M */
#endif #endif
{5632, 4224, IMAGERATIO_4_3, "24M"}, //16M
{4608, 3456, IMAGERATIO_4_3, "16M"}, //16M {4608, 3456, IMAGERATIO_4_3, "16M"}, //16M
{4032, 3024, IMAGERATIO_4_3, "12M"}, //12M {4032, 3024, IMAGERATIO_4_3, "12M"}, //12M
{3648, 2736, IMAGERATIO_4_3, "10M"}, //10M
{3264, 2448, IMAGERATIO_4_3, "8M"}, // 8M {3264, 2448, IMAGERATIO_4_3, "8M"}, // 8M
#if defined(_MODEL_565_HUNTING_EVB_LINUX_4G_68CS_) #if defined(_MODEL_565_HUNTING_EVB_LINUX_4G_68CS_)
{2960, 1666, IMAGERATIO_16_9, "5M"}, // 5M {2960, 1666, IMAGERATIO_16_9, "5M"}, // 5M
@ -45,15 +45,17 @@ static PHOTO_SIZE_PARAM g_PhotoCapSizeTable[PHOTO_SIZE_ID_MAX + 2] = {
// +2 mode (only for internel test!!!) // +2 mode (only for internel test!!!)
{1280, 960, IMAGERATIO_4_3, "1.3M"}, // 1.3M {1280, 960, IMAGERATIO_4_3, "1.3M"}, // 1.3M
{1920, 1080, IMAGERATIO_16_9, "2MHD"}, // 2MHD {1920, 1080, IMAGERATIO_16_9, "2MHD"}, // 2MHD
/*{3648, 2736, IMAGERATIO_4_3, "10M"}, //10M*/
}; };
static PHOTO_SIZE_PARAM g_ScreenNailSizeTable[PHOTO_SIZE_ID_MAX + 2] = { static PHOTO_SIZE_PARAM g_ScreenNailSizeTable[SCREEN_PHOTO_SIZE_ID_MAX + 2] = {
#if defined(_MODEL_565_HUNTING_EVB_LINUX_4G_68CS_) #if defined(_MODEL_565_HUNTING_EVB_LINUX_4G_68CS_)
{1024, 768, IMAGERATIO_4_3, "0.78M"}, // 0.78M {1024, 768, IMAGERATIO_4_3, "0.78M"}, // 0.78M
#elif defined(_MODEL_565_HUNTING_EVB_LINUX_4G_S530_) #elif defined(_MODEL_565_HUNTING_EVB_LINUX_4G_S530_)
{640, 480, IMAGERATIO_4_3, "VGA"}, // VGA {640, 480, IMAGERATIO_4_3, "VGA"}, // VGA
{1024, 768, IMAGERATIO_4_3, "0.78M"}, // 0.78M {1024, 768, IMAGERATIO_4_3, "XGA"}, // 0.78M
{1920, 1440, IMAGERATIO_4_3, "2.76M"}, // 2.76M
#endif #endif
//CFG_SCREENNAIL_W //CFG_SCREENNAIL_W
//CFG_SCREENNAIL_H //CFG_SCREENNAIL_H

View File

@ -258,10 +258,11 @@ SRC = \
./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_md5.c \
./code/source/updataMng/sf_otamng.c \ ./code/source/updataMng/sf_otamng.c
./code/source/wifi/sf_data_transfer.c \
./code/source/wifi/sf_svr_send.c \ # ./code/source/wifi/sf_data_transfer.c \
./code/source/wifi/sf_wifi_svr.c # ./code/source/wifi/sf_svr_send.c \
# ./code/source/wifi/sf_wifi_svr.c
#--------- END OF SOURCEs FOR APPLICATION --------------------------------------------- #--------- END OF SOURCEs FOR APPLICATION ---------------------------------------------

View File

@ -10,6 +10,9 @@ extern "C" {
#define MMZBLOCKSIZE 1024 #define MMZBLOCKSIZE 1024
#define SF_VIDEO_LOOP_NUM 4 /*PIC 3 + VIDEO 1*/ #define SF_VIDEO_LOOP_NUM 4 /*PIC 3 + VIDEO 1*/
#define SF_SEND_LIST_ITEM_LENGTH 15
#define SF_THUMB_SEND_LIST "/mnt/sd/Thumb/send.list"
#define SF_SD_THUMB_PATH_CFG "/mnt/sd/Thumb/ThumbFileCfg" #define SF_SD_THUMB_PATH_CFG "/mnt/sd/Thumb/ThumbFileCfg"
#define SF_FILE_ERROR_NO_FILE SF_ERR_ID(SF_MOD_FILE, ERROR_NO_FILE) #define SF_FILE_ERROR_NO_FILE SF_ERR_ID(SF_MOD_FILE, ERROR_NO_FILE)

View File

@ -208,6 +208,7 @@ typedef enum LedSysState_e
SF_LED_SYS_STATE_POWER_OFF, SF_LED_SYS_STATE_POWER_OFF,
SF_LED_SYS_STATE_PIR_DETECT,/*36*/ SF_LED_SYS_STATE_PIR_DETECT,/*36*/
SF_LED_SYS_STATE_PIR_NOT_DETECT, SF_LED_SYS_STATE_PIR_NOT_DETECT,
SF_LED_SYS_STATE_BAT_0_SLOW,
}LedSysState_t; }LedSysState_t;
typedef struct LedInfo_s typedef struct LedInfo_s

View File

@ -90,7 +90,7 @@ extern "C" {
#define SF_MAX_PATH_LEN 128 #define SF_MAX_PATH_LEN 128
#define SF_MAX_PIC_LEN 64 #define SF_MAX_PIC_LEN 64
#define SF_SRCFILE_MAX 4 #define SF_SRCFILE_MAX 5
#define SF_THUMB_FILE_MAX_LEN 20 #define SF_THUMB_FILE_MAX_LEN 20
@ -459,6 +459,7 @@ typedef enum sf_MCU_MESSAGE_TYPE_E
SF_MCU_CMD_POWERON = 0x1B00, SF_MCU_CMD_POWERON = 0x1B00,
SF_MCU_CMD_LED = 0x1C00, SF_MCU_CMD_LED = 0x1C00,
SF_MCU_CMD_MODULE_SLEEP = 0x1D00, SF_MCU_CMD_MODULE_SLEEP = 0x1D00,
SF_MCU_CMD_MCU_VER = 0x1E00,
}SF_MCU_MESSAGE_TYPE_E; }SF_MCU_MESSAGE_TYPE_E;
@ -474,7 +475,8 @@ typedef enum sf_PARA_MESSAGE_TYPE_E
typedef enum sf_WIFI_MESSAGE_TYPE_E typedef enum sf_WIFI_MESSAGE_TYPE_E
{ {
SF_WIFI_CMD_START = 0x1A00, SF_WIFI_CMD_START = 0x1A00,
SF_WIFI_CMD_STOP = 0x1B00, SF_WIFI_CMD_STOP = 0x1B00,
SF_WIFI_CMD_RESTART = 0x1C00,
}SF_WIFI_MESSAGE_TYPE_E; }SF_WIFI_MESSAGE_TYPE_E;

View File

@ -240,10 +240,10 @@ typedef struct sfPDT_PARAM_STATISTICS_S
typedef struct sf_FILE_ATTR_S { typedef struct sf_FILE_ATTR_S {
SF_FILE_TYPE_E enFileTye; SF_FILE_TYPE_E enFileTye;
SF_CHAR thumbfileName[SF_MAX_PIC_LEN]; char thumbfileName[SF_MAX_PIC_LEN];
SF_CHAR thumbfilePath[SF_MAX_PATH_LEN]; char thumbfilePath[SF_MAX_PATH_LEN];
SF_CHAR txtfilePath[SF_MAX_PATH_LEN]; char txtfilePath[SF_MAX_PATH_LEN];
SF_CHAR txtfileName[SF_MAX_PIC_LEN]; char txtfileName[SF_MAX_PIC_LEN];
UINT32 thumbfileSize; UINT32 thumbfileSize;
}SF_FILE_ATTR_S; }SF_FILE_ATTR_S;

View File

@ -50,7 +50,7 @@
#define SF_DCF_SD_ROOT "/mnt/sd/" /**< DCF File Name (it must be 4-characters) */ #define SF_DCF_SD_ROOT "/mnt/sd/" /**< DCF File Name (it must be 4-characters) */
#define SD_PATH SF_DCF_SD_ROOT //"/sdcard/mmcblk0p1" //mnt/hgfs #define SD_PATH SF_DCF_SD_ROOT //"/sdcard/mmcblk0p1" //mnt/hgfs
#define THUMB_PATH SD_PATH "/DCIM/THUMB/SMALL" #define THUMB_PATH SD_PATH "Thumb"
#define THUMB_HD_PATH SD_PATH "/DCIM/THUMB/LARGE" #define THUMB_HD_PATH SD_PATH "/DCIM/THUMB/LARGE"
#define SF_DCF_SD_ROOT2 "/sdcard/mmcblk0p1/" /**< DCF File Name (it must be 4-characters) */ #define SF_DCF_SD_ROOT2 "/sdcard/mmcblk0p1/" /**< DCF File Name (it must be 4-characters) */
#define SD_PATH2 SF_DCF_SD_ROOT2 //"/sdcard/mmcblk0p1" //mnt/hgfs #define SD_PATH2 SF_DCF_SD_ROOT2 //"/sdcard/mmcblk0p1" //mnt/hgfs

View File

@ -49,6 +49,7 @@
#include <sf_hal_ttyusb.h> #include <sf_hal_ttyusb.h>
#include <sys/vfs.h> #include <sys/vfs.h>
#include "sf_keymng.h" #include "sf_keymng.h"
#include "sf_wifi_svr.h"
extern pthread_mutex_t Param_mutexLock; extern pthread_mutex_t Param_mutexLock;
extern pthread_mutex_t GPIO_mutexLock; extern pthread_mutex_t GPIO_mutexLock;
@ -61,8 +62,8 @@ void sf_signalStop(SINT32 signo)
printf("\nsignalStop(signal code: %d) !!!\n", signo); printf("\nsignalStop(signal code: %d) !!!\n", signo);
sf_share_mem_file_deinit(); sf_share_mem_file_deinit();
sf_share_mem_customer_deinit(); sf_share_mem_customer_deinit();
sf_led_stop();
sf_commu_mcu_task_stop(); sf_commu_mcu_task_stop();
sf_led_stop();
_exit(0); _exit(0);
} }
@ -98,8 +99,8 @@ int main(int argc, char *argv[])
printf("*********************************************\n"); printf("*********************************************\n");
//gpio_direction_input(C_GPIO(10)); //gpio_direction_input(C_GPIO(10));
SINT16 startup = 0; SINT16 startup = 0;
SF_MESSAGE_BUF_S stMessageBuf = {0}; //SF_MESSAGE_BUF_S stMessageBuf = {0};
BOOL autosend = FALSE; //BOOL autosend = FALSE;
SF_MUTEX_INIT_LOCK(Param_mutexLock); SF_MUTEX_INIT_LOCK(Param_mutexLock);
SF_MUTEX_INIT_LOCK(GPIO_mutexLock); SF_MUTEX_INIT_LOCK(GPIO_mutexLock);
//test_sd_free(); //test_sd_free();
@ -154,10 +155,14 @@ int main(int argc, char *argv[])
//app_led_pin_init(); //app_led_pin_init();
//app_upgrade_sd_execute(); //app_upgrade_sd_execute();
app_preinit(); app_preinit();
//#if
app_RegisterNet_start();
//#endif
startup = sf_poweron_type_get(); startup = sf_poweron_type_get();
if(SF_MCU_STARTUP_ONKEY == startup)
{
//sf_wifi_app_start();
}
//#if
//app_RegisterNet_start();
//#endif
SLOGD("poweron type beginning :[%d,%s]\n", startup, sf_poweron_type_string(startup)); SLOGD("poweron type beginning :[%d,%s]\n", startup, sf_poweron_type_string(startup));
/*if(SF_MCU_STARTUP_ONKEY != startup) /*if(SF_MCU_STARTUP_ONKEY != startup)
{ {

View File

@ -51,7 +51,7 @@ extern "C" {
#include "sf_system.h" #include "sf_system.h"
#include "sf_service.h" #include "sf_service.h"
#include <FileSysTsk.h> #include <FileSysTsk.h>
#include "sf_wifi_svr.h" //#include "sf_wifi_svr.h"
extern pthread_mutex_t Param_mutexLock; extern pthread_mutex_t Param_mutexLock;
@ -675,6 +675,12 @@ static SINT32 app_proccess_cmd_mcu(SF_MESSAGE_BUF_S *pMessageBuf)
stMessageBuf.arg1 = SF_MCU_CMD_POWERON; stMessageBuf.arg1 = SF_MCU_CMD_POWERON;
stMessageBuf.arg2 = (SINT32)sf_convert_power_on_mode(); stMessageBuf.arg2 = (SINT32)sf_convert_power_on_mode();
stMessageBuf.arg3 = (SINT32)sf_mcu_get_irshtter(); stMessageBuf.arg3 = (SINT32)sf_mcu_get_irshtter();
stMessageBuf.cmdId = CMD_MCU;
sf_com_message_send_to_cardv(&stMessageBuf);
stMessageBuf.arg1 = SF_MCU_CMD_MCU_VER;
stMessageBuf.arg2 = (SINT32)sf_get_mcu_sub_ver();
stMessageBuf.arg3 = (SINT32)sf_get_mcu_ver();
stMessageBuf.cmdId = CMD_MCU; stMessageBuf.cmdId = CMD_MCU;
sf_com_message_send_to_cardv(&stMessageBuf); sf_com_message_send_to_cardv(&stMessageBuf);
break; break;
@ -711,7 +717,7 @@ static SINT32 sf_proccess_cmd_wifi(SF_MESSAGE_BUF_S *pMessageBuf)
switch(pMessageBuf->arg1) switch(pMessageBuf->arg1)
{ {
case SF_WIFI_CMD_START: case SF_WIFI_CMD_START:
sf_wifi_app_start(); //sf_wifi_app_start();
sf_sys_status_led_set(SF_LED_SYS_STATE_WIFI_DISCONNECT); sf_sys_status_led_set(SF_LED_SYS_STATE_WIFI_DISCONNECT);
break; break;

View File

@ -1241,6 +1241,7 @@ static SINT32 app_Register_Net_startup_mode(SF_FN_PARAM_S *pfnParam)
// s32ret = sf_qrcode_create(pStaticParam->IMEI,pStaticParam->SimID ,version); // s32ret = sf_qrcode_create(pStaticParam->IMEI,pStaticParam->SimID ,version);
s32ret = sf_4G_register_net_manual(pfnParam); s32ret = sf_4G_register_net_manual(pfnParam);
sf_share_mem_customer_down(1);
SF_APPCOMM_CHECK_RETURN(s32ret,s32ret); SF_APPCOMM_CHECK_RETURN(s32ret,s32ret);
#ifdef SF_GPS_TEST #ifdef SF_GPS_TEST
@ -1377,6 +1378,7 @@ static SINT32 app_Register_Net_startup_mode(SF_FN_PARAM_S *pfnParam)
SF_APPCOMM_CHECK_RETURN(s32ret,SF_APP_ERROR_REQUEST); SF_APPCOMM_CHECK_RETURN(s32ret,SF_APP_ERROR_REQUEST);
s32ret = sf_4G_register_net_auto(pfnParam); s32ret = sf_4G_register_net_auto(pfnParam);
sf_share_mem_customer_down(1);
SF_APPCOMM_CHECK_RETURN(s32ret,SF_APP_ERROR_REQUEST); SF_APPCOMM_CHECK_RETURN(s32ret,SF_APP_ERROR_REQUEST);
//sf_thumb_file_creat(); //sf_thumb_file_creat();

View File

@ -237,6 +237,7 @@ pthread_t ledTskId;
//static BOOL isIrLedOn = FALSE; //static BOOL isIrLedOn = FALSE;
static BOOL isGoToPir = FALSE; static BOOL isGoToPir = FALSE;
static unsigned char isLedExit = 1;
static BOOL isUsbIn = FALSE; static BOOL isUsbIn = FALSE;
#if HW_S530 #if HW_S530
@ -299,7 +300,7 @@ void* sf_runningLed_thread(void *arg)
UINT8 run = 0; UINT8 run = 0;
UINT8 time = 0; UINT8 time = 0;
while(1) while(isLedExit)
{ {
if(isRunningLedOn) if(isRunningLedOn)
{ {
@ -367,7 +368,7 @@ void* sf_runningLed_thread(void *arg)
} }
printf("[%s:%d] e \n", __FUNCTION__, __LINE__); printf("[%s:%d] e \n", __FUNCTION__, __LINE__);
pthread_exit(0);
} }
#endif #endif
@ -378,7 +379,7 @@ void* sf_led_thread(void *arg)
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(1) while(isLedExit)
{ {
for(i = 0; i < SF_LED_ALL; i++) for(i = 0; i < SF_LED_ALL; i++)
@ -467,6 +468,7 @@ void* sf_led_thread(void *arg)
} }
printf("[%s:%d] e \n", __FUNCTION__, __LINE__); printf("[%s:%d] e \n", __FUNCTION__, __LINE__);
pthread_exit(0);
} }
@ -527,7 +529,7 @@ 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*/
isLedExit = 1;
pthread_create(&ledTskId, NULL, sf_led_thread, NULL); pthread_create(&ledTskId, NULL, sf_led_thread, NULL);
#if HW_S530 #if HW_S530
/*thread creat*/ /*thread creat*/
@ -539,13 +541,33 @@ void sf_led_init(void)
void sf_led_stop(void) void sf_led_stop(void)
{ {
SINT32 s32ret = SF_SUCCESS; SINT32 s32ret = SF_SUCCESS;
isLedExit = 0;
printf("[%s:%d] s\n", __FUNCTION__, __LINE__);
s32ret = pthread_join(ledTskId, NULL);
if(s32ret != SF_SUCCESS)
{
MLOGD("ledTskId thread stop fail!\n");
//return s32ret;
}
printf("[%s:%d] s\n", __FUNCTION__, __LINE__);
s32ret = pthread_cancel(ledTskId); s32ret = pthread_cancel(ledTskId);
if(s32ret != SF_SUCCESS) if(s32ret != SF_SUCCESS)
{ {
MLOGD("ledTskId thread cancel fail!\n"); MLOGD("ledTskId thread cancel fail!\n");
//return s32ret; //return s32ret;
} }
printf("[%s:%d] s\n", __FUNCTION__, __LINE__);
#if HW_S530
s32ret = pthread_join(ledRunningTskId, NULL);
if(s32ret != SF_SUCCESS)
{
MLOGD("ledRunningTskId thread stop fail!\n");
}
#endif
printf("[%s:%d] s\n", __FUNCTION__, __LINE__);
#if HW_S530 #if HW_S530
s32ret = pthread_cancel(ledRunningTskId); s32ret = pthread_cancel(ledRunningTskId);
if(s32ret != SF_SUCCESS) if(s32ret != SF_SUCCESS)
@ -554,19 +576,7 @@ void sf_led_stop(void)
} }
#endif #endif
s32ret = pthread_join(ledTskId, NULL); printf("[%s:%d] e\n", __FUNCTION__, __LINE__);
if(s32ret != SF_SUCCESS)
{
MLOGD("ledTskId thread stop fail!\n");
//return s32ret;
}
#if HW_S530
s32ret = pthread_join(ledRunningTskId, NULL);
if(s32ret != SF_SUCCESS)
{
MLOGD("ledRunningTskId thread stop fail!\n");
}
#endif
} }
@ -816,6 +826,12 @@ void sf_sys_status_led_set(LedSysState_t ledSysStateId)
case SF_LED_SYS_STATE_PIR_NOT_DETECT: case SF_LED_SYS_STATE_PIR_NOT_DETECT:
sf_led_set(SF_LED_BUSY, SF_LED_STATE_ON); sf_led_set(SF_LED_BUSY, SF_LED_STATE_ON);
break; break;
case SF_LED_SYS_STATE_BAT_0_SLOW:
sf_led_set(SF_LED_BAT1, SF_LED_STATE_SLOW_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;
default: default:
break; break;

View File

@ -22,6 +22,8 @@ extern "C" {
SF_SRCFILE_ATTR_S *pThumbFileCfg = 0; SF_SRCFILE_ATTR_S *pThumbFileCfg = 0;
char SendFileList[201][SF_SEND_LIST_ITEM_LENGTH] = {{0}}; //for 200 files
UINT8 SendFileTotal = 0;
//"^HRT[0-9]{5}.txt$" //"^HRT[0-9]{5}.txt$"
//"^W[0-9]{7}.txt$" //"^W[0-9]{7}.txt$"
@ -682,7 +684,7 @@ BOOL sf_check_auto_thumb_file(VOID)
if(fp == NULL){ if(fp == NULL){
return FALSE; return FALSE;
} }
u32ize = ftell(fp); u32ize = fseek(fp, 0, SEEK_SET);
if (fileCfg) { if (fileCfg) {
fread(fileCfg, 1, sizeof(SF_SRCFILE_ATTR_S), fp); fread(fileCfg, 1, sizeof(SF_SRCFILE_ATTR_S), fp);
@ -704,6 +706,107 @@ BOOL sf_check_auto_thumb_file(VOID)
return ret; return ret;
} }
/*************************************************
Function: sf_get_send_file_list
Description: get send file list
Input: sendfname
Output: N/A
Return: N/A
Others: N/A
*************************************************/
UINT8 sf_get_send_file_list(char *sendfileList, UINT8 *fileTotal)
{
UIMenuStoreInfo *pPara = sf_app_ui_para_get();
char sendListName[64] = {0};
FILE *fd = NULL;
UINT32 fsize = 0;
UINT8 i = 0;
UINT8 MaxFileNum = 200;
UINT32 oldFileKey = 0;
char oldFileName[SF_SEND_LIST_ITEM_LENGTH+1] = {0};
char *pFileHasSend = NULL;
UINT32 fileOffset = 0;
strcpy(sendListName, SF_THUMB_SEND_LIST);
sf_file_size_get(sendListName, &fsize);
fd = fopen(sendListName,"r");
if(fd == 0)
{
printf("[ERROR]send.list open filed\n");
printf("sendListName:%s\n", sendListName);
return FAIL;
}
else
{
if(pPara->SendMaxNum == 0) //unlimited
{
MaxFileNum = 100;//(sf_battery_value_get(0) >= 50 ? 200 : 100);// the last 100/200 files
}
else
{
MaxFileNum = 100;//pPara->SendMaxNum - pSifarPara->picSendMax;
}
printf("Get send.List MaxFileNum:%d\n", MaxFileNum);
//fsize = sp5kFsFileSizeGet(fd);
if(fsize == 0)
{
fclose(fd);
sf_file_remove(sendListName);
return FAIL;
}
else if(fsize%SF_SEND_LIST_ITEM_LENGTH) //format error delete file list
{
//sf_error_log((SINT8 *)"FTP ERROR: 303\n");
printf("%s:%d FTP ERROR: 303\n", __FUNCTION__, __LINE__);
fclose(fd);
sf_file_remove(sendListName);
return FAIL;
}
else if(fsize > MaxFileNum*SF_SEND_LIST_ITEM_LENGTH) // the last 100/200 files
{
fseek(fd, fsize-MaxFileNum*SF_SEND_LIST_ITEM_LENGTH, SEEK_SET);
fsize = MaxFileNum*SF_SEND_LIST_ITEM_LENGTH;
}
*fileTotal = fsize/SF_SEND_LIST_ITEM_LENGTH;
printf("fileTotal=%d, fsize=%d\n", *fileTotal, fsize);
fread(sendfileList, fsize, 1, fd);
fclose(fd);
oldFileKey = pPara->FileKey;
printf("last send key:%d\n", oldFileKey);
//oldFileKey = 1000003; //for debug
if((oldFileKey >= 1000001) && (oldFileKey <= 9999999)) //W1000001.JPG W9999999.JPG
{
sprintf(oldFileName, "W%ld.JPG", oldFileKey);
printf("last send file:%s\n", oldFileName);
pFileHasSend = strstr(sendfileList, oldFileName); //MAX spend time <= 310ms
if(pFileHasSend != NULL)
{
pFileHasSend -= 1;
fileOffset = abs(pFileHasSend - sendfileList) + SF_SEND_LIST_ITEM_LENGTH;
fsize -= fileOffset;
printf("fileOffset=%d\n", fileOffset);
memmove(sendfileList, pFileHasSend + SF_SEND_LIST_ITEM_LENGTH, fsize);
*(sendfileList+fsize) = '\0';
*fileTotal = fsize/SF_SEND_LIST_ITEM_LENGTH;
printf("fileTotal=%d, fsize=%d\n", *fileTotal, fsize);
}
}
for(i=1; i <= *fileTotal; i++) // remove \r
{
*(sendfileList+i*SF_SEND_LIST_ITEM_LENGTH-2) = '\0';
}
//memdump(sendfileList, fsize);
//printf("get Success\n");
return SUCCESS;
}
}
#ifdef __cplusplus #ifdef __cplusplus
#if __cplusplus #if __cplusplus
} }

View File

@ -1024,8 +1024,10 @@ void sf_commu_mcu_task_start(void)
void sf_commu_mcu_task_stop(void) void sf_commu_mcu_task_stop(void)
{ {
printf("[%s:%d] s\n", __FUNCTION__, __LINE__);
sf_commu_mcu_exit = 1; sf_commu_mcu_exit = 1;
pthread_join(sfCommuMcuThread, NULL); pthread_join(sfCommuMcuThread, NULL);
printf("[%s:%d] e\n", __FUNCTION__, __LINE__);
} }
unsigned char sf_commu_mcu_task_running(void) unsigned char sf_commu_mcu_task_running(void)

View File

@ -32,12 +32,13 @@
#include <sys/socket.h> #include <sys/socket.h>
#include <sys/times.h> #include <sys/times.h>
#include "sf_common.h" //#include "sf_common.h"
#include "sf_wifi_svr.h" #include "sf_wifi_svr.h"
#include "sf_data_transfer.h" #include "sf_data_transfer.h"
#include "sf_svr_send.h" #include "sf_svr_send.h"
#include "sf_system.h" #include "sf_system.h"
#include "sf_common.h"
//#include "sf_customer_app.h" //#include "sf_customer_app.h"
//#include "sf_4g_common.h" //#include "sf_4g_common.h"
@ -474,7 +475,7 @@ void *sf_DataSvrTransferThread(void *addr)
} }
else if(pClient->map.function == 1) //upload else if(pClient->map.function == 1) //upload
{ {
app_poweroff_time_clear();/*reset power off count time*/ sf_set_auto_off_time(0);/*reset power off count time*/
if(pClient->map.fd == 0) if(pClient->map.fd == 0)
{ {
pClient->map.fileName[strlen((char *)(pClient->map.fileName))+1]=0; pClient->map.fileName[strlen((char *)(pClient->map.fileName))+1]=0;
@ -561,7 +562,7 @@ void *sf_DataSvrTransferThread(void *addr)
} }
else if(pClient->map.function == 2) //download else if(pClient->map.function == 2) //download
{ {
app_poweroff_time_clear();/*reset power off count time*/ sf_set_auto_off_time(0);/*reset power off count time*/
// printf("[read],fd:%x,pClient->map.fileName:%s,len:%d\n",pClient->map.fd,pClient->map.fileName,strlen((char*)(pClient->map.fileName))); // printf("[read],fd:%x,pClient->map.fileName:%s,len:%d\n",pClient->map.fd,pClient->map.fileName,strlen((char*)(pClient->map.fileName)));
if(pClient->map.fd <= 0) if(pClient->map.fd <= 0)
{ {

View File

@ -21,7 +21,7 @@
#include <net/if.h> #include <net/if.h>
#include <sys/ioctl.h> #include <sys/ioctl.h>
#include "sf_common.h" //#include "sf_common.h"
//#include "sf_syslib.h" //#include "sf_syslib.h"
//#include "sf_para.h" //#include "sf_para.h"
@ -45,6 +45,15 @@
#include "sf_system.h" #include "sf_system.h"
#include "sf_storeMng.h" #include "sf_storeMng.h"
#include "sf_ledmng.h" #include "sf_ledmng.h"
#include "sf_common.h"
#include "sf_battery.h"
#include "sf_sd_common.h"
#include "NvtUser/NvtBack.h"
#include "UIBackgroundObj.h"
#include "NVTUserCommand.h"
#include "NvtUser/NvtUser.h"
#include "Mode/UIModePhoto.h"
#include "Mode/UIModeMovie.h"
#if SF_LPA_SDK #if SF_LPA_SDK
#include "lpasdk/api/lpasdk_api.h" #include "lpasdk/api/lpasdk_api.h"
@ -138,7 +147,7 @@ extern UINT8 SendingFile;
void dataClientListPrint(void); void dataClientListPrint(void);
/*
static UINT32 sf_set_pir_sensitivity_app(UINT8 pirs) static UINT32 sf_set_pir_sensitivity_app(UINT8 pirs)
{ {
UINT8 digPirLevel[10] = {200, 38, 30, 24, 18, 16, 10, 9, 8, 7}; UINT8 digPirLevel[10] = {200, 38, 30, 24, 18, 16, 10, 9, 8, 7};
@ -164,15 +173,16 @@ static UINT32 sf_set_pir_sensitivity_app(UINT8 pirs)
return SUCCESS; return SUCCESS;
} }
*/
static S32 sf_get_sd_info(UINT32 *pSDStatus, UINT32 *pSDFree, UINT32 *pSDTotalSize) static S32 sf_get_sd_info(UINT32 *pSDStatus, UINT32 *pSDFree, UINT32 *pSDTotalSize)
{ {
int fd = -1; int fd = -1;
fd = open(SD_PATH2, O_RDONLY,0); fd = open(SD_PATH, O_RDONLY,0);
if(fd >= 0) if(fd >= 0)
{ {
struct statfs diskInfo; struct statfs diskInfo;
statfs(SD_PATH2, &diskInfo); statfs(SD_PATH, &diskInfo);
/*printf("f_type=%ld\n", diskInfo.f_type); /*printf("f_type=%ld\n", diskInfo.f_type);
printf("f_bsize=%ld\n", diskInfo.f_bsize); printf("f_bsize=%ld\n", diskInfo.f_bsize);
printf("f_blocks=%ld\n", diskInfo.f_blocks); printf("f_blocks=%ld\n", diskInfo.f_blocks);
@ -295,7 +305,7 @@ UINT32 sp5kFsFileSizeGet(const char *path)
void memdump(void *p,int len) void memdump(void *p,int len)
{ {
return; return;
#if 0
int i,j,k; int i,j,k;
char binstr[80]; char binstr[80];
char *buf = p; char *buf = p;
@ -346,6 +356,7 @@ void memdump(void *p,int len)
printf("%s\n",binstr); printf("%s\n",binstr);
} }
printf("\n"); printf("\n");
#endif
} }
void appThumbNameToKey(thumbType_t *fileType, UINT16 *dirKey, UINT16 *fileKey, S8 *fileName) void appThumbNameToKey(thumbType_t *fileType, UINT16 *dirKey, UINT16 *fileKey, S8 *fileName)
@ -796,14 +807,14 @@ void sf_app_Get_Camera_Info(MSG_DEV_INFO_Get_Rsp_T *camInfo)
//strcpy((char *)camInfo->devId, "1.0.0.1"); //strcpy((char *)camInfo->devId, "1.0.0.1");
printf("[sf_app_Get_Camera_Info],devId\n"); printf("[sf_app_Get_Camera_Info],devId\n");
camInfo->batLevel = 5;//sf_get_battery_level(1); camInfo->batLevel = sf_battery_level_get();
if(camInfo->batLevel < 1) if(camInfo->batLevel < 1)
camInfo->batLevel = 1; camInfo->batLevel = 1;
printf("[sf_app_Get_Camera_Info],sf_get_Battery_Level\n"); printf("[sf_app_Get_Camera_Info],sf_get_Battery_Level\n");
//camInfo->batteryPercent = camInfo->batLevel * 20; //camInfo->batteryPercent = camInfo->batLevel * 20;
camInfo->batteryPercent = 1;//sf_get_battery_percent(1); camInfo->batteryPercent = sf_battery_value_get(sf_get_night_led_flag());
camInfo->batteryType = 0; camInfo->batteryType = 0;
@ -820,7 +831,7 @@ void sf_app_Get_Camera_Info(MSG_DEV_INFO_Get_Rsp_T *camInfo)
//camInfo->GpsLongitude = htonl(0); //camInfo->GpsLongitude = htonl(0);
//camInfo->GpsLatitude = htonl(0); //camInfo->GpsLatitude = htonl(0);
#endif #endif
strcpy((char *)camInfo->hwType, "REVEAL-SK"); strcpy((char *)camInfo->hwType, "reveal-x");
//S8 strTemp[16]= {0}; //S8 strTemp[16]= {0};
//sf_get_sys_version(strTemp); //sf_get_sys_version(strTemp);
@ -856,8 +867,7 @@ void sf_app_Get_Camera_Info(MSG_DEV_INFO_Get_Rsp_T *camInfo)
if(WIFI_TYPE_8189FS == sf_get_wifi_type()) if(WIFI_TYPE_8189FS == sf_get_wifi_type())
{ {
sf_get_mac_addr(SF_WIFI_NETDEV_8189_NAME, camInfo->WifiMac); sf_get_mac_addr(SF_WIFI_NETDEV_8189_NAME, camInfo->WifiMac);
} }else if(WIFI_TYPE_HI3881 == sf_get_wifi_type())
else if(WIFI_TYPE_HI3881 == sf_get_wifi_type())
{ {
sf_get_mac_addr(SF_WIFI_NETDEV_NAME, camInfo->WifiMac); sf_get_mac_addr(SF_WIFI_NETDEV_NAME, camInfo->WifiMac);
} }
@ -896,15 +906,15 @@ void sf_app_Get_Camera_Para(MSG_DEV_Param_Get_Rsp_T *CamPara)
//CamPara->cameraMode = puiPara->CamMode; //CamPara->cameraMode = puiPara->CamMode;
if(puiPara->ImgSize == 3) if(puiPara->ImgSize == 2)
{ {
CamPara->imageSize = 0; CamPara->imageSize = 0;
} }
else if(puiPara->ImgSize == 4) else if(puiPara->ImgSize == 3)
{ {
CamPara->imageSize = 1; CamPara->imageSize = 1;
} }
else if(puiPara->ImgSize == 2) else if(puiPara->ImgSize == 4)
{ {
CamPara->imageSize = 2; CamPara->imageSize = 2;
} }
@ -1152,7 +1162,7 @@ SINT32 sf_svr_packet_proc(SINT32 fd, UINT8 *pAppData, UINT16 dataLen)
} }
else else
{ {
app_poweroff_time_clear();/*reset power off count time*/ sf_set_auto_off_time(0);/*reset power off count time*/
CurrentWifiCmd = msgParse.cmd; CurrentWifiCmd = msgParse.cmd;
} }
} }
@ -1328,21 +1338,44 @@ SINT32 sf_svr_packet_proc(SINT32 fd, UINT8 *pAppData, UINT16 dataLen)
if(tmpMode == 0) if(tmpMode == 0)
{ {
puiPara->CamMode = SF_CAMMODE_PIC; puiPara->CamMode = SF_CAM_MODE_PHOTO;
} }
else if (tmpMode == 1) else if (tmpMode == 1)
{ {
puiPara->CamMode = SF_CAMMODE_PV; puiPara->CamMode = SF_CAM_MODE_PHOTO_VIDEO;
} }
else if (tmpMode == 2) else if (tmpMode == 2)
{ {
puiPara->CamMode = SF_CAMMODE_VIDEO; puiPara->CamMode = SF_CAM_MODE_VIDEO;
} }
else else
{ {
puiPara->CamMode = SF_CAMMODE_PIC; puiPara->CamMode = SF_CAM_MODE_PHOTO;
} }
int iCurrMode = System_GetState(SYS_STATE_CURRMODE);
int iNextMode = PRIMARY_MODE_PHOTO;
if((puiPara->CamMode == SF_CAM_MODE_PHOTO) || (puiPara->CamMode == SF_CAM_MODE_PHOTO_VIDEO))
{
iNextMode = PRIMARY_MODE_PHOTO;
}
else if(puiPara->CamMode == SF_CAM_MODE_VIDEO)
{
iNextMode = PRIMARY_MODE_MOVIE;
}
else
{
iNextMode = PRIMARY_MODE_PHOTO;
}
if(iNextMode != iCurrMode)
{
UI_SetData(FL_PreMode, iCurrMode);
UI_SetData(FL_NextMode, iNextMode);
Ux_PostEvent(NVTEVT_SYSTEM_MODE, 1, iNextMode);
}
Save_MenuInfo();
//sf_set_cam_mode(puiPara->CamMode); //sf_set_cam_mode(puiPara->CamMode);
respFlag = 2; respFlag = 2;
paramSaveFlag = 1; paramSaveFlag = 1;
@ -1403,8 +1436,7 @@ SINT32 sf_svr_packet_proc(SINT32 fd, UINT8 *pAppData, UINT16 dataLen)
{ {
puiPara->SendMultishotIndex2 = 0; puiPara->SendMultishotIndex2 = 0;
puiPara->SendMultishotIndex3 = 0; puiPara->SendMultishotIndex3 = 0;
} }else
else
{ {
if(puiPara->Multishot == 0) if(puiPara->Multishot == 0)
{ {
@ -1428,7 +1460,7 @@ SINT32 sf_svr_packet_proc(SINT32 fd, UINT8 *pAppData, UINT16 dataLen)
case WIFI_SET_CAMERA_PirSensitivity: //O case WIFI_SET_CAMERA_PirSensitivity: //O
printf("[WIFI_SET_CAMERA_PirSensitivity],DigitPirSensitivity:%d\n",pMsgStruct->msgBuf.setPirSensitivity.PirSensitivity); printf("[WIFI_SET_CAMERA_PirSensitivity],DigitPirSensitivity:%d\n",pMsgStruct->msgBuf.setPirSensitivity.PirSensitivity);
sf_set_pir_sensitivity_app(pMsgStruct->msgBuf.setPirSensitivity.PirSensitivity % 10); sf_set_pir_sensitivity(pMsgStruct->msgBuf.setPirSensitivity.PirSensitivity % 10);
/*puiPara->PirSensitivity = pMsgStruct->msgBuf.setPirSensitivity.PirSensitivity % 10; /*puiPara->PirSensitivity = pMsgStruct->msgBuf.setPirSensitivity.PirSensitivity % 10;
if(puiPara->PirSensitivity) if(puiPara->PirSensitivity)
@ -1628,7 +1660,7 @@ SINT32 sf_svr_packet_proc(SINT32 fd, UINT8 *pAppData, UINT16 dataLen)
puiPara->TimelapseTime.Sec = pMsgStruct->msgBuf.setTimeLapseTime.timelapseSec % 60; puiPara->TimelapseTime.Sec = pMsgStruct->msgBuf.setTimeLapseTime.timelapseSec % 60;
if(puiPara->TimelapseSwitch) if(puiPara->TimelapseSwitch)
{ {
sf_set_pir_sensitivity_app(0); sf_set_pir_sensitivity(0);
} }
respFlag = 2; respFlag = 2;
paramSaveFlag = 1; paramSaveFlag = 1;
@ -1658,27 +1690,13 @@ SINT32 sf_svr_packet_proc(SINT32 fd, UINT8 *pAppData, UINT16 dataLen)
printf("[WIFI_CONTROL_CAMERA_FormatSDCard],format:%d\n",pMsgStruct->msgBuf.ctrlFormat.format); printf("[WIFI_CONTROL_CAMERA_FormatSDCard],format:%d\n",pMsgStruct->msgBuf.ctrlFormat.format);
if(pMsgStruct->msgBuf.ctrlFormat.format == 1) if(pMsgStruct->msgBuf.ctrlFormat.format == 1)
{ {
//ret = appDiskFormat(SP5K_DRIVE_SD); sf_set_card_statu(CMD_FORMAT_SD_STA);
BKG_PostEvent(NVTEVT_BKW_FORMAT_CARD);
//sf_sd_format(); while(CMD_FORMAT_SD_STA == sf_get_card_statu())
//ret = sf_sd_card_format(); {
usleep(10*1000);
/*if(ret == SF_SD_FORMAT_SUCUSS) }
{ ret = sf_get_card_statu();
sleep(1);
sf_dcf_init();
if((sf_get_sd_status() == SF_SD_FULL) || ((sf_get_sd_status() == SF_SD_OK)))
{
system("umount /sdcard/mmcblk0p1");
sleep(1);
//system("mount /dev/mmcblk0p1 /sdcard/mmcblk0p1");
}
ret = 0;
}
else
{
ret = 0x10;
}*/
} }
msgParse.msgBuf.camreaSetRsp.cmdRet = ret; msgParse.msgBuf.camreaSetRsp.cmdRet = ret;
msgParse.msgBuf.camreaSetRsp.suffix = htons(MSG_END_FIX); msgParse.msgBuf.camreaSetRsp.suffix = htons(MSG_END_FIX);
@ -1697,7 +1715,7 @@ SINT32 sf_svr_packet_proc(SINT32 fd, UINT8 *pAppData, UINT16 dataLen)
case WIFI_CONTROL_CAMERA_Recovery: // case WIFI_CONTROL_CAMERA_Recovery: //
printf("[WIFI_CONTROL_CAMERA_Recovery]\n"); printf("[WIFI_CONTROL_CAMERA_Recovery]\n");
//sf_reset_para(); Reset_MenuInfo();
//sf_daily_report_count_clear(); //sf_daily_report_count_clear();
paraNeedReboot = 1; paraNeedReboot = 1;
respFlag = 2; respFlag = 2;
@ -1711,7 +1729,7 @@ SINT32 sf_svr_packet_proc(SINT32 fd, UINT8 *pAppData, UINT16 dataLen)
//jiamin:reset all para //jiamin:reset all para
//app_in = 0; //app_in = 0;
//isStopStreaming = 1; //isStopStreaming = 1;
app_poweroff_time_clear(); sf_set_auto_off_time(0);
#if 0//forrun #if 0//forrun
poweroff_mode = POWEROFF_COUNTDOWN; poweroff_mode = POWEROFF_COUNTDOWN;
#endif #endif
@ -1867,10 +1885,32 @@ SINT32 sf_svr_packet_proc(SINT32 fd, UINT8 *pAppData, UINT16 dataLen)
break; break;
case WIFI_CONTROL_CAMERA_SHOOT: case WIFI_CONTROL_CAMERA_SHOOT:
printf("[WIFI_SET_CAMERA_SHOOT]\n"); printf("[WIFI_SET_CAMERA_SHOOT] shoot:%d\n",pMsgStruct->msgBuf.ctrlShoot.shoot);
#if 1
if((TRUE == sf_is_preview()) && (pMsgStruct->msgBuf.ctrlShoot.shoot <= 3))
{
if((puiPara->CamMode != 1) && (pMsgStruct->msgBuf.ctrlShoot.shoot < 3))
{
//Ux_PostEvent(NVTEVT_KEY_SHUTTER2, 1, NVTEVT_KEY_PRESS);
//Ux_PostEvent(NVTEVT_KEY_SHUTTER2, 1, NVTEVT_KEY_RELEASE);
FlowPhoto_DoCapture();
respFlag = 1;
ret = 0;
}
else
{
respFlag = 1;
ret = 1;
}
}else
{
respFlag = 1;
ret = 2;
}
#if 0
/* during send pic, can not capture*/ /* during send pic, can not capture*/
if((sf_4G_status_get() == SF_4G_SENDING) || (!((sf_sd_status_get()== SF_SD_OK) || (sf_sd_status_get()== SF_SD_FULL)))) if((sf_4G_status_get() == SF_4G_SENDING) || (!((System_GetState(SYS_STATE_CARD) == CARD_INSERTED) || (sf_is_card_full()== TRUE))))
{ {
//nothing to do //nothing to do
} }
@ -1981,6 +2021,7 @@ SINT32 sf_svr_packet_proc(SINT32 fd, UINT8 *pAppData, UINT16 dataLen)
{ {
//sf_set_param_save_flag(); //sf_set_param_save_flag();
//sf_param_save_flash(); //sf_param_save_flash();
Save_MenuInfo();
} }
if(respFlag == 2) if(respFlag == 2)
@ -2480,13 +2521,17 @@ void sf_wifi_hw_init(void)
char scmd[256]= {0}; char scmd[256]= {0};
UIMenuStoreInfo *puiPara = sf_app_ui_para_get(); UIMenuStoreInfo *puiPara = sf_app_ui_para_get();
char sSSID[128]= {0}; char sSSID[128]= {0};
printf("[%s:%d] s\n", __FUNCTION__, __LINE__);
unsigned char wifitype = sf_get_wifi_type();
//ret = system("modprobe cfg80211"); //ret = system("modprobe cfg80211");
if(WIFI_TYPE_8189FS == sf_get_wifi_type()) if(WIFI_TYPE_8189FS == wifitype)
{ {
//ret = system("insmod /appfs/8189fs.ko"); //ret = system("insmod /appfs/8189fs.ko");
//ret = system("modprobe 8189fs");
//sleep(2); //sleep(2);
//ret = system("ifconfig lo 127.0.0.1");
sf_getb_mac(SF_WIFI_NETDEV_8189_NAME, smac); sf_getb_mac(SF_WIFI_NETDEV_8189_NAME, smac);
// ret = system("ifconfig ap0 192.168.1.1 netmask 255.255.255.0 up"); // ret = system("ifconfig ap0 192.168.1.1 netmask 255.255.255.0 up");
@ -2498,12 +2543,25 @@ void sf_wifi_hw_init(void)
ret = system("ifconfig wlan0 192.168.1.1 netmask 255.255.255.0 up"); ret = system("ifconfig wlan0 192.168.1.1 netmask 255.255.255.0 up");
//ret = system("hostapd -ddd /appfs/etc/hostapd/hostapd-8189.conf &"); //ret = system("hostapd -ddd /appfs/etc/hostapd/hostapd-8189.conf &");
//ret = system("udhcpd /appfs/etc/udhcpd-8189.conf"); //ret = system("udhcpd /appfs/etc/udhcpd-8189.conf");
//FILE *fp;
//char filename[] = "/tmp/wifiap_wpa2.conf";
//int ssid_pos = -1;
sprintf(scmd,"/appfs/bin/hostap.sh wpawpa2 %s %s 6 %s",sSSID,puiPara->WifiApPWD,SF_WIFI_NETDEV_8189_NAME); //char buf[256];
ret = system("cp /etc/wifiap_wpa2.conf /tmp/wifiap_wpa2.conf");
printf("[%s:%d] sSSID:%s WifiApPWD:%s\n", __FUNCTION__, __LINE__,sSSID,puiPara->WifiApPWD);
sprintf(scmd,"/etc/app/hostap.sh wpawpa2 %s %s 6 %s",sSSID,puiPara->WifiApPWD,SF_WIFI_NETDEV_8189_NAME);
ret = system(scmd); ret = system(scmd);
ret = system("udhcpd /appfs/etc/udhcpd-8189.conf");
printf("[%s:%d] s\n", __FUNCTION__, __LINE__);
//ret = system("hostapd -B -dd /tmp/wifiap_wpa2.conf");
//printf("[%s:%d] s\n", __FUNCTION__, __LINE__);
ret = system("udhcpd /etc/udhcpdw.conf");
printf("[%s:%d] s\n", __FUNCTION__, __LINE__);
} }
else if(WIFI_TYPE_HI3881 == sf_get_wifi_type()) else if(WIFI_TYPE_HI3881 == wifitype)
{ {
//ret = system("insmod /appfs/hi3881.ko g_mode=1"); //ret = system("insmod /appfs/hi3881.ko g_mode=1");
//sleep(2); //sleep(2);
@ -2535,6 +2593,8 @@ void sf_wifi_hw_init(void)
{ {
printf("wifi hw init failed!scmd:%s\n",scmd); printf("wifi hw init failed!scmd:%s\n",scmd);
} }
printf("[%s:%d] e\n", __FUNCTION__, __LINE__);
} }
void *sf_wifi_sevrer_init(void *pNull) void *sf_wifi_sevrer_init(void *pNull)
@ -2593,8 +2653,8 @@ void sf_wifi_app_start(void)
{ {
pthread_t tid; pthread_t tid;
sf_wifi_hw_init(); //sf_wifi_hw_init();
sleep(1); //sleep(1);
pthread_create(&tid,NULL,(void*)sf_wifi_sevrer_init,(void *)NULL); pthread_create(&tid,NULL,(void*)sf_wifi_sevrer_init,(void *)NULL);
} }

View File

@ -7,7 +7,7 @@
version-info = [00 01 00 01]; version-info = [00 01 00 01];
ae_expect_lum { ae_expect_lum {
size = [b0 00 00 00]; size = [b0 00 00 00];
data = [3c 00 00 00 32 00 00 00 3d 00 00 00 3c 00 00 00 3c 00 00 00 3c 00 00 00 3c 00 00 00 3c 00 00 00 3d 00 00 00 41 00 00 00 46 00 00 00 4d 00 00 00 54 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 3c 00 00 00 3c 00 00 00 3c 00 00 00 3c 00 00 00 3c 00 00 00 3c 00 00 00 3c 00 00 00 3c 00 00 00 46 00 00 00 50 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00]; data = [3c 00 00 00 3c 00 00 00 3a 00 00 00 3a 00 00 00 3a 00 00 00 3a 00 00 00 3a 00 00 00 3a 00 00 00 3a 00 00 00 3a 00 00 00 44 00 00 00 44 00 00 00 44 00 00 00 52 00 00 00 52 00 00 00 52 00 00 00 52 00 00 00 52 00 00 00 52 00 00 00 52 00 00 00 52 00 00 00 52 00 00 00 52 00 00 00 32 00 00 00 32 00 00 00 32 00 00 00 32 00 00 00 32 00 00 00 32 00 00 00 32 00 00 00 32 00 00 00 3c 00 00 00 46 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00];
}; };
ae_la_clamp { ae_la_clamp {
size = [50 01 00 00]; size = [50 01 00 00];
@ -15,7 +15,7 @@
}; };
ae_over_exposure { ae_over_exposure {
size = [b0 01 00 00]; size = [b0 01 00 00];
data = [01 00 00 00 8c 00 00 00 03 00 00 00 64 00 00 00 64 00 00 00 64 00 00 00 64 00 00 00 64 00 00 00 64 00 00 00 64 00 00 00 64 00 00 00 64 00 00 00 64 00 00 00 64 00 00 00 64 00 00 00 64 00 00 00 64 00 00 00 64 00 00 00 64 00 00 00 64 00 00 00 64 00 00 00 64 00 00 00 64 00 00 00 64 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 02 00 00 00 02 00 00 00 03 00 00 00 03 00 00 00 03 00 00 00 03 00 00 00 04 00 00 00 05 00 00 00 06 00 00 00 07 00 00 00 08 00 00 00 09 00 00 00 0a 00 00 00 0a 00 00 00 0a 00 00 00 0a 00 00 00 0a 00 00 00 0a 00 00 00 0a 00 00 00 0a 00 00 00 0a 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 05 00 00 00 07 00 00 00 0a 00 00 00 0a 00 00 00 0a 00 00 00 0a 00 00 00 0a 00 00 00 0a 00 00 00 0a 00 00 00 0a 00 00 00 0a 00 00 00 0a 00 00 00 0a 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 04 00 00 00 07 00 00 00 07 00 00 00 07 00 00 00 07 00 00 00 07 00 00 00 07 00 00 00 07 00 00 00 07 00 00 00 07 00 00 00 07 00 00 00 07 00 00 00]; data = [01 00 00 00 8c 00 00 00 03 00 00 00 64 00 00 00 64 00 00 00 64 00 00 00 64 00 00 00 64 00 00 00 64 00 00 00 64 00 00 00 64 00 00 00 64 00 00 00 64 00 00 00 64 00 00 00 64 00 00 00 64 00 00 00 64 00 00 00 64 00 00 00 64 00 00 00 64 00 00 00 64 00 00 00 64 00 00 00 64 00 00 00 64 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 03 00 00 00 03 00 00 00 03 00 00 00 03 00 00 00 03 00 00 00 03 00 00 00 03 00 00 00 03 00 00 00 03 00 00 00 03 00 00 00 03 00 00 00 02 00 00 00 02 00 00 00 03 00 00 00 03 00 00 00 03 00 00 00 03 00 00 00 04 00 00 00 05 00 00 00 06 00 00 00 07 00 00 00 08 00 00 00 09 00 00 00 0a 00 00 00 0a 00 00 00 0a 00 00 00 0a 00 00 00 0a 00 00 00 0a 00 00 00 0a 00 00 00 0a 00 00 00 0a 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 05 00 00 00 07 00 00 00 0a 00 00 00 0a 00 00 00 0a 00 00 00 0a 00 00 00 0a 00 00 00 0a 00 00 00 0a 00 00 00 0a 00 00 00 0a 00 00 00 0a 00 00 00 0a 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 04 00 00 00 07 00 00 00 07 00 00 00 07 00 00 00 07 00 00 00 07 00 00 00 07 00 00 00 07 00 00 00 07 00 00 00 07 00 00 00 07 00 00 00 07 00 00 00];
}; };
ae_convergence { ae_convergence {
size = [2c 00 00 00]; size = [2c 00 00 00];
@ -23,11 +23,11 @@
}; };
ae_curve_gen_movie { ae_curve_gen_movie {
size = [10 01 00 00]; size = [10 01 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 00 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];
data = [01 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00 03 00 00 00 03 00 00 00 03 00 00 00 02 00 00 00 01 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00 04 00 00 00 04 00 00 00 03 00 00 00 02 00 00 00 01 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00 04 00 00 00 04 00 00 00 03 00 00 00 02 00 00 00 01 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00 03 00 00 00 03 00 00 00 03 00 00 00 02 00 00 00 01 00 00 00 01 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 01 00 00 00 01 00 00 00]; data = [01 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 01 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00 03 00 00 00 03 00 00 00 03 00 00 00 02 00 00 00 01 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00 04 00 00 00 04 00 00 00 03 00 00 00 02 00 00 00 01 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00 04 00 00 00 04 00 00 00 03 00 00 00 02 00 00 00 01 00 00 00 01 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 01 00 00 00 01 00 00 00];
}; };
ae_lum_gamma { ae_lum_gamma {
size = [82 00 00 00]; size = [82 00 00 00];

View File

@ -19,7 +19,7 @@
}; };
awb_target { awb_target {
size = [24 00 00 00]; size = [24 00 00 00];
data = [60 03 00 00 f7 03 00 00 23 04 00 00 00 04 00 00 18 04 00 00 18 04 00 00 00 04 00 00 e8 03 00 00 e8 03 00 00]; data = [60 03 00 00 f7 03 00 00 23 04 00 00 00 04 00 00 18 04 00 00 1c 04 00 00 00 04 00 00 e8 03 00 00 e8 03 00 00];
}; };
awb_ct_info { awb_ct_info {
size = [60 00 00 00]; size = [60 00 00 00];

File diff suppressed because one or more lines are too long

Binary file not shown.

Binary file not shown.

View File

@ -104,8 +104,8 @@ extern "C" {
#if !(defined(VMS) || defined(__VMS)) /* VMS uses logical names instead */ #if !(defined(VMS) || defined(__VMS)) /* VMS uses logical names instead */
#if defined(HEADER_CRYPTLIB_H) && !defined(OPENSSLDIR) #if defined(HEADER_CRYPTLIB_H) && !defined(OPENSSLDIR)
#define ENGINESDIR "/home/payton/na51089_linux_sdk/na51089_linux_sdk/code/lib/external/__install/lib/engines" #define ENGINESDIR "/home/payton/S530/code/lib/external/__install/lib/engines"
#define OPENSSLDIR "/home/payton/na51089_linux_sdk/na51089_linux_sdk/code/lib/external/__install/ssl" #define OPENSSLDIR "/home/payton/S530/code/lib/external/__install/ssl"
#endif #endif
#endif #endif

View File

@ -56,6 +56,13 @@ if [ "$1" == "ap" ]; then
echo ieee80211n=1 >> /var/run/hostapd.conf echo ieee80211n=1 >> /var/run/hostapd.conf
echo driver=nl80211 >> /var/run/hostapd.conf echo driver=nl80211 >> /var/run/hostapd.conf
echo ctrl_interface=/var/run/hostapd >> /var/run/hostapd.conf echo ctrl_interface=/var/run/hostapd >> /var/run/hostapd.conf
echo ctrl_interface_group=0 >> /var/run/hostapd.conf
echo ignore_broadcast_ssid=0 >> /var/run/hostapd.conf
echo auth_algs=1 >> /var/run/hostapd.conf
echo beacon_int=100 >> /var/run/hostapd.conf
echo dtim_period=1 >> /var/run/hostapd.conf
echo preamble=0 >> /var/run/hostapd.conf
echo wpa_key_mgmt=WPA-PSK >> /var/run/hostapd.conf
#echo channel=6 >> /var/run/hostapd.conf #echo channel=6 >> /var/run/hostapd.conf
if [ "$2" == "0" ]; then if [ "$2" == "0" ]; then

View File

@ -52,6 +52,8 @@ EXTRA_INCLUDE += \
-I$(APP_DIR)/source/cardv/SrcCode/Dx/include \ -I$(APP_DIR)/source/cardv/SrcCode/Dx/include \
-I$(APP_DIR)/source/cardv/SrcCode/Dx/$(MODEL) \ -I$(APP_DIR)/source/cardv/SrcCode/Dx/$(MODEL) \
-I$(APP_DIR)/source/cardv/SrcCode/Gx/include \ -I$(APP_DIR)/source/cardv/SrcCode/Gx/include \
-I$(APP_DIR)/source/cardv/SrcCode/UIApp/Network \
-I$(APP_DIR)/source/cardv/SrcCode/UIApp/Background \
-I$(APP_DIR)/source/cardv/SrcCode/Compatible -I$(APP_DIR)/source/cardv/SrcCode/Compatible
.PHONY: modules modules_install clean .PHONY: modules modules_install clean
@ -79,7 +81,10 @@ SRC = \
$(APP_DIR)/source/sf_app/code/source/paramMng/sf_param_common.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_message_queue.c \
$(APP_DIR)/source/sf_app/code/source/commMng/sf_share_mem.c \ $(APP_DIR)/source/sf_app/code/source/commMng/sf_share_mem.c \
$(APP_DIR)/source/sf_app/code/source/fileMng/sf_fileMng.c $(APP_DIR)/source/sf_app/code/source/fileMng/sf_fileMng.c \
$(APP_DIR)/source/sf_app/code/source/wifi/sf_data_transfer.c \
$(APP_DIR)/source/sf_app/code/source/wifi/sf_svr_send.c \
$(APP_DIR)/source/sf_app/code/source/wifi/sf_wifi_svr.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 \

View File

@ -24,4 +24,6 @@ void sf_view_osd_battery_draw(UINT8 bShow);
UINT8 sf_battery_value_get(UINT8 nightMode); UINT8 sf_battery_value_get(UINT8 nightMode);
UINT8 sf_battery_type_get(void); UINT8 sf_battery_type_get(void);
BOOL sf_battery_check_init(void);
#endif #endif

View File

@ -66,6 +66,17 @@ 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); void sf_cardv_message_thread_init(void);
void sf_rtsp_stop(void);
void sf_rtsp_restart(void);
void sf_set_menu_open(BOOL is);
BOOL sf_is_menu_open(void);
void sf_set_cap_statu(BOOL is);
BOOL sf_get_cap_statu(void);
BOOL sf_is_movie_running(void);
BOOL sf_is_movie_preview(void);
BOOL sf_is_cap_preview(void);
BOOL sf_is_preview(void);
#define SF_SD_DISK "A:" #define SF_SD_DISK "A:"
#define SF_SD_ROOT "/mnt/sd/" #define SF_SD_ROOT "/mnt/sd/"

View File

@ -94,6 +94,7 @@ typedef enum LedSysState_e
SF_LED_SYS_STATE_POWER_OFF, SF_LED_SYS_STATE_POWER_OFF,
SF_LED_SYS_STATE_PIR_DETECT,/*36*/ SF_LED_SYS_STATE_PIR_DETECT,/*36*/
SF_LED_SYS_STATE_PIR_NOT_DETECT, SF_LED_SYS_STATE_PIR_NOT_DETECT,
SF_LED_SYS_STATE_BAT_0_SLOW,
}LedSysState_t; }LedSysState_t;
typedef struct LedInfo_s typedef struct LedInfo_s

View File

@ -22,6 +22,7 @@
#include <linux/i2c.h> #include <linux/i2c.h>
#include <linux/i2c-dev.h> #include <linux/i2c-dev.h>
#endif #endif
#include "sf_param_struct.h"
#define SUCCESS 0 #define SUCCESS 0
#define FAIL 1 #define FAIL 1
@ -424,6 +425,9 @@ void sf_mcu_set_irshtter(UINT16 data);
UINT16 sf_get_irshtter(void); UINT16 sf_get_irshtter(void);
void sf_set_power_on_mode(UINT8 data); void sf_set_power_on_mode(UINT8 data);
void sf_set_module_sleep_flag(UINT8 flag); void sf_set_module_sleep_flag(UINT8 flag);
void sf_set_mcu_sub_ver(unsigned char mcuSubVersion);
void sf_set_mcu_ver(unsigned short mcuVersion);
SINT32 sf_sys_rtc_time_set(SF_PARA_TIME_S* pstDateTime);
#endif #endif

View File

@ -1,6 +1,14 @@
#ifndef _SF_SD_COMMON_ #ifndef _SF_SD_COMMON_
#define _SF_SD_COMMON_ #define _SF_SD_COMMON_
typedef enum sf_MSG_FORMAT_SD_e
{
CMD_FORMAT_SD_OK = 0,
CMD_FORMAT_SD_STA = 1,
CMD_FORMAT_SD_ERR = 10,
}SF_MSG_FORMAT_SD_E;
BOOL sf_is_card_full(void); BOOL sf_is_card_full(void);
UINT32 sf_check_card_full(void); UINT32 sf_check_card_full(void);
@ -10,4 +18,7 @@ void sf_sd_exist_reg_cb(SF_CALLBACK_SD_CMD fpCB);
BOOL sf_in_card_exist(void); BOOL sf_in_card_exist(void);
void sf_set_card_statu(UINT32 val);
UINT32 sf_get_card_statu(void);
#endif #endif

View File

@ -42,6 +42,7 @@
#include <io/adc.h> #include <io/adc.h>
#include "UIInfo/UIInfo.h" #include "UIInfo/UIInfo.h"
#include "IOCfg.h" #include "IOCfg.h"
#include "sf_battery.h"
#if HUNTING_CAMERA_MCU == ENABLE #if HUNTING_CAMERA_MCU == ENABLE
typedef signed int SINT32; typedef signed int SINT32;
@ -158,7 +159,7 @@ UINT32 sf_adc_value_get(UINT32 mux, UINT32 *pval)
gpio_set_value(P_GPIO_1, 1);//adc_muxb gpio_set_value(P_GPIO_1, 1);//adc_muxb
} }
vos_util_delay_us(500); vos_util_delay_us(1000);
*pval = adc_readData(0); *pval = adc_readData(0);
//printf("[%s:%d] *pval:%d\n", __FUNCTION__, __LINE__,*pval); //printf("[%s:%d] *pval:%d\n", __FUNCTION__, __LINE__,*pval);
@ -741,15 +742,17 @@ void sf_battery_level_polling(void)
} }
else if(sf_LatestBattLevel == SF_BATT_LEVEL_1) 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)) 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__); 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); //sf_led_set(SF_LED_BAT1, SF_LED_STATE_SLOW_FLASHING);
sf_sys_status_led_set(SF_LED_SYS_STATE_BAT_0_SLOW);
} }
else if((sf_battery_value_get(sf_get_night_led_flag()) == 10) && (sf_led_get(SF_LED_BAT1) != SF_LED_STATE_ON)) 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__); printf("[%s:%d] SF_LED_BAT1 SF_LED_STATE_SLOW_FLASHING\n", __FUNCTION__, __LINE__);
sf_led_set(SF_LED_BAT1, SF_LED_STATE_ON); //sf_led_set(SF_LED_BAT1, SF_LED_STATE_ON);
sf_sys_status_led_set(SF_LED_SYS_STATE_BAT_1);
} }
} }
else else
@ -1112,4 +1115,32 @@ UINT8 sf_battery_type_get(void)
return 0; return 0;
} }
/*************************************************
Function: sf_battery_check_init
Description: Perform a battery test in manual mode.
Input: N/A
Output: N/A
Return: value: TRUE ,FALSE
Others: N/A
*************************************************/
BOOL sf_battery_check_init(void)
{
if(sf_battery_adc_value_get() == SUCCESS)
{
if(sf_check_low_battery() == TRUE)
{
printf("[%s:%d]power off because low battery\n", __FUNCTION__, __LINE__);
//Ux_PostEvent(NVTEVT_SYSTEM_SHUTDOWN, 1, APP_POWER_OFF_BATT_EMPTY); //shutdown start
return FALSE;
}
}
else
{
return FALSE;
}
#if HW_S530
sf_view_osd_battery_draw(TRUE);
#endif
return TRUE;
}
#endif #endif

View File

@ -58,12 +58,16 @@
#include <sf_param_enum.h> #include <sf_param_enum.h>
#include <sf_keymng.h> #include <sf_keymng.h>
#include <sf_param_struct.h> #include <sf_param_struct.h>
#include "UIAppNetwork.h"
BOOL isGoing2PowerOff = FALSE; BOOL isGoing2PowerOff = FALSE;
UINT16 AutoOfftime = 0; UINT16 AutoOfftime = 0;
BOOL isGoing2Pir = FALSE; BOOL isGoing2Pir = FALSE;
UINT8 FwUpdate = 0; UINT8 FwUpdate = 0;
UINT8 NetWorkFlag = 0; UINT8 NetWorkFlag = 0;
UINT8 RespFlag = 0;
static BOOL IsMenu = FALSE;
static BOOL IsCap = FALSE;
@ -286,11 +290,12 @@ BOOL sf_cmd_flash_led(unsigned char argc, char **argv)
BOOL sf_cmd_img_size(unsigned char argc, char **argv) BOOL sf_cmd_img_size(unsigned char argc, char **argv)
{ {
UINT32 value; UINT32 value;
//UIMenuStoreInfo *puiPara = sf_ui_para_get(); UIMenuStoreInfo *puiPara = sf_ui_para_get();
sscanf_s(argv[0],"%d", &value); sscanf_s(argv[0],"%d", &value);
printf("[%s:%d] value:%d\n", __FUNCTION__, __LINE__,value); printf("[%s:%d] value:%d\n", __FUNCTION__, __LINE__,value);
if(value < PHOTO_SIZE_ID_MAX){ if(value < PHOTO_SIZE_ID_MAX){
SysSetFlag(FL_PHOTO_SIZE, value); SysSetFlag(FL_PHOTO_SIZE, value);
puiPara->ImgSize = value;
Save_MenuInfo(); Save_MenuInfo();
} }
printf("[%s:%d] FL_PHOTO_SIZE:%d\n", __FUNCTION__, __LINE__,SysGetFlag(FL_PHOTO_SIZE)); printf("[%s:%d] FL_PHOTO_SIZE:%d\n", __FUNCTION__, __LINE__,SysGetFlag(FL_PHOTO_SIZE));
@ -335,7 +340,7 @@ BOOL sf_cmd_video_size(unsigned char argc, char **argv)
if(value < MOVIE_SIZE_ID_MAX){ if(value < MOVIE_SIZE_ID_MAX){
puiPara->VideoSize = value; puiPara->VideoSize = value;
SysSetFlag(FL_MOVIE_SIZE, value); SysSetFlag(FL_MOVIE_SIZE, value);
SysSetFlag(FL_MOVIE_SIZE_MENU, value); //SysSetFlag(FL_MOVIE_SIZE_MENU, value);
Save_MenuInfo(); Save_MenuInfo();
} }
printf("[%s:%d] FL_MOVIE_SIZE:%d\n", __FUNCTION__, __LINE__,SysGetFlag(FL_MOVIE_SIZE)); printf("[%s:%d] FL_MOVIE_SIZE:%d\n", __FUNCTION__, __LINE__,SysGetFlag(FL_MOVIE_SIZE));
@ -942,8 +947,26 @@ BOOL cmd_cam_mode(unsigned char argc, char **argv)
UINT32 value; UINT32 value;
UIMenuStoreInfo *puiPara = sf_ui_para_get(); UIMenuStoreInfo *puiPara = sf_ui_para_get();
sscanf_s(argv[0],"%d", &value); sscanf_s(argv[0],"%d", &value);
int iCurrMode = System_GetState(SYS_STATE_CURRMODE);
int iNextMode = PRIMARY_MODE_PHOTO;
if(value < SF_CAM_MODE_MAX){ if(value < SF_CAM_MODE_MAX){
puiPara->CamMode = value; puiPara->CamMode = value;
if((puiPara->CamMode == SF_CAM_MODE_PHOTO) || (puiPara->CamMode == SF_CAM_MODE_PHOTO_VIDEO))
{
iNextMode = PRIMARY_MODE_PHOTO;
}
else if(puiPara->CamMode == SF_CAM_MODE_VIDEO)
{
iNextMode = PRIMARY_MODE_MOVIE;
}
else
{
iNextMode = PRIMARY_MODE_PHOTO;
}
UI_SetData(FL_PreMode, iCurrMode);
UI_SetData(FL_NextMode, iNextMode);
Ux_PostEvent(NVTEVT_SYSTEM_MODE, 1, iNextMode);
Save_MenuInfo(); Save_MenuInfo();
} }
printf("[%s:%d] CamMode:%d\n", __FUNCTION__, __LINE__,puiPara->CamMode); printf("[%s:%d] CamMode:%d\n", __FUNCTION__, __LINE__,puiPara->CamMode);
@ -1157,6 +1180,65 @@ void sf_signal_led_show(UINT8 signalLevel)
else else
sf_sys_status_led_set(SF_LED_SYS_STATE_GPRS_SIGNAL_4); sf_sys_status_led_set(SF_LED_SYS_STATE_GPRS_SIGNAL_4);
} }
/*************************************************
Function: sf_rtsp_stop
Description:
Input:
Output: N/A
Return: N/A
Others: N/A
*************************************************/
void sf_rtsp_stop(void)
{
if(0 == RespFlag)
{
/*SF_MESSAGE_BUF_S stMessageBuf = {0};
stMessageBuf.arg1 = SF_WIFI_CMD_STOP;
stMessageBuf.cmdId = CMD_WIFI;
sf_com_message_send_to_cardv(&stMessageBuf);*/
UINT32 tmp = ImageApp_Common_IsRtspStart(0);
printf("[%s:%d] RespFlag = %d tmp:%d\n", __FUNCTION__, __LINE__,RespFlag, tmp);
if(1 == tmp)
{
//ImageApp_Common_RtspStop(0);
RespFlag = 1;
}
}
else
{
printf("[%s:%d] RespFlag = %d\n", __FUNCTION__, __LINE__,RespFlag);
}
}
/*************************************************
Function: sf_rtsp_restart
Description:
Input:
Output: N/A
Return: N/A
Others: N/A
*************************************************/
void sf_rtsp_restart(void)
{
if(1 == RespFlag)
{
/*SF_MESSAGE_BUF_S stMessageBuf = {0};
stMessageBuf.arg1 = SF_WIFI_CMD_RESTART;
stMessageBuf.cmdId = CMD_WIFI;
sf_com_message_send_to_cardv(&stMessageBuf);*/
UINT32 tmp = ImageApp_Common_IsRtspStart(0);
printf("[%s:%d] RespFlag = %d tmp:%d\n", __FUNCTION__, __LINE__,RespFlag, tmp);
if(tmp == 0)
{
//ImageApp_Common_RtspStart(0);
RespFlag = 0;
}
}
else
{
printf("[%s:%d] RespFlag = %d\n", __FUNCTION__, __LINE__,RespFlag);
}
}
static SINT32 sf_cardv_proccess_cmd_mcu(SF_MESSAGE_BUF_S *pMessageBuf) static SINT32 sf_cardv_proccess_cmd_mcu(SF_MESSAGE_BUF_S *pMessageBuf)
{ {
@ -1169,6 +1251,10 @@ static SINT32 sf_cardv_proccess_cmd_mcu(SF_MESSAGE_BUF_S *pMessageBuf)
sf_set_power_on_mode(pMessageBuf->arg2); sf_set_power_on_mode(pMessageBuf->arg2);
sf_mcu_set_irshtter(pMessageBuf->arg3); sf_mcu_set_irshtter(pMessageBuf->arg3);
break; break;
case SF_MCU_CMD_MCU_VER:
sf_set_mcu_sub_ver(pMessageBuf->arg2);
sf_set_mcu_ver(pMessageBuf->arg3);
break;
default: default:
break; break;
@ -1292,6 +1378,28 @@ void sf_cardv_proccess_cmd_gprs(SF_MESSAGE_BUF_S *pMessageBuf)
} }
#endif #endif
static SINT32 sf_cardv_proccess_cmd_wifi(SF_MESSAGE_BUF_S *pMessageBuf)
{
switch(pMessageBuf->arg1)
{
case SF_WIFI_CMD_START:
UINet_AppIpc_Init();
sf_net_wifi_init(NET_AP_MODE, NET_AUTH_WPA2);
break;
case SF_WIFI_CMD_STOP:
ImageApp_Common_RtspStop(0);
break;
case SF_WIFI_CMD_RESTART:
ImageApp_Common_RtspStart(0);
break;
default:
break;
}
return SF_SUCCESS;
}
void* sf_cardv_message_thread(void *argv) void* sf_cardv_message_thread(void *argv)
{ {
@ -1322,7 +1430,9 @@ void* sf_cardv_message_thread(void *argv)
case CMD_FILE: case CMD_FILE:
sf_share_mem_file_init(); sf_share_mem_file_init();
break; break;
case CMD_WIFI:
sf_cardv_proccess_cmd_wifi(&stMessagebuf);
break;
default: default:
break; break;
} }
@ -1342,4 +1452,81 @@ void sf_cardv_message_thread_init(void)
return; return;
} }
void sf_set_menu_open(BOOL is)
{
IsMenu = is;
printf("[%s]:%d IsMenu:%d\n", __FUNCTION__, __LINE__, IsMenu);
}
BOOL sf_is_menu_open(void)
{
printf("[%s]:%d IsMenu:%d\n", __FUNCTION__, __LINE__, IsMenu);
return IsMenu;
}
void sf_set_cap_statu(BOOL is)
{
IsCap = is;
printf("[%s]:%d IsCap:%d\n", __FUNCTION__, __LINE__,IsCap);
}
BOOL sf_get_cap_statu(void)
{
printf("[%s]:%d IsCap:%d\n", __FUNCTION__, __LINE__,IsCap);
return IsCap;
}
BOOL sf_is_movie_running(void)
{
if(ImageApp_MovieMulti_IsStreamRunning(_CFG_REC_ID_1))
{
return TRUE;
}
if(ImageApp_MovieMulti_IsStreamRunning(_CFG_CLONE_ID_1))
{
return TRUE;
}
//printf("[%s]:%d IsCardFull:%d\n", __FUNCTION__, __LINE__, IsCardFull);
return FALSE;
}
BOOL sf_is_movie_preview(void)
{
if(FALSE == sf_is_movie_running() && (FALSE == sf_is_menu_open()) && (System_GetState(SYS_STATE_CURRMODE) == PRIMARY_MODE_MOVIE))
{
return TRUE;
}
//printf("[%s]:%d IsCardFull:%d\n", __FUNCTION__, __LINE__, IsCardFull);
return FALSE;
}
BOOL sf_is_cap_preview(void)
{
if(FALSE == sf_get_cap_statu() && (FALSE == sf_is_menu_open()) && (System_GetState(SYS_STATE_CURRMODE) == PRIMARY_MODE_PHOTO))
{
return TRUE;
}
//printf("[%s]:%d IsCardFull:%d\n", __FUNCTION__, __LINE__, IsCardFull);
return FALSE;
}
BOOL sf_is_preview(void)
{
if(TRUE == sf_is_cap_preview() || (TRUE == sf_is_movie_preview()))
{
return TRUE;
}
//printf("[%s]:%d IsCardFull:%d\n", __FUNCTION__, __LINE__, IsCardFull);
return FALSE;
}

View File

@ -614,6 +614,12 @@ void sf_sys_status_led_set(LedSysState_t ledSysStateId)
case SF_LED_SYS_STATE_PIR_NOT_DETECT: case SF_LED_SYS_STATE_PIR_NOT_DETECT:
sf_led_set(SF_LED_BUSY, SF_LED_STATE_ON); sf_led_set(SF_LED_BUSY, SF_LED_STATE_ON);
break; break;
case SF_LED_SYS_STATE_BAT_0_SLOW:
sf_led_set(SF_LED_BAT1, SF_LED_STATE_SLOW_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;
default: default:
break; break;

View File

@ -46,6 +46,7 @@
static BOOL IsCardFull = FALSE; static BOOL IsCardFull = FALSE;
SF_CALLBACK_SD_CMD g_fpSd_Exist_CB = NULL; SF_CALLBACK_SD_CMD g_fpSd_Exist_CB = NULL;
static SF_MSG_FORMAT_SD_E formatSD = CMD_FORMAT_SD_ERR;
BOOL sf_is_card_full(void) BOOL sf_is_card_full(void)
{ {
@ -112,6 +113,13 @@ BOOL sf_in_card_exist(void)
} }
void sf_set_card_statu(UINT32 val)
{
formatSD = val;
}
UINT32 sf_get_card_statu(void)
{
return formatSD;
}

View File

@ -1048,8 +1048,10 @@ void sf_commu_mcu_task_start(void)
void sf_commu_mcu_task_stop(void) void sf_commu_mcu_task_stop(void)
{ {
printf("[%s:%d] s\n", __FUNCTION__, __LINE__);
sf_commu_mcu_exit = 1; sf_commu_mcu_exit = 1;
vos_task_destroy(sfCommuMcuThread); vos_task_destroy(sfCommuMcuThread);
printf("[%s:%d] e\n", __FUNCTION__, __LINE__);
} }
unsigned char sf_commu_mcu_task_running(void) unsigned char sf_commu_mcu_task_running(void)

View File

@ -616,6 +616,22 @@ void sf_mcu_version_get(UINT8 *mcuVer)
sprintf((char *)mcuVer, "%s%d.%d.%d", str, (McuVersion >> 8) & 0xFF, McuVersion & 0xFF, McuSubVersion); sprintf((char *)mcuVer, "%s%d.%d.%d", str, (McuVersion >> 8) & 0xFF, McuVersion & 0xFF, McuSubVersion);
} }
#else
/*************************************************
Function: sf_mcu_version_get
Description: get mcu ver
Input: N/A
Output: ver str
Return: N/A
Others: N/A
*************************************************/
void sf_mcu_version_get(UINT8 *mcuVer)
{
sprintf((char *)mcuVer, "%d.%d.%d", (McuVersion>>4)&0x0F, McuVersion & 0x0F, McuSubVersion);
}
#endif #endif
/************************************************* /*************************************************
@ -2010,6 +2026,15 @@ unsigned short sf_get_mcu_ver(void)
return McuVersion; return McuVersion;
} }
void sf_set_mcu_sub_ver(unsigned char mcuSubVersion)
{
McuSubVersion = mcuSubVersion;
}
void sf_set_mcu_ver(unsigned short mcuVersion)
{
McuVersion = mcuVersion;
}
/************************************************* /*************************************************
Function: sf_mcu_get_irshtter Function: sf_mcu_get_irshtter
@ -2118,4 +2143,20 @@ void sf_set_module_sleep_flag(UINT8 flag)
#endif #endif
} }
SINT32 sf_sys_rtc_time_set(SF_PARA_TIME_S* pstDateTime)
{
struct tm Curr_DateTime = {0};
Curr_DateTime.tm_year = pstDateTime->Year;
Curr_DateTime.tm_mon = pstDateTime->Mon;
Curr_DateTime.tm_mday = pstDateTime->Day;
Curr_DateTime.tm_hour = pstDateTime->Hour;
Curr_DateTime.tm_min = pstDateTime->Min;
Curr_DateTime.tm_sec = pstDateTime->Sec;
hwclock_set_time(TIME_ID_CURRENT, *(struct tm*)&Curr_DateTime, 0);
return SUCCESS;
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -130,78 +130,86 @@ HD_RESULT fastflow_common_init(void)
static HD_RESULT flowpreview_mem_relayout(void) static HD_RESULT flowpreview_mem_relayout(void)
{ {
HD_RESULT ret; HD_RESULT ret;
HD_COMMON_MEM_INIT_CONFIG mem_cfg = {0}; HD_COMMON_MEM_INIT_CONFIG mem_cfg = {0};
UIAPP_PHOTO_SENSOR_INFO *pSensorInfo = UIAppPhoto_get_SensorInfo(0); UIAPP_PHOTO_SENSOR_INFO *pSensorInfo = UIAppPhoto_get_SensorInfo(0);
UINT8 idx = 0;
// config common pool (cap) // config common pool (cap)
mem_cfg.pool_info[0].type = HD_COMMON_MEM_COMMON_POOL; mem_cfg.pool_info[idx].type = HD_COMMON_MEM_COMMON_POOL;
mem_cfg.pool_info[0].blk_size = DBGINFO_BUFSIZE()+VDO_RAW_BUFSIZE(pSensorInfo->sSize.w, pSensorInfo->sSize.h, CAP_OUT_FMT) mem_cfg.pool_info[idx].blk_size = DBGINFO_BUFSIZE()+VDO_RAW_BUFSIZE(pSensorInfo->sSize.w, pSensorInfo->sSize.h, CAP_OUT_FMT)
+VDO_CA_BUF_SIZE(CA_WIN_NUM_W, CA_WIN_NUM_H) +VDO_CA_BUF_SIZE(CA_WIN_NUM_W, CA_WIN_NUM_H)
+VDO_LA_BUF_SIZE(LA_WIN_NUM_W, LA_WIN_NUM_H); +VDO_LA_BUF_SIZE(LA_WIN_NUM_W, LA_WIN_NUM_H);
if (g_shdr_mode == 1) {
mem_cfg.pool_info[0].blk_cnt = 4; mem_cfg.pool_info[idx].blk_cnt = 6;
} else { mem_cfg.pool_info[idx].ddr_id = DDR_ID0;
mem_cfg.pool_info[0].blk_cnt = 4; // config common pool (main)
} // mem_cfg.pool_info[1].type = HD_COMMON_MEM_COMMON_POOL;
mem_cfg.pool_info[0].ddr_id = DDR_ID0; // mem_cfg.pool_info[1].blk_size = DBGINFO_BUFSIZE()+VDO_YUV_BUFSIZE(pSensorInfo->sSize.w, pSensorInfo->sSize.h, HD_VIDEO_PXLFMT_YUV420);
// config common pool (main) // mem_cfg.pool_info[1].blk_cnt = 2;
mem_cfg.pool_info[1].type = HD_COMMON_MEM_COMMON_POOL; // mem_cfg.pool_info[1].ddr_id = DDR_ID0;
mem_cfg.pool_info[1].blk_size = DBGINFO_BUFSIZE()+VDO_YUV_BUFSIZE(pSensorInfo->sSize.w, pSensorInfo->sSize.h, HD_VIDEO_PXLFMT_YUV420);
mem_cfg.pool_info[1].blk_cnt = 2;
mem_cfg.pool_info[1].ddr_id = DDR_ID0;
#if POWERON_FAST_SLICE_ENC == ENABLE #if POWERON_FAST_SLICE_ENC == ENABLE
idx++;
mem_cfg.pool_info[idx].type = HD_COMMON_MEM_COMMON_POOL;
mem_cfg.pool_info[idx].blk_size = PhotoFast_SliceEncode_Get_Max_Dst_Slice_Buffer_Size(HD_VIDEO_PXLFMT_YUV420);
mem_cfg.pool_info[idx].blk_cnt = 1;
mem_cfg.pool_info[idx].ddr_id = DDR_ID0;
DBG_DUMP("************ blk_size = %lx ************\n", mem_cfg.pool_info[idx].blk_size);
#else #else
// config common pool (primary image) // config common pool (primary image)
{ {
UINT32 u32W, u32H; UINT32 u32W, u32H;
u32W = GetPhotoSizeWidth(SysGetFlag(FL_PHOTO_SIZE)); u32W = GetPhotoSizeWidth(SysGetFlag(FL_PHOTO_SIZE));
u32H = GetPhotoSizeHeight(SysGetFlag(FL_PHOTO_SIZE)); u32H = GetPhotoSizeHeight(SysGetFlag(FL_PHOTO_SIZE));
mem_cfg.pool_info[2].type = HD_COMMON_MEM_COMMON_POOL; mem_cfg.pool_info[2].type = HD_COMMON_MEM_COMMON_POOL;
u32W = ALIGN_CEIL_16(u32W); u32W = ALIGN_CEIL_16(u32W);
u32H = ALIGN_CEIL_16(u32H); u32H = ALIGN_CEIL_16(u32H);
mem_cfg.pool_info[2].blk_size = DBGINFO_BUFSIZE()+VDO_YUV_BUFSIZE(u32W, u32H, HD_VIDEO_PXLFMT_YUV420); mem_cfg.pool_info[2].blk_size = DBGINFO_BUFSIZE()+VDO_YUV_BUFSIZE(u32W, u32H, HD_VIDEO_PXLFMT_YUV420);
mem_cfg.pool_info[2].blk_cnt = 1; mem_cfg.pool_info[2].blk_cnt = 1;
mem_cfg.pool_info[2].ddr_id = DDR_ID0; mem_cfg.pool_info[2].ddr_id = DDR_ID0;
} }
#endif #endif
// config common pool (screennail image) // config common pool (screennail image)
mem_cfg.pool_info[3].type = HD_COMMON_MEM_COMMON_POOL; idx++;
mem_cfg.pool_info[idx].type = HD_COMMON_MEM_COMMON_POOL;
#if HUNTING_CAMERA_MCU == ENABLE #if HUNTING_CAMERA_MCU == ENABLE
UIMenuStoreInfo *puiPara = sf_ui_para_get(); UIMenuStoreInfo *puiPara = sf_ui_para_get();
mem_cfg.pool_info[3].blk_size = DBGINFO_BUFSIZE()+VDO_YUV_BUFSIZE(sf_get_screen_nail_width(puiPara->SendPicSize), sf_get_screen_nail_height(puiPara->SendPicSize), HD_VIDEO_PXLFMT_YUV420); mem_cfg.pool_info[idx].blk_size = DBGINFO_BUFSIZE()+VDO_YUV_BUFSIZE(sf_get_screen_nail_width(puiPara->SendPicSize), sf_get_screen_nail_height(puiPara->SendPicSize), HD_VIDEO_PXLFMT_YUV420);
#else #else
mem_cfg.pool_info[3].blk_size = DBGINFO_BUFSIZE()+VDO_YUV_BUFSIZE(CFG_SCREENNAIL_W, CFG_SCREENNAIL_H, HD_VIDEO_PXLFMT_YUV420); mem_cfg.pool_info[idx].blk_size = DBGINFO_BUFSIZE()+VDO_YUV_BUFSIZE(CFG_SCREENNAIL_W, CFG_SCREENNAIL_H, HD_VIDEO_PXLFMT_YUV420);
#endif #endif
mem_cfg.pool_info[3].blk_cnt = 1; mem_cfg.pool_info[idx].blk_cnt = 1;
mem_cfg.pool_info[3].ddr_id = DDR_ID0; mem_cfg.pool_info[idx].ddr_id = DDR_ID0;
// config common pool (thumbnail image) // config common pool (thumbnail image)
mem_cfg.pool_info[4].type = HD_COMMON_MEM_COMMON_POOL; idx++;
mem_cfg.pool_info[4].blk_size = DBGINFO_BUFSIZE()+VDO_YUV_BUFSIZE(CFG_THUMBNAIL_W, CFG_THUMBNAIL_H, HD_VIDEO_PXLFMT_YUV420); mem_cfg.pool_info[idx].type = HD_COMMON_MEM_COMMON_POOL;
mem_cfg.pool_info[4].blk_cnt = 1; mem_cfg.pool_info[idx].blk_size = DBGINFO_BUFSIZE()+VDO_YUV_BUFSIZE(CFG_THUMBNAIL_W, CFG_THUMBNAIL_H, HD_VIDEO_PXLFMT_YUV420);
mem_cfg.pool_info[4].ddr_id = DDR_ID0; mem_cfg.pool_info[idx].blk_cnt = 1;
// config common pool (EXIF) mem_cfg.pool_info[idx].ddr_id = DDR_ID0;
mem_cfg.pool_info[5].type = HD_COMMON_MEM_COMMON_POOL; // config common pool (EXIF)
mem_cfg.pool_info[5].blk_size = DBGINFO_BUFSIZE()+CFG_JPG_HEADER_SIZE; idx++;
mem_cfg.pool_info[5].blk_cnt = 1; mem_cfg.pool_info[idx].type = HD_COMMON_MEM_COMMON_POOL;
mem_cfg.pool_info[5].ddr_id = DDR_ID0; mem_cfg.pool_info[idx].blk_size = DBGINFO_BUFSIZE()+CFG_JPG_HEADER_SIZE;
mem_cfg.pool_info[idx].blk_cnt = 1;
mem_cfg.pool_info[idx].ddr_id = DDR_ID0;
#if (_PACKAGE_BOOTLOGO_) #if (_PACKAGE_BOOTLOGO_)
mem_cfg.pool_info[6].type = HD_COMMON_MEM_COMMON_POOL; idx++;
mem_cfg.pool_info[6].blk_size = DBGINFO_BUFSIZE() + ((BOOT_LOGO_LCD_WIDTH * BOOT_LOGO_LCD_HEIGHT * 3) / 2); mem_cfg.pool_info[idx].type = HD_COMMON_MEM_COMMON_POOL;
mem_cfg.pool_info[6].blk_cnt = 2; mem_cfg.pool_info[idx].blk_size = DBGINFO_BUFSIZE() + ((BOOT_LOGO_LCD_WIDTH * BOOT_LOGO_LCD_HEIGHT * 3) / 2);
mem_cfg.pool_info[6].ddr_id = DDR_ID0; mem_cfg.pool_info[idx].blk_cnt = 2;
mem_cfg.pool_info[idx].ddr_id = DDR_ID0;
#endif #endif
ret = vendor_common_mem_relayout(&mem_cfg); ret = vendor_common_mem_relayout(&mem_cfg);
return ret; return ret;
} }
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////

View File

@ -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 boot msg for fast boot, but hard to debug #define POWERON_FAST_BOOT_MSG DISABLE//ENABLE // 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
@ -480,8 +480,8 @@
// DCF Config // DCF Config
#define USE_DCF DISABLE #define USE_DCF DISABLE
#define DCF_SUPPORT_FORMAT (DCF_FILE_TYPE_JPG|DCF_FILE_TYPE_AVI|DCF_FILE_TYPE_MOV|DCF_FILE_TYPE_MP4) #define DCF_SUPPORT_FORMAT (DCF_FILE_TYPE_JPG|DCF_FILE_TYPE_AVI|DCF_FILE_TYPE_MOV|DCF_FILE_TYPE_MP4)
#define DCF_DIR_NAME "HUNTI" /* 100HUNTI */ #define DCF_DIR_NAME "MEDIA" /* 100MEDIA */
#define DCF_FILE_NAME "IMAG" /* IMAG0001.JPG */ #define DCF_FILE_NAME "SYFW" /* SYFW0001.JPG */
//.............................................................................. //..............................................................................
// EXIF Config // EXIF Config
@ -950,8 +950,8 @@
#define HUNTING_MCU_UART ENABLE #define HUNTING_MCU_UART ENABLE
#define HUNTING_IR_LED_940 DISABLE #define HUNTING_IR_LED_940 DISABLE
#define SF_EXIF_MN_BUF_SIZE 256 #define SF_EXIF_MN_BUF_SIZE 256
#define SF_BASE_VERSION "7MD4RCwD3T3" #define SF_BASE_VERSION "7MD4RCwD3T6"
#define SF_TRIGGER_TIME_TEST DISABLE//ENABLE
#define HUNTING_PHOTO_FAST_AE_60_FPS ENABLE #define HUNTING_PHOTO_FAST_AE_60_FPS ENABLE
#define HW_S530 1 #define HW_S530 1

View File

@ -392,6 +392,14 @@ 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_START_CAP_FRAME_CNT-1)){
#if SF_TRIGGER_TIME_TEST == ENABLE
sf_trigger_time_led_cb(1);
#endif
vos_perf_list_mark("sie_vd", __LINE__, 0);
}
if((vd_cnt + 1) < PhotoFast_GetTickBufSize()) if((vd_cnt + 1) < PhotoFast_GetTickBufSize())
PhotoFast_SetTick((vd_cnt + 1), (VOS_TICK)hwclock_get_counter()); PhotoFast_SetTick((vd_cnt + 1), (VOS_TICK)hwclock_get_counter());
} }

View File

@ -44,6 +44,7 @@
#endif #endif
#if HUNTING_CAMERA_MCU == ENABLE #if HUNTING_CAMERA_MCU == ENABLE
#include <sf_mcu.h> #include <sf_mcu.h>
#include "sf_led.h"
#endif #endif
/** /**
@ -571,6 +572,9 @@ static void MovieFast_OnRecStart(void)
} }
if (movie_rec_mask & mask) { if (movie_rec_mask & mask) {
#if SF_TRIGGER_TIME_TEST == ENABLE
sf_trigger_time_led_cb(1);
#endif
vos_perf_list_mark("sie_vd", __LINE__, 6); vos_perf_list_mark("sie_vd", __LINE__, 6);
ImageApp_MovieMulti_SetParam(gMovie_Rec_Info[i].rec_id, MOVIEMULTI_PARAM_FILE_WRITE_BLKSIZE, 0x200000); ImageApp_MovieMulti_SetParam(gMovie_Rec_Info[i].rec_id, MOVIEMULTI_PARAM_FILE_WRITE_BLKSIZE, 0x200000);
ImageApp_MovieMulti_SetParam(gMovie_Rec_Info[i].rec_id, MOVIEMULTI_PARAM_FILE_BUFRESSEC, uifile_buffer_reserved_sec); ImageApp_MovieMulti_SetParam(gMovie_Rec_Info[i].rec_id, MOVIEMULTI_PARAM_FILE_BUFRESSEC, uifile_buffer_reserved_sec);
@ -636,13 +640,25 @@ static void MovieFast_FileNamingCB(MOVIE_CFG_REC_ID id, char *pFileName)
DCF_MakeObjPath(nextFolderID, nextFileID, DCF_FILE_TYPE_MP4, pFileName); DCF_MakeObjPath(nextFolderID, nextFileID, DCF_FILE_TYPE_MP4, pFileName);
DCF_AddDBfile(pFileName); DCF_AddDBfile(pFileName);
DBG_DUMP("%s added to DCF\r\n", pFileName); DBG_DUMP("%s added to DCF\r\n", pFileName);
#if HUNTING_CAMERA_MCU == ENABLE
char tmp[NMC_TOTALFILEPATH_MAX_LEN] = {'\0'};
sprintf(tmp, "S%03ld%04ld.JPG", nextFolderID, nextFileID);
if(id == _CFG_REC_ID_1){
snprintf(thumb_current_path_main, sizeof(thumb_current_path_main), "%s", tmp);
}
else if(id == _CFG_CLONE_ID_1){
snprintf(thumb_current_path_clone, sizeof(thumb_current_path_clone), "%s", tmp);
}
DBG_DUMP("last send file:%s\r\n", tmp);
#else
if(id == _CFG_REC_ID_1){ if(id == _CFG_REC_ID_1){
snprintf(thumb_current_path_main, sizeof(thumb_current_path_main), "%s", pFileName); snprintf(thumb_current_path_main, sizeof(thumb_current_path_main), "%s", pFileName);
} }
else if(id == _CFG_CLONE_ID_1){ else if(id == _CFG_CLONE_ID_1){
snprintf(thumb_current_path_clone, sizeof(thumb_current_path_clone), "%s", pFileName); snprintf(thumb_current_path_clone, sizeof(thumb_current_path_clone), "%s", pFileName);
} }
#endif
} }
} }
@ -707,9 +723,13 @@ static void MovieFast_UserEventCb(UINT32 id, MOVIE_USER_CB_EVENT event_id, UINT3
char tmp[256] = {'\0'}; char tmp[256] = {'\0'};
#if HUNTING_CAMERA_MCU == ENABLE
snprintf(tmp, sizeof(tmp), "%s%s", MOVIE_THUMB_PATH, thumb_current_path); /* DCF 8.3 naming rule */
#else
snprintf(tmp, sizeof(tmp), "%s%s", MOVIE_THUMB_PATH, (thumb_current_path + (length - 12))); /* DCF 8.3 naming rule */ snprintf(tmp, sizeof(tmp), "%s%s", MOVIE_THUMB_PATH, (thumb_current_path + (length - 12))); /* DCF 8.3 naming rule */
snprintf(tmp + strlen(tmp) - 3, sizeof(tmp), "%s", "JPG"); snprintf(tmp + strlen(tmp) - 3, sizeof(tmp), "%s", "JPG");
#endif
DBG_DUMP("MOVIE_USER_CB_EVENT_JENC_DONE %s\n", tmp); DBG_DUMP("MOVIE_USER_CB_EVENT_JENC_DONE %s\n", tmp);
FST_FILE fp = FileSys_OpenFile(tmp, FST_OPEN_ALWAYS | FST_OPEN_WRITE); FST_FILE fp = FileSys_OpenFile(tmp, FST_OPEN_ALWAYS | FST_OPEN_WRITE);

View File

@ -633,7 +633,7 @@ static THREAD_RETTYPE PhotoFast_CmdTsk(void* arg)
System_OnPowerPreInit(); System_OnPowerPreInit();
System_OnVideoFastbootInit(); System_OnVideoFastbootInit();
handle_movie_filenaming = vos_task_create(MovieFast_InitFileNamingThread, "init_fn", NULL, 10, 4096); handle_movie_filenaming = vos_task_create(MovieFast_InitFileNamingThread, "init_fn", NULL, 10, 8192);
if(!handle_movie_filenaming){ if(!handle_movie_filenaming){
DBG_ERR("create MovieFast_InitFileNamingThread failed\n"); DBG_ERR("create MovieFast_InitFileNamingThread failed\n");
} }
@ -642,7 +642,7 @@ static THREAD_RETTYPE PhotoFast_CmdTsk(void* arg)
fastboot_wait_done(BOOT_INIT_FILENAMINGOK); fastboot_wait_done(BOOT_INIT_FILENAMINGOK);
handle_movie_moviemode = vos_task_create(MovieFast_InitMovieModeThread, "init_movie", NULL, 10, 4096); handle_movie_moviemode = vos_task_create(MovieFast_InitMovieModeThread, "init_movie", NULL, 10, 8192);
if(!handle_movie_moviemode){ if(!handle_movie_moviemode){
DBG_ERR("create MovieFast_InitMovieModeThread failed\n"); DBG_ERR("create MovieFast_InitMovieModeThread failed\n");
} }
@ -848,8 +848,15 @@ INT32 PhotoFast_WriteFile(UINT32 Addr, UINT32 Size, UINT32 Fmt, UINT32 uiPathId)
DCF_MakeObjPath(nextFolderID, nextFileID, fileType, FilePath); DCF_MakeObjPath(nextFolderID, nextFileID, fileType, FilePath);
} }
#if HUNTING_CAMERA_MCU == ENABLE
char tmp[NMC_TOTALFILEPATH_MAX_LEN] = {'\0'};
sprintf(tmp, "W%03ld%04ld.JPG", nextFolderID, nextFileID);
strncpy(g_photo_fast_write_file_Path, tmp, sizeof(g_photo_fast_write_file_Path) - 1);
DBG_DUMP("last send file:%s\r\n", tmp);
#else
strncpy(g_photo_fast_write_file_Path, FilePath, sizeof(g_photo_fast_write_file_Path) - 1); strncpy(g_photo_fast_write_file_Path, FilePath, sizeof(g_photo_fast_write_file_Path) - 1);
#endif
DBG_IND("Photo_WriteCB logical_id=%d, File=%s, Addr=0x%x, Size=0x%x, Fmt=%d\r\n",logical_id,FilePath, Addr, Size, Fmt); DBG_IND("Photo_WriteCB logical_id=%d, File=%s, Addr=0x%x, Size=0x%x, Fmt=%d\r\n",logical_id,FilePath, Addr, Size, Fmt);
open_flag = FST_CREATE_ALWAYS | FST_OPEN_WRITE; open_flag = FST_CREATE_ALWAYS | FST_OPEN_WRITE;
@ -1472,7 +1479,8 @@ THREAD_RETTYPE PhotoFast_FlowPreviewThread(void *arg)
DBG_DUMP("vcap:%lu vprc:%lu\n", g_vcap_frm_cnt, g_vprc_frm_cnt); DBG_DUMP("vcap:%lu vprc:%lu\n", g_vcap_frm_cnt, g_vprc_frm_cnt);
if((g_vcap_frm_cnt >= PHOTOFAST_CAP_FRAME_CNT) && (start_cap == FALSE)){ //if((g_vcap_frm_cnt >= PHOTOFAST_CAP_FRAME_CNT) && (start_cap == FALSE)){
if (g_vcap_frm_cnt > PHOTOFAST_START_CAP_FRAME_CNT) {
#if HUNTING_PHOTO_FAST_AE_60_FPS == ENABLE #if HUNTING_PHOTO_FAST_AE_60_FPS == ENABLE
PhotoFast_SetTriggerFrmCnt(video_cap_frame.count); /* unbind mode , use vcap frame count */ PhotoFast_SetTriggerFrmCnt(video_cap_frame.count); /* unbind mode , use vcap frame count */
#else #else
@ -1571,6 +1579,27 @@ THREAD_RETTYPE PhotoFast_FlowPreviewThread(void *arg)
vos_flag_set(PHOTOFAST_FLG_ID, FLGPHOTOFAST_SHUTDOWN); vos_flag_set(PHOTOFAST_FLG_ID, FLGPHOTOFAST_SHUTDOWN);
} }
sf_file_thumb_cfg_sava(); sf_file_thumb_cfg_sava();
/*UINT32 uiSelect = UI_GetData(FL_PHOTO_SIZE)+1;
if(UI_GetData(FL_PHOTO_SIZE) >= PHOTO_SIZE_8M)
{
uiSelect = UI_GetData(FL_PHOTO_SIZE)+1;
UI_SetData(FL_PHOTO_SIZE,PHOTO_SIZE_24M);
if(puiPara->SendPicSize == SCREEN_PHOTO_SIZE_VGA)
{
puiPara->SendPicSize = SCREEN_PHOTO_SIZE_2_76M;
}
else
{
puiPara->SendPicSize = SCREEN_PHOTO_SIZE_VGA;
}
}
else
{
UI_SetData(FL_PHOTO_SIZE,uiSelect);
}
Save_MenuInfo();
*/
#endif #endif
switch (DrvGPIO_GetPhotoMovieModeFromMonitor()) { switch (DrvGPIO_GetPhotoMovieModeFromMonitor()) {
@ -1842,8 +1871,9 @@ void PhotoFast_TriggerFrm_Dump(void)
} }
else{ else{
DBG_DUMP("\n\n**********************************************************\n" DBG_DUMP("\n\n**********************************************************\n"
" Trigger Speed : Err\n" " Trigger Speed : Err (vcap frame count = %lu)\n"
"**********************************************************\n"); "**********************************************************\n",
g_vcap_trigger_frm_count);
} }
} }

View File

@ -10,6 +10,7 @@
#define FLGPHOTOFAST_MASK FLGPTN_BIT_ALL #define FLGPHOTOFAST_MASK FLGPTN_BIT_ALL
#define PHOTOFAST_CAP_FRAME_CNT 6 #define PHOTOFAST_CAP_FRAME_CNT 6
#define PHOTOFAST_START_CAP_FRAME_CNT 10
#define PHOTOFAST_HD_PUSH_PULL_TIMEOUT_MS 3000 #define PHOTOFAST_HD_PUSH_PULL_TIMEOUT_MS 3000
// Naming rule & FileDB // Naming rule & FileDB

View File

@ -854,8 +854,14 @@ static INT32 PhotoFast_SliceEncode_Encode_Screennail_RC(HD_VIDEO_FRAME* video_fr
INT8 direction = 0; INT8 direction = 0;
INT32 ret = E_OK; INT32 ret = E_OK;
PhotoFast_SliceEncode_Info* slice_encode_screennail_info = PhotoFast_SliceEncode_Get_Info(PHOTO_ENC_JPG_SCREENNAIL); PhotoFast_SliceEncode_Info* slice_encode_screennail_info = PhotoFast_SliceEncode_Get_Info(PHOTO_ENC_JPG_SCREENNAIL);
#if HUNTING_CAMERA_MCU == ENABLE
UIMenuStoreInfo *puiPara = sf_ui_para_get();
const UINT32 ubount = (((sf_get_screen_nail_width(puiPara->SendPicSize)) * (sf_get_screen_nail_height(puiPara->SendPicSize))*3/(2*JPG_COMERESSED_RATIO_8)) + (((sf_get_screen_nail_width(puiPara->SendPicSize)) * (sf_get_screen_nail_height(puiPara->SendPicSize))*3/(2*JPG_COMERESSED_RATIO_8)) * 20 / 100));
const UINT32 lbount = (((sf_get_screen_nail_width(puiPara->SendPicSize)) * (sf_get_screen_nail_height(puiPara->SendPicSize))*3/(2*JPG_COMERESSED_RATIO_8)) - (((sf_get_screen_nail_width(puiPara->SendPicSize)) * (sf_get_screen_nail_height(puiPara->SendPicSize))*3/(2*JPG_COMERESSED_RATIO_8)) * 20 / 100));
#else
const UINT32 ubount = CFG_PHOTOFAST_SLICE_ENC_RC_SCREENNAIL_UBOUND; const UINT32 ubount = CFG_PHOTOFAST_SLICE_ENC_RC_SCREENNAIL_UBOUND;
const UINT32 lbount = CFG_PHOTOFAST_SLICE_ENC_RC_SCREENNAIL_UBOUND; const UINT32 lbount = CFG_PHOTOFAST_SLICE_ENC_RC_SCREENNAIL_LBOUND;
#endif
bool stop_flag = false; bool stop_flag = false;
do { do {
@ -916,6 +922,9 @@ static INT32 PhotoFast_SliceEncode_Encode_Screennail_RC(HD_VIDEO_FRAME* video_fr
} }
} }
} }
else{
break;
}
} while(1); } while(1);
@ -2083,11 +2092,14 @@ INT32 PhotoFast_SliceEncode_CB3(void* user_data)
#if HUNTING_CAMERA_MCU == ENABLE #if HUNTING_CAMERA_MCU == ENABLE
char tmp2[64] = {'\0'}; char tmp2[64] = {'\0'};
#endif #endif
UINT32 length = strlen(file_path);
#if HUNTING_CAMERA_MCU == ENABLE
snprintf(tmp, sizeof(tmp), "%s%s", PHOTO_THUMB_PATH, file_path); /* DCF 8.3 naming rule */
#else
UINT32 length = strlen(file_path);
snprintf(tmp, sizeof(tmp), "%s%s", PHOTO_THUMB_PATH, file_path + length - 12); /* DCF 8.3 naming rule */ snprintf(tmp, sizeof(tmp), "%s%s", PHOTO_THUMB_PATH, file_path + length - 12); /* DCF 8.3 naming rule */
snprintf(tmp + strlen(tmp) - 3, sizeof(tmp), "%s", "JPG"); snprintf(tmp + strlen(tmp) - 3, sizeof(tmp), "%s", "JPG");
#endif
DBG_DUMP("PHOTO THUMB %s\n", tmp); DBG_DUMP("PHOTO THUMB %s\n", tmp);
FST_FILE fp = FileSys_OpenFile(tmp, FST_OPEN_ALWAYS | FST_OPEN_WRITE); FST_FILE fp = FileSys_OpenFile(tmp, FST_OPEN_ALWAYS | FST_OPEN_WRITE);
@ -2097,12 +2109,12 @@ INT32 PhotoFast_SliceEncode_CB3(void* user_data)
#if HUNTING_CAMERA_MCU == ENABLE #if HUNTING_CAMERA_MCU == ENABLE
memset(tmp, '\0', sizeof(tmp)); memset(tmp, '\0', sizeof(tmp));
snprintf(tmp, sizeof(tmp), "%s%s", SF_SD_THUMB_PATH, file_path + length - 12); /* DCF 8.3 naming rule */ snprintf(tmp, sizeof(tmp), "/mnt/sd/Thumb/%s", file_path); /* DCF 8.3 naming rule */
snprintf(tmp + strlen(tmp) - 3, sizeof(tmp), "%s", "JPG"); snprintf(tmp2, sizeof(tmp2), "%s", file_path); /* DCF 8.3 naming rule */
snprintf(tmp2, sizeof(tmp2), "%s", file_path + length - 12); /* DCF 8.3 naming rule */
snprintf(tmp2 + strlen(tmp2) - 3, sizeof(tmp2), "%s", "JPG");
sf_file_thumb_cfg_fill(tmp, tmp2, queue_ele_in->jpg_thumb_size, SF_FILE_TYPE_PIC_SMALL); sf_file_thumb_cfg_fill(tmp, tmp2, queue_ele_in->jpg_thumb_size, SF_FILE_TYPE_PIC_SMALL);
DBG_DUMP("PHOTO THUMB %s \n %s\n", tmp, tmp2); DBG_DUMP("PHOTO THUMB %s \n %s\n %s\n", tmp, tmp2,file_path);
printf("%s:%d thumbfileSize:%d thumbfileName:%s thumbfilePath:%s\n", __FUNCTION__, __LINE__,queue_ele_in->jpg_thumb_size,tmp2,tmp);
#endif #endif
} }

View File

@ -526,6 +526,7 @@ typedef struct _UIMenuUIMenuStoreInfo {
UINT8 WifiMode; UINT8 WifiMode;
UINT8 WifiApPWD[16]; UINT8 WifiApPWD[16];
UINT8 Zoom; UINT8 Zoom;
UINT32 FileKey;
//============Sifar==============///Payton //============Sifar==============///Payton
} UIMenuStoreInfo; } UIMenuStoreInfo;
@ -772,9 +773,9 @@ enum _PHOTO_SIZE {
#if PHOTO_PREVIEW_SLICE_ENC_FUNC || POWERON_FAST_SLICE_ENC #if PHOTO_PREVIEW_SLICE_ENC_FUNC || POWERON_FAST_SLICE_ENC
PHOTO_SIZE_40M, PHOTO_SIZE_40M,
#endif #endif
PHOTO_SIZE_24M,
PHOTO_SIZE_16M, PHOTO_SIZE_16M,
PHOTO_SIZE_12M, PHOTO_SIZE_12M,
PHOTO_SIZE_10M,
PHOTO_SIZE_8M, PHOTO_SIZE_8M,
PHOTO_SIZE_5M, PHOTO_SIZE_5M,
PHOTO_SIZE_3M, PHOTO_SIZE_3M,
@ -784,12 +785,20 @@ enum _PHOTO_SIZE {
PHOTO_SIZE_1M, PHOTO_SIZE_1M,
PHOTO_SIZE_15M, PHOTO_SIZE_15M,
PHOTO_SIZE_14M, PHOTO_SIZE_14M,
PHOTO_SIZE_10M,
PHOTO_SIZE_7M, PHOTO_SIZE_7M,
PHOTO_SIZE_7MHD, PHOTO_SIZE_7MHD,
PHOTO_SIZE_4M, PHOTO_SIZE_4M,
PHOTO_SIZE_2M, PHOTO_SIZE_2M,
}; };
enum _SCREEN_PHOTO_SIZE {
SCREEN_PHOTO_SIZE_VGA,
SCREEN_PHOTO_SIZE_XGA,
SCREEN_PHOTO_SIZE_2_76M,
SCREEN_PHOTO_SIZE_ID_MAX,
};
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Photo Quality // Photo Quality
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------

View File

@ -164,9 +164,9 @@ static MOVIE_SIZE_ITEM g_MovieSizeTable[] = {
{1, 3, 36, 8, -8, 0}, {1, 3, 36, 8, -8, 0},
{1, 4, 30, 200 * 1024, 30, 26, 10, 40, 26, 10, 40, -40, 1, 8, 4}, {1, 4, 30, 200 * 1024, 30, 26, 10, 40, 26, 10, 40, -40, 1, 8, 4},
#else #else
{1920, 1080, 30, 104857/*262144 2M = 2*1024*1024/8 */, MEDIAREC_DAR_DEFAULT, IMAGERATIO_16_9}, {1920, 1080, 30, /*104857*/262144/* 2M = 2*1024*1024/8 */, MEDIAREC_DAR_DEFAULT, IMAGERATIO_16_9},
{1, 3, 36, 8, -8, 0}, {1, 3, 36, 8, -8, 0},
{1, 4, 30, 104857/*262144 2M = 2*1024*1024/8 */, 30, 26, 15, 50, 26, 15, 50, 0, 1, 8, 4}, {1, 4, 30, /*104857*/262144/* 2M = 2*1024*1024/8 */, 30, 26, 15, 50, 26, 15, 50, 0, 1, 8, 4},
#endif #endif
}, },

View File

@ -30,9 +30,9 @@ static PHOTO_SIZE_PARAM g_PhotoCapSizeTable[PHOTO_SIZE_ID_MAX + 2] = {
#if PHOTO_PREVIEW_SLICE_ENC_FUNC || POWERON_FAST_SLICE_ENC #if PHOTO_PREVIEW_SLICE_ENC_FUNC || POWERON_FAST_SLICE_ENC
{7552, 4248, IMAGERATIO_4_3, "40M"}, /* 40M */ {7552, 4248, IMAGERATIO_4_3, "40M"}, /* 40M */
#endif #endif
{5632, 4224, IMAGERATIO_4_3, "24M"}, //16M
{4608, 3456, IMAGERATIO_4_3, "16M"}, //16M {4608, 3456, IMAGERATIO_4_3, "16M"}, //16M
{4032, 3024, IMAGERATIO_4_3, "12M"}, //12M {4032, 3024, IMAGERATIO_4_3, "12M"}, //12M
{3648, 2736, IMAGERATIO_4_3, "10M"}, //10M
{3264, 2448, IMAGERATIO_4_3, "8M"}, // 8M {3264, 2448, IMAGERATIO_4_3, "8M"}, // 8M
#if defined(_MODEL_565_HUNTING_EVB_LINUX_4G_68CS_) #if defined(_MODEL_565_HUNTING_EVB_LINUX_4G_68CS_)
@ -46,14 +46,17 @@ static PHOTO_SIZE_PARAM g_PhotoCapSizeTable[PHOTO_SIZE_ID_MAX + 2] = {
// +2 mode (only for internel test!!!) // +2 mode (only for internel test!!!)
{1280, 960, IMAGERATIO_4_3, "1.3M"}, // 1.3M {1280, 960, IMAGERATIO_4_3, "1.3M"}, // 1.3M
{1920, 1080, IMAGERATIO_16_9, "2MHD"}, // 2MHD {1920, 1080, IMAGERATIO_16_9, "2MHD"}, // 2MHD
/*{3648, 2736, IMAGERATIO_4_3, "10M"}, //10M*/
}; };
static PHOTO_SIZE_PARAM g_ScreenNailSizeTable[PHOTO_SIZE_ID_MAX + 2] = { static PHOTO_SIZE_PARAM g_ScreenNailSizeTable[SCREEN_PHOTO_SIZE_ID_MAX + 2] = {
#if defined(_MODEL_565_HUNTING_EVB_LINUX_4G_68CS_) #if defined(_MODEL_565_HUNTING_EVB_LINUX_4G_68CS_)
{1024, 768, IMAGERATIO_4_3, "0.78M"}, // 0.78M {1024, 768, IMAGERATIO_4_3, "0.78M"}, // 0.78M
#elif defined(_MODEL_565_HUNTING_EVB_LINUX_4G_S530_) #elif defined(_MODEL_565_HUNTING_EVB_LINUX_4G_S530_)
{640, 480, IMAGERATIO_4_3, "VGA"}, // VGA {640, 480, IMAGERATIO_4_3, "VGA"}, // VGA
{1024, 768, IMAGERATIO_4_3, "0.78M"}, // 0.78M {1024, 768, IMAGERATIO_4_3, "XGA"}, // 0.78M
{1920, 1440, IMAGERATIO_4_3, "2.76M"}, // 2.76M
#endif #endif
//CFG_SCREENNAIL_W //CFG_SCREENNAIL_W
//CFG_SCREENNAIL_H //CFG_SCREENNAIL_H

View File

@ -28,6 +28,8 @@
//#ifndef SF_I2C_NAME //#ifndef SF_I2C_NAME
#define SF_I2C_NAME "sf_mcu" #define SF_I2C_NAME "sf_mcu"
//#endif //#endif
#define SF_SEND_LIST_ITEM_LENGTH 15
#define SF_THUMB_SEND_LIST "A:\\Thumb\\send.list"
#define SF_SD_THUMB_PATH "A:\\Thumb\\ThumbFileCfg" #define SF_SD_THUMB_PATH "A:\\Thumb\\ThumbFileCfg"
//#ifndef SF_I2C_ADDR //#ifndef SF_I2C_ADDR
@ -465,7 +467,7 @@ typedef enum sf_FILE_TYPE_E
typedef struct sf_FILE_ATTR_S { typedef struct sf_FILE_ATTR_S {
SF_FILE_TYPE_E enFileTye; SF_FILE_TYPE_E enFileTye;
char thumbfileName[SF_MAX_PIC_LEN]; char thumbfileName[SF_SEND_LIST_ITEM_LENGTH];
char thumbfilePath[SF_MAX_PATH_LEN]; char thumbfilePath[SF_MAX_PATH_LEN];
char txtfilePath[SF_MAX_PATH_LEN]; char txtfilePath[SF_MAX_PATH_LEN];
char txtfileName[SF_MAX_PIC_LEN]; char txtfileName[SF_MAX_PIC_LEN];
@ -514,6 +516,6 @@ void sf_file_thumb_cfg_fill(char* filepath,char* fileName,UINT32 size, SF_FILE_T
void sf_file_thumb_cfg_set(SF_SRCFILE_ATTR_S *pThumbFileCfgl); void sf_file_thumb_cfg_set(SF_SRCFILE_ATTR_S *pThumbFileCfgl);
void sf_file_thumb_cfg_clear(void); void sf_file_thumb_cfg_clear(void);
void sf_file_thumb_cfg_sava(void); void sf_file_thumb_cfg_sava(void);
void sf_add_file_name_to_send_list(char *sendfname);
#endif #endif

View File

@ -7,6 +7,7 @@ RTOS_OUTPUT_DIR = $(CURR_DRIVER_DIR)/output
CARDV_DIR = $(APP_DIR)/source/cardv 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
CARDV_SOURCE_LVGL_SPORTCAM_DIR = $(CARDV_SOURCE_DIR)/UIWnd/LVGL_SPORTCAM
# INCs # INCs
VOS_INC_PATH = $(VOS_DRIVER_DIR)/include VOS_INC_PATH = $(VOS_DRIVER_DIR)/include
@ -25,7 +26,8 @@ EXTRA_INCLUDE += -I$(VOS_INC_PATH) \
-I$(CARDV_SOURCE_DIR) \ -I$(CARDV_SOURCE_DIR) \
-I$(INCLUDE_DIR) \ -I$(INCLUDE_DIR) \
-I$(INCLUDE_DIR) \ -I$(INCLUDE_DIR) \
-I$(CARDV_SOURCE_DIR)/Gx/include -I$(CARDV_SOURCE_DIR)/Gx/include \
-I$(CARDV_SOURCE_LVGL_SPORTCAM_DIR)
.PHONY: modules modules_install clean .PHONY: modules modules_install clean
############################################################################### ###############################################################################

View File

@ -18,33 +18,33 @@
* Description: creat * Description: creat
**************************************************************************/ **************************************************************************/
#ifdef __KERNEL__ #ifdef __KERNEL__
#include <linux/delay.h> #include <linux/delay.h>
#include <linux/module.h> #include <linux/module.h>
//#include <mach/rcw_macro.h> //#include <mach/rcw_macro.h>
//#include "kwrap/type.h" //#include "kwrap/type.h"
//#include "kwrap/semaphore.h" //#include "kwrap/semaphore.h"
//#include "kwrap/flag.h" //#include "kwrap/flag.h"
#include <sf_mcu.h> #include <sf_mcu.h>
#else #else
//#include "kwrap/type.h" //#include "kwrap/type.h"
//#include "kwrap/semaphore.h" //#include "kwrap/semaphore.h"
//#include "kwrap/flag.h" //#include "kwrap/flag.h"
#include <sf_mcu.h> #include <sf_mcu.h>
#endif #endif
#define __MODULE__ sf_i2c_mcu #define __MODULE__ sf_i2c_mcu
#define __DBGLVL__ 2 // 0=FATAL, 1=ERR, 2=WRN, 3=UNIT, 4=FUNC, 5=IND, 6=MSG, 7=VALUE, 8=USER #define __DBGLVL__ 2 // 0=FATAL, 1=ERR, 2=WRN, 3=UNIT, 4=FUNC, 5=IND, 6=MSG, 7=VALUE, 8=USER
#define __DBGFLT__ "*" // *=All, [mark]=CustomClass #define __DBGFLT__ "*" // *=All, [mark]=CustomClass
#include "kwrap/debug.h" #include "kwrap/debug.h"
//#include <kwrap/debug.h> //#include <kwrap/debug.h>
#include <stdio.h> #include <stdio.h>
#include <kwrap/util.h> #include <kwrap/util.h>
#include "comm/hwclock.h" #include "comm/hwclock.h"
#include "comm/timer.h" #include "comm/timer.h"
#include <time.h> #include <time.h>
#include <rtos_na51089/gpio.h> #include <rtos_na51089/gpio.h>
#include "UIInfo.h" #include "UIInfo/UIInfo.h"
#include "GxUSB.h" #include "GxUSB.h"
#include "kwrap/task.h" #include "kwrap/task.h"
#include <uart.h> #include <uart.h>
@ -143,7 +143,7 @@ unsigned char cmpValBuf[BUF_REG_SIZE] = {0};
static unsigned char sf_commu_mcu_exit = 1; static unsigned char sf_commu_mcu_exit = 1;
static VK_TASK_HANDLE sfCommuMcuThread = 0; static VK_TASK_HANDLE sfCommuMcuThread = 0;
THREAD_RETTYPE sf_commu_mcu_task(void *arg); THREAD_RETTYPE sf_commu_mcu_task(void *arg);
int gsfd = -1; int gsfd = -1;
void mcubuf_reset(void) void mcubuf_reset(void)
@ -286,7 +286,7 @@ int sf_set_mcu_reg_many(unsigned char reg[], unsigned char val[], unsigned int n
sndBuf[index] = num; sndBuf[index] = num;
for(i = 0; i < num; i++) for(i = 0; i < num; i++)
{ {
index++; index++;
sndBuf[index] = reg[i]; sndBuf[index] = reg[i];
index++; index++;
@ -330,9 +330,9 @@ int sf_get_mcu_reg_many(unsigned char reg[], unsigned int num)
index++; index++;
sndBuf[index] = num; sndBuf[index] = num;
for(i = 0; i < num; i++) for(i = 0; i < num; i++)
{ {
index++; index++;
sndBuf[index] = reg[i]; sndBuf[index] = reg[i];
} }
@ -428,7 +428,7 @@ unsigned int sf_get_mcu_reg_ack_depack_many(unsigned char reg[], unsigned char v
*num = smap_buf.buf[3]; *num = smap_buf.buf[3];
for(i = 0; i < *num; i++) for(i = 0; i < *num; i++)
{ {
reg[i]= smap_buf.buf[j]; reg[i]= smap_buf.buf[j];
j++; j++;
val[i]= smap_buf.buf[j]; val[i]= smap_buf.buf[j];
@ -714,7 +714,7 @@ unsigned char sf_commu_parse_mcu_data(unsigned char * src, unsigned int len)
THREAD_RETTYPE sf_commu_mcu_task(void *arg) THREAD_RETTYPE sf_commu_mcu_task(void *arg)
{ {
THREAD_ENTRY(); THREAD_ENTRY();
static unsigned char buffer[BUF_REG_SIZE] = {0}; static unsigned char buffer[BUF_REG_SIZE] = {0};
int i = 0; int i = 0;
int readLen = 0; int readLen = 0;
@ -833,7 +833,7 @@ THREAD_RETTYPE sf_commu_mcu_task(void *arg)
} }
} }
} }
THREAD_RETURN(0); THREAD_RETURN(0);
} }

View File

@ -37,13 +37,15 @@
#include "comm/timer.h" #include "comm/timer.h"
#include <time.h> #include <time.h>
#include <rtos_na51089/gpio.h> #include <rtos_na51089/gpio.h>
#include "UIInfo.h" #include "UIInfo/UIInfo.h"
#include "GxUSB.h" #include "GxUSB.h"
#include <uart.h> #include <uart.h>
#include "FileSysTsk.h" #include "FileSysTsk.h"
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include <fcntl.h>
#include <unistd.h>
static UINT8 McuSubVersion = 0; static UINT8 McuSubVersion = 0;
static UINT16 McuVersion = 0; static UINT16 McuVersion = 0;
@ -2015,7 +2017,7 @@ void sf_file_thumb_cfg_fill(char* filepath,char* fileName, UINT32 size, SF_FILE_
{ {
if (pThumbFileCfg == NULL) { if (pThumbFileCfg == NULL) {
pThumbFileCfg = malloc(sizeof(SF_SRCFILE_ATTR_S)); pThumbFileCfg = malloc(sizeof(SF_SRCFILE_ATTR_S));
memset(pThumbFileCfg, 0, sizeof(SF_SRCFILE_ATTR_S));
printf("%s:%d pThumbFileCfg malloc\n", __FUNCTION__, __LINE__); printf("%s:%d pThumbFileCfg malloc\n", __FUNCTION__, __LINE__);
} }
@ -2051,6 +2053,9 @@ void sf_file_thumb_cfg_clear(void)
void sf_file_thumb_cfg_sava(void) void sf_file_thumb_cfg_sava(void)
{ {
printf("%s:%d s\n", __FUNCTION__, __LINE__); printf("%s:%d s\n", __FUNCTION__, __LINE__);
#if 0
char tmp[64] = {'\0'}; char tmp[64] = {'\0'};
snprintf(tmp, sizeof(tmp), "%s", SF_SD_THUMB_PATH); snprintf(tmp, sizeof(tmp), "%s", SF_SD_THUMB_PATH);
@ -2058,13 +2063,68 @@ void sf_file_thumb_cfg_sava(void)
{ {
printf("%s:%d delete failed\n", __FUNCTION__, __LINE__); printf("%s:%d delete failed\n", __FUNCTION__, __LINE__);
} }
FST_FILE fp = FileSys_OpenFile(tmp, FST_CREATE_ALWAYS | FST_OPEN_WRITE); //FST_FILE fp = FileSys_OpenFile(tmp, FST_CREATE_ALWAYS | FST_OPEN_WRITE);
int fd = open(tmp, O_WRONLY | O_CREAT, S_IRUSR | S_IWUSR);
if (fd == -1)
{
printf("%s:%d err\n", __FUNCTION__, __LINE__);
// 处理文件打开失败的错误
return ;
}
lseek(fd, 0, SEEK_SET);
UINT32 size = sizeof(SF_SRCFILE_ATTR_S); UINT32 size = sizeof(SF_SRCFILE_ATTR_S);
write(fd, pThumbFileCfg, size);
close(fd);
FileSys_WriteFile(fp, (UINT8*)pThumbFileCfg, &size, 0, NULL); //FileSys_WriteFile(fp, (UINT8*)pThumbFileCfg, &size, 0, NULL);
FileSys_CloseFile(fp); //FileSys_CloseFile(fp);
free(pThumbFileCfg); free(pThumbFileCfg);
printf("%s:%d e\n", __FUNCTION__, __LINE__); #endif
UINT8 fileIndex = 0;
for(fileIndex = 0; fileIndex < pThumbFileCfg->filecnt; fileIndex++)
{
sf_add_file_name_to_send_list(pThumbFileCfg->stfileattr[fileIndex].thumbfileName);
printf("%s:%d thumbfileSize:%ld thumbfileName:%s thumbfilePath:%s\n", __FUNCTION__, __LINE__,pThumbFileCfg->stfileattr[fileIndex].thumbfileSize,pThumbFileCfg->stfileattr[fileIndex].thumbfileName,pThumbFileCfg->stfileattr[fileIndex].thumbfilePath);
}
printf("%s:%d e Size:%ld\n", __FUNCTION__, __LINE__,pThumbFileCfg->stfileattr[fileIndex].thumbfileSize);
free(pThumbFileCfg);
}
/*************************************************
Function: sf_add_file_name_to_send_list
Description: add file name to send list
Input: sendfname
Output: N/A
Return: N/A
Others: N/A
*************************************************/
void sf_add_file_name_to_send_list(char *sendfname)
{
char sendListName[64] = {0};
char buff[SF_SEND_LIST_ITEM_LENGTH+1] = {0};
//UINT32 fd = 0;
UIMenuStoreInfo *puiPara = sf_ui_para_get();
if(strlen(sendfname) != SF_SEND_LIST_ITEM_LENGTH-3) //3 ->CamMode \r\n
{
printf("%s:%d AddFileNameToSenddist fail: send file name format error\n", __FUNCTION__, __LINE__);
return;
}
printf("Add %s to send.List\n", sendfname);
strcpy(sendListName, SF_THUMB_SEND_LIST);
int fd = open(sendListName, O_APPEND | O_WRONLY | O_CREAT, S_IRUSR | S_IWUSR);
if(fd)
{
sprintf(buff, "%d%s\r\n", puiPara->CamMode, sendfname);
write(fd, buff, SF_SEND_LIST_ITEM_LENGTH);
close(fd);
printf("Add Success\n");
}
} }
#if defined __FREERTOS #if defined __FREERTOS

View File

@ -41,7 +41,7 @@
#include <kwrap/debug.h> #include <kwrap/debug.h>
#include <time.h> #include <time.h>
//#include <io/gpio.h> //#include <io/gpio.h>
#include "UIInfo.h" #include "UIInfo/UIInfo.h"
#include <FileSysTsk.h> #include <FileSysTsk.h>
static BOOL IsCardFull = FALSE; static BOOL IsCardFull = FALSE;

View File

@ -102,6 +102,10 @@ static void sen_set_cur_fps_os05b10(CTL_SEN_ID id, UINT32 fps);
static UINT32 sen_get_cur_fps_os05b10(CTL_SEN_ID id); static UINT32 sen_get_cur_fps_os05b10(CTL_SEN_ID id);
static void sen_set_chgmode_fps_os05b10(CTL_SEN_ID id, UINT32 fps); static void sen_set_chgmode_fps_os05b10(CTL_SEN_ID id, UINT32 fps);
static UINT32 sen_get_chgmode_fps_os05b10(CTL_SEN_ID id); static UINT32 sen_get_chgmode_fps_os05b10(CTL_SEN_ID id);
extern void get_preset_param(void);
extern ISP_SENSOR_INIT_INFO *sen_preset_param(void);
BOOL ae_preset_flag = FALSE;
//============================================================================= //=============================================================================
// global variable // global variable
//============================================================================= //=============================================================================
@ -1472,8 +1476,15 @@ static ER sen_open_os05b10(CTL_SEN_ID id)
#if defined(__KERNEL__) #if defined(__KERNEL__)
sen_i2c_reg_cb(sen_load_cfg_from_compatible_os05b10); sen_i2c_reg_cb(sen_load_cfg_from_compatible_os05b10);
#endif #endif
if (ae_preset_flag == FALSE){
preset_ctrl[id].mode = ISP_SENSOR_PRESET_DEFAULT; preset_ctrl[id].mode = ISP_SENSOR_PRESET_DEFAULT;
ae_preset_flag = TRUE;
}else {
preset_ctrl[id].mode = ISP_SENSOR_PRESET_CHGMODE;
}
// DBG_ERR(">>>>>>>>>>>>>>os05bl0 open ae mode %d\r\n",preset_ctrl[id].mode);
i2c_valid[id] = TRUE; i2c_valid[id] = TRUE;
if ((!is_fastboot[id]) || (fastboot_i2c_id[id] != sen_i2c[id].id) || (fastboot_i2c_addr[id] != sen_i2c[id].addr)) { if ((!is_fastboot[id]) || (fastboot_i2c_id[id] != sen_i2c[id].id) || (fastboot_i2c_addr[id] != sen_i2c[id].addr)) {
rt = sen_i2c_init_driver(id, &sen_i2c[id]); rt = sen_i2c_init_driver(id, &sen_i2c[id]);
@ -1680,11 +1691,25 @@ static ER sen_chg_mode_os05b10(CTL_SEN_ID id, CTL_SENDRV_CHGMODE_OBJ chgmode_obj
switch (preset_ctrl[id].mode) { switch (preset_ctrl[id].mode) {
default: default:
case ISP_SENSOR_PRESET_DEFAULT: case ISP_SENSOR_PRESET_DEFAULT:
//DBG_ERR("????????pre set default\r\n");
if(1)
{
get_preset_param();
ISP_SENSOR_INIT_INFO *set_preset_param=sen_preset_param();
sensor_ctrl.exp_time[0]=set_preset_param->expt;
sensor_ctrl.gain_ratio[0]=set_preset_param->gain;
sen_preset[id].gain_ratio = set_preset_param->expt;
sen_preset[id].expt_time = set_preset_param->gain;
//DBG_ERR("chg_mode_exp_time:%d,gain:%d\r\n",sensor_ctrl.exp_time[0],sensor_ctrl.gain_ratio[0]);
}
else{
sensor_ctrl.gain_ratio[0] = sen_preset[id].gain_ratio; sensor_ctrl.gain_ratio[0] = sen_preset[id].gain_ratio;
sensor_ctrl.exp_time[0] = sen_preset[id].expt_time; sensor_ctrl.exp_time[0] = sen_preset[id].expt_time;
//DBG_ERR(">>>>>>>> pre set default exp: %d iso: %d\r\n",sen_preset[id].expt_time,sen_preset[id].gain_ratio);
if (mode_basic_param[cur_sen_mode[id]].frame_num == 2) { if (mode_basic_param[cur_sen_mode[id]].frame_num == 2) {
sensor_ctrl.exp_time[1] = sen_preset[id].expt_time >> 3; sensor_ctrl.exp_time[1] = sen_preset[id].expt_time >> 3;
} }
}
break; break;
case ISP_SENSOR_PRESET_CHGMODE: case ISP_SENSOR_PRESET_CHGMODE:

View File

@ -7,7 +7,7 @@
version-info = [00 01 00 01]; version-info = [00 01 00 01];
ae_expect_lum { ae_expect_lum {
size = [b0 00 00 00]; size = [b0 00 00 00];
data = [3c 00 00 00 3c 00 00 00 44 00 00 00 44 00 00 00 44 00 00 00 44 00 00 00 44 00 00 00 44 00 00 00 44 00 00 00 44 00 00 00 44 00 00 00 44 00 00 00 44 00 00 00 52 00 00 00 52 00 00 00 52 00 00 00 52 00 00 00 52 00 00 00 52 00 00 00 52 00 00 00 52 00 00 00 52 00 00 00 52 00 00 00 32 00 00 00 32 00 00 00 32 00 00 00 32 00 00 00 32 00 00 00 32 00 00 00 32 00 00 00 32 00 00 00 3c 00 00 00 46 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00]; data = [3c 00 00 00 3c 00 00 00 3a 00 00 00 3a 00 00 00 3a 00 00 00 3a 00 00 00 3a 00 00 00 3a 00 00 00 3a 00 00 00 3a 00 00 00 44 00 00 00 44 00 00 00 44 00 00 00 52 00 00 00 52 00 00 00 52 00 00 00 52 00 00 00 52 00 00 00 52 00 00 00 52 00 00 00 52 00 00 00 52 00 00 00 52 00 00 00 32 00 00 00 32 00 00 00 32 00 00 00 32 00 00 00 32 00 00 00 32 00 00 00 32 00 00 00 32 00 00 00 3c 00 00 00 46 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00];
}; };
ae_la_clamp { ae_la_clamp {
size = [50 01 00 00]; size = [50 01 00 00];

File diff suppressed because one or more lines are too long