1.调整4g发送;2.修复wifi状态获取;3.同步iq;4.低码率测试

This commit is contained in:
payton 2023-06-13 15:24:25 +08:00
parent 34e6fa9c23
commit e9232de89e
43 changed files with 7705 additions and 183 deletions

4
.gitignore vendored
View File

@ -12,4 +12,6 @@ Module.symvers
/.vs
/.vscode
*.cache
*compile_commands.json
*compile_commands.json
*application.bin
*rtos-main.bin

View File

@ -170,6 +170,8 @@ EXTRA_LIB += \
-l:libtse.a \
-l:liblogfile.a \
-l:libsifar.a \
-l:libnl-3.a \
-l:libnl-genl-3.a \
ifeq "$(UI_STYLE)" "UI_STYLE_LVGL"
EXTRA_LIB += \

View File

@ -917,7 +917,7 @@
#define DZOOM_FUNC ENABLE
#define HUNTING_MCU_I2C DISABLE
#define HUNTING_MCU_UART ENABLE
#define HUNTING_IR_LED_940 DISABLE
#define HUNTING_IR_LED_940 ENABLE
#define SF_BASE_VERSION "7MD4RCwD6T2"
#define HW_S530 1
#define DCF_DIR_NAME "MEDIA" /* 100MEDIA */
@ -927,8 +927,9 @@
#define SF_SD_ROOT "/mnt/sd/"
#define SF_SEND_LIST_DIR "/mnt/sd/THUMB/"
#define SF_THUMB_SEND_LIST SF_SEND_LIST_DIR"send.list"
#define SF_THUMB_SEND_AUTO PHOTO_THUMB_PATH"auto.list"
#define SF_IQ_TEST ENABLE
#define SF_IQ_TEST DISABLE
#define PHOTO_ISP_STAMP DISABLE
#define SF_BASE_VERSION_FEA "R2.3"

View File

@ -364,7 +364,7 @@ INT32 System_OnUsbInsert(VControl *pCtrl, UINT32 paramNum, UINT32 *paramArray)
// temporarily do nothing for Movie + UVC
#else
#if 1 //temporally support MSDC only
#if HUNTING_CAMERA_MCU == ENABLE //temporally support MSDC only
Ux_SendEvent(0, NVTEVT_SYSTEM_MODE, 1, PRIMARY_MODE_USBMSDC);
#else
Ux_SendEvent(0, NVTEVT_SYSTEM_MODE, 1, PRIMARY_MODE_USBMENU);

View File

@ -2980,7 +2980,10 @@ INT32 PhotoExe_OnContShot(VControl *pCtrl, UINT32 paramNum, UINT32 *paramArray)
if (paramNum > 0) {
uhSelect = paramArray[0];
}
#if HUNTING_CAMERA_MCU == ENABLE
UIMenuStoreInfo *puiPara = sf_ui_para_get();
puiPara->Multishot = uhSelect;
#endif
UI_SetData(FL_CONTINUE_SHOT, uhSelect);
DBG_IND("photo contshot %d\r\n", uhSelect);
return NVTEVT_CONSUME;

View File

@ -1440,7 +1440,10 @@ void SysCheckFlag(void)
}
}
printf("PowerOnMode=%d NeedTimeSyncStartUp=%d NetWorkNeedSearch:%d\n", PowerOnMode, puiPara->NeedTimeSyncStartUp, puiPara->NetWorkNeedSearch);
if(puiPara->Multishot != SysGetFlag(FL_CONTINUE_SHOT))
{
SysSetFlag(FL_CONTINUE_SHOT, puiPara->Multishot);
}
#endif
//printf("%s:%d sifar para e\n", __FUNCTION__, __LINE__);
@ -1658,8 +1661,8 @@ void SysResetFlag(void)
if(puiPara->TimelapseSwitch)
{
puiPara->TimelapseTime.Hour = 0;
puiPara->TimelapseTime.Min = 0;
puiPara->TimelapseTime.Sec = 5;
puiPara->TimelapseTime.Min = 2;
puiPara->TimelapseTime.Sec = 0;
}
puiPara->WorkTime1Switch = DEFAULT_WORKTIME_SWITCH;

View File

@ -90,7 +90,7 @@ extern "C" {
#define SF_MAX_PATH_LEN 128
#define SF_MAX_PIC_LEN 64
#define SF_SRCFILE_MAX 5
#define SF_SRCFILE_MAX 201
#define SF_THUMB_FILE_MAX_LEN 20

View File

@ -942,6 +942,6 @@ UINT8 sf_get_wifi_type(void);
void sf_wifi_app_start(void);
UINT8 sf_wifi_server_stop_shoot_respond(UINT8 errCode);
void sf_apinfo_thread_init(void);
#endif /*__SF_WIFI_SERVER__*/

View File

@ -51,6 +51,12 @@
#include "sf_keymng.h"
#include "sf_wifi_svr.h"
#include <libavcodec/avcodec.h>
#include <libavformat/avformat.h>
#include <libavutil/imgutils.h>
#include <libswscale/swscale.h>
extern pthread_mutex_t Param_mutexLock;
extern pthread_mutex_t GPIO_mutexLock;
//---------------------UIInfo Global Variables -----------------------------

View File

@ -675,12 +675,18 @@ BOOL sf_check_auto_thumb_file(VOID)
BOOL ret = FALSE;
UINT8 fileIndex = 0;
UIMenuStoreInfo *puiPara = sf_app_ui_para_get();
printf("%s:%d s\n", __FUNCTION__, __LINE__);
char tmp[64] = {'\0'};
SF_SRCFILE_ATTR_S* fileCfg = sf_file_thumb_cfg_get();
snprintf(tmp, sizeof(tmp), "%s", SF_THUMB_SEND_LIST);
if(0 == puiPara->SendType){
snprintf(tmp, sizeof(tmp), "%s", SF_THUMB_SEND_AUTO);
}else {
snprintf(tmp, sizeof(tmp), "%s", SF_THUMB_SEND_LIST);
}
sf_get_send_file_list(&SendFileList[0][0], &SendFileTotal);
if (fileCfg) {
@ -697,8 +703,10 @@ BOOL sf_check_auto_thumb_file(VOID)
printf("%s:%d thumbfileSize:%d thumbfileName:%s thumbfilePath:%s\n", __FUNCTION__, __LINE__,fileCfg->stfileattr[fileIndex].thumbfileSize,fileCfg->stfileattr[fileIndex].thumbfileName,fileCfg->stfileattr[fileIndex].thumbfilePath);
}
}
sf_file_remove(tmp);
if(0 == puiPara->SendType){
sf_file_remove(tmp);
}
printf("%s:%d e \n", __FUNCTION__, __LINE__);
return ret;
@ -725,15 +733,17 @@ UINT8 sf_get_send_file_list(char *sendfileList, UINT8 *fileTotal)
char *pFileHasSend = NULL;
UINT32 fileOffset = 0;
strcpy(sendListName, SF_THUMB_SEND_LIST);
if(0 == pPara->SendType){
snprintf(sendListName, sizeof(sendListName), "%s", SF_THUMB_SEND_AUTO);
}else {
snprintf(sendListName, sizeof(sendListName), "%s", 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);
printf("%s:%d [ERROR] %s open filed\n", __FUNCTION__, __LINE__, sendListName);
return FAIL;
}
else
@ -746,7 +756,7 @@ UINT8 sf_get_send_file_list(char *sendfileList, UINT8 *fileTotal)
{
MaxFileNum = 100;//pPara->SendMaxNum - pSifarPara->picSendMax;
}
printf("Get send.List MaxFileNum:%d\n", MaxFileNum);
printf("%s:%d Get %s MaxFileNum:%d\n", __FUNCTION__, __LINE__, sendListName, MaxFileNum);
//fsize = sp5kFsFileSizeGet(fd);
if(fsize == 0)

View File

@ -16,10 +16,13 @@
#include <netlink/msg.h>
#include <netlink/attr.h>
//#include "nl80211.h"
//#include "iw.h"
#include <nl80211.h>
#include <iw.h>
//#include "sf_4g_app.h"
//#include "sf_syslib.h"
#include <pthread.h>
#include "sf_wifi_svr.h"
#include "sf_led.h"
int iw_debug = 0;
static int (*registered_handler)(struct nl_msg *, void *);
static void *registered_handler_data;
@ -264,14 +267,14 @@ static int connectNum=0;
static int print_event(struct nl_msg *msg, void *arg)
{
struct genlmsghdr *gnlh = nlmsg_data(nlmsg_hdr(msg));
struct nlattr *tb[NL80211_ATTR_MAX + 1], *nst;
struct print_event_args *args = arg;
struct nlattr *tb[NL80211_ATTR_MAX + 1];//, *nst;
//struct print_event_args *args = arg;
char ifname[100];
char macbuf[6*3];
__u8 reg_type;
__u32 wiphy_idx = 0;
int rem_nst;
__u16 status;
//__u8 reg_type;
//__u32 wiphy_idx = 0;
//int rem_nst;
//__u16 status;
nla_parse(tb, NL80211_ATTR_MAX, genlmsg_attrdata(gnlh, 0),
genlmsg_attrlen(gnlh, 0), NULL);
@ -302,6 +305,8 @@ static int print_event(struct nl_msg *msg, void *arg)
connectNum++;
if(connectNum == 1)
{
sf_set_wifi_status(SF_WIFI_CON);
sf_sys_status_led_set(SF_LED_SYS_STATE_WIFI_CONNECTED);
//sf_app_msg_data_snd(SY_MSG_WIFI_CONNECT,(unsigned char*)NULL);
}
@ -315,6 +320,8 @@ static int print_event(struct nl_msg *msg, void *arg)
if(connectNum == 0)
{
sf_set_wifi_status(SF_WIFI_OK);
sf_sys_status_led_set(SF_LED_SYS_STATE_WIFI_DISCONNECT);
//sf_app_msg_data_snd(SY_MSG_WIFI_DISCONNECT,(unsigned char*)NULL);
//sf_rtsp_msg_data_snd(1,(unsigned char*)NULL);
}
@ -409,7 +416,7 @@ __u32 listen_events1(struct nl80211_state *state)
void* apinfoThread(void* args)
{
/*struct nl80211_state nlstate;
struct nl80211_state nlstate;
int err;
@ -419,11 +426,15 @@ void* apinfoThread(void* args)
listen_events1(&nlstate);
nl80211_cleanup(&nlstate);
*/
return NULL;
}
pthread_t gapinfoThreadId;
void sf_apinfo_thread_init(void)
{
pthread_create(&gapinfoThreadId, NULL, apinfoThread, NULL);
}
#if 0
int main(int argc, char **argv)
{

View File

@ -2299,9 +2299,6 @@ void *sf_server_accept_thread(void *pData)
pClient = pClientContextHead ;
appSvrResponseSocketSet(pClient->socket); //bad method it will error at socket over one---oliver
if(pClient != NULL){
sf_sys_status_led_set(SF_LED_SYS_STATE_WIFI_CONNECTED);
}
while(pClient != NULL)
{
@ -2413,7 +2410,7 @@ void *sf_server_accept_thread(void *pData)
close(gAppSvrSocket);
gAppSvrSocket = -1;
sf_sys_status_led_set(SF_LED_SYS_STATE_WIFI_DISCONNECT);
//sf_sys_status_led_set(SF_LED_SYS_STATE_WIFI_DISCONNECT);
//sf_set_wifi_status(SF_WIFI_FAIL);
@ -2649,6 +2646,7 @@ void *sf_wifi_sevrer_init(void *pNull)
appSvrSendInit();
sf_server_init(NULL, 0);
printf("wifi server start\n");
sf_apinfo_thread_init();
//sf_sys_status_led_set(SF_LED_SYS_STATE_WIFI_CONNECTED);
sf_sys_status_led_set(SF_LED_SYS_STATE_WIFI_DISCONNECT);
sf_set_wifi_status(SF_WIFI_OK);

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

Binary file not shown.

View File

@ -42,8 +42,15 @@ EXTRA_INCLUDE += \
-I$(MEDIA_DIR)/include \
-I$(CARDV_SOURCE_LVGL_SPORTCAM_DIR) \
-I$(CARDV_SOURCE_LVGL_SPORTCAM_DIR)/UIFlowLVGL \
-I../../include
-I../../include \
-I$(LIBRARY_DIR)/external/libnl-3.2.27/include
# -I$(LIBRARY_DIR)/external/libnl-3.2.27/include \
# -I$(KERNELDIR)/include \
# -I$(KERNELDIR)/include/linux \
# -I$(KERNELDIR)/arch/arm/include \
# -I$(KERNELDIR)/arch/arm/include/generated
# application local includes
EXTRA_INCLUDE += \
-I$(APP_DIR)/source/cardv/SrcCode \
@ -61,8 +68,8 @@ EXTRA_INCLUDE += \
# Linux Makefile #
###############################################################################
ifeq ($(NVT_PRJCFG_CFG),Linux)
#--------- ENVIRONMENT SETTING --------------------
WARNING = -Wall -Wundef -Wsign-compare -Wno-missing-braces -Wstrict-prototypes -Werror
#--------- ENVIRONMENT SETTING -------------------- -Werror
WARNING = -Wall -Wundef -Wsign-compare -Wno-missing-braces -Wstrict-prototypes
COMPILE_OPTS = -I. -O2 -fPIC -ffunction-sections -fdata-sections -D__LINUX_USER__
C_CFLAGS = $(PLATFORM_CFLAGS) $(COMPILE_OPTS) $(WARNING) $(EXTRA_INCLUDE) $(C_PREDEFINED)
LD_FLAGS = -fPIC -shared
@ -84,7 +91,8 @@ SRC = \
$(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
$(APP_DIR)/source/sf_app/code/source/wifi/sf_wifi_svr.c \
$(APP_DIR)/source/sf_app/code/source/wifi/sf_getapinfo.c
# code/source/common/sf_message_queue.c \
# code/source/common/sf_share_mem.c \

View File

@ -0,0 +1,61 @@
#ifndef __IEEE80211
#define __IEEE80211
/* 802.11n HT capability AMPDU settings (for ampdu_params_info) */
#define IEEE80211_HT_AMPDU_PARM_FACTOR 0x03
#define IEEE80211_HT_AMPDU_PARM_DENSITY 0x1C
#define IEEE80211_HT_CAP_SUP_WIDTH_20_40 0x0002
#define IEEE80211_HT_CAP_SGI_40 0x0040
#define IEEE80211_HT_CAP_MAX_AMSDU 0x0800
#define IEEE80211_HT_MCS_MASK_LEN 10
/**
* struct ieee80211_mcs_info - MCS information
* @rx_mask: RX mask
* @rx_highest: highest supported RX rate. If set represents
* the highest supported RX data rate in units of 1 Mbps.
* If this field is 0 this value should not be used to
* consider the highest RX data rate supported.
* @tx_params: TX parameters
*/
struct ieee80211_mcs_info {
__u8 rx_mask[IEEE80211_HT_MCS_MASK_LEN];
__u16 rx_highest;
__u8 tx_params;
__u8 reserved[3];
} __attribute__ ((packed));
/**
* struct ieee80211_ht_cap - HT capabilities
*
* This structure is the "HT capabilities element" as
* described in 802.11n D5.0 7.3.2.57
*/
struct ieee80211_ht_cap {
__u16 cap_info;
__u8 ampdu_params_info;
/* 16 bytes MCS information */
struct ieee80211_mcs_info mcs;
__u16 extended_ht_cap_info;
__u32 tx_BF_cap_info;
__u8 antenna_selection_info;
} __attribute__ ((packed));
struct ieee80211_vht_mcs_info {
__u16 rx_vht_mcs;
__u16 rx_highest;
__u16 tx_vht_mcs;
__u16 tx_highest;
} __attribute__ ((packed));
struct ieee80211_vht_cap {
__u32 cap_info;
struct ieee80211_vht_mcs_info mcs;
} __attribute__ ((packed));
#endif /* __IEEE80211 */

View File

@ -0,0 +1,267 @@
#ifndef __IW_H
#define __IW_H
#include <stdbool.h>
#include <netlink/netlink.h>
#include <netlink/genl/genl.h>
#include <netlink/genl/family.h>
#include <netlink/genl/ctrl.h>
#include <endian.h>
#include "nl80211.h"
#include "ieee80211.h"
/* support for extack if compilation headers are too old */
#ifndef NETLINK_EXT_ACK
#define NETLINK_EXT_ACK 11
enum nlmsgerr_attrs {
NLMSGERR_ATTR_UNUSED,
NLMSGERR_ATTR_MSG,
NLMSGERR_ATTR_OFFS,
NLMSGERR_ATTR_COOKIE,
__NLMSGERR_ATTR_MAX,
NLMSGERR_ATTR_MAX = __NLMSGERR_ATTR_MAX - 1
};
#endif
#ifndef NLM_F_CAPPED
#define NLM_F_CAPPED 0x100
#endif
#ifndef NLM_F_ACK_TLVS
#define NLM_F_ACK_TLVS 0x200
#endif
#ifndef SOL_NETLINK
#define SOL_NETLINK 270
#endif
#define ETH_ALEN 6
#define VHT_MUMIMO_GROUP_LEN 24
/* libnl 1.x compatibility code */
#if !defined(CONFIG_LIBNL20) && !defined(CONFIG_LIBNL30)
# define nl_sock nl_handle
#endif
struct nl80211_state {
struct nl_sock *nl_sock;
int nl80211_id;
};
enum command_identify_by {
CIB_NONE,
CIB_PHY,
CIB_NETDEV,
CIB_WDEV,
};
enum id_input {
II_NONE,
II_NETDEV,
II_PHY_NAME,
II_PHY_IDX,
II_WDEV,
};
#define HANDLER_RET_USAGE 1
#define HANDLER_RET_DONE 3
struct cmd {
const char *name;
const char *args;
const char *help;
const enum nl80211_commands cmd;
int nl_msg_flags;
int hidden;
const enum command_identify_by idby;
/*
* The handler should return a negative error code,
* zero on success, 1 if the arguments were wrong.
* Return 2 iff you provide the error message yourself.
*/
int (*handler)(struct nl80211_state *state,
struct nl_msg *msg,
int argc, char **argv,
enum id_input id);
const struct cmd *(*selector)(int argc, char **argv);
const struct cmd *parent;
};
struct chanmode {
const char *name;
unsigned int width;
int freq1_diff;
int chantype; /* for older kernel */
};
struct chandef {
enum nl80211_chan_width width;
unsigned int control_freq;
unsigned int center_freq1;
unsigned int center_freq2;
};
#define ARRAY_SIZE(ar) (sizeof(ar)/sizeof(ar[0]))
#define DIV_ROUND_UP(x, y) (((x) + (y - 1)) / (y))
#define __COMMAND(_section, _symname, _name, _args, _nlcmd, _flags, _hidden, _idby, _handler, _help, _sel)\
static struct cmd \
__cmd ## _ ## _symname ## _ ## _handler ## _ ## _nlcmd ## _ ## _idby ## _ ## _hidden = {\
.name = (_name), \
.args = (_args), \
.cmd = (_nlcmd), \
.nl_msg_flags = (_flags), \
.hidden = (_hidden), \
.idby = (_idby), \
.handler = (_handler), \
.help = (_help), \
.parent = _section, \
.selector = (_sel), \
}; \
static struct cmd *__cmd ## _ ## _symname ## _ ## _handler ## _ ## _nlcmd ## _ ## _idby ## _ ## _hidden ## _p \
__attribute__((used,section("__cmd"))) = \
&__cmd ## _ ## _symname ## _ ## _handler ## _ ## _nlcmd ## _ ## _idby ## _ ## _hidden
#define __ACMD(_section, _symname, _name, _args, _nlcmd, _flags, _hidden, _idby, _handler, _help, _sel, _alias)\
__COMMAND(_section, _symname, _name, _args, _nlcmd, _flags, _hidden, _idby, _handler, _help, _sel);\
static const struct cmd *_alias = &__cmd ## _ ## _symname ## _ ## _handler ## _ ## _nlcmd ## _ ## _idby ## _ ## _hidden
#define COMMAND(section, name, args, cmd, flags, idby, handler, help) \
__COMMAND(&(__section ## _ ## section), name, #name, args, cmd, flags, 0, idby, handler, help, NULL)
#define COMMAND_ALIAS(section, name, args, cmd, flags, idby, handler, help, selector, alias)\
__ACMD(&(__section ## _ ## section), name, #name, args, cmd, flags, 0, idby, handler, help, selector, alias)
#define HIDDEN(section, name, args, cmd, flags, idby, handler) \
__COMMAND(&(__section ## _ ## section), name, #name, args, cmd, flags, 1, idby, handler, NULL, NULL)
#define TOPLEVEL(_name, _args, _nlcmd, _flags, _idby, _handler, _help) \
struct cmd __section ## _ ## _name = { \
.name = (#_name), \
.args = (_args), \
.cmd = (_nlcmd), \
.nl_msg_flags = (_flags), \
.idby = (_idby), \
.handler = (_handler), \
.help = (_help), \
}; \
static struct cmd *__section ## _ ## _name ## _p \
__attribute__((used,section("__cmd"))) = &__section ## _ ## _name
#define SECTION(_name) \
struct cmd __section ## _ ## _name = { \
.name = (#_name), \
.hidden = 1, \
}; \
static struct cmd *__section ## _ ## _name ## _p \
__attribute__((used,section("__cmd"))) = &__section ## _ ## _name
#define DECLARE_SECTION(_name) \
extern struct cmd __section ## _ ## _name;
struct vendor_event {
unsigned int vendor_id, subcmd;
void (*callback)(unsigned int vendor_id, unsigned int subcmd,
struct nlattr *data);
};
#define VENDOR_EVENT(_id, _subcmd, _callback) \
const struct vendor_event \
vendor_event_ ## _id ## _ ## _subcmd = { \
.vendor_id = _id, \
.subcmd = _subcmd, \
.callback = _callback, \
}, * const vendor_event_ ## _id ## _ ## _subcmd ## _p \
__attribute__((used,section("vendor_event"))) = \
&vendor_event_ ## _id ## _ ## _subcmd
extern const char iw_version[];
extern int iw_debug;
int handle_cmd(struct nl80211_state *state, enum id_input idby,
int argc, char **argv);
struct print_event_args {
struct timeval ts; /* internal */
bool have_ts; /* must be set false */
bool frame, time, reltime;
};
__u32 listen_events(struct nl80211_state *state,
const int n_waits, const __u32 *waits);
int __prepare_listen_events(struct nl80211_state *state);
__u32 __do_listen_events(struct nl80211_state *state,
const int n_waits, const __u32 *waits,
const int n_prints, const __u32 *prints,
struct print_event_args *args);
int valid_handler(struct nl_msg *msg, void *arg);
void register_handler(int (*handler)(struct nl_msg *, void *), void *data);
int mac_addr_a2n(unsigned char *mac_addr, char *arg);
void mac_addr_n2a(char *mac_addr, const unsigned char *arg);
int parse_hex_mask(char *hexmask, unsigned char **result, size_t *result_len,
unsigned char **mask);
unsigned char *parse_hex(char *hex, size_t *outlen);
int parse_keys(struct nl_msg *msg, char **argv[], int *argc);
int parse_freqchan(struct chandef *chandef, bool chan, int argc, char **argv, int *parsed);
enum nl80211_chan_width str_to_bw(const char *str);
int parse_txq_stats(char *buf, int buflen, struct nlattr *tid_stats_attr, int header,
int tid, const char *indent);
int put_chandef(struct nl_msg *msg, struct chandef *chandef);
void print_ht_mcs(const __u8 *mcs);
void print_ampdu_length(__u8 exponent);
void print_ampdu_spacing(__u8 spacing);
void print_ht_capability(__u16 cap);
void print_vht_info(__u32 capa, const __u8 *mcs);
void print_he_info(struct nlattr *nl_iftype);
char *channel_width_name(enum nl80211_chan_width width);
const char *iftype_name(enum nl80211_iftype iftype);
const char *command_name(enum nl80211_commands cmd);
int ieee80211_channel_to_frequency(int chan, enum nl80211_band band);
int ieee80211_frequency_to_channel(int freq);
void print_ssid_escaped(const uint8_t len, const uint8_t *data);
int nl_get_multicast_id(struct nl_sock *sock, const char *family, const char *group);
char *reg_initiator_to_string(__u8 initiator);
const char *get_reason_str(uint16_t reason);
const char *get_status_str(uint16_t status);
enum print_ie_type {
PRINT_SCAN,
PRINT_LINK,
};
#define BIT(x) (1ULL<<(x))
void print_ies(unsigned char *ie, int ielen, bool unknown,
enum print_ie_type ptype);
void parse_bitrate(struct nlattr *bitrate_attr, char *buf, int buflen);
void iw_hexdump(const char *prefix, const __u8 *data, size_t len);
int get_cf1(const struct chanmode *chanmode, unsigned long freq);
int parse_random_mac_addr(struct nl_msg *msg, char *addrs);
#define SCHED_SCAN_OPTIONS "[interval <in_msecs> | scan_plans [<interval_secs:iterations>*] <interval_secs>] " \
"[delay <in_secs>] [freqs <freq>+] [matches [ssid <ssid>]+]] [active [ssid <ssid>]+|passive] " \
"[randomise[=<addr>/<mask>]]"
int parse_sched_scan(struct nl_msg *msg, int *argc, char ***argv);
DECLARE_SECTION(switch);
DECLARE_SECTION(set);
DECLARE_SECTION(get);
void nan_bf(uint8_t idx, uint8_t *bf, uint16_t bf_len, const uint8_t *buf,
size_t len);
char *hex2bin(const char *hex, char *buf);
int set_bitrates(struct nl_msg *msg, int argc, char **argv,
enum nl80211_attrs attr);
#endif /* __IW_H */

File diff suppressed because it is too large Load Diff

View File

@ -19,8 +19,8 @@
#include "kwrap/flag.h"
//#include "sf_ip6303.h"
//#include "kflow_audiocapture/ctl_aud.h"
#include <linux/i2c.h>
#include <linux/i2c-dev.h>
//#include <linux/i2c.h>
//#include <linux/i2c-dev.h>
#endif
#include "sf_param_struct.h"

View File

@ -24,7 +24,7 @@
#include <sys/types.h>
#include <fcntl.h>
#include <unistd.h>
#include <linux/input.h>
//#include <linux/input.h>
#include <sys/fcntl.h>
#include <sys/stat.h>
#include <sys/ioctl.h>

View File

@ -22,7 +22,7 @@
#include <stdio.h>
#include <sys/types.h>
#include <fcntl.h>
#include <linux/input.h>
//#include <linux/input.h>
#include <sys/fcntl.h>
#include <sys/stat.h>
@ -1172,7 +1172,7 @@ UINT32 sf_set_pir_sensitivity(UINT8 pirs)
puiPara->DigitPirSensitivity = digPirLevel[pirs];
puiPara->DigitPirCnt = digPirCount[pirs];
puiPara->DigitPirWindowTime = 0;
#if SF_IQ_TEST == DISABLE
#if 0//SF_IQ_TEST == DISABLE
if(puiPara->PirSensitivity)
{
puiPara->TimelapseSwitch = SF_OFF;

View File

@ -18,29 +18,29 @@
* Description:
**************************************************************************/
#include <sf_inc.h>
#include <stdio.h>
#include <sys/types.h>
#include <fcntl.h>
#include <linux/input.h>
#include <sys/fcntl.h>
#include <sys/stat.h>
#include <sys/ioctl.h>
#include <unistd.h>
#include <sf_inc.h>
#include <stdio.h>
#include <sys/types.h>
#include <fcntl.h>
//#include <linux/input.h>
#include <sys/fcntl.h>
#include <sys/stat.h>
#include <sys/ioctl.h>
#include <unistd.h>
#include <stdlib.h>
#include <kwrap/util.h>
#include <sys/wait.h>
#include <errno.h>
#include <kwrap/debug.h>
#include "NvtUser/NvtUser.h"
#include "AppControl/AppControl.h"
#include "comm/hwclock.h"
#include <time.h>
#include <io/gpio.h>
#include <kwrap/util.h>
#include <sys/wait.h>
#include <errno.h>
#include <kwrap/debug.h>
#include "NvtUser/NvtUser.h"
#include "AppControl/AppControl.h"
#include "comm/hwclock.h"
#include <time.h>
#include <io/gpio.h>
#include "UIInfo/UIInfo.h"
#include "IOCfg.h"
#include "IOCfg.h"
#include <kwrap/task.h>
@ -77,7 +77,7 @@ LedInfo_t LedInfo[SF_LED_ALL] = {
//ID FLG_ID_SF_LED = 0;
// Flag
// Flag
//#define FLG_SF_LED_IDLE FLGPTN_BIT(0)
//#define FLG_SF_LED FLGPTN_BIT(1)
//#define FLG_SF_LED_ALL 0xFFFFFFFF
@ -366,7 +366,7 @@ void sf_led_init(void)
void sf_sys_status_led_set(LedSysState_t ledSysStateId)
{
SF_MESSAGE_BUF_S stMessageBuf = {0};
stMessageBuf.arg1 = ledSysStateId;
stMessageBuf.cmdId = CMD_LED;
sf_com_message_send_to_app(&stMessageBuf);

View File

@ -20,13 +20,13 @@
**************************************************************************/
#include <linux/module.h>
//#include <linux/module.h>
#include <sf_inc.h>
#include <stdio.h>
#include <sys/types.h>
#include <fcntl.h>
#include <unistd.h>
#include <linux/input.h>
//#include <linux/input.h>
#include <sys/fcntl.h>
#include <sys/stat.h>

View File

@ -17,19 +17,19 @@
* Ver: 1.0.0 2022.06.15
* Description: creat
**************************************************************************/
#include <linux/module.h>
#include <sf_inc.h>
#include <stdio.h>
#include <sys/types.h>
#include <fcntl.h>
#include <unistd.h>
#include <linux/input.h>
#include <linux/i2c.h>
#include <linux/i2c-dev.h>
#include <sys/fcntl.h>
#include <sys/stat.h>
#include <sys/ioctl.h>
//#include <linux/module.h>
#include <sf_inc.h>
#include <stdio.h>
#include <sys/types.h>
#include <fcntl.h>
#include <unistd.h>
//#include <linux/input.h>
//#include <linux/i2c.h>
//#include <linux/i2c-dev.h>
#include <sys/fcntl.h>
#include <sys/stat.h>
#include <sys/ioctl.h>
#include <stdlib.h>
#include <string.h>
@ -40,16 +40,16 @@
#include <pthread.h>
#include <termios.h>
#include <errno.h>
#include <kwrap/util.h>
#include <sys/wait.h>
#include <errno.h>
#include <kwrap/debug.h>
#include "NvtUser/NvtUser.h"
#include "AppControl/AppControl.h"
#include "comm/hwclock.h"
#include <time.h>
#include <io/gpio.h>
#include <kwrap/util.h>
#include <sys/wait.h>
#include <errno.h>
#include <kwrap/debug.h>
#include "NvtUser/NvtUser.h"
#include "AppControl/AppControl.h"
#include "comm/hwclock.h"
#include <time.h>
#include <io/gpio.h>
#include "UIInfo/UIInfo.h"
//#include <uart.h>
@ -897,7 +897,7 @@ unsigned char sf_commu_parse_mcu_data(unsigned char * src, unsigned int len)
THREAD_RETTYPE sf_commu_mcu_task(void *arg)
{
THREAD_ENTRY();
THREAD_ENTRY();
static unsigned char buffer[BUF_REG_SIZE] = {0};
int i = 0;
int readLen = 0;
@ -1017,7 +1017,7 @@ THREAD_RETTYPE sf_commu_mcu_task(void *arg)
vos_util_delay_us(10000);//10ms
}
CHKPNT;
THREAD_RETURN(0);
THREAD_RETURN(0);
}

View File

@ -20,15 +20,15 @@
**************************************************************************/
#include <linux/module.h>
//#include <linux/module.h>
#include <sf_inc.h>
#include <stdio.h>
#include <sys/types.h>
#include <fcntl.h>
#include <unistd.h>
#include <linux/input.h>
#include <linux/i2c.h>
#include <linux/i2c-dev.h>
//#include <linux/input.h>
//#include <linux/i2c.h>
//#include <linux/i2c-dev.h>
#include <sys/fcntl.h>
#include <sys/stat.h>
@ -36,7 +36,7 @@
#include <stdlib.h>
#include <kwrap/util.h>
#include <sys/wait.h>
//#include <sys/wait.h>
#include <errno.h>
#include <kwrap/debug.h>
#include "NvtUser/NvtUser.h"

View File

@ -20,13 +20,13 @@
**************************************************************************/
#include <linux/module.h>
//#include <linux/module.h>
#include <sf_mcu.h>
#include <stdio.h>
#include <sys/types.h>
#include <fcntl.h>
#include <unistd.h>
#include <linux/input.h>
//#include <linux/input.h>
#include <sys/fcntl.h>
#include <sys/stat.h>

View File

@ -486,6 +486,7 @@
#define MOVIE_THUMB_PATH "A:\\THUMB\\"
#define SF_SEND_LIST_DIR "/mnt/sd/THUMB"
#define SF_THUMB_SEND_LIST PHOTO_THUMB_PATH"send.list"
#define SF_THUMB_SEND_AUTO PHOTO_THUMB_PATH"auto.list"
//..............................................................................
// EXIF Config
#define USE_EXIF DISABLE
@ -951,11 +952,11 @@
#define MOVIE_AI_DEMO DISABLE
#define HUNTING_MCU_I2C DISABLE
#define HUNTING_MCU_UART ENABLE
#define HUNTING_IR_LED_940 DISABLE
#define HUNTING_IR_LED_940 ENABLE
#define SF_EXIF_MN_BUF_SIZE 256
#define SF_BASE_VERSION "7MD4RCwD6T2"
#define SF_TRIGGER_TIME_TEST DISABLE
#define SF_IQ_TEST ENABLE
#define SF_IQ_TEST DISABLE
#define HUNTING_PHOTO_FAST_AE_60_FPS ENABLE
#define HW_S530 1

View File

@ -628,17 +628,17 @@ static void MovieFast_OnRecStart(void)
#if HUNTING_CAMERA_MCU == ENABLE
/*if(1 == puiPara->DebugMode)
{
MovieFast_SetAq(ImageApp_MovieMulti_GetVdoEncPort(gMovie_Clone_Info[i].rec_id), 6);
MovieFast_SetAq(ImageApp_MovieMulti_GetVdoEncPort(gMovie_Clone_Info[i].rec_id), 4);
MovieFast_SetRRC(ImageApp_MovieMulti_GetVdoEncPort(gMovie_Clone_Info[i].rec_id), 1, 1, 1);
}else if(2 == puiPara->DebugMode){
MovieFast_SetAq(ImageApp_MovieMulti_GetVdoEncPort(gMovie_Clone_Info[i].rec_id), 2);
MovieFast_SetAq(ImageApp_MovieMulti_GetVdoEncPort(gMovie_Clone_Info[i].rec_id), 4);
MovieFast_SetRRC(ImageApp_MovieMulti_GetVdoEncPort(gMovie_Clone_Info[i].rec_id), 1, 1, 1);
}else {
MovieFast_SetAq(ImageApp_MovieMulti_GetVdoEncPort(gMovie_Clone_Info[i].rec_id), 4);
MovieFast_SetRRC(ImageApp_MovieMulti_GetVdoEncPort(gMovie_Clone_Info[i].rec_id), 0, 0, 0);
MovieFast_SetAq(ImageApp_MovieMulti_GetVdoEncPort(gMovie_Clone_Info[i].rec_id), 2);
MovieFast_SetRRC(ImageApp_MovieMulti_GetVdoEncPort(gMovie_Clone_Info[i].rec_id), 1, 1, 1);
}*/
MovieFast_SetAq(ImageApp_MovieMulti_GetVdoEncPort(gMovie_Clone_Info[i].rec_id), 4);
MovieFast_SetRRC(ImageApp_MovieMulti_GetVdoEncPort(gMovie_Clone_Info[i].rec_id), 0, 0, 0);
MovieFast_SetAq(ImageApp_MovieMulti_GetVdoEncPort(gMovie_Clone_Info[i].rec_id), 4);
MovieFast_SetRRC(ImageApp_MovieMulti_GetVdoEncPort(gMovie_Clone_Info[i].rec_id), 1, 1, 1);
#else
MovieFast_SetAq(ImageApp_MovieMulti_GetVdoEncPort(gMovie_Clone_Info[i].rec_id), 4);
#endif

View File

@ -2753,7 +2753,10 @@ INT32 PhotoExe_OnContShot(VControl *pCtrl, UINT32 paramNum, UINT32 *paramArray)
if (paramNum > 0) {
uhSelect = paramArray[0];
}
#if HUNTING_CAMERA_MCU == ENABLE
UIMenuStoreInfo *puiPara = sf_ui_para_get();
puiPara->Multishot = uhSelect;
#endif
UI_SetData(FL_CONTINUE_SHOT, uhSelect);
DBG_IND("photo contshot %d\r\n", uhSelect);
return NVTEVT_CONSUME;

View File

@ -1390,7 +1390,7 @@ THREAD_RETTYPE PhotoFast_FlowPreviewThread(void *arg)
g_bPreViewPullFlag = TRUE;
bCaptureStartFirstEntry = TRUE;
switch (UI_GetData(FL_CONTINUE_SHOT))
switch (UI_GetData(FL_CONTINUE_SHOT))//puiPara->Multishot
{
case CONTINUE_SHOT_BURST_5:
max_cnt = 5;

View File

@ -1070,6 +1070,8 @@ void SysResetFlag(void)
puiPara->FlashLed = DEFAULT_FLASH_LED;
//ImgSize
puiPara->NightMode = DEFAULT_NIGHT_MODE;
puiPara->Multishot = DEFAULT_CONTINUE_SHOT;
//Multishot
//VideoSize
//VideoTimeMenu

View File

@ -275,7 +275,7 @@ static MOVIE_SIZE_ITEM g_MovieSizeTable[] = {
[MOVIE_SIZE_1920x1080P25] = {
{1920, 1080, 25, 104857/*262144 2M = 2*1024*1024/8 */, MEDIAREC_DAR_DEFAULT, IMAGERATIO_16_9},
{1, 3, 36, 8, -8, 0},
{1, 4, 25, 104857/*262144 2M = 2*1024*1024/8 */, 25, 26, 15, 50, 26, 15, 50, 40, 1, 8, 4},
{1, 4, 25, 104857/*262144 2M = 2*1024*1024/8 */, 25, 26, 15, 50, 26, 15, 50, 20, 1, 8, 4},
},
[MOVIE_SIZE_1280x720P25] = {

View File

@ -417,7 +417,7 @@ typedef struct sfCAMERA_CMD_S
#define SF_MAX_PATH_LEN 128
#define SF_MAX_PIC_LEN 64
#define SF_SRCFILE_MAX 5
#define SF_SRCFILE_MAX 201
typedef enum sf_FILE_TYPE_E

View File

@ -14,6 +14,7 @@ VOS_INC_PATH = $(VOS_DRIVER_DIR)/include
KDRV_INC_PATH = $(KDRV_DIR)/include
DRIVER_INC_PATH = $(NVT_DRIVER_DIR)/include
CURR_DRIVER_INC_PATH = $(CURR_DRIVER_DIR)/include
VOS_KWRAP_INC_PATH = $(VOS_DRIVER_DIR)/drivers/include/kwrap
include $(CARDV_DIR)/MakeConfig.mk
@ -27,7 +28,8 @@ EXTRA_INCLUDE += -I$(VOS_INC_PATH) \
-I$(INCLUDE_DIR) \
-I$(INCLUDE_DIR) \
-I$(CARDV_SOURCE_DIR)/Gx/include \
-I$(CARDV_SOURCE_LVGL_SPORTCAM_DIR)
-I$(CARDV_SOURCE_LVGL_SPORTCAM_DIR) \
-I$(VOS_KWRAP_INC_PATH)
.PHONY: modules modules_install clean
###############################################################################
@ -80,7 +82,9 @@ endif
###############################################################################
else ifeq ($(NVT_PRJCFG_CFG),rtos)
OUTPUT_NAME = lib$(MODULE_NAME).a
C_CFLAGS = $(PLATFORM_CFLAGS) $(EXTRA_INCLUDE) -D_MODEL_$(MODEL)_
WARNING = -Wall -Wundef -Wsign-compare -Wno-missing-braces -Wstrict-prototypes
COMPILE_OPTS = -I. -O2 -fPIC -ffunction-sections -fdata-sections
C_CFLAGS = $(PLATFORM_CFLAGS) $(COMPILE_OPTS) $(WARNING) $(EXTRA_INCLUDE) -D_MODEL_$(MODEL)_ $(C_PREDEFINED)
EXTRA_INCLUDE += -I$(KDRV_DIR)/include/comm -I$(KDRV_DIR)/include/plat
SRC = \

View File

@ -18,6 +18,7 @@
* Description: creat
**************************************************************************/
#include <string.h>
#ifdef __KERNEL__
#include <linux/delay.h>
#include <linux/module.h>
@ -38,13 +39,13 @@
#define __DBGFLT__ "*" // *=All, [mark]=CustomClass
#include "kwrap/debug.h"
//#include <kwrap/debug.h>
#include <stdio.h>
#include <kwrap/stdio.h>
#include <kwrap/util.h>
#include "comm/hwclock.h"
#include "comm/timer.h"
#include <time.h>
//#include <time.h>
#include <rtos_na51089/gpio.h>
#include "UIInfo/UIInfo.h"
#include "UIInfo.h"
#include "GxUSB.h"
#include "kwrap/task.h"
#include <uart.h>

View File

@ -10,20 +10,8 @@
*/
#ifdef __KERNEL__
#include <linux/delay.h>
#include <linux/module.h>
//#include <mach/rcw_macro.h>
//#include "kwrap/type.h"
//#include "kwrap/semaphore.h"
//#include "kwrap/flag.h"
#include <sf_mcu.h>
#else
//#include "kwrap/type.h"
//#include "kwrap/semaphore.h"
//#include "kwrap/flag.h"
#include <sf_mcu.h>
#endif
#include <sf_commu_mcu.h>
#define __MODULE__ sf_mcu
@ -31,13 +19,13 @@
#define __DBGFLT__ "*" // *=All, [mark]=CustomClass
#include "kwrap/debug.h"
//#include <kwrap/debug.h>
#include <stdio.h>
#include <kwrap/stdio.h>
#include <kwrap/util.h>
#include "comm/hwclock.h"
#include "comm/timer.h"
#include <time.h>
//#include <time.h>
#include <rtos_na51089/gpio.h>
#include "UIInfo/UIInfo.h"
#include <UIInfo.h>
#include "GxUSB.h"
#include <uart.h>
@ -46,6 +34,7 @@
#include <fcntl.h>
#include <unistd.h>
#include <sf_i2c_driver.h>
#include "PrjCfg.h"
static UINT8 McuSubVersion = 0;
static UINT16 McuVersion = 0;
@ -2052,8 +2041,10 @@ void sf_file_thumb_cfg_fill(char* filepath,char* fileName, UINT32 size, SF_FILE_
pThumbFileCfg->filecnt = 0;
}
sprintf(pThumbFileCfg->stfileattr[pThumbFileCfg->filecnt].thumbfilePath, "%s", filepath);
sprintf(pThumbFileCfg->stfileattr[pThumbFileCfg->filecnt].thumbfileName, "%s", fileName);
snprintf(pThumbFileCfg->stfileattr[pThumbFileCfg->filecnt].thumbfilePath, sizeof(pThumbFileCfg->stfileattr[pThumbFileCfg->filecnt].thumbfilePath), "%s", filepath);
//sprintf(pThumbFileCfg->stfileattr[pThumbFileCfg->filecnt].thumbfilePath, "%s", filepath);
snprintf(pThumbFileCfg->stfileattr[pThumbFileCfg->filecnt].thumbfileName, sizeof(pThumbFileCfg->stfileattr[pThumbFileCfg->filecnt].thumbfileName), "%s", fileName);
//sprintf(pThumbFileCfg->stfileattr[pThumbFileCfg->filecnt].thumbfileName, "%s", fileName);
printf("sf_file_thumb_cfg_fill:enFileType:%d\n",enFileType);
pThumbFileCfg->stfileattr[pThumbFileCfg->filecnt].enFileTye = enFileType;
pThumbFileCfg->stfileattr[pThumbFileCfg->filecnt].thumbfileSize = size;
@ -2146,7 +2137,12 @@ void sf_add_file_name_to_send_list(char *sendfname)
}
printf("Add %s to send.List\n", sendfname);
strcpy(sendListName, SF_THUMB_SEND_LIST);
if(0 == puiPara->SendType){
snprintf(sendListName, sizeof(sendListName), "%s", SF_THUMB_SEND_AUTO);
}else {
snprintf(sendListName, sizeof(sendListName), "%s", SF_THUMB_SEND_LIST);
}
int fd = open(sendListName, O_APPEND | O_WRONLY | O_CREAT, S_IRUSR | S_IWUSR);

View File

@ -7,7 +7,7 @@
version-info = [00 01 00 01];
ae_expect_lum {
size = [b0 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 50 00 00 00 50 00 00 00 50 00 00 00 50 00 00 00 50 00 00 00 50 00 00 00 50 00 00 00 50 00 00 00 50 00 00 00 50 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 26 00 00 00 26 00 00 00 26 00 00 00 26 00 00 00 26 00 00 00 26 00 00 00 27 00 00 00 2c 00 00 00 32 00 00 00 3a 00 00 00 44 00 00 00 50 00 00 00 50 00 00 00 50 00 00 00 50 00 00 00 50 00 00 00 50 00 00 00 50 00 00 00 50 00 00 00 50 00 00 00 50 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 {
size = [50 01 00 00];

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long