1.mem取图

This commit is contained in:
payton 2023-11-16 09:54:05 +08:00
parent 096a5d3f97
commit 5df191f658
2 changed files with 210 additions and 0 deletions

View File

@ -42,6 +42,8 @@ UINT32 sf_get_file_size(UINT8 * fname);
UINT8 sf_get_send_file_list(char *sendfileList, UINT8 *fileTotal);
BOOL sf_check_auto_thumb_file(VOID);
UINT8 sf_get_send_file_total(void);
SINT32 sf_mem_upload_file_to_module(UINT32 MemPhotoAddr, UINT32 MemPhotosize);
SINT32 sf_usr_mem_photo_ch(void);
#ifdef __cplusplus
#if __cplusplus
}

View File

@ -10,6 +10,7 @@
#include <sys/vfs.h>
#include<pthread.h>
#include <sf_message_queue.h>
#include "kwrap/nvt_type.h"
#include "sf_eg91_sim.h"
#include "sf_common.h"
#include "sf_hal_ttyusb.h"
@ -26,6 +27,7 @@
#include <dirent.h>
#include "sf_battery.h"
#include "sys_usrmem.h"
#ifdef __cplusplus
#if __cplusplus
extern "C" {
@ -1561,6 +1563,212 @@ UINT8 sf_get_send_file_total(void)
}
#endif
#if SF_NO_SD_SEND == ENABLE
/*************************************************
Function: sf_mem_upload_file_to_module
Description: upload file to module.
Input: N/A
Output: N/A
Return: 0:success; else:fail;
Others: N/A
*************************************************/
SINT32 sf_mem_upload_file_to_module(UINT32 MemPhotoAddr, UINT32 MemPhotosize)
{
UINT32 count = 0;
SINT32 uploadFsize = MemPhotosize;
SINT32 ret = SF_SUCCESS; //0:success; else:fail;
SINT32 ttyRet = SF_FAILURE;
UINT32 countflag = 0;
//UINT32 time = 0;
//UINT8 sdFname[64] = {0};
//UINT8 gsmPara[GPRS_INFO_LINE_MAX] = {0};
SF_QUECTEL_UPLOAD_E enUploadLocation = QUECTEL_UPLOAD_FRIST;
sf_set_upload_to_module_flag(0); // test
if(sf_get_del_flag() == FALSE)
{
sf_set_del_flag(TRUE);
enUploadLocation = QUECTEL_UPLOAD_QFDEL;
}
printf("[%s:%d] s\n", __FUNCTION__, __LINE__);
sf_gsm_para_buff_clear();
while(sf_app_while_flag())
{
sf_gsm_para_buff_clear();
sf_hal_ttyusb2_read(gsmPara, 200);
printf("-----enUploadLocation=%d-----count=%d-----\n", enUploadLocation, count);
if(gsmPara[0] != '\0')
{
printf("gsmPara:%s\n================end\n", gsmPara);
}
count++;
if(count > 500)
{
ret = SF_UPLOAD_ERROR_AT_TIMEOUT;
printf("[%s:%d]MMS AT Timeout,enUploadLocation=%d,Error Code:0x%08X\n",
__FUNCTION__, __LINE__, enUploadLocation, ret);
SLOGE(gsmPara);
sprintf((char *)gsmPara, "[%s:%d]MMS AT Timeout,enUploadLocation=%d,Error Code:0x%08X\n",
__FUNCTION__, __LINE__, enUploadLocation, ret);
SLOGE(gsmPara);
count = 0;
goto SF_QUECTEL_UPLOAD_END;
}
switch(enUploadLocation)
{
case QUECTEL_UPLOAD_QFDEL:
enUploadLocation = QUECTEL_UPLOAD_QFLST;
sprintf((char *)gsmPara, "AT+QFDEL=\"*\"\r");
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara));
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);
break;
case QUECTEL_UPLOAD_QFLST:
if(strstr((const char *)gsmPara, "ERROR"))
{
ret = SF_UPLOAD_ERROR_GET_FSIZE_FAIL;
sprintf((char *)gsmPara, "[%s:%d] AT+QFDEL,Error Code:0x%08X\n", __FUNCTION__, __LINE__, ret);
SLOGE(gsmPara);
goto SF_QUECTEL_UPLOAD_END;
}
else if(strstr((const char *)gsmPara, "OK"))
{
enUploadLocation = QUECTEL_UPLOAD_FRIST;
}
break;
case QUECTEL_UPLOAD_FRIST:
enUploadLocation = QUECTEL_UPLOAD_QFUPL;
sprintf((char *)gsmPara, "AT+QFUPL=\"UFS:MEMPHOTO.JPG\",%d\r", uploadFsize);
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara));
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);
break;
case QUECTEL_UPLOAD_QFUPL:
if(strstr((const char *)gsmPara, "ERROR"))
{
if(strstr((const char *)gsmPara, "+CME ERROR: 407"))
{
printf("[%s:%d]file already exist,continue.\n", __FUNCTION__, __LINE__);
//enUploadLocation = QUECTEL_UPLOAD_END;
sf_test_upload_tm_log = 1;
goto SF_QUECTEL_UPLOAD_END;
}
else if((strstr((const char *)gsmPara, "+CME ERROR: 423")) || (strstr((const char *)gsmPara, "+CME ERROR: 407")))
{
ret = SF_UPLOAD_ERROR_DATA;
SLOGE(gsmPara);
printf("[%s:%d]Upload data error\n", __FUNCTION__, __LINE__);
sprintf((char *)gsmPara, "[%s:%d]Upload data error,Error Code:0x%08X\n", __FUNCTION__, __LINE__, ret);
SLOGE(gsmPara);
sf_test_upload_tm_log = 1;
goto SF_QUECTEL_UPLOAD_END;
}
else
{
ret = SF_UPLOAD_ERROR_DATA;
SLOGE(gsmPara);
printf("[%s:%d]Upload data error\n", __FUNCTION__, __LINE__);
sprintf((char *)gsmPara, "[%s:%d]Upload data error,Error Code:0x%08X\n", __FUNCTION__, __LINE__, ret);
SLOGE(gsmPara);
//enUploadLocation = QUECTEL_UPLOAD_END;
sf_test_upload_tm_log = 1;
goto SF_QUECTEL_UPLOAD_END;
}
}
else if((sf_get_upload_to_module_flag() == 1) && (strstr((const char *)gsmPara, "+QFUPL:")))
{
printf("[%s:%d]upload success\n", __FUNCTION__, __LINE__);
sf_test_upload_tm_log = 1;
goto SF_QUECTEL_UPLOAD_END;
}
else if(strstr((const char *)gsmPara, "CONNECT") || (1 == countflag))
{
sf_test_uploadFsize = 0;
ret = sf_hal_ttyusb2_write((SF_CHAR *)MemPhotoAddr, MemPhotosize);
if(ret != SF_FAILURE)
{
printf("[%s:%d]Upload data error\n", __FUNCTION__, __LINE__);
}
sf_sleep_ms(300);
sf_set_upload_to_module_flag(1);
sf_test_uploadFsize = uploadFsize;
countflag = 2;
count = 0;
}
else
{
sf_sleep_ms(1000);
countflag++;
if(count > sf_test_upload_tm) /*18S*/
{
//sf_cmd_camera_restart(1); //reboot modu
//enUploadLocation = QUECTEL_UPLOAD_END;
ret = SF_UPLOAD_ERROR_AT_TIMEOUT;
printf("[%s:%d]Upload To Module Timeout,enUploadLocation=%d,Error Code:0x%08X\n",
__FUNCTION__, __LINE__, enUploadLocation, ret);
SLOGE(gsmPara);
sprintf((char *)gsmPara, "[%s:%d]Upload To Module Timeout,enUploadLocation=%d,Error Code:0x%08X\n",
__FUNCTION__, __LINE__, enUploadLocation, ret);
SLOGE(gsmPara);
sf_test_upload_tm_log = 1;
goto SF_QUECTEL_UPLOAD_END;
}
}
break;
case QUECTEL_UPLOAD_END:
sf_test_upload_tm_log = 1;
goto SF_QUECTEL_UPLOAD_END;
break;
default:
break;
}
}
SF_QUECTEL_UPLOAD_END:
SLOGD("End,ret=0x%08x\n", ret);
return ret;
}
UINT32 MemPhotoAddr , MemPhotosize;
SINT32 sf_usr_mem_photo_ch(void)
{
SYS_USRMEM usrmem = {0};
if(sys_usrmem_init(&usrmem) == 0){
if(sys_usrmem_read_photo(&usrmem, &MemPhotoAddr, &MemPhotosize) == 0){
SLOGI("photo address %lx, size %lx", MemPhotoAddr, MemPhotosize);
return sf_mem_upload_file_to_module(MemPhotoAddr, MemPhotosize);
}
else{
SLOGE("read photo failed\n");
return 1;
}
}
return 1;
}
#endif
#ifdef __cplusplus
#if __cplusplus
}