1.mem取图
This commit is contained in:
parent
096a5d3f97
commit
5df191f658
|
@ -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
|
||||
}
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user