1.根据新的WiFi协议调整流程
This commit is contained in:
		
							parent
							
								
									6e489d41e0
								
							
						
					
					
						commit
						a8a727b56b
					
				| 
						 | 
				
			
			@ -213,6 +213,7 @@ typedef enum
 | 
			
		|||
	WIFI_CONTROL_CAMERA_Debug = 0x3a,       //debug模式
 | 
			
		||||
	WIFI_CONTROL_CAMERA_Network_Scan = 0x3b, //Network scan
 | 
			
		||||
	WIFI_CONTROL_CAMERA_Network_Select = 0x3c,//Network select
 | 
			
		||||
	WIFI_CONTROL_CAMERA_FormatEmmcCard = 0x3d,//格式化emmc
 | 
			
		||||
 | 
			
		||||
	WIFI_CMD_MAX = 0x40,
 | 
			
		||||
} CAMERA_CFG_CMD;
 | 
			
		||||
| 
						 | 
				
			
			@ -330,6 +331,7 @@ typedef struct devPara_t
 | 
			
		|||
typedef struct 
 | 
			
		||||
{
 | 
			
		||||
	UINT8	fileName[32]; 	/*最后一个文件名取增量,为空取全部*/ 
 | 
			
		||||
    UINT8 	diskType;    	/* 磁盘类型:0:默认,1:eMMC ,2:SD,初次进入预览界面时,如不清楚当前工作磁盘,请发默认类型 */
 | 
			
		||||
	UINT16 	suffix;			/* 0xFFEE */	
 | 
			
		||||
}  __attribute__((packed)) MSG_DEV_THUMB_LIST_Get_T;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -339,6 +341,7 @@ typedef struct
 | 
			
		|||
	UINT8   cmdRet;			/*0 成功,否则返回错误码*/
 | 
			
		||||
	UINT32  fileNums;		/*缩略图文件总数量*/
 | 
			
		||||
	UINT32  packageSize;	/*数据包大小*/
 | 
			
		||||
    UINT8 	diskType;    	/* 磁盘类型:0:默认,1:eMMC ,2:SD,初次进入预览界面时,如不清楚当前工作磁盘,请发默认类型 */
 | 
			
		||||
	UINT16	suffix;    		/* 0xFFEE */
 | 
			
		||||
} __attribute__((packed)) MSG_DEV_THUMB_LIST_Get_Rsp_T;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -569,6 +572,18 @@ typedef struct
 | 
			
		|||
	UINT16	suffix;		/* 0xFFEE */
 | 
			
		||||
}  __attribute__((packed)) MSG_DEV_FormatSDCard_Ctrl_RSP_T;
 | 
			
		||||
 | 
			
		||||
typedef struct
 | 
			
		||||
{	
 | 
			
		||||
UINT8   format;		/* 1:format immediately */
 | 
			
		||||
    UINT16  sufix;		/* 0xFFEE */
 | 
			
		||||
} __attribute__((packed)) MSG_DEV_FormatEmmcCard_Ctrl_T;
 | 
			
		||||
 | 
			
		||||
typedef struct 
 | 
			
		||||
{	
 | 
			
		||||
UINT8		cmdRet;	/* 0:  mean cmd OK  other:mean cmd error */
 | 
			
		||||
UINT16	suffix;	/* 0xFFEE */
 | 
			
		||||
}  __attribute__((packed)) MSG_DEV_FormatEmmcCard_Ctrl_RSP_T;
 | 
			
		||||
 | 
			
		||||
typedef struct 
 | 
			
		||||
{
 | 
			
		||||
	UINT8	reboot;		/* 1: Reboot */
 | 
			
		||||
| 
						 | 
				
			
			@ -882,6 +897,10 @@ typedef struct
 | 
			
		|||
		/*Network select*/
 | 
			
		||||
		MSG_DEV_NetworkSelect_Ctrl_T			ctrlNetworkSelect;
 | 
			
		||||
		MSG_DEV_NetworkSelect_Ctrl_Rsp_T		rctrlNetworkSelect;
 | 
			
		||||
 | 
			
		||||
		/*格式化Emmc*/	
 | 
			
		||||
		MSG_DEV_FormatEmmcCard_Ctrl_T ctrlFormatEmmc; 
 | 
			
		||||
		MSG_DEV_FormatEmmcCard_Ctrl_RSP_T  rctrlFormatEmmc;
 | 
			
		||||
		
 | 
			
		||||
	};
 | 
			
		||||
} __attribute__((packed))	APP_MSG_T;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -150,6 +150,12 @@ static clientContext_t* DeleteClientContext(    clientContext_t **ppClientHead,
 | 
			
		|||
    if (pClient == *ppClientHead)
 | 
			
		||||
    {
 | 
			
		||||
        pTemp = *ppClientHead;
 | 
			
		||||
        if(pTemp == NULL)
 | 
			
		||||
        {
 | 
			
		||||
            MLOGE(" pTemp NULL\n");
 | 
			
		||||
            pthread_mutex_unlock(&gAppDataSvrMutex);
 | 
			
		||||
            return NULL;
 | 
			
		||||
        }
 | 
			
		||||
        *ppClientHead = (*ppClientHead)->p_next ;
 | 
			
		||||
        close(pTemp->socket);
 | 
			
		||||
        free(pTemp);
 | 
			
		||||
| 
						 | 
				
			
			@ -166,6 +172,12 @@ static clientContext_t* DeleteClientContext(    clientContext_t **ppClientHead,
 | 
			
		|||
        if (pCurr == pClient)
 | 
			
		||||
        {
 | 
			
		||||
            pTemp = pCurr->p_next;
 | 
			
		||||
            if(pTemp == NULL)
 | 
			
		||||
            {
 | 
			
		||||
                MLOGE(" pTemp NULL\n");
 | 
			
		||||
                pthread_mutex_unlock(&gAppDataSvrMutex);
 | 
			
		||||
                return NULL;
 | 
			
		||||
            }
 | 
			
		||||
            pPrev->p_next = pTemp;
 | 
			
		||||
            close(pCurr->socket);
 | 
			
		||||
            free(pCurr);
 | 
			
		||||
| 
						 | 
				
			
			@ -299,6 +311,11 @@ void sf_DataMapClear(clientContext_t *pClient)
 | 
			
		|||
{
 | 
			
		||||
    //pClient->map.key = 0;
 | 
			
		||||
   // printf("pClient.map:%d,socket:%d\n",pClient->map.fd,pClient->socket);
 | 
			
		||||
   if(pClient == NULL)
 | 
			
		||||
   {
 | 
			
		||||
        MLOGE(" pClient NULL\n");
 | 
			
		||||
        return;
 | 
			
		||||
   }
 | 
			
		||||
    if(pClient->map.fd)
 | 
			
		||||
        close(pClient->map.fd);
 | 
			
		||||
    
 | 
			
		||||
| 
						 | 
				
			
			@ -354,10 +371,11 @@ U8 sf_DataMapSet(U32 key, U8 function, S8 *fileName, U32 FileSize)
 | 
			
		|||
            pClient->map.function = function;
 | 
			
		||||
            if(function)
 | 
			
		||||
            {
 | 
			
		||||
                memset((char *)&pClient->map.fileName[0],'\0', sizeof(pClient->map.fileName));
 | 
			
		||||
                memcpy((char *)&pClient->map.fileName[0], (char *)fileName,strlen((char *)fileName));
 | 
			
		||||
                // pClient->map.fileName[strlen(fileName)+1]=0;
 | 
			
		||||
                pClient->map.fileSize = FileSize;
 | 
			
		||||
                printf("pClient->map.function:%d map.fileName:%s,filename:%s,len:%d fileSize:%d\n",pClient->map.function, pClient->map.fileName,fileName,strlen((char *)fileName),pClient->map.fileSize);
 | 
			
		||||
                MLOGI("pClient->map.function:%d map.fileName:%s,filename:%s,len:%d fileSize:%d\n",pClient->map.function, pClient->map.fileName,fileName,strlen((char *)fileName),pClient->map.fileSize);
 | 
			
		||||
 | 
			
		||||
            }
 | 
			
		||||
            else
 | 
			
		||||
| 
						 | 
				
			
			@ -377,6 +395,7 @@ U8 sf_DataMapSet(U32 key, U8 function, S8 *fileName, U32 FileSize)
 | 
			
		|||
                }
 | 
			
		||||
            }
 | 
			
		||||
            pthread_mutex_unlock(&gAppDataSvrMutex);
 | 
			
		||||
            // MLOGI("SUCCESS\n");
 | 
			
		||||
            return SUCCESS;
 | 
			
		||||
        }
 | 
			
		||||
        pClient = pClient->p_next;
 | 
			
		||||
| 
						 | 
				
			
			@ -568,13 +587,14 @@ void *sf_DataSvrTransferThread(void *addr)
 | 
			
		|||
        else if(pClient->map.function == 2) //download
 | 
			
		||||
        {
 | 
			
		||||
            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)));
 | 
			
		||||
            // MLOGI("[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.fileName[0] != '\0')
 | 
			
		||||
                {
 | 
			
		||||
                    pClient->map.fd = open((char *)pClient->map.fileName, O_RDWR,0/*borbuild FS_OPEN_RDONLY*/);
 | 
			
		||||
                   // printf("pClient->map.fd = %d\n",pClient->map.fd);
 | 
			
		||||
                    // MLOGI("pClient->map.fd = %d\n",pClient->map.fd);
 | 
			
		||||
                    if(pClient->map.fd == -1)
 | 
			
		||||
                    {
 | 
			
		||||
                        //open file failed.
 | 
			
		||||
| 
						 | 
				
			
			@ -585,6 +605,7 @@ void *sf_DataSvrTransferThread(void *addr)
 | 
			
		|||
                    pClient->map.fileSize = sp5kFsFileSizeGet((char *)pClient->map.fileName);
 | 
			
		||||
                    pClient->map.transferSize = 0;
 | 
			
		||||
                  //  printf("filesize=%d\n",pClient->map.fileSize);
 | 
			
		||||
                    // MLOGI("pClient->map.fileSize = %d\n",pClient->map.fileSize);
 | 
			
		||||
                    //i = 0;
 | 
			
		||||
                }
 | 
			
		||||
                else
 | 
			
		||||
| 
						 | 
				
			
			@ -597,7 +618,7 @@ void *sf_DataSvrTransferThread(void *addr)
 | 
			
		|||
            }
 | 
			
		||||
 | 
			
		||||
            readSize = read(pClient->map.fd, pClient->szBuffer, PACKET_MAX_LEN);
 | 
			
		||||
           // printf("[read],fd:%x,readsize:%d,len:%x\n",pClient->map.fd,readSize,PACKET_MAX_LEN);
 | 
			
		||||
            // MLOGI("[read],fd:%x,readsize:%d,len:%d\n",pClient->map.fd,readSize,PACKET_MAX_LEN);
 | 
			
		||||
            if(readSize > 0)
 | 
			
		||||
            {
 | 
			
		||||
                //printf("data socket send->%d\n",pClient->socket);
 | 
			
		||||
| 
						 | 
				
			
			@ -641,7 +662,7 @@ void *sf_DataSvrTransferThread(void *addr)
 | 
			
		|||
 | 
			
		||||
                            if(pClient->map.transferSize >= pClient->map.fileSize)
 | 
			
		||||
                            {
 | 
			
		||||
                           //     printf("send success!\n");
 | 
			
		||||
                                // MLOGI("send success!\n");
 | 
			
		||||
                                sf_DataMapClear(pClient);
 | 
			
		||||
                                //dataTransErrCodeSet(pClient->map.key, CMD_SUCCESS);//remove,because APP not use
 | 
			
		||||
                            }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -601,10 +601,12 @@ void appsvr_getFileList(UINT8 *dirPath, UINT8 *startFileKey)
 | 
			
		|||
                //MLOGI("name:%s.\n", ptr->d_name);
 | 
			
		||||
                if(strstr((char *)ptr->d_name, SF_DCF_EXT_MOV) || strstr((char *)ptr->d_name, SF_DCF_EXT_PHOTO))
 | 
			
		||||
				{
 | 
			
		||||
                    memset(gDevFileList[nFileNums + gDevFileListNums].fileNameString,'\0', sizeof(gDevFileList[nFileNums + gDevFileListNums].fileNameString));
 | 
			
		||||
                    snprintf((char *)gDevFileList[nFileNums + gDevFileListNums].fileNameString, sizeof(gDevFileList[nFileNums + gDevFileListNums].fileNameString), "%s", (char *)ptr->d_name);
 | 
			
		||||
                    //strcpy((char *)gDevFileList[nFileNums + gDevFileListNums].fileNameString, (char *)ptr->d_name);
 | 
			
		||||
                    gDevFileList[nFileNums + gDevFileListNums].srcFileType = (ptr->d_name[0] == 'W' ? 0 : (ptr->d_name[0] == 'S' ? 1 : 1));//ptr->d_name[3] - '0';
 | 
			
		||||
                    //printf("%s\n", g3g75DevFileList[nFileNums - idx + gDevFileListNums].fileName);
 | 
			
		||||
                    // MLOGI("fileNameString:%s. srcFileType:%d\n", gDevFileList[nFileNums + gDevFileListNums].fileNameString, gDevFileList[nFileNums + gDevFileListNums].srcFileType);
 | 
			
		||||
                    nFileNums ++ ;
 | 
			
		||||
                   // MLOGI("fileNameString:%s. srcFileType:%d\n", gDevFileList[nFileNums + gDevFileListNums].fileNameString, gDevFileList[nFileNums + gDevFileListNums].srcFileType);
 | 
			
		||||
                }
 | 
			
		||||
| 
						 | 
				
			
			@ -728,12 +730,13 @@ UINT8 appCmpFileList(void)
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void appCreatThumbList(S8 *fileName)//start file name example: 10010032.JPG
 | 
			
		||||
void appCreatThumbList(S8 *fileName,UINT8 diskType)//start file name example: 10010032.JPG
 | 
			
		||||
{
 | 
			
		||||
    //UINT16 i = 0;
 | 
			
		||||
    UINT8 dirPath[50] = {0};
 | 
			
		||||
    UINT8 startDirKey[5] = {0};
 | 
			
		||||
    UINT8 startFileKey[5] = {0};
 | 
			
		||||
    //UINT16 dirKey = 0;
 | 
			
		||||
    //UINT8 temp[5] = {0};
 | 
			
		||||
 | 
			
		||||
    MLOGI("fileName:%s\n",fileName);
 | 
			
		||||
| 
						 | 
				
			
			@ -747,9 +750,14 @@ void appCreatThumbList(S8 *fileName)//start file name example: 10010032.JPG
 | 
			
		|||
 | 
			
		||||
    if(fileName != NULL && fileName[0] != '\0' && fileName[0] != '0' && (strstr((char *)fileName, SF_DCF_EXT_MOV) || strstr((char *)fileName, SF_DCF_EXT_PHOTO)))
 | 
			
		||||
    {
 | 
			
		||||
        MLOGI("fileName2:%s\n",fileName);
 | 
			
		||||
        //MLOGI("fileName2:%s\n",fileName);
 | 
			
		||||
        //strncpy((char *)startDirKey, (char *)fileName+1, 2);
 | 
			
		||||
        //dirKey = atoi((const char *)startDirKey) + 100;
 | 
			
		||||
        //snprintf((char *)startDirKey, sizeof(startDirKey), "%03d", dirKey);
 | 
			
		||||
        //strncpy((char *)startFileKey, (char *)fileName+4, 4);
 | 
			
		||||
        strncpy((char *)startDirKey, (char *)fileName, 3);
 | 
			
		||||
        strncpy((char *)startFileKey, (char *)fileName+4, 4);
 | 
			
		||||
        //MLOGI("startDirKey:%s startFileKey:%s\n", startDirKey, startFileKey);
 | 
			
		||||
    }
 | 
			
		||||
    else
 | 
			
		||||
    {
 | 
			
		||||
| 
						 | 
				
			
			@ -764,8 +772,18 @@ void appCreatThumbList(S8 *fileName)//start file name example: 10010032.JPG
 | 
			
		|||
    gDevFileListNums = 0;
 | 
			
		||||
    //printf("get dir s\n");
 | 
			
		||||
    //sprintf((char *)dirPath, "%s/", THUMB_PATH);
 | 
			
		||||
    snprintf((char *)dirPath, sizeof(dirPath), "%s%s", strg_path, (char *)THUMB_PATH);
 | 
			
		||||
	free(strg_path);
 | 
			
		||||
    if(diskType == 2)
 | 
			
		||||
    {
 | 
			
		||||
        snprintf((char *)dirPath, sizeof(dirPath), "%s%s", SF_SD_ROOT, (char *)THUMB_PATH);
 | 
			
		||||
    }
 | 
			
		||||
    else if(diskType == 1)
 | 
			
		||||
    {
 | 
			
		||||
        snprintf((char *)dirPath, sizeof(dirPath), "%s%s", SF_EMMC_ROOT, (char *)THUMB_PATH);
 | 
			
		||||
    }
 | 
			
		||||
    else {
 | 
			
		||||
        snprintf((char *)dirPath, sizeof(dirPath), "%s%s", strg_path, (char *)THUMB_PATH);
 | 
			
		||||
    }
 | 
			
		||||
    free(strg_path);
 | 
			
		||||
    appsvr_getFileList(dirPath, startFileKey);
 | 
			
		||||
//    appsvr_getDirList(dirPath, startDirKey);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -1126,9 +1144,10 @@ SINT32 sf_svr_packet_proc(SINT32 fd, UINT8  *pAppData, UINT16 dataLen)
 | 
			
		|||
    SF_PARA_TIME_S time;
 | 
			
		||||
    UINT32 curMode = 0;
 | 
			
		||||
    CHAR fileName[SF_FILENAME_MAXLEN];
 | 
			
		||||
    UINT16 dirKey, fileKey, fileType;
 | 
			
		||||
    UINT16 dirKey;
 | 
			
		||||
    UINT32 keyMap = 0;
 | 
			
		||||
    UINT8  function = 0;
 | 
			
		||||
	static UINT32 Disk = 0; /* 1:emmc 2:sd */
 | 
			
		||||
 | 
			
		||||
    static UINT32 zmFactor[] = {1000,2000,3018,4000};
 | 
			
		||||
    UIMenuStoreInfo *puiPara = sf_ui_para_get();
 | 
			
		||||
| 
						 | 
				
			
			@ -1136,6 +1155,7 @@ SINT32 sf_svr_packet_proc(SINT32 fd, UINT8  *pAppData, UINT16 dataLen)
 | 
			
		|||
    UINT8 paramSaveFlag = 0;
 | 
			
		||||
	SF_MESSAGE_BUF_S stMessageBuf = {0};
 | 
			
		||||
//  HI_MESSAGE_S stMessage;
 | 
			
		||||
    MLOGI(" s\n");
 | 
			
		||||
 | 
			
		||||
	char *strg_path = sf_get_root_path();
 | 
			
		||||
	if(strg_path == NULL)
 | 
			
		||||
| 
						 | 
				
			
			@ -1144,8 +1164,8 @@ SINT32 sf_svr_packet_proc(SINT32 fd, UINT8  *pAppData, UINT16 dataLen)
 | 
			
		|||
		return SF_FAILURE;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	UINT32 dcf_handle = (UINT32)System_Get_DCF_Handle(); /* 0:emmc 1:sd */
 | 
			
		||||
	char *dcf_file = System_Get_DCF_Disk_Drive(dcf_handle) == SF_EMMC_DCF_HANDLE ? SF_EMMC_DCF_FILE_NAME : SF_SD_DCF_FILE_NAME;
 | 
			
		||||
	UINT32 dcf_handle = 0; /* 0:emmc 1:sd */
 | 
			
		||||
	//char *dcf_file = System_Get_DCF_Disk_Drive(dcf_handle) == SF_EMMC_DCF_HANDLE ? SF_EMMC_DCF_FILE_NAME : SF_SD_DCF_FILE_NAME;
 | 
			
		||||
 | 
			
		||||
    //printf("[sf_svr_packet_proc]dataLen: %d\n",dataLen);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -1229,7 +1249,7 @@ SINT32 sf_svr_packet_proc(SINT32 fd, UINT8  *pAppData, UINT16 dataLen)
 | 
			
		|||
                respFlag = -1;
 | 
			
		||||
 | 
			
		||||
                if(msgParse.cmd != WIFI_GET_CAMERA_CONNECT)
 | 
			
		||||
                    printf("cmd: %d\n",msgParse.cmd);
 | 
			
		||||
                    printf("cmd: 0x%x\n",msgParse.cmd);
 | 
			
		||||
 | 
			
		||||
                if(msgParse.cmd < WIFI_CMD_MAX)
 | 
			
		||||
                {
 | 
			
		||||
| 
						 | 
				
			
			@ -1288,10 +1308,14 @@ SINT32 sf_svr_packet_proc(SINT32 fd, UINT8  *pAppData, UINT16 dataLen)
 | 
			
		|||
 | 
			
		||||
                    case WIFI_GET_CAMERA_THUMB_LIST:  //o
 | 
			
		||||
                        strcpy((char *)fileName, (char *)pMsgStruct->msgBuf.getThumbList.fileName);
 | 
			
		||||
                        MLOGI("[WIFI_GET_CAMERA_THUMB_LIST],fileName:%s\n",fileName);
 | 
			
		||||
                        appCreatThumbList(fileName);
 | 
			
		||||
                        MLOGI("[WIFI_GET_CAMERA_THUMB_LIST],fileName:%s\n",fileName);
 | 
			
		||||
 | 
			
		||||
                        if((pMsgStruct->msgBuf.getThumbList.diskType) && (Disk != pMsgStruct->msgBuf.getThumbList.diskType))
 | 
			
		||||
                        {
 | 
			
		||||
                            Disk = pMsgStruct->msgBuf.getThumbList.diskType;
 | 
			
		||||
                            memset(fileName,'\0', sizeof(fileName));
 | 
			
		||||
                        }
 | 
			
		||||
                        MLOGI("[WIFI_GET_CAMERA_THUMB_LIST],fileName:%s diskType:%d\n",fileName,pMsgStruct->msgBuf.getThumbList.diskType);
 | 
			
		||||
                        appCreatThumbList(fileName,pMsgStruct->msgBuf.getThumbList.diskType);
 | 
			
		||||
                        //MLOGI("[WIFI_GET_CAMERA_THUMB_LIST],fileName:%s\n",fileName);
 | 
			
		||||
                        memset((void *)&msgParse, 0, sizeof(msgParse));
 | 
			
		||||
                        msgParse.magicNum = htons(MSG_PRE_FIX);
 | 
			
		||||
                        msgParse.msglen = htons(sizeof(MSG_DEV_THUMB_LIST_Get_Rsp_T) + 2*sizeof(UINT16));
 | 
			
		||||
| 
						 | 
				
			
			@ -1300,7 +1324,11 @@ SINT32 sf_svr_packet_proc(SINT32 fd, UINT8  *pAppData, UINT16 dataLen)
 | 
			
		|||
                        msgParse.msgBuf.rgetThumbList.cmdRet = 0;
 | 
			
		||||
                        msgParse.msgBuf.rgetThumbList.fileNums = htonl(gDevFileListNums);
 | 
			
		||||
                        msgParse.msgBuf.rgetThumbList.packageSize = htonl(gDevFileListNums*sizeof(MSG_DEV_THUMB_LIST_Get_Data_Rsp_T));
 | 
			
		||||
                        //dcf_handle
 | 
			
		||||
                        dcf_handle = (UINT32)System_Get_DCF_Handle(); /* 0:emmc 1:sd */
 | 
			
		||||
                        msgParse.msgBuf.rgetThumbList.diskType = pMsgStruct->msgBuf.getThumbList.diskType == 0 ? (dcf_handle == 0 ? 1:1):pMsgStruct->msgBuf.getThumbList.diskType;
 | 
			
		||||
                        msgParse.msgBuf.rgetThumbList.suffix = htons(MSG_END_FIX);
 | 
			
		||||
                        MLOGI("msgParse.msgBuf.rgetThumbList.diskType:%d\n",msgParse.msgBuf.rgetThumbList.diskType);
 | 
			
		||||
                        /* add the magic + len total 2*2 bytes; */
 | 
			
		||||
                        temp = ntohs(msgParse.msglen);
 | 
			
		||||
                        send(fd, (void *)(&msgParse),  (temp + sizeof(UINT16)*2), 0);
 | 
			
		||||
| 
						 | 
				
			
			@ -1352,21 +1380,30 @@ SINT32 sf_svr_packet_proc(SINT32 fd, UINT8  *pAppData, UINT16 dataLen)
 | 
			
		|||
                        if(pMsgStruct->msgBuf.getHdFile.type == 0) //thumbnail
 | 
			
		||||
                        {
 | 
			
		||||
                            strcpy((char *)tempbuf, (char *)pMsgStruct->msgBuf.getHdFile.dirName);
 | 
			
		||||
                            strncpy((char *)tempbuf2, (char *)pMsgStruct->msgBuf.getHdFile.dirName, 3);
 | 
			
		||||
                            sprintf((char *)gFileName, "%s%s%s/%s", strg_path, THUMB_PATH, tempbuf2, tempbuf);
 | 
			
		||||
                            if(strstr((char*)tempbuf, "E"))
 | 
			
		||||
                            {
 | 
			
		||||
                                snprintf(gFileName, sizeof(gFileName), "%s%s%s", SF_SD_ROOT, THUMB_PATH,  tempbuf);
 | 
			
		||||
                            }
 | 
			
		||||
                            else
 | 
			
		||||
                            {
 | 
			
		||||
                                snprintf(gFileName, sizeof(gFileName), "%s%s%s", SF_EMMC_ROOT, THUMB_PATH,  tempbuf);
 | 
			
		||||
                            }
 | 
			
		||||
                        }
 | 
			
		||||
                        else if(pMsgStruct->msgBuf.getHdFile.type == 1) //srouce file
 | 
			
		||||
                        {
 | 
			
		||||
                            strcpy((char *)tempbuf, (char *)pMsgStruct->msgBuf.getHdFile.dirName);
 | 
			
		||||
                            strncpy((char *)tempbuf2, (char *)tempbuf, 3);
 | 
			
		||||
                            strcpy((char *)tempbuf, (char *)pMsgStruct->msgBuf.ctrlFileTransfer.fileName);
 | 
			
		||||
                            strncpy((char *)tempbuf2, (char *)pMsgStruct->msgBuf.ctrlFileTransfer.fileName +2, 2);
 | 
			
		||||
                            dirKey = atoi((const char *)tempbuf2) + 100;
 | 
			
		||||
 | 
			
		||||
                            tempbuf[8] = '\0';
 | 
			
		||||
                            sprintf((char *)gFileName, "%sDCIM/%s%s/%s%s%s",
 | 
			
		||||
                                    strg_path,
 | 
			
		||||
                                    tempbuf2,
 | 
			
		||||
                                    DCF_DIR_NAME,
 | 
			
		||||
                                    dcf_file,
 | 
			
		||||
                                    tempbuf+4,
 | 
			
		||||
                                    (tempbuf[3] == '0' ? ".JPG" : (tempbuf[3] == '1' ? ".MP4" : ".MP4")));
 | 
			
		||||
                            if(strstr((char*)tempbuf, "E"))
 | 
			
		||||
                            {
 | 
			
		||||
                                snprintf(fileName, sizeof(fileName), "%sDCIM/%03d%s/%s%s%s", SF_SD_ROOT, dirKey, DCF_DIR_NAME, SF_SD_DCF_FILE_NAME, tempbuf+4, (tempbuf[0] == 'W' ? ".JPG" : (tempbuf[0] == 'S' ? ".MP4" : ".MP4")));
 | 
			
		||||
                            }
 | 
			
		||||
                            else//
 | 
			
		||||
                            {
 | 
			
		||||
                                snprintf(fileName, sizeof(fileName), "%sDCIM/%03d%s/%s%s%s", SF_EMMC_ROOT, dirKey, DCF_DIR_NAME, SF_EMMC_DCF_FILE_NAME, tempbuf+4, (tempbuf[0] == 'W' ? ".JPG" : (tempbuf[0] == 'S' ? ".MP4" : ".MP4")));
 | 
			
		||||
                            }
 | 
			
		||||
                        }
 | 
			
		||||
                        else
 | 
			
		||||
                        {
 | 
			
		||||
| 
						 | 
				
			
			@ -1484,7 +1521,7 @@ SINT32 sf_svr_packet_proc(SINT32 fd, UINT8  *pAppData, UINT16 dataLen)
 | 
			
		|||
                            }
 | 
			
		||||
                            else if(tmpValue == 1)
 | 
			
		||||
                            {
 | 
			
		||||
                                puiPara->ImgSize = PHOTO_SIZE_12M;
 | 
			
		||||
                                //puiPara->ImgSize = PHOTO_SIZE_12M;
 | 
			
		||||
                            }
 | 
			
		||||
                            else if(tmpValue == 2)
 | 
			
		||||
                            {
 | 
			
		||||
| 
						 | 
				
			
			@ -1626,7 +1663,7 @@ SINT32 sf_svr_packet_proc(SINT32 fd, UINT8  *pAppData, UINT16 dataLen)
 | 
			
		|||
 | 
			
		||||
                    case WIFI_SET_CAMERA_NightMode: //O
 | 
			
		||||
                        MLOGI("[WIFI_SET_CAMERA_NightMode],nightMode:%d\n",pMsgStruct->msgBuf.setNightMode.nightMode);
 | 
			
		||||
                        puiPara->NightMode = pMsgStruct->msgBuf.setNightMode.nightMode % 3;
 | 
			
		||||
                        //puiPara->NightMode = pMsgStruct->msgBuf.setNightMode.nightMode % 3;
 | 
			
		||||
                        //sf_set_img_size(puiPara->ImgSize);
 | 
			
		||||
                        respFlag = 2;
 | 
			
		||||
                        paramSaveFlag = 1;
 | 
			
		||||
| 
						 | 
				
			
			@ -1887,27 +1924,38 @@ SINT32 sf_svr_packet_proc(SINT32 fd, UINT8  *pAppData, UINT16 dataLen)
 | 
			
		|||
 | 
			
		||||
                        if(function)
 | 
			
		||||
                        {
 | 
			
		||||
                            memset(tempbuf,'\0', sizeof(tempbuf));
 | 
			
		||||
                            memset(tempbuf2,'\0', sizeof(tempbuf2));
 | 
			
		||||
                            memset(fileName,'\0', sizeof(fileName));
 | 
			
		||||
                            if(pMsgStruct->msgBuf.ctrlFileTransfer.type == 0) //thumbnail
 | 
			
		||||
                            {
 | 
			
		||||
                                //strcpy((char *)tempbuf, (char *)pMsgStruct->msgBuf.ctrlFileTransfer.fileName);
 | 
			
		||||
                                memcpy((char *)tempbuf, (char *)pMsgStruct->msgBuf.ctrlFileTransfer.fileName,strlen((char *)pMsgStruct->msgBuf.ctrlFileTransfer.fileName));
 | 
			
		||||
 | 
			
		||||
                                sprintf((char *)fileName, "%s%s%s", strg_path, THUMB_PATH,  tempbuf);
 | 
			
		||||
 | 
			
		||||
                                snprintf((char *)tempbuf, sizeof(tempbuf), "%s", pMsgStruct->msgBuf.ctrlFileTransfer.fileName);
 | 
			
		||||
                                //memcpy((char *)tempbuf, (char *)pMsgStruct->msgBuf.ctrlFileTransfer.fileName,strlen((char *)pMsgStruct->msgBuf.ctrlFileTransfer.fileName));
 | 
			
		||||
                                if(strstr((char*)tempbuf, "E"))
 | 
			
		||||
                                {
 | 
			
		||||
                                    snprintf(fileName, sizeof(fileName), "%s%s%s", SF_SD_ROOT, THUMB_PATH,  tempbuf);
 | 
			
		||||
                                }
 | 
			
		||||
                                else
 | 
			
		||||
                                {
 | 
			
		||||
                                    snprintf(fileName, sizeof(fileName), "%s%s%s", SF_EMMC_ROOT, THUMB_PATH, tempbuf);
 | 
			
		||||
                                }
 | 
			
		||||
                            }
 | 
			
		||||
                            else if(pMsgStruct->msgBuf.ctrlFileTransfer.type == 1) //srouce file
 | 
			
		||||
                            {
 | 
			
		||||
                                strcpy((char *)tempbuf, (char *)pMsgStruct->msgBuf.ctrlFileTransfer.fileName);
 | 
			
		||||
                                strncpy((char *)tempbuf2, (char *)pMsgStruct->msgBuf.ctrlFileTransfer.fileName +1, 3);
 | 
			
		||||
                                strncpy((char *)tempbuf2, (char *)pMsgStruct->msgBuf.ctrlFileTransfer.fileName +2, 2);
 | 
			
		||||
                                dirKey = atoi((const char *)tempbuf2) + 100;
 | 
			
		||||
 | 
			
		||||
                                tempbuf[8] = '\0';
 | 
			
		||||
                                sprintf((char *)fileName, "%sDCIM/%s%s/%s%s%s",
 | 
			
		||||
                                        strg_path,
 | 
			
		||||
                                        tempbuf2,
 | 
			
		||||
                                        DCF_DIR_NAME,
 | 
			
		||||
										dcf_file,
 | 
			
		||||
                                        tempbuf+4,
 | 
			
		||||
                                        (tempbuf[0] == 'W' ? ".JPG" : (tempbuf[0] == 'S' ? ".MP4" : ".MP4")));
 | 
			
		||||
                                if(strstr((char*)tempbuf, "E"))
 | 
			
		||||
                                {
 | 
			
		||||
                                    snprintf(fileName, sizeof(fileName), "%sDCIM/%03d%s/%s%s%s", SF_SD_ROOT, dirKey, DCF_DIR_NAME, SF_SD_DCF_FILE_NAME, tempbuf+4, (tempbuf[0] == 'W' ? ".JPG" : (tempbuf[0] == 'S' ? ".MP4" : ".MP4")));
 | 
			
		||||
                                }
 | 
			
		||||
                                else//
 | 
			
		||||
                                {
 | 
			
		||||
                                    snprintf(fileName, sizeof(fileName), "%sDCIM/%03d%s/%s%s%s", SF_EMMC_ROOT, dirKey, DCF_DIR_NAME, SF_EMMC_DCF_FILE_NAME, tempbuf+4, (tempbuf[0] == 'W' ? ".JPG" : (tempbuf[0] == 'S' ? ".MP4" : ".MP4")));
 | 
			
		||||
                                }
 | 
			
		||||
                            }
 | 
			
		||||
                            else
 | 
			
		||||
                            {
 | 
			
		||||
| 
						 | 
				
			
			@ -1937,7 +1985,7 @@ SINT32 sf_svr_packet_proc(SINT32 fd, UINT8  *pAppData, UINT16 dataLen)
 | 
			
		|||
                                //  msgParse.msgBuf.rctrlFileTransferInfo.filePath[13]=0;
 | 
			
		||||
                                msgParse.msgBuf.rctrlFileTransferInfo.type = (tempbuf[0] == 'W' ? 0 : (tempbuf[0] == 'S' ? 1 : 1));
 | 
			
		||||
                                fileFd = open((char *)fileName, O_RDONLY);
 | 
			
		||||
                                //printf("fileFd = %d rctrlFileTransferInfo.type:%d\n", fileFd,msgParse.msgBuf.rctrlFileTransferInfo.type);
 | 
			
		||||
                                //MLOGI("fileFd = %d rctrlFileTransferInfo.type:%d fileName:%s filePath:%s\n", fileFd,msgParse.msgBuf.rctrlFileTransferInfo.type, msgParse.msgBuf.rctrlFileTransferInfo.fileName, msgParse.msgBuf.rctrlFileTransferInfo.filePath);
 | 
			
		||||
                                if(fileFd > 0)
 | 
			
		||||
                                {
 | 
			
		||||
                                    fSize = sp5kFsFileSizeGet((char *)fileName);
 | 
			
		||||
| 
						 | 
				
			
			@ -1961,6 +2009,7 @@ SINT32 sf_svr_packet_proc(SINT32 fd, UINT8  *pAppData, UINT16 dataLen)
 | 
			
		|||
                                else
 | 
			
		||||
                                {
 | 
			
		||||
                                    ret = DATA_CMD_OPEN_FILE_FAIL;/*fileOpen fail*/
 | 
			
		||||
                                    MLOGE("fileName:%s ret:0x%x\n", fileName, ret);
 | 
			
		||||
                                }
 | 
			
		||||
                            }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -2000,25 +2049,41 @@ SINT32 sf_svr_packet_proc(SINT32 fd, UINT8  *pAppData, UINT16 dataLen)
 | 
			
		|||
 | 
			
		||||
                    case WIFI_CONTROL_CAMERA_DeleteFile:    //O
 | 
			
		||||
                        MLOGI("[WIFI_SET_FILE_DeleteFile],fileName:%s\n",pMsgStruct->msgBuf.ctrlDelFile.fileName);
 | 
			
		||||
                        strcpy((char *)fileName, (char *)pMsgStruct->msgBuf.ctrlDelFile.fileName);
 | 
			
		||||
                        if(strlen((char *)fileName) == 12) // only file name
 | 
			
		||||
                        {
 | 
			
		||||
                            appThumbNameToKey((thumbType_t *)&fileType, &dirKey, &fileKey, fileName);
 | 
			
		||||
                            appThumbKeyToName(THUMB_320x240, fileType, dirKey, fileKey, fileName);
 | 
			
		||||
                            ret = remove((char *)fileName);
 | 
			
		||||
                            MLOGI("delete thumb name=%s ret=%d\n",fileName,ret);
 | 
			
		||||
                            if(fileType == STILL_THUMB)
 | 
			
		||||
                                sprintf((char *)fileName,"./%3dMEDIA/%s%04d.JPG", dirKey, dcf_file, fileKey);
 | 
			
		||||
                            else
 | 
			
		||||
                                sprintf((char *)fileName,"./%3dMEDIA/%s%04d.MP4", dirKey, dcf_file, fileKey);
 | 
			
		||||
                            ret = remove((char *)fileName);
 | 
			
		||||
                        memset(tempbuf,'\0', sizeof(tempbuf));
 | 
			
		||||
                        memset(tempbuf2,'\0', sizeof(tempbuf2));
 | 
			
		||||
                        memset(fileName,'\0', sizeof(fileName));
 | 
			
		||||
 | 
			
		||||
                        if(strlen((char *)pMsgStruct->msgBuf.ctrlDelFile.fileName) == 12) // only file name
 | 
			
		||||
                        {
 | 
			
		||||
                            strcpy((char *)tempbuf, (char *)pMsgStruct->msgBuf.ctrlDelFile.fileName);
 | 
			
		||||
                            strncpy((char *)tempbuf2, (char *)pMsgStruct->msgBuf.ctrlDelFile.fileName +2, 2);
 | 
			
		||||
                            dirKey = atoi((const char *)tempbuf2) + 100;
 | 
			
		||||
                            if(strstr((char*)pMsgStruct->msgBuf.ctrlDelFile.fileName, "E"))
 | 
			
		||||
                            {
 | 
			
		||||
                                snprintf(fileName, sizeof(fileName), "%s%s%s", SF_SD_ROOT, THUMB_PATH,  pMsgStruct->msgBuf.ctrlDelFile.fileName);
 | 
			
		||||
                                ret = remove((char *)fileName);
 | 
			
		||||
                                MLOGI("delete thumb name=%s ret=%d\n",fileName,ret);
 | 
			
		||||
 | 
			
		||||
                                snprintf(fileName, sizeof(fileName), "%sDCIM/%03d%s/%s%s%s", SF_SD_ROOT, dirKey, DCF_DIR_NAME, SF_SD_DCF_FILE_NAME, tempbuf+4, (tempbuf[0] == 'W' ? ".JPG" : (tempbuf[0] == 'S' ? ".MP4" : ".MP4")));
 | 
			
		||||
                                ret = remove((char *)fileName);
 | 
			
		||||
                                MLOGI("delete src name=%s ret=%d\n",fileName,ret);
 | 
			
		||||
                            }
 | 
			
		||||
                            else
 | 
			
		||||
                            {
 | 
			
		||||
                                snprintf(fileName, sizeof(fileName), "%s%s%s", SF_EMMC_ROOT, THUMB_PATH, pMsgStruct->msgBuf.ctrlDelFile.fileName);
 | 
			
		||||
                                ret = remove((char *)fileName);
 | 
			
		||||
                                MLOGI("delete thumb name=%s ret=%d\n",fileName,ret);
 | 
			
		||||
 | 
			
		||||
                                snprintf(fileName, sizeof(fileName), "%sDCIM/%03d%s/%s%s%s", SF_EMMC_ROOT, dirKey, DCF_DIR_NAME, SF_EMMC_DCF_FILE_NAME, tempbuf+4, (tempbuf[0] == 'W' ? ".JPG" : (tempbuf[0] == 'S' ? ".MP4" : ".MP4")));
 | 
			
		||||
                                ret = remove((char *)fileName);
 | 
			
		||||
                                MLOGI("delete src name=%s ret=%d\n",fileName,ret);
 | 
			
		||||
                            }
 | 
			
		||||
                        }
 | 
			
		||||
                        else  // path + file name
 | 
			
		||||
                        {
 | 
			
		||||
                            ret = remove((char *)fileName);
 | 
			
		||||
                        }
 | 
			
		||||
 | 
			
		||||
                        system("sync");
 | 
			
		||||
                        msgParse.msgBuf.rctrlDelFile.cmdRet = (ret ? 1 : 0);
 | 
			
		||||
                        msgParse.msgBuf.rctrlDelFile.suffix = htons(MSG_END_FIX);
 | 
			
		||||
                        /* add the cmd + resp total 2*2 bytes */
 | 
			
		||||
| 
						 | 
				
			
			@ -2169,7 +2234,23 @@ SINT32 sf_svr_packet_proc(SINT32 fd, UINT8  *pAppData, UINT16 dataLen)
 | 
			
		|||
						respFlag = 0;
 | 
			
		||||
						break;
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
                    case WIFI_CONTROL_CAMERA_FormatEmmcCard: //err
 | 
			
		||||
                        MLOGI("[WIFI_CONTROL_CAMERA_FormatSDCard],format:%d\n",pMsgStruct->msgBuf.ctrlFormatEmmc.format);
 | 
			
		||||
                        if(pMsgStruct->msgBuf.ctrlFormatEmmc.format == 1)
 | 
			
		||||
                        {
 | 
			
		||||
                            sf_set_card_statu(CMD_FORMAT_SD_STA);
 | 
			
		||||
                            BKG_PostEvent(NVTEVT_BKW_FORMAT_EMMC);
 | 
			
		||||
                            while(CMD_FORMAT_SD_STA == sf_get_card_statu())
 | 
			
		||||
                            {
 | 
			
		||||
                                usleep(10*1000);
 | 
			
		||||
                            }
 | 
			
		||||
                            ret = sf_get_card_statu();
 | 
			
		||||
                        }
 | 
			
		||||
                        msgParse.msgBuf.camreaSetRsp.cmdRet = ret;
 | 
			
		||||
                        msgParse.msgBuf.camreaSetRsp.suffix = htons(MSG_END_FIX);
 | 
			
		||||
                        msgParse.msglen = htons(sizeof(MSG_DEV_SET_Rsp_T) + 2*sizeof(UINT16) );
 | 
			
		||||
                        respFlag = 1;
 | 
			
		||||
                        break;
 | 
			
		||||
                    default:
 | 
			
		||||
                        WIFI_SLOGI("[WIFI_CMD_MAX] default\n");
 | 
			
		||||
                        msgParse.msgBuf.camreaSetRsp.cmdRet = -1;
 | 
			
		||||
| 
						 | 
				
			
			@ -2551,6 +2632,7 @@ void *sf_server_accept_thread(void *pData)
 | 
			
		|||
 | 
			
		||||
                    pClient->totalBytes = nbytes;
 | 
			
		||||
                    ret = sf_svr_packet_proc(pClient->socket,pClient->szBuffer,nbytes);
 | 
			
		||||
                    MLOGI(" sf_svr_packet_proc e ret:%x\n", ret);
 | 
			
		||||
 | 
			
		||||
                    /*forbuild if(gFwUpdate == 1)
 | 
			
		||||
                    {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue
	
	Block a user