1.增加Linux下无卡发送功能

This commit is contained in:
payton 2024-01-16 21:02:16 +08:00
parent 8904ab034e
commit e8397d37b6
7 changed files with 86 additions and 7 deletions

View File

@ -218,6 +218,48 @@ INT32 sys_usrmem_init(SYS_USRMEM* usrmem)
return E_SYS;
}
INT32 sys_usrmem_write_photo(SYS_USRMEM* usrmem, UINT32 buf, UINT32 size)
{
if(usrmem == NULL){
DBG_ERR("usrmem can't be null!\n");
return E_SYS;
}
if(usrmem->addr_photo == 0){
DBG_ERR("address photo can't be null!\n");
return E_SYS;
}
if(buf == 0){
DBG_ERR("buf can't be null!\n");
return E_SYS;
}
if(size == 0){
DBG_ERR("size can't be zero!\n");
return E_SYS;
}
if(usrmem->is_init == FALSE){
DBG_ERR("usrmem is not init yet!\n");
return E_SYS;
}
memcpy((void*)usrmem->addr_photo, (void*)buf, size);
usrmem->hdr->photo_ofs = usrmem->used_size;
usrmem->hdr->photo_size = size;
usrmem->hdr->photo_sum = MemCheck_CalcCheckSum16Bit(usrmem->addr_photo, size);
usrmem->used_size += size;
hd_common_mem_flush_cache((void*)usrmem->addr, usrmem->used_size);
DBG_DUMP("photo addr:%lx, size:%lx, sum:%lx\n", usrmem->addr_photo, usrmem->hdr->photo_size, usrmem->hdr->photo_sum);
return E_OK;
}
INT32 sys_usrmem_read_photo(SYS_USRMEM* usrmem, UINT32* addr, UINT32* size)
{
if(usrmem == NULL){

View File

@ -35,6 +35,7 @@ INT32 sys_usrmem_write_photo(SYS_USRMEM* usrmem, UINT32 buf, UINT32 size);
#else
INT32 sys_usrmem_read_photo(SYS_USRMEM* usrmem, UINT32* addr, UINT32* size);
INT32 sys_usrmem_write_photo(SYS_USRMEM* usrmem, UINT32 buf, UINT32 size);
#endif

View File

@ -38,7 +38,7 @@
#include "vendor_videoout.h"
#include "IOCfg.h"
#define THIS_DBGLVL 2 // 0=FATAL, 1=ERR, 2=WRN, 3=UNIT, 4=FUNC, 5=IND, 6=MSG, 7=VALUE, 8=USER
#define THIS_DBGLVL 6 // 0=FATAL, 1=ERR, 2=WRN, 3=UNIT, 4=FUNC, 5=IND, 6=MSG, 7=VALUE, 8=USER
///////////////////////////////////////////////////////////////////////////////
#define __MODULE__ UiAppMovie
#define __DBGLVL__ ((THIS_DBGLVL>=PRJ_DBG_LVL)?THIS_DBGLVL:PRJ_DBG_LVL)
@ -1273,7 +1273,7 @@ static void MovieExe_FileNamingCB(MOVIE_CFG_REC_ID id, char *pFileName)
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);
DBG_DUMP("id:%d last send file:%s\r\n", id, tmp);
#else
if(id == _CFG_REC_ID_1){
snprintf(thumb_current_path_main, sizeof(thumb_current_path_main), "%s", pFileName);

View File

@ -40,7 +40,7 @@
#include "DCF.h"
#endif
#include "SF_SysStrgMng.h"
#include "sys_usrmem.h"
#define THIS_DBGLVL 2 // 0=FATAL, 1=ERR, 2=WRN, 3=UNIT, 4=FUNC, 5=IND, 6=MSG, 7=VALUE, 8=USER
@ -6879,14 +6879,15 @@ INT32 PhotoExe_Preview_SliceEncode_CB3(void* user_data)
extern INT32 ImageApp_Photo_WriteCB(UINT32 Addr, UINT32 Size, UINT32 Fmt, UINT32 uiPathId);
IMG_CAP_FST_INFO FstStatus = {FST_STA_OK};
UINT32 dcf_handle = (UINT32)System_Get_DCF_Handle(); /* 0:emmc 1:sd */
INT32 dcf_handle = (INT32)System_Get_DCF_Handle(); /* 0:emmc 1:sd */
FstStatus.Status = ImageApp_Photo_WriteCB(
if(dcf_handle >= 0)
{
FstStatus.Status = ImageApp_Photo_WriteCB(
(UINT32)queue_ele_in->jpg_combined_addr,
queue_ele_in->jpg_combined_size,
HD_CODEC_TYPE_JPEG, dcf_handle);
{
char* file_path = ImageApp_Photo_GetLastWriteFilePath();
char tmp[256] = {'\0'};
UINT32 length = strlen(file_path);
@ -6940,6 +6941,19 @@ INT32 PhotoExe_Preview_SliceEncode_CB3(void* user_data)
}
#endif
}
else
{
DBG_WRN("filesys not ready, store data into mem\n");
SYS_USRMEM usrmem = {0};
if(sys_usrmem_init(&usrmem) == E_OK){
sys_usrmem_write_photo(
&usrmem,
(UINT32) queue_ele_in->jpg_thumb_addr,
queue_ele_in->jpg_thumb_size
);
}
}
if(PhotoCapMsgCb){
PhotoCapMsgCb(IMG_CAP_CBMSG_FSTOK, &FstStatus);

View File

@ -84,6 +84,7 @@ static lv_obj_t *g_preview_info_msgbox = NULL;
static lv_obj_t *g_preview_info_label = NULL;
static int g_preview_info_ishidden = true;
static lv_task_t* preview_info_task = NULL;
extern DCF_HANDLE System_Get_DCF_Handle(void);
static void preview_info_task_cb(lv_task_t* task)
{
static int count = 0;
@ -1892,6 +1893,7 @@ void UIFlowPhoto_UpdateInfo(lv_obj_t* obj, const LV_USER_EVENT_NVTMSG_DATA* msg)
{
#if HUNTING_CAMERA_MCU == ENABLE
UIMenuStoreInfo *puiPara = sf_ui_para_get();
INT32 dcf_handle = -1;
#endif
if(msg == NULL){
@ -1911,7 +1913,15 @@ void UIFlowPhoto_UpdateInfo(lv_obj_t* obj, const LV_USER_EVENT_NVTMSG_DATA* msg)
case UIAPPPHOTO_CB_CAPSTART:
#if HUNTING_CAMERA_MCU == ENABLE
sf_set_cap_statu(TRUE);
sf_set_cammode_statu(puiPara->CamMode);
dcf_handle = (INT32)System_Get_DCF_Handle(); /* 0:emmc 1:sd */
if(dcf_handle >= 0)
{
sf_set_cammode_statu(puiPara->CamMode);
}
else {
DBG_WRN("filesys not ready, CamMode SF_CAM_MODE_PHOTO\n");
sf_set_cammode_statu(SF_CAM_MODE_PHOTO);
}
#endif
if(obj == UIFlowPhoto)

View File

@ -35,6 +35,7 @@ INT32 sys_usrmem_write_photo(SYS_USRMEM* usrmem, UINT32 buf, UINT32 size);
#else
INT32 sys_usrmem_read_photo(SYS_USRMEM* usrmem, UINT32* addr, UINT32* size);
INT32 sys_usrmem_write_photo(SYS_USRMEM* usrmem, UINT32 buf, UINT32 size);
#endif

View File

@ -1275,9 +1275,20 @@ static SINT32 app_file_transfer(SF_FN_PARAM_S *pfnParam) {
SINT32 sf_cardv_file_to_app_send_thread(void) {
SINT32 s32ret = 0;
SF_FN_PARAM_S stpfncallback = {0};
UIMenuStoreInfo *puiPara = sf_app_ui_para_get();
if(SF_FAILURE == sf_check_sd())
{
MLOGE("ERROR sf_check_sd\n");
#if SF_NO_SD_SEND == ENABLE
if((0 == puiPara->SendType) && (0 == sf_usr_mem_photo_ch()))
{
s32ret = sf_mem_send_file_to_ftp();
return s32ret;
}
#endif
return SF_FAILURE;
}
stpfncallback.pstParam = sf_customer_param_get();