Testbed / Mbed 2 deprecated DNDDemoCode161114

Dependencies:   SDFileSystem mbed

Files at this revision

API Documentation at this revision

Comitter:
FahdAnsary
Date:
Sun Nov 16 12:23:22 2014 +0000
Child:
1:8e8aa4dc0788
Commit message:
code-probably for pune site (Sampling and storing with storing on wrong timestamp)
;

Changed in this revision

DNDDemoCode161114.cpp Show annotated file Show diff for this revision Revisions of this file
SDFileSystem.lib Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/DNDDemoCode161114.cpp	Sun Nov 16 12:23:22 2014 +0000
@@ -0,0 +1,329 @@
+#include "mbed.h"
+#include "SDFileSystem.h"
+
+#define freq 1
+#define time_interval_sec 30
+
+#define dur_sec 1
+Ticker int1;
+Ticker int2;
+Ticker int3;
+Ticker int4;
+
+Serial pc(USBTX, USBRX);
+Serial gsm(D1, D0); //tx,rx
+DigitalOut dtr(D2);
+DigitalOut pwr_key(D3);
+SDFileSystem sd(PTE3, PTE1, PTE2, PTE4, "sd"); // MOSI, MISO, SCK, CS
+AnalogIn AC_input(A0);
+AnalogIn DC_input(A2);
+AnalogIn TC_RLY(A3);
+AnalogIn TC_50(A4);
+AnalogIn TC_33(A5);
+
+
+union Data
+    {
+    unsigned short datai[50000];
+    char datac[100000];
+    };
+union Data ACdata;
+union Data DCdata;
+
+union Temp
+    {
+    unsigned short tempi;
+    char tempc;
+    };
+char sitename[100] ="MOD2";
+char filename[100] = "";
+char timestamp[100]="";
+char timestampold[100]="";
+char main_dir[100] ="";
+char month_dir[100]="";
+char date_dir[100] ="";
+char hour_dir[100] ="";
+char pathAC[100]   ="";
+char pathDC[100]   ="";
+char pathTC[100]   ="";
+char response[100] ="";
+char command[100] ="";
+char result[100] ="";
+char FTP_File_Name[100] ="";
+char FTPPUT_File_Name[100] ="";
+char FTP_Path_Name[100] ="";
+
+int dateu = 0;
+int datet = 0;
+int monthu = 0;
+int montht = 0;
+int year = 0;
+int houru = 0;
+int hourt = 0;
+int minuteu = 0;
+int minutet = 0;
+int secondu = 0;
+int secondt = 0;
+
+int time_stamp = 0;
+int temp = 0;
+int ftp_update_flag = 1;
+int data_update_flag = 1;
+int name_update_flag = 1;
+int c,i;
+
+unsigned long var = 0;
+unsigned long currentMillis = 0;
+uint8_t x=0,z=0,  answer=0;
+
+time_t previous;
+float tempC;
+uint32_t dataLength = dur_sec*freq*1000;
+unsigned long j=0;
+
+
+//----------------------------------------------------------------------------------------------------------------------------------
+
+int8_t sendATcommandclk(char* ATcommand, char* expected_answer, unsigned int timeout)
+{
+    uint8_t x=0,answer=0;//x=0 and answer=0, if not put, AT+CCLK?\r is not executed
+    char response[100];
+    memset(response, '\0', 100);    // Initialize the string
+    wait_ms(100);
+    while( gsm.readable() > 0) gsm.getc();    // Clean the input buffer
+    gsm.printf("%s \r", ATcommand);    // Send the AT command 
+    pc.printf("..@");
+    x = 0;
+    previous = time(NULL);
+    
+    // this loop waits for the answer
+    do{ 
+        if(gsm.readable() != 0){    
+            
+            // if there are data in the UART input buffer, reads it and checks for the asnwer
+          
+            response[x] = gsm.getc();
+            pc.putc(response[x]);
+            x++;
+            sprintf(timestamp,response);//copies response to timestamp for further processing
+            
+            // check if the desired answer  is in the response of the module
+            if (strstr(response, expected_answer) != NULL)    
+            {
+            answer = 1;
+            } 
+        }
+  
+         // Waits for the asnwer with time out
+    }while((answer == 0) && ((time(NULL) - previous) < timeout));
+    //pc.printf("%s \r\n",response);  
+    FILE *fp=fopen("/sd/TeraTerm.txt","a");
+        if(fp == NULL)
+        {
+        error("Could not open file for write\n\r");
+        }
+        fprintf(fp,"%s",response);
+        fclose(fp);
+      return answer;
+}
+
+//----------------------------------------------------------------------------------------------------------------------------------
+    
+void GetFileDir()
+{
+    
+    sendATcommandclk("AT+CCLK?\r", "OK", 5);  
+    sprintf(response,timestamp);
+    x=20;
+    int gsmerr;
+    year = 10*(timestamp[x+1]-48) + (timestamp[x+2]-48);
+    while(year!=14)
+    {
+    wait(1);
+        GetFileDir();
+        pc.printf("\r\ncurrent timestamp %s\r\n",timestamp);
+        
+    }
+    sprintf(timestampold,response);
+    pc.printf("\r\nold time stamp is%s\r\n",timestampold);
+    //month onwards all parameters are processed in both 'unit' and 'ten' position separately, else for numbers<10, only unit digit is printed e.g 09 is shown as 9 only
+    montht = (timestamp[x+4]-48); 
+    monthu = (timestamp[x+5]-48);
+    datet = (timestamp[x+7]-48);
+    dateu = (timestamp[x+8]-48);
+    hourt = (timestamp[x+10]-48);
+    houru = (timestamp[x+11]-48);
+    minutet = (timestamp[x+13]-48); 
+    minuteu = (timestamp[x+14]-48);
+    secondt = (timestamp[x+16]-48);
+    secondu = (timestamp[x+17]-48); 
+    sprintf(main_dir,"/sd/%s",sitename);
+    sprintf(month_dir,"%s/%s%d%d%d",main_dir,sitename,year,montht,monthu);
+    sprintf(date_dir,"%s/%s%d%d%d%d%d",month_dir,sitename,year,montht,monthu,datet,dateu);
+    sprintf(hour_dir,"%s/%s%d%d%d%d%d%d%d",date_dir,sitename,year,montht,monthu,datet,dateu,hourt,houru);
+    if(timestamp==timestampold)
+    {
+    sprintf(filename,"%s/%s%d%d%d%d%d%d%d%d%d%d%dErr%d",hour_dir,sitename,year,montht,monthu,datet,dateu,hourt,houru,minutet,minuteu,secondt,secondu,gsmerr);
+    gsmerr++;
+    }
+    else
+    {
+    sprintf(filename,"%s/%s%d%d%d%d%d%d%d%d%d%d%d",hour_dir,sitename,year,montht,monthu,datet,dateu,hourt,houru,minutet,minuteu,secondt,secondu);
+    gsmerr=0;
+    }
+    mkdir(main_dir,0777);
+    mkdir(month_dir,0777);
+    mkdir(date_dir,0777);
+    mkdir(hour_dir,0777);
+    
+    //pc.printf("dir are\r\nmain_dir\t%s\r\nmonth_dir\t%s\r\ndate_dir\t%s\r\nhour_dir\t%s\r\nfilename\t%s\r\n",main_dir,month_dir,date_dir,hour_dir,filename);   
+}
+
+//-------------------------------------------------------------------------------------------------------------------------------------
+
+void temp_val()
+{
+union Temp TC33temp;
+union Temp TC50temp;
+union Temp TCRLtemp;
+
+TC33temp.tempi=TC_33.read_u16();
+TC50temp.tempi=TC_50.read_u16();
+TCRLtemp.tempi=TC_RLY.read_u16();
+
+
+GetFileDir();
+
+sprintf(pathTC,"%sTC.txt",hour_dir);
+pc.printf("\r\nFilename-TC\t%s", pathTC);
+FILE *fp = fopen(pathTC, "a");
+    
+if(fp == NULL)
+    {
+    error("Could not open file for write\n\r");
+    }
+    
+fprintf(fp, "\r\n20%d/%d%d/%d%d-%d%d:%d%d:%d%d",year,montht,monthu,datet,dateu,hourt,houru,minutet,minuteu,secondt,secondu);
+fprintf(fp, "\r\n3.3V-%d C",TC33temp.tempi );  
+fprintf(fp, "\r\n5.0V-%d C",TC50temp.tempi );  
+fprintf(fp, "\r\nRlay-%d C",TCRLtemp.tempi );           
+fprintf(fp, ",");
+fclose(fp);
+pc.printf("\r\n3.3V temp - %c C\t%d",TC33temp.tempc,TC33temp.tempi );  
+pc.printf("\r\n5.0V temp - %c C\t%d",TC50temp.tempc,TC50temp.tempi);  
+pc.printf("\r\nRly temp - %c C\t%d",TCRLtemp.tempc,TCRLtemp.tempi );    
+FILE *fp1=fopen("/sd/TeraTerm.txt","a");
+    if(fp1 == NULL)
+    {
+    error("Could not open file for write\n\r");
+    }
+    fprintf(fp1,"\r\nTemperature writing Done\n\r");
+    fclose(fp1);
+pc.printf("\n\rWriting Temp done \n \r"); 
+ 
+}
+
+//-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+
+void calculate_ADC()
+{
+
+    Timer t;
+    
+    pc.printf("\n\rStarting Reading \n\r");
+    t.start();
+    while(j<dataLength)
+    {        
+        if((int)(t.read()*100*freq*1000)%100 == 0)
+        {
+            ACdata.datai[j] = AC_input.read_u16();
+            DCdata.datai[j] = DC_input.read_u16();
+            ++j;
+        }
+    }
+    
+    t.stop();
+    pc.printf("Time Taken %f \n\r", t.read());
+    t.reset();
+    pc.printf("Total Samples %d\r\n",j);
+    j=0;
+    
+    GetFileDir();
+    
+    sprintf(pathAC,"%sAC.txt",filename);
+    pc.printf("\r\nFilename-AC\t%s", pathAC);
+    FILE *fp = fopen(pathAC, "w");
+        if(fp == NULL)
+        {
+        error("Could not open file for write\n\r");
+        }
+    for(unsigned long k=0; k<dataLength; ++k)
+        {
+            if (k%4==0)
+                {
+                    fprintf(fp,"\n\n");
+                }
+            fprintf(fp, "%c%c", ACdata.datac[k]);
+        }
+    fprintf(fp, ",");
+    fclose(fp);
+    
+    sprintf(pathDC,"%sDC.txt",filename);
+    FILE *fp1 = fopen(pathDC, "w");
+        if(fp1 == NULL)
+        {
+        error("Could not open file for write\n\r");
+        }
+
+    for(unsigned long k=0; k<dataLength; ++k)
+        {
+            if (k%4==0)
+                {
+                    fprintf(fp,"\n\n");
+                }
+
+            fprintf(fp1, "%c%c", DCdata.datac[k]);
+        }
+    fprintf(fp1, ",");
+    fclose(fp1);
+    FILE *fp2=fopen("/sd/TeraTerm.txt","a");
+        if(fp2 == NULL)
+        {
+        error("Could not open file for write\n\r");
+        }
+    fprintf(fp2,"\r\nSamples writing Done\n\r");
+    fclose(fp2);
+    pc.printf("Writing Samples done \n \r");
+        
+}
+
+//---------------------------------------------------------------------------------------------------------------------------
+
+void reset_mod()
+{
+    pc.printf("\r\nresetting module\n\n\n\r\n");
+    
+    NVIC_SystemReset();     
+}
+
+//---------------------------------------------------------------------------------------------------------------------------
+int main()
+{
+    mkdir("/sd/strtup", 0777);
+    FILE *fp=fopen("/sd/TeraTerm.txt","a");
+        if(fp == NULL)
+        {
+        error("Could not open file for write\n\r");
+        }
+        fprintf(fp,"\nHello-Module\r\n");
+        fclose(fp);
+    
+   
+    pc.printf("Hello\r\n");
+    wait(2);
+    
+    int1.attach(&temp_val,10);
+    int2.attach(&calculate_ADC,179); 
+    int3.attach(&reset_mod,3601);       
+    
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/SDFileSystem.lib	Sun Nov 16 12:23:22 2014 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/teams/mbed/code/SDFileSystem/#7b35d1709458
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Sun Nov 16 12:23:22 2014 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/mbed_official/code/mbed/builds/031413cf7a89
\ No newline at end of file