圖片數據存入RAM時,EC20將每次寫入一段(512字節)數據就會添加間隔符0D0A
HTTP上傳
App_Printf("上傳照片\r\n");
HTTP_Land();//HTTP初始化 //123456.txt
//"123456.txt";
FATFS_ReadFile((char *)Pic_SD.PICFile[Pic_SD.number-1].name);//寫入EC20數據
// FATFS_ReadFile((char *)"2001.jpg");
memset(APP_HTTP_pic_url_buf,0,sizeof(APP_HTTP_pic_url_buf));
sprintf((char*)APP_HTTP_pic_url_buf,"http://118.178.120.152:34210/api/file/%s",Pic_SD.PICFile[Pic_SD.number-1].name);
// sprintf((char*)APP_HTTP_pic_url_buf,"http://118.178.120.152:34210/api/file/2001.jpg");
memset(APP_HTTP_pic_url_length_buf,0,sizeof(APP_HTTP_pic_url_length_buf));
sprintf((char*)APP_HTTP_pic_url_length_buf,"AT+QHTTPURL=%d,80",strlen(APP_HTTP_pic_url_buf));
Comsend_AT(APP_HTTP_pic_url_length_buf,"CONNECT",200);
Comsend_AT(APP_HTTP_pic_url_buf,"OK",200);
memset(APP_HTTP_pic_POSTBUF,0,sizeof(APP_HTTP_pic_POSTBUF));
sprintf((char*)APP_HTTP_pic_POSTBUF,"AT+QHTTPPOSTFILE=\"RAM:%s\",80",Pic_SD.PICFile[Pic_SD.number-1].name);
// sprintf((char*)APP_HTTP_pic_POSTBUF,"AT+QHTTPPOSTFILE=\"RAM:2001.jpg\",80");
Comsend_AT(APP_HTTP_pic_POSTBUF,"OK",1200);
// Comsend_AT("AT+QHTTPCFG?","OK",200);
Comsend_AT("AT+QHTTPREAD=80","QHTTPREAD",200);
vTaskDelay(500);
if(http_recive_picnumibei>0)
{
// printf("\r\n打印的%d\r\n", http_recive_picnumibei);
iot_event_report(2,MAXSensor_Id_Buf,Modetype,SocketGPS->latitude,SocketGPS->longitude,SocketGPS->speed,mqttsendtimebuf,0,0,http_reciveLINKFile);
http_recive_picnumibei=0;
memset(APP_HTTP_pic_QFDELbuf,0,sizeof(APP_HTTP_pic_QFDELbuf));
sprintf((char*)APP_HTTP_pic_QFDELbuf,"AT+QFDEL=\"RAM:%s\"",Pic_SD.PICFile[Pic_SD.number-1].name);
Comsend_AT(APP_HTTP_pic_QFDELbuf,"OK",500);
char SDbuf[50];
memset(SDbuf,0,sizeof(SDbuf));
sprintf(SDbuf,"0:/PHOTO/%s",Pic_SD.PICFile[Pic_SD.number-1].name);
f_unlink(SDbuf);//刪除SD卡相應文件文件
Pic_SD.number--;
}
數據寫入ARM
uint8_t FATFS_ReadFile(char *name)
{
uint32_t pic_length = 0;
char SDbuf[50];
char rambuf[50];
FRESULT res;
FIL fsrc;
// uint16_t a;
UINT br;
uint8_t buffer[512];
Comsend_AT("AT+QFLDS=\"RAM\"","OK",200);//獲取存儲空間信息
Comsend_AT("AT+QFLST=\"RAM:*\"","OK",200);//列出全部緩存
Comsend_AT("AT+QFDEL=\"RAM:*\"","OK",200);//清楚全部緩存
memset(SDbuf,0,sizeof(SDbuf));
sprintf(SDbuf,"0:/PHOTO/%s",name);
res = f_open(&fsrc, SDbuf, FA_READ);
if(res == FR_OK)
{
br=1;
// a=0;
pic_length = fsrc.fsize;//獲取文件大小
App_Printf("文件長度:%d\r\n",pic_length);
memset(rambuf,0,sizeof(rambuf));
sprintf(rambuf,"AT+QFUPL=\"RAM:%s\",%d",name,pic_length);
App_Printf("%s\r\n",rambuf);
Comsend_AT(rambuf,"OK",200);
//AT+QFUPL="RAM:1.jpg",7532
printf("文件寫入內容:");
for (;;)
{
memset(buffer,0,sizeof(buffer));
res = f_read(&fsrc, buffer, sizeof(buffer), &br);//br 用來保存讀取到多少數據
Comsend_date(buffer,br,"OK",50);
App_Printf("br:%d\r\n",br);
if (res || br == 0)
{
break; // error or eof
}
}
// f_unlink(SDbuf);//刪除文件
}
f_close(&fsrc); //不論是打開,還是新建文件,一定記得關閉
return 0;
}