storing variables in single array for transmission

Dependencies:   SDFileSystem dspmodified mbed

Fork of FTPGET_Merged by Pravin Magar

Revision:
23:69ac079fb31e
Parent:
22:4141d6a13488
Child:
24:b09a8907f7f9
--- a/merged_code.cpp	Thu Jun 25 06:30:44 2015 +0000
+++ b/merged_code.cpp	Fri Jun 26 11:06:54 2015 +0000
@@ -9,7 +9,8 @@
 #define freq 1
 #define fft_points 16384
 #define dur_sec 16.384
-#define module_name "TFT2"                         //enter module name here
+#define module_name "BHJ2"                         //enter module name here
+
 
 Serial pc(USBTX, USBRX);
 Serial gsm(D1, D0);
@@ -53,6 +54,7 @@
 char timestamppath_old[30]="";                      // For sending past hour info file
 char timestampname[30]="";
 char timestamppath[30]="";
+char file_data[1294];
 int maxfreq = 0;                                    // For Timestamp Function
 
 int m=0,mfinal;
@@ -72,6 +74,7 @@
 int avg_dc_detect[2]; 
 int avg_temp[2];
 
+
 //--------------------------------------------------------------------------------------------------//
 //                  Module reset                                                                    //
 //--------------------------------------------------------------------------------------------------//
@@ -245,7 +248,7 @@
             sprintf(hour_dir,"%s/%s%02d%02d%02d%02d",date_dir,sitename,year,month,date,hour);
             sprintf(filepath,"%s/%s%02d%02d%02d%02d%02d%02d",hour_dir,sitename,year,month,date,hour,minute,second);
             sprintf(filename,"%s%02d%02d%02d%02d%02d%02d",sitename,year,month,date,hour,minute,second);
-            sprintf(ftpputpathname,"%s/%02d%02d/%02d/%02d",module_name,year,month,date,hour);    //  For FTPPUTPATHNAME feature
+            sprintf(ftpputpathname,"%s/%02d/%02d/%02d/%02d",module_name,year,month,date,hour);    //  For FTPPUTPATHNAME feature
             //pc.printf("Ftpputpathname is %s\r\n",ftpputpathname);   //    For FTPPUTPATHNAME feature
             gsmerr=0;
             mkdir(main_dir,0777);
@@ -428,7 +431,7 @@
 //                 FFT Array Prepare                                                                //
 //--------------------------------------------------------------------------------------------------//
 
-void prepare_fft_array(int* start_index, int* points_count, int* maximas_required, int segments, int fft_type)
+int prepare_fft_array(int* start_index, int* points_count, int* maximas_required, int segments, int fft_type,int count)
 {
     int max_points_count=0;
     for (int i=0; i<segments; i++) 
@@ -443,30 +446,86 @@
         fft_max(start_index[i],points_count[i],maximas_required[i],&index[j],&maxima[j]);
         j=j+maximas_required[i];
     }
+    
+    char inde[4]="";
+    char maxim[9]="";
+    pc.printf("count id=%d",count);
+       
     FILE *fp = fopen(pathfft, "a");
+    
     if(fp == NULL) 
     {
-        pc.printf("Could not open file for write\n\r");
+        pc.printf("\r\n Could not open file for write\n\r");
         mkdir("/sd/jas",0777);
         //reset_mod();
     } 
     else 
     {
         //fprintf(fp, "\r\n%s",timestamp);
+        
         for(int i=0; i<max_points_count; i++) 
         {
             
             fprintf(fp,"\n%d %d",index[i], int(maxima[i]));
             //pc.printf("\r\n %d %d",index[i], int(maxima[i]));
+            
+            pc.printf("\r\n index[i] is=%d %.f",index[i],maxima[i]);
+            
+            sprintf(inde,"%d",index[i]);
+            
+            int length=0;
+            length=strlen(inde);
+            //pc.printf("\r\n length of inde=%d",length);
+            
+            for(j=0;j<length;j++)
+            {
+                if(j!=0)
+                {
+                    file_data[count]=inde[j];
+                    count++;
+                }
+            }
+            strcat(file_data," ");
+            count++;
+            
+            length=0;    
+            sprintf(maxim,"%f",maxima[i]);
+            pc.printf("\r\n maxim is=%s",maxim);
+            length=strlen(maxim);
+            pc.printf("\r\n length of maxim=%d",length);
+            
+            for(j=0;j<length;j++)
+            {
+                if(j!=0)
+                {
+                    file_data[count]=maxim[j];
+                    //pc.printf("\r\nmaxim is=%s",maxim[j]);
+                    count++;
+                }
+            }
+            strcat(file_data,"\r\n");
+            count=count+2; 
+                                    
         }
+        //pc.printf("\r\n file_data in fft points is=%s",file_data);
+        
+        
         if(fft_type==0)
         {
              fprintf(fp,"\r\n\r\n");
              maxfreq= index[1];
+             
+             strcat(file_data,"\n");
+             count++;
+             
+             
         }
         else fprintf(fp,"\r\nEOF");
         fclose(fp);
+        pc.printf("\r\n count before return is=%d",count);
+        return count;
     }
+    
 }
 //--------------------------------------------------------------------------------------------------//
 //                 Remove File from Directory                                                       //
@@ -543,30 +602,7 @@
         fprintf(fp, "EOF");
         fclose(fp);
     }
-//Rushabh: DCD storage deemed unnecessary as avg values stored twice
-/* DC Detect storage
-    sprintf(pathDCdetect,"%sData.txt",hour_dir);
-    //pc.printf("\r\nFilename-DCD\t%s", pathDCdetect);
-    fp = fopen(pathDCdetect, "w");
-    if(fp == NULL) 
-    {
-        //pc.printf("Could not open file for write\n\r");
-        //reset_mod();
-    } 
-    else 
-    {
-        fprintf(fp, "\r\n%s",time_stamp);
-        for(int k=0; k<10; k++) 
-        {
-            fprintf(fp, "\r\nDC-%d",DC_Detect_data[k]);
-        }
-        fclose(fp);
-    }
-*/
-    
-//FFT starts    
-    //pc.printf("\r\nfftstart");
-    //pc.printf("\r\nfftstage1");
+
     sprintf(filenamefft,"%sft.txt",filename);
     //sprintf(ftp_timestamp,"%s",filename);    // For FTP Timestamp
     sprintf(pathfft,"%sft.txt",filepath);
@@ -595,7 +631,43 @@
     {
         AC_rms_value=AC_rms_value+((AC_mean_value-fft_array[i])*(AC_mean_value-fft_array[i])/10000);
     }
-//FFT file write    
+ 
+
+    int count=0;
+    for (int i=0; i<12; i++)
+    {
+        file_data[i]= time_stamp[i];
+        count=count+1;
+    }
+    strcat(file_data,"\r\n");
+    count=count+2;
+         
+    char AC_rms[10];
+    sprintf(AC_rms," %.0f",AC_rms_value);
+    pc.printf("\r\n AC_rms is=%.f",AC_rms); 
+      
+    int length=0;
+    length=strlen(AC_rms);
+    length=length;
+    pc.printf("\r\n length=%d",length);
+           
+               
+    for (int i=0; i<length; i++)
+    {        
+        if(i!=0)
+        {
+             file_data[count]= AC_rms[i];
+             count++;
+        }    
+        
+    }
+    strcat(file_data,"\r\n");
+    count=count+2;
+    
+    pc.printf("\r\nfile_data is=%s",file_data);
+   
+   
+//FFT file write  
     fp = fopen(pathfft, "w");
     //pc.printf("\r\nopened path fft\r\n");
     if(fp == NULL) 
@@ -613,10 +685,13 @@
         fprintf(fp, " %.0f",AC_rms_value);
         fclose(fp);        
     }
+    
     fft(fft_points,0,1,1);
     maxfreq=0;
-    prepare_fft_array(fft_start_index,fft_points_count,fft_maximas_required,fft_segments,0);
-
+    int X;
+    X= prepare_fft_array(fft_start_index,fft_points_count,fft_maximas_required,fft_segments,0,count);
+    pc.printf("x is=%s",X);
+    
 //TIME STAMP FILE WRITE FUNCTION    
     if(gsmerr==0)
     {
@@ -675,7 +750,40 @@
     }
     
     fft(fft_points,0,1,1);
-    prepare_fft_array(fft_start_index,fft_points_count,fft_maximas_required,fft_segments,1);
+    prepare_fft_array(fft_start_index,fft_points_count,fft_maximas_required,fft_segments,1,count);
+    
+   
+    char avg_dc_detect1[10]="";
+    char avg_dc_detect2[10]="";
+    char avg_temp1[10]="";
+    char avg_temp2[10]="";
+    
+    char DC_rms[10]="";
+    
+    //sprintf(avg_dc_detect1,"%d\r\n",avg_dc_detect[0]);
+    //sprintf(avg_dc_detect2,"%d\r\n",avg_dc_detect[1]);
+    //sprintf(avg_temp1,"%d\r\n",avg_temp[0]);
+    //sprintf(avg_temp2,"%d\r\n",avg_temp[1]);
+    
+    sprintf(DC_rms," %.0f\r\n",DC_rms_value);
+    length=0;   
+    length=strlen(DC_rms);
+    length=length-2;
+    pc.printf("\r\nlength=%d",length);
+
+    pc.printf("\r\n DC_rms_value is=%.f\n",DC_rms_value);
+       
+    for (int i=0; i<length; i++)
+    {
+                
+        if(i!=0)
+        {
+            file_data[count]= DC_rms[i];
+            count=count+1;
+        }
+       
+    }
+    pc.printf("\r\n file_data is=%s\n",file_data);
 
 }
 //--------------------------------------------------------------------------------------------------//
@@ -737,11 +845,11 @@
     wait(3);
     if(sendATcommand("AT+FTPTYPE=\"I\"", "OK", 5,0))
     {
-        if(sendATcommand("AT+FTPSERV=\"ftp.panchsheel.biz\"", "OK", 10,0))
+        if(sendATcommand("AT+FTPSERV=\"ftp.magnetsnmiracles.com\"", "OK", 10,0))
         {
-            if(sendATcommand("AT+FTPUN=\"hardware@panchsheel.biz\"", "OK\r", 10,0))
+            if(sendATcommand("AT+FTPUN=\"rjsmstrial@magnetsnmiracles.com\"", "OK\r", 10,0))
             {
-                if(sendATcommand("AT+FTPPW=\"DAStest123\"", "OK\r", 10,0)) return 1;      
+                if(sendATcommand("AT+FTPPW=\"Krliu@3i\"", "OK\r", 10,0)) return 1;      
             }
         }
     }
@@ -782,14 +890,17 @@
     char result1[20];
     char command2 [100];
     //char result2 [20];
+    
+    //pc.printf("\n file_data is=%s\n",file_data);
    
     sprintf(command1,"%s\"%s\"", "AT+FTPPUTNAME=", ftpfilename);
     sprintf(result1,"%s", "OK");
-    pc.printf("ftpfilepath is \n\r %s \n\r",ftpfilepath);
+    //pc.printf("ftpfilepath is \n\r %s \n\r",ftpfilepath);
+    int char_cnt=500;
+    //int char_cnt=sizeof(file_data);
     
-    //sd card
-    int char_cnt=0;
-    char file_data[1294];
+       
+    /*
     FILE *fp8 = fopen(ftpfilepath, "r");
     if(fp8==NULL) 
     {
@@ -808,7 +919,8 @@
             }
         }//size calculation loop ends
         fclose(fp8);
-    }
+    }*/
+    
     for(int putname_attempt=0; putname_attempt<2; putname_attempt++) 
     {
         //pc.printf("\r\nftp_put attempt\n\r");