20260324
This commit is contained in:
568
RTX5_20220316/Driver/FATFS/data_handle.c
Normal file
568
RTX5_20220316/Driver/FATFS/data_handle.c
Normal file
@ -0,0 +1,568 @@
|
||||
/*
|
||||
*****************************************************************
|
||||
ͷ<>ļ<EFBFBD>
|
||||
*****************************************************************
|
||||
*/
|
||||
#include "bsp.h"
|
||||
|
||||
/*
|
||||
************************************************************************************
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
************************************************************************************
|
||||
*/
|
||||
data_common data_common1;
|
||||
FIL fp; /* Pointer to the blank file object */
|
||||
FATFS fs1;
|
||||
UINT btw; /* Number of bytes to write */
|
||||
UINT bws;
|
||||
u32 send_pos=0;
|
||||
DIR DirInf;
|
||||
FILINFO FileInf;
|
||||
char name[20]="\0";
|
||||
char Tf_Read_Buff[max_transmission+15],Send_Buf[max_transmission+15] = {'\0'},Temp_Buf[max_transmission+15] = {'\0'};
|
||||
/*
|
||||
*********************************************************************************************************
|
||||
* <09><> <20><> <20><>: FATFS_WriteFile()
|
||||
* <09><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>: TF<54><46><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><D0B4>
|
||||
* <09><> <20><> <20><><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD> fname <20><><EFBFBD><EFBFBD> dat <20><><EFBFBD><EFBFBD> len
|
||||
* <20><> <20><> <20><><EFBFBD><EFBFBD>
|
||||
*********************************************************************************************************
|
||||
*/
|
||||
void FATFS_WriteFile(char *fname,char *dat,u16 len) //д<><D0B4><EFBFBD>ݵ<EFBFBD>SD<53><44>
|
||||
{
|
||||
UINT br;
|
||||
char name[20];
|
||||
sprintf(name,"%s%s",fname,".txt");
|
||||
f_mount(&fs1, "0:", 1);
|
||||
f_open (&fp,fname,FA_READ|FA_WRITE|FA_OPEN_ALWAYS);
|
||||
f_lseek(&fp,f_size(&fp)); //<2F>ƶ<EFBFBD><C6B6><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>ĩβ--<><D7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
f_write(&fp,dat,len,&br);
|
||||
f_close(&fp);
|
||||
f_mount(NULL, DiskPath, 0);
|
||||
}
|
||||
|
||||
/*
|
||||
*********************************************************************************************************
|
||||
* <09><> <20><> <20><>: Data_Write_TF()
|
||||
* <09><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>: TF<54><46><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><D0B4> ʱ<>䡢<EFBFBD><E4A1A2>ѹ<EFBFBD><D1B9><EFBFBD><EFBFBD>γ<EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>Ρ<EFBFBD><CEA1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
* <09><> <20><> <20><><EFBFBD><EFBFBD>
|
||||
* <20><> <20><> <20><><EFBFBD><EFBFBD>
|
||||
*********************************************************************************************************
|
||||
*/
|
||||
|
||||
FRESULT Data_Write_TF(void)
|
||||
{
|
||||
FRESULT res;
|
||||
u8 i=0;
|
||||
|
||||
char hhmmss[8]={'\0'},yymmdd[8]={'\0'};
|
||||
RTC_DateTypeDef dates;
|
||||
|
||||
//RTC_GetDate(RTC_Format_BIN,&dates);
|
||||
//GetRTC(hhmmss,yymmdd);
|
||||
//sprintf(name,"%s_%s.txt",yymmdd,Init_Data_Equipment.Measure_Interval);
|
||||
|
||||
f_mount(&fs1, "0:", 1);
|
||||
res=f_open(&fp,name,FA_WRITE);
|
||||
if((res==FR_NO_FILE)||(Init_Data_Equipment.par_change==1))//<2F>ж<EFBFBD><D0B6>ļ<EFBFBD><C4BC>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>.<2E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD>ͷ
|
||||
{
|
||||
f_close(&fp);
|
||||
f_open(&fp,name,FA_READ | FA_WRITE | FA_OPEN_ALWAYS );
|
||||
f_lseek (&fp,f_size(&fp));
|
||||
|
||||
f_write(&fp,"Equipment_ID:",strlen("Equipment_ID:"),&bws);
|
||||
f_write(&fp,Init_Data_Equipment.Equipment_ID,strlen(Init_Data_Equipment.Equipment_ID),&bws);
|
||||
f_write(&fp,"\r\n",2,&bws);
|
||||
|
||||
f_write(&fp,"TCP_Ip:",strlen("TCP_Ip:"),&bws);
|
||||
f_write(&fp,Init_Data_Equipment.Bc25_Ip,strlen(Init_Data_Equipment.Bc25_Ip),&bws);
|
||||
f_write(&fp,"\r\n",2,&bws);
|
||||
|
||||
f_write(&fp,"TCP_Port:",strlen("TCP_Port:"),&bws);
|
||||
f_write(&fp,Init_Data_Equipment.Bc25_Port,strlen(Init_Data_Equipment.Bc25_Port),&bws);
|
||||
f_write(&fp,"\r\n",2,&bws);
|
||||
|
||||
f_write(&fp,"Wifi_SSID:",strlen("Wifi_SSID:"),&bws);
|
||||
f_write(&fp,Init_Data_Equipment.ESP8266_AP_SSIDs,strlen(Init_Data_Equipment.ESP8266_AP_SSIDs),&bws);
|
||||
f_write(&fp,"\r\n",2,&bws);
|
||||
|
||||
f_write(&fp,"Wifi_Pwd:",strlen("Wifi_Pwd:"),&bws);
|
||||
f_write(&fp,Init_Data_Equipment.ESP8266_AP_PWDs,strlen(Init_Data_Equipment.ESP8266_AP_PWDs),&bws);
|
||||
f_write(&fp,"\r\n",2,&bws);
|
||||
|
||||
f_write(&fp,"Wifi_Port:",strlen("Wifi_Port:"),&bws);
|
||||
f_write(&fp,Init_Data_Equipment.ESP8266_AP_Ports,strlen(Init_Data_Equipment.ESP8266_AP_Ports),&bws);
|
||||
f_write(&fp,"\r\n",2,&bws);
|
||||
|
||||
f_write(&fp,"Measure_Interval:",strlen("Measure_Interval:"),&bws);
|
||||
f_write(&fp,Init_Data_Equipment.Measure_Interval,strlen(Init_Data_Equipment.Measure_Interval),&bws);
|
||||
f_write(&fp,"\r\n",2,&bws);
|
||||
|
||||
f_write(&fp,"Pub_Interval:",strlen("Pub_Interval:"),&bws);
|
||||
f_write(&fp,Init_Data_Equipment.Pub_Time,strlen(Init_Data_Equipment.Pub_Time),&bws);
|
||||
f_write(&fp,"\r\n",2,&bws);
|
||||
|
||||
f_write(&fp,"Appointment_Time:",strlen("Appointment_Time:"),&bws);
|
||||
f_write(&fp,Init_Data_Equipment.appointment_time,strlen(Init_Data_Equipment.appointment_time),&bws);
|
||||
f_write(&fp,"\r\n",2,&bws);
|
||||
|
||||
f_write(&fp,"Measure_Mode:",strlen("Measure_Mode:"),&bws);
|
||||
f_write(&fp,Init_Data_Equipment.measure_mode,strlen(Init_Data_Equipment.measure_mode),&bws);
|
||||
f_write(&fp,"\r\n",2,&bws);
|
||||
|
||||
f_write(&fp,"Equipment_ID,DateTime,Power-V,Latitude,N/S,Longitude,E/W,Ch1-SoilT_C,Ch1-SoilVWC_%,Ch1-Soil_DS,Ch2-SoilT_C,Ch2-SoilVWC_%,Ch2-Soil_DS,Ch3-SoilT_C,Ch3-SoilVWC_%,Ch3-Soil_DS,Ch4-SoilT_C,Ch4-SoilVWC_%,Ch4-Soil_DS,Ch5-SoilT_C,Ch5-SoilVWC_%,Ch5-Soil_DS,Ch6-SoilT_C,Ch6-SoilVWC_%,Ch6-Soil_DS,qxz-Temperature_C,qxz-Humidity_%RH,qxz-AirPressure_hPa,qxz-WindSpeed_m/s,qxz-WindDirection_<6E><5F>,qxz-Rainfall_mm,qxz-Illuminance_lux\r\n",
|
||||
strlen("Equipment_ID,DateTime,Power-V,Latitude,N/S,Longitude,E/W,Ch1-SoilT_C,Ch1-SoilVWC_%,Ch1-Soil_DS,Ch2-SoilT_C,Ch2-SoilVWC_%,Ch2-Soil_DS,Ch3-SoilT_C,Ch3-SoilVWC_%,Ch3-Soil_DS,Ch4-SoilT_C,Ch4-SoilVWC_%,Ch4-Soil_DS,Ch5-SoilT_C,Ch5-SoilVWC_%,Ch5-Soil_DS,Ch6-SoilT_C,Ch6-SoilVWC_%,Ch6-Soil_DS,qxz-Temperature_C,qxz-Humidity_%RH,qxz-AirPressure_hPa,qxz-WindSpeed_m/s,qxz-WindDirection_<6E><5F>,qxz-Rainfall_mm,qxz-Illuminance_lux\r\n"),&bws);
|
||||
f_close(&fp);
|
||||
//qxz<78><7A><EFBFBD><EFBFBD>վ<EFBFBD><D5BE><EFBFBD>ݣ<EFBFBD><DDA3>¶ȡ<C2B6>ʪ<EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD>ѹ<EFBFBD><D1B9><EFBFBD><EFBFBD><EFBFBD>١<EFBFBD><D9A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>գ<EFBFBD>
|
||||
//ʪ<><CAAA> <20>絼<EFBFBD><E7B5BC> <20>¶<EFBFBD>
|
||||
|
||||
}
|
||||
res=f_open(&fp,name,FA_READ | FA_WRITE | FA_OPEN_ALWAYS );//0:/
|
||||
if(res!=FR_OK) //<2F><><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>
|
||||
{
|
||||
i=0;
|
||||
while((res!=FR_OK)&(i<100))
|
||||
{
|
||||
i++;
|
||||
f_close(&fp);
|
||||
f_mount(NULL, DiskPath, 0);
|
||||
f_mount(&fs1, "0:", 1);
|
||||
res=f_open(&fp,name,FA_READ | FA_WRITE | FA_OPEN_ALWAYS );//0:/
|
||||
}
|
||||
if(i>98)return FR_NO_PATH ;
|
||||
|
||||
}
|
||||
f_lseek (&fp,f_size(&fp));
|
||||
f_write(&fp,data_common1.Pack_data,strlen(data_common1.Pack_data),&bws);
|
||||
f_write(&fp,"\r\n",2,&bws);
|
||||
f_close(&fp);
|
||||
|
||||
|
||||
|
||||
f_mount(&fs1, "0:", 1);
|
||||
res=f_open(&fp,"BC25.txt",FA_WRITE);
|
||||
/*************<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>洢<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>BC25<32><35>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>*******************************/
|
||||
if((Init_Data_Equipment.par_change==1) || (res==FR_NO_FILE))//<2F>ж<EFBFBD><D0B6>ļ<EFBFBD><C4BC>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>.<2E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD>ͷ
|
||||
//if((Init_Data_Equipment.par_change==1)||(Init_Data_Equipment.Bc25_Send_Header!=dates.RTC_Date))//<2F>ж<EFBFBD><D0B6>ļ<EFBFBD><C4BC>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>.<2E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD>ͷ
|
||||
{
|
||||
//res=f_open(&fp,"BC25.txt",FA_READ | FA_WRITE | FA_OPEN_ALWAYS );
|
||||
Init_Data_Equipment.par_change=0;
|
||||
EEPROM_WriteBytes(185,0,1);
|
||||
EEPROM_WriteBytes(186,&dates.RTC_Date,1);
|
||||
f_close(&fp);
|
||||
f_open(&fp,"BC25.txt",FA_READ | FA_WRITE | FA_OPEN_ALWAYS );
|
||||
f_lseek (&fp,f_size(&fp));
|
||||
|
||||
f_write(&fp,"Equipment_ID:",strlen("Equipment_ID:"),&bws);
|
||||
f_write(&fp,Init_Data_Equipment.Equipment_ID,strlen(Init_Data_Equipment.Equipment_ID),&bws);
|
||||
f_write(&fp,"\r\n",2,&bws);
|
||||
|
||||
f_write(&fp,"TCP_Ip:",strlen("TCP_Ip:"),&bws);
|
||||
f_write(&fp,Init_Data_Equipment.Bc25_Ip,strlen(Init_Data_Equipment.Bc25_Ip),&bws);
|
||||
f_write(&fp,"\r\n",2,&bws);
|
||||
|
||||
f_write(&fp,"TCP_Port:",strlen("TCP_Port:"),&bws);
|
||||
f_write(&fp,Init_Data_Equipment.Bc25_Port,strlen(Init_Data_Equipment.Bc25_Port),&bws);
|
||||
f_write(&fp,"\r\n",2,&bws);
|
||||
|
||||
f_write(&fp,"Wifi_SSID:",strlen("Wifi_SSID:"),&bws);
|
||||
f_write(&fp,Init_Data_Equipment.ESP8266_AP_SSIDs,strlen(Init_Data_Equipment.ESP8266_AP_SSIDs),&bws);
|
||||
f_write(&fp,"\r\n",2,&bws);
|
||||
|
||||
f_write(&fp,"Wifi_Pwd:",strlen("Wifi_Pwd:"),&bws);
|
||||
f_write(&fp,Init_Data_Equipment.ESP8266_AP_PWDs,strlen(Init_Data_Equipment.ESP8266_AP_PWDs),&bws);
|
||||
f_write(&fp,"\r\n",2,&bws);
|
||||
|
||||
f_write(&fp,"Wifi_Port:",strlen("Wifi_Port:"),&bws);
|
||||
f_write(&fp,Init_Data_Equipment.ESP8266_AP_Ports,strlen(Init_Data_Equipment.ESP8266_AP_Ports),&bws);
|
||||
f_write(&fp,"\r\n",2,&bws);
|
||||
|
||||
f_write(&fp,"Measure_Interval:",strlen("Measure_Interval:"),&bws);
|
||||
f_write(&fp,Init_Data_Equipment.Measure_Interval,strlen(Init_Data_Equipment.Measure_Interval),&bws);
|
||||
f_write(&fp,"\r\n",2,&bws);
|
||||
|
||||
f_write(&fp,"Pub_Interval:",strlen("Pub_Interval:"),&bws);
|
||||
f_write(&fp,Init_Data_Equipment.Pub_Time,strlen(Init_Data_Equipment.Pub_Time),&bws);
|
||||
f_write(&fp,"\r\n",2,&bws);
|
||||
|
||||
f_write(&fp,"Appointment_Time:",strlen("Appointment_Time:"),&bws);
|
||||
f_write(&fp,Init_Data_Equipment.appointment_time,strlen(Init_Data_Equipment.appointment_time),&bws);
|
||||
f_write(&fp,"\r\n",2,&bws);
|
||||
|
||||
f_write(&fp,"Measure_Mode:",strlen("Measure_Mode:"),&bws);
|
||||
f_write(&fp,Init_Data_Equipment.measure_mode,strlen(Init_Data_Equipment.measure_mode),&bws);
|
||||
f_write(&fp,"\r\n",2,&bws);
|
||||
|
||||
// f_write(&fp,"IOT_Username:",strlen("IOT_Username:"),&bws);
|
||||
// f_write(&fp,Init_Data_Equipment.measure_mode,strlen(Init_Data_Equipment.IOT_Username),&bws);
|
||||
// f_write(&fp,"\r\n",2,&bws);
|
||||
|
||||
// f_write(&fp,"IOT_Password:",strlen("IOT_Password:"),&bws);
|
||||
// f_write(&fp,Init_Data_Equipment.measure_mode,strlen(Init_Data_Equipment.IOT_Password),&bws);
|
||||
// f_write(&fp,"\r\n",2,&bws);
|
||||
|
||||
// f_write(&fp,"IOT_Theme_name:",strlen("IOT_Theme_name:"),&bws);
|
||||
// f_write(&fp,Init_Data_Equipment.measure_mode,strlen(Init_Data_Equipment.IOT_Theme_name),&bws);
|
||||
// f_write(&fp,"\r\n",2,&bws);
|
||||
|
||||
f_write(&fp,"Equipment_ID,DateTime,Power-V,Latitude,N/S,Longitude,E/W,Ch1-SoilT_C,Ch1-SoilVWC_%,Ch1-Soil_DS,Ch2-SoilT_C,Ch2-SoilVWC_%,Ch2-Soil_DS,Ch3-SoilT_C,Ch3-SoilVWC_%,Ch3-Soil_DS,Ch4-SoilT_C,Ch4-SoilVWC_%,Ch4-Soil_DS,Ch5-SoilT_C,Ch5-SoilVWC_%,Ch5-Soil_DS,Ch6-SoilT_C,Ch6-SoilVWC_%,Ch6-Soil_DS,qxz-Temperature_C,qxz-Humidity_%RH,qxz-AirPressure_hPa,qxz-WindSpeed_m/s,qxz-WindDirection_<6E><5F>,qxz-Rainfall_mm,qxz-Illuminance_lux\r\n",
|
||||
strlen("Equipment_ID,DateTime,Power-V,Latitude,N/S,Longitude,E/W,Ch1-SoilT_C,Ch1-SoilVWC_%,Ch1-Soil_DS,Ch2-SoilT_C,Ch2-SoilVWC_%,Ch2-Soil_DS,Ch3-SoilT_C,Ch3-SoilVWC_%,Ch3-Soil_DS,Ch4-SoilT_C,Ch4-SoilVWC_%,Ch4-Soil_DS,Ch5-SoilT_C,Ch5-SoilVWC_%,Ch5-Soil_DS,Ch6-SoilT_C,Ch6-SoilVWC_%,Ch6-Soil_DS,qxz-Temperature_C,qxz-Humidity_%RH,qxz-AirPressure_hPa,qxz-WindSpeed_m/s,qxz-WindDirection_<6E><5F>,qxz-Rainfall_mm,qxz-Illuminance_lux\r\n"),&bws);
|
||||
f_close(&fp);
|
||||
}
|
||||
res=f_open(&fp,"BC25.txt",FA_READ | FA_WRITE | FA_OPEN_ALWAYS );//0:/
|
||||
if(res!=FR_OK) //<2F><><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>
|
||||
{
|
||||
i=0;
|
||||
while((res!=FR_OK)&(i<100))
|
||||
{
|
||||
i++;
|
||||
f_close(&fp);
|
||||
f_mount(NULL, DiskPath, 0);;
|
||||
f_mount(&fs1, "0:", 1);
|
||||
res=f_open(&fp,"BC25.txt",FA_READ | FA_WRITE | FA_OPEN_ALWAYS );//0:/
|
||||
}
|
||||
if(i>98)
|
||||
{
|
||||
//u5_printf("open BC25.txt fail\r\n");
|
||||
return FR_NO_PATH ;
|
||||
}
|
||||
|
||||
}
|
||||
// if(res==FR_OK) //<2F>ɹ<F2BFAAB3>
|
||||
// {
|
||||
f_lseek (&fp,f_size(&fp));
|
||||
f_write(&fp,data_common1.Pack_data,strlen(data_common1.Pack_data),&bws);
|
||||
f_write(&fp,"\r\n",2,&bws);
|
||||
f_close(&fp);
|
||||
// }
|
||||
|
||||
f_mount(NULL, DiskPath, 0);
|
||||
return FR_OK;
|
||||
}
|
||||
|
||||
|
||||
void Write_Test(void)
|
||||
{
|
||||
f_mount(&fs1, "0:", 1);
|
||||
f_open(&fp,"test.txt",FA_READ | FA_WRITE | FA_OPEN_ALWAYS );
|
||||
f_lseek (&fp,f_size(&fp));
|
||||
f_write(&fp,"Equipment_ID,DateTime,Power-V,Latitude,N/S,Longitude,E/W,Ch1-SoilT_C,Ch1-SoilVWC_%,Ch1-Soil_DS,Ch2-SoilT_C,Ch2-SoilVWC_%,Ch2-Soil_DS,Ch3-SoilT_C,Ch3-SoilVWC_%,Ch3-Soil_DS,Ch4-SoilT_C,Ch4-SoilVWC_%,Ch4-Soil_DS,Ch5-SoilT_C,Ch5-SoilVWC_%,Ch5-Soil_DS,Ch6-SoilT_C,Ch6-SoilVWC_%,Ch6-Soil_DS,qxz-Temperature_C,qxz-Humidity_%RH,qxz-AirPressure_hPa,qxz-WindSpeed_m/s,qxz-WindDirection_<6E><5F>,qxz-Rainfall_mm,qxz-Illuminance_lux,IOT_Cpin,IOT_Csq,IOT_Net,Tf_Tol,Tf_Free\r\n",
|
||||
strlen("Equipment_ID,DateTime,Power-V,Latitude,N/S,Longitude,E/W,Ch1-SoilT_C,Ch1-SoilVWC_%,Ch1-Soil_DS,Ch2-SoilT_C,Ch2-SoilVWC_%,Ch2-Soil_DS,Ch3-SoilT_C,Ch3-SoilVWC_%,Ch3-Soil_DS,Ch4-SoilT_C,Ch4-SoilVWC_%,Ch4-Soil_DS,Ch5-SoilT_C,Ch5-SoilVWC_%,Ch5-Soil_DS,Ch6-SoilT_C,Ch6-SoilVWC_%,Ch6-Soil_DS,qxz-Temperature_C,qxz-Humidity_%RH,qxz-AirPressure_hPa,qxz-WindSpeed_m/s,qxz-WindDirection_<6E><5F>,qxz-Rainfall_mm,qxz-Illuminance_lux,IOT_Cpin,IOT_Csq,IOT_Net,Tf_Tol,Tf_Free\r\n"),&bws);
|
||||
f_write(&fp,data_common1.Pack_data,strlen(data_common1.Pack_data),&bws);
|
||||
f_write(&fp,"\r\n",2,&bws);
|
||||
f_close(&fp);
|
||||
f_mount(NULL, "0:", 1);
|
||||
// free(fs);
|
||||
}
|
||||
/*
|
||||
*********************************************************************************************************
|
||||
* <09><> <20><> <20><>: Fil_delete()
|
||||
* <09><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>: ɾ<><C9BE><EFBFBD>ļ<EFBFBD>
|
||||
* <09><> <20><> <20><><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD> name
|
||||
* <20><> <20><> <20><><EFBFBD><EFBFBD>
|
||||
*********************************************************************************************************
|
||||
*/
|
||||
FRESULT Fil_delete(char *names)
|
||||
{
|
||||
FRESULT result;
|
||||
char namebuff[10]="\0";
|
||||
sprintf(namebuff,"%s%s",names,".txt");
|
||||
f_mount(&fs1, "0:", 1);
|
||||
result = f_unlink(namebuff);
|
||||
f_close(&fp);
|
||||
if(result == FR_OK)
|
||||
{
|
||||
|
||||
}//u5_printf("delete sucess");
|
||||
f_mount(NULL, DiskPath, 0);;
|
||||
return result;
|
||||
}
|
||||
|
||||
/*
|
||||
*********************************************************************************************************
|
||||
* <09><> <20><> <20><>: txt_size_read()
|
||||
* <09><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>: <20><>ȡ<EFBFBD>ļ<EFBFBD><C4BC>Ĵ<EFBFBD>Сbyte
|
||||
* <09><> <20><> <20><><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD> name
|
||||
* <20><> <20><> <20><><EFBFBD><EFBFBD>
|
||||
*********************************************************************************************************
|
||||
*/
|
||||
u32 txt_size_read(char *fname)
|
||||
{
|
||||
// u8 i=0;
|
||||
FRESULT res;
|
||||
u32 txt_size;
|
||||
char name[20];
|
||||
sprintf(name,"%s%s",fname,".txt");
|
||||
res=f_mount(&fs1, "0:", 1);
|
||||
res=f_open(&fp,"0:/BC25.txt",FA_READ);
|
||||
if(res!=FR_OK) //<2F><><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>
|
||||
{
|
||||
//u5_printf("open bc25txt size fail\r\n");
|
||||
return FR_NO_FILE;
|
||||
}
|
||||
txt_size=f_size(&fp);
|
||||
res=f_close(&fp);
|
||||
f_mount(NULL, DiskPath, 0);;
|
||||
return txt_size;
|
||||
}
|
||||
|
||||
uint16_t Count(char *P)
|
||||
{
|
||||
uint16_t count = 0;
|
||||
while((P[count++] != 0x0a)&&(P[count - 1] != 0x0d) && count < max_transmission+15);
|
||||
return count;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
*********************************************************************************************************
|
||||
* <09><> <20><> <20><>: FATFS_Read_TF()
|
||||
* <09><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>: TF<54><46><EFBFBD><EFBFBD><EFBFBD>ݶ<EFBFBD>ȡ
|
||||
* <09><> <20><> <20><><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD> name <20><>ʼλ<CABC><CEBB> start <20><><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD> len
|
||||
* <20><> <20><> <20><><EFBFBD><EFBFBD>
|
||||
*********************************************************************************************************
|
||||
*/
|
||||
|
||||
void FATFS_Read_TF(char *fname,u32 start_pos,u32 len)
|
||||
{
|
||||
FRESULT res;
|
||||
u32 tf_sendpos=0;
|
||||
u16 size_buf,Send_Len = 0,Save_Addr = 0;
|
||||
u8 times;
|
||||
u32 i,lens_quotient,len_remainder;//<2F>̣<EFBFBD><CCA3><EFBFBD><EFBFBD><EFBFBD>
|
||||
char rname[10];
|
||||
|
||||
if(BC25_Status.socket==0)return;
|
||||
memset(Tf_Read_Buff,0,sizeof(Tf_Read_Buff));
|
||||
memset(Send_Buf,0,sizeof(Send_Buf));
|
||||
memset(Temp_Buf,0,sizeof(Temp_Buf));
|
||||
EEPROM_ReadDWords(180,&tf_sendpos,1);//<2F><>ȡTF<54><46><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD>λ<EFBFBD><CEBB>
|
||||
if(tf_sendpos>len)tf_sendpos=0;//<2F><>ֹ<EFBFBD><D6B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD>ɾ<EFBFBD><C9BE>
|
||||
|
||||
sprintf(rname,"%s%s",fname,".txt");
|
||||
lens_quotient=(len-tf_sendpos)/max_transmission;
|
||||
len_remainder=(len-tf_sendpos)%max_transmission;
|
||||
|
||||
memset(Tf_Read_Buff,0,sizeof(Tf_Read_Buff));
|
||||
if(osEventFlagsGet(EventFlagID_PROCESS)&EVENT_TFstore_BIT_6)
|
||||
{
|
||||
osDelay(3000);
|
||||
}
|
||||
res=f_mount(&fs1, "0:", 1);
|
||||
res=f_open(&fp,rname,FA_READ);
|
||||
times=0;
|
||||
|
||||
while((res!=FR_OK)&(times<100))
|
||||
{
|
||||
res=f_close(&fp);
|
||||
res=f_mount(&fs1, "0:", 1);
|
||||
res=f_open(&fp,rname,FA_READ);
|
||||
}
|
||||
f_lseek(&fp, start_pos+tf_sendpos);
|
||||
|
||||
for(i=0;i<lens_quotient;lens_quotient=((len-tf_sendpos)/max_transmission))//<2F><><EFBFBD>ʹ<EFBFBD><CDB4><EFBFBD><EFBFBD><EFBFBD>max_transmission<6F>ֽ<EFBFBD>
|
||||
{
|
||||
if(osEventFlagsGet(EventFlagID_PROCESS)&EVENT_TFstore_BIT_6)//<2F>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD>ݴ洢
|
||||
{
|
||||
osEventFlagsClear(EventFlagID_PROCESS,EVENT_TFstore_BIT_6);
|
||||
//u5_printf("BC25 WAIT\r\n");
|
||||
res=f_close(&fp);
|
||||
osEventFlagsSet(EventFlagID_PROCESS,EVENT_TFread2_BIT_7);
|
||||
osEventFlagsWait(EventFlagID_PROCESS,EVENT_TFstore2_BIT_8,osFlagsWaitAll,5000 );
|
||||
res=f_close(&fp);
|
||||
/******<2A><>ȡ<EFBFBD><C8A1><EFBFBD>º<EFBFBD><C2BA><EFBFBD><EFBFBD>ļ<EFBFBD>******/
|
||||
len=txt_size_read("BC25");//
|
||||
//u5_printf("second-len:%ld\r\n",len);
|
||||
while((len<10)&(times<50))
|
||||
{
|
||||
len=txt_size_read("BC25");
|
||||
//u5_printf("second-len:%ld\r\n",len);
|
||||
times++;
|
||||
}
|
||||
lens_quotient=(len-tf_sendpos)/max_transmission;
|
||||
lens_quotient+=i;
|
||||
len_remainder=(len-tf_sendpos)%max_transmission;
|
||||
//u5_printf("i=%d\r\n",i);
|
||||
//u5_printf("lens_quotient=%d\r\n",lens_quotient);
|
||||
//u5_printf("len_remainder=%d\r\n",len_remainder);
|
||||
f_mount(&fs1, "0:", 1);
|
||||
res=f_open(&fp,rname,FA_READ);
|
||||
times=0;
|
||||
while((res!=FR_OK)&(times<100))
|
||||
{
|
||||
res=f_open(&fp,rname,FA_READ);
|
||||
times++;
|
||||
}
|
||||
if(res!=FR_OK) //<2F><><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>
|
||||
{
|
||||
EEPROM_WriteDWords(180,&tf_sendpos,1);
|
||||
return;
|
||||
}
|
||||
f_lseek(&fp,tf_sendpos);
|
||||
//u5_printf("BC25 resum\r\n");
|
||||
}
|
||||
res=f_read(&fp,Tf_Read_Buff,max_transmission,&bws);
|
||||
Send_Len = Count(Tf_Read_Buff);
|
||||
Save_Addr = Send_Len + 1;
|
||||
memset(Send_Buf,0,sizeof(Send_Buf));
|
||||
memset(Temp_Buf,0,sizeof(Temp_Buf));
|
||||
memcpy(Temp_Buf,Tf_Read_Buff,Send_Len + 1);
|
||||
|
||||
if(strstr((const char*)Temp_Buf,(const char*)"Ch1-SoilT_C"))
|
||||
{
|
||||
IOT_Theme_TYPE = IOT_Theme_tablehead;
|
||||
}
|
||||
else if((Temp_Buf[0] > 0x2F) && (Temp_Buf[0] < 0x3A)) // Temp_Buf[0] <20>ڡ<EFBFBD>0<EFBFBD><30>---<2D><>9<EFBFBD><39>֮<EFBFBD><D6AE>
|
||||
{
|
||||
IOT_Theme_TYPE = IOT_Theme_data;
|
||||
}
|
||||
else
|
||||
{
|
||||
IOT_Theme_TYPE = IOT_Theme_config;
|
||||
}
|
||||
|
||||
sprintf(Send_Buf,"Pub,%d,%s*",Send_Len+1,Temp_Buf);
|
||||
Send_Len = Count(Send_Buf);
|
||||
times=0;
|
||||
|
||||
if(IOT_Theme_TYPE != IOT_Theme_config)
|
||||
{
|
||||
if(BC25_Senddata_mode(Send_Len + 2,Send_Buf))
|
||||
{
|
||||
//u5_printf("bc25 send fail:%ld\r\n",tf_sendpos);
|
||||
return;//<2F><><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
tf_sendpos += Save_Addr;//<2F><><EFBFBD><EFBFBD>һ<EFBFBD>Σ<EFBFBD><CEA3><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>λ<EFBFBD><CEBB>
|
||||
f_lseek(&fp, start_pos+tf_sendpos);
|
||||
EEPROM_WriteDWords(180,&tf_sendpos,1);
|
||||
}
|
||||
|
||||
|
||||
while(tf_sendpos < len)
|
||||
{
|
||||
|
||||
res=f_read(&fp,Tf_Read_Buff,max_transmission,&bws);
|
||||
Send_Len = Count(Tf_Read_Buff);
|
||||
Save_Addr = Send_Len + 1;
|
||||
memset(Send_Buf,0,sizeof(Send_Buf));
|
||||
memset(Temp_Buf,0,sizeof(Temp_Buf));
|
||||
memcpy(Temp_Buf,Tf_Read_Buff,Send_Len + 1);
|
||||
sprintf(Send_Buf,"Pub,%d,%s*",Send_Len+1,Temp_Buf);
|
||||
Send_Len = Count(Send_Buf);
|
||||
|
||||
if(IOT_Theme_TYPE != IOT_Theme_config)
|
||||
{
|
||||
if(BC25_Senddata_mode(Send_Len + 2,Send_Buf))
|
||||
{
|
||||
//u5_printf("bc25 send fail:%ld\r\n",tf_sendpos);
|
||||
return;//<2F><><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>
|
||||
}
|
||||
}
|
||||
|
||||
tf_sendpos += Save_Addr;//<2F><><EFBFBD><EFBFBD>һ<EFBFBD>Σ<EFBFBD><CEA3><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>λ<EFBFBD><CEBB>
|
||||
f_lseek(&fp, start_pos+tf_sendpos);
|
||||
EEPROM_WriteDWords(180,&tf_sendpos,1);
|
||||
__nop();
|
||||
}
|
||||
tf_sendpos=0;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0
|
||||
EEPROM_WriteDWords(180,&tf_sendpos,1);
|
||||
res=f_close(&fp);
|
||||
f_mount(&fs1, "0:", 1);
|
||||
Fil_delete("BC25");//ɾ<><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
}
|
||||
|
||||
/*
|
||||
*********************************************************************************************************
|
||||
* <09><> <20><> <20><>: Common_Data_Pack()
|
||||
* <09><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>: <20><><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD>
|
||||
* <09><> <20><> <20><><EFBFBD><EFBFBD>
|
||||
* <20><> <20><> <20><><EFBFBD><EFBFBD>
|
||||
*********************************************************************************************************
|
||||
*/
|
||||
void Common_Data_Pack(void)
|
||||
{
|
||||
|
||||
sprintf(data_common1.Time_DATA,"%c%c/%c%c/20%c%c %c%c:%c%c:%c%c",
|
||||
rtc_data[2],rtc_data[3],rtc_data[4],rtc_data[5],rtc_data[0],rtc_data[1],
|
||||
rtc_time[0],rtc_time[1],rtc_time[2],rtc_time[3],rtc_time[4],rtc_time[5]);//<2F><><EFBFBD>ں<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>洢
|
||||
memset(data_common1.Pack_data,0,sizeof(data_common1.Pack_data));
|
||||
sprintf(data_common1.Pack_data,"%s,%s,%s%s%s,%s,%s,%s,%s,%s,%s",
|
||||
Init_Data_Equipment.Equipment_ID,
|
||||
data_common1.Time_DATA,
|
||||
data_common1.ADC_DATA,
|
||||
data_common1.GPS_DATA,
|
||||
Sdi_Fram_Record_Structs.Ch1_RX_BUF,
|
||||
Sdi_Fram_Record_Structs.Ch2_RX_BUF,
|
||||
Sdi_Fram_Record_Structs.Ch3_RX_BUF,
|
||||
Sdi_Fram_Record_Structs.Ch4_RX_BUF,
|
||||
Sdi_Fram_Record_Structs.Ch5_RX_BUF,
|
||||
Sdi_Fram_Record_Structs.Ch6_RX_BUF,
|
||||
// Sdi_Fram_Record_Structs.Ch7_RX_BUF,
|
||||
// Sdi_Fram_Record_Structs.Ch8_RX_BUF,
|
||||
// Sdi_Fram_Record_Structs.Ch9_RX_BUF
|
||||
Sdi_Fram_Record_Structs.QXZ_RX_BUF
|
||||
|
||||
|
||||
);
|
||||
sprintf(data_common1.Pack_len,"%d,",strlen(data_common1.Pack_data)+2);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//<2F><><EFBFBD>Բ<EFBFBD><D4B2><EFBFBD>
|
||||
|
||||
if((data_common1.Pack_data[0] < 0x30) || (data_common1.Pack_data[0] > 0x39))
|
||||
{
|
||||
memset(data_common1.Pack_data,0,sizeof(data_common1.Pack_data));
|
||||
sprintf(data_common1.Pack_data,"%s\r\n","TESTTEST"
|
||||
|
||||
// Sdi_Fram_Record_Structs.Ch7_RX_BUF,
|
||||
// Sdi_Fram_Record_Structs.Ch8_RX_BUF,
|
||||
// Sdi_Fram_Record_Structs.Ch9_RX_BUF
|
||||
|
||||
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
//<2F>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD>ʣ<EFBFBD><CAA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//drv:<3A><><EFBFBD>̱<EFBFBD><CCB1><EFBFBD>("0:"/"1:")
|
||||
//total:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>λKB<4B><42>
|
||||
//free:ʣ<><CAA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>λKB<4B><42>
|
||||
//<2F><><EFBFBD><EFBFBD>ֵ:0,<2C><><EFBFBD><EFBFBD>.<2E><><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
uint8_t exf_getfree(char *drv,u32 *total,u32 *frees)
|
||||
{
|
||||
FATFS *fs;
|
||||
|
||||
fs=malloc(700);
|
||||
FRESULT res;
|
||||
u32 fre_clust=0, fre_sect=0, tot_sect=0;
|
||||
//<2F>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD>
|
||||
res=f_mount(fs, "0", 1);
|
||||
res =f_getfree("0", (DWORD*)&fre_clust, &fs);
|
||||
if(res==0)
|
||||
{
|
||||
tot_sect=(fs->n_fatent-2)*fs->csize; //<2F>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
fre_sect=fre_clust*fs->csize; //<2F>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
*total=tot_sect>>1; //<2F><>λΪKB
|
||||
*frees=fre_sect>>1; //<2F><>λΪKB
|
||||
|
||||
*total=(*total)/1024; //<2F><>λΪM
|
||||
*frees=(*frees)/1024; //<2F><>λΪM
|
||||
}
|
||||
res=f_mount(NULL, "0", 1);
|
||||
free(fs);
|
||||
return res;
|
||||
}
|
||||
|
||||
/***************************** END OF FILE *********************************/
|
||||
Reference in New Issue
Block a user