1 kb AC and 1Kb DC file transmission.

Dependencies:   SDFileSystem mbed-rtos mbed

Committer:
pravinmagar
Date:
Sun Jan 18 04:58:44 2015 +0000
Revision:
0:8353b4dd38cc
ftpput name array size modifed. ftpputname command time increased,few more small variations;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
pravinmagar 0:8353b4dd38cc 1 #include "mbed.h"
pravinmagar 0:8353b4dd38cc 2 #include "SDFileSystem.h"
pravinmagar 0:8353b4dd38cc 3 #include "rtos.h"
pravinmagar 0:8353b4dd38cc 4 #define freq 1
pravinmagar 0:8353b4dd38cc 5
pravinmagar 0:8353b4dd38cc 6
pravinmagar 0:8353b4dd38cc 7 #define dur_sec 20
pravinmagar 0:8353b4dd38cc 8
pravinmagar 0:8353b4dd38cc 9 Serial pc(USBTX, USBRX);
pravinmagar 0:8353b4dd38cc 10 Serial gsm(D1, D0); //tx,rx
pravinmagar 0:8353b4dd38cc 11 DigitalOut dtr(D2);
pravinmagar 0:8353b4dd38cc 12 DigitalOut pwr_key(D3);
pravinmagar 0:8353b4dd38cc 13 DigitalOut gsm_rst(D7);
pravinmagar 0:8353b4dd38cc 14 SDFileSystem sd(PTE3, PTE1, PTE2, PTE4, "sd"); // MOSI, MISO, SCK, CS
pravinmagar 0:8353b4dd38cc 15 AnalogIn AC_input(A0);
pravinmagar 0:8353b4dd38cc 16 AnalogIn DC_input(A2);
pravinmagar 0:8353b4dd38cc 17 AnalogIn TC_RLY(A3);
pravinmagar 0:8353b4dd38cc 18 AnalogIn TC_50(A4);
pravinmagar 0:8353b4dd38cc 19 AnalogIn TC_33(A5);
pravinmagar 0:8353b4dd38cc 20
pravinmagar 0:8353b4dd38cc 21
pravinmagar 0:8353b4dd38cc 22 union Data
pravinmagar 0:8353b4dd38cc 23 {
pravinmagar 0:8353b4dd38cc 24 unsigned short datai[50000];
pravinmagar 0:8353b4dd38cc 25 char datac[100000];
pravinmagar 0:8353b4dd38cc 26 };
pravinmagar 0:8353b4dd38cc 27 union Data ACdata;
pravinmagar 0:8353b4dd38cc 28 union Data DCdata;
pravinmagar 0:8353b4dd38cc 29
pravinmagar 0:8353b4dd38cc 30
pravinmagar 0:8353b4dd38cc 31 unsigned short TC33temp;
pravinmagar 0:8353b4dd38cc 32 unsigned short TC50temp;
pravinmagar 0:8353b4dd38cc 33 unsigned short TCRLtemp;
pravinmagar 0:8353b4dd38cc 34
pravinmagar 0:8353b4dd38cc 35 char sitename[100] ="MODZ";
pravinmagar 0:8353b4dd38cc 36 char filename[100] = "";
pravinmagar 0:8353b4dd38cc 37 char filepath[100] = "";
pravinmagar 0:8353b4dd38cc 38 char timestamp[100]="";
pravinmagar 0:8353b4dd38cc 39 char timestampold[100]="";
pravinmagar 0:8353b4dd38cc 40 char main_dir[100] ="";
pravinmagar 0:8353b4dd38cc 41 char hour_dir[100] ="";
pravinmagar 0:8353b4dd38cc 42 char pathAC[100] ="";
pravinmagar 0:8353b4dd38cc 43 char pathDC[100] ="";
pravinmagar 0:8353b4dd38cc 44 char pathTC[100] ="";
pravinmagar 0:8353b4dd38cc 45 char filenameAC[100] ="";
pravinmagar 0:8353b4dd38cc 46 char filenameDC[100] ="";
pravinmagar 0:8353b4dd38cc 47 char clk_response[100] ="";
pravinmagar 0:8353b4dd38cc 48 //char command[100] ="";
pravinmagar 0:8353b4dd38cc 49 //char result[100] ="";
pravinmagar 0:8353b4dd38cc 50 //char FTP_File_Name[100] ="";
pravinmagar 0:8353b4dd38cc 51 //char FTPPUT_File_Name[100] ="";
pravinmagar 0:8353b4dd38cc 52 //char FTP_Path_Name[100] ="";
pravinmagar 0:8353b4dd38cc 53 //char allfilename[100];
pravinmagar 0:8353b4dd38cc 54 //char mainfilename[100][100];
pravinmagar 0:8353b4dd38cc 55 int m=0,mfinal;
pravinmagar 0:8353b4dd38cc 56 int date, month, year, hour, minute, second, temp = 0;
pravinmagar 0:8353b4dd38cc 57 int c,i;
pravinmagar 0:8353b4dd38cc 58 int ns;
pravinmagar 0:8353b4dd38cc 59 unsigned long var = 0;
pravinmagar 0:8353b4dd38cc 60 unsigned long currentMillis = 0;
pravinmagar 0:8353b4dd38cc 61 uint8_t x=0,z=0, answer=0;
pravinmagar 0:8353b4dd38cc 62
pravinmagar 0:8353b4dd38cc 63 time_t previous;
pravinmagar 0:8353b4dd38cc 64 float tempC;
pravinmagar 0:8353b4dd38cc 65 uint32_t dataLength = dur_sec*freq*1000;
pravinmagar 0:8353b4dd38cc 66 osThreadId tid1,tid2,tid3,tid4,tid5,tid6;
pravinmagar 0:8353b4dd38cc 67 char ftpget[100];
pravinmagar 0:8353b4dd38cc 68 //char ftpfilenameac[100];
pravinmagar 0:8353b4dd38cc 69 //char ftppathac[100];
pravinmagar 0:8353b4dd38cc 70 int reset_time=120; //mins
pravinmagar 0:8353b4dd38cc 71 int gsmerr=0;
pravinmagar 0:8353b4dd38cc 72
pravinmagar 0:8353b4dd38cc 73 //--------------------------------------------------------------------------------------------------//
pravinmagar 0:8353b4dd38cc 74 // Module reset //
pravinmagar 0:8353b4dd38cc 75 //--------------------------------------------------------------------------------------------------//
pravinmagar 0:8353b4dd38cc 76 void reset_mod()
pravinmagar 0:8353b4dd38cc 77 {
pravinmagar 0:8353b4dd38cc 78 //pc.printf("\r\nresetting module\n\n\n\r\n");
pravinmagar 0:8353b4dd38cc 79 NVIC_SystemReset();
pravinmagar 0:8353b4dd38cc 80 }
pravinmagar 0:8353b4dd38cc 81 //--------------------------------------------------------------------------------------------------//
pravinmagar 0:8353b4dd38cc 82 // Send AT Command (1 response) //
pravinmagar 0:8353b4dd38cc 83 //--------------------------------------------------------------------------------------------------//
pravinmagar 0:8353b4dd38cc 84 int8_t sendATcommand(char* ATcommand, char* expected_answer, unsigned int timeout, bool clk_flag)
pravinmagar 0:8353b4dd38cc 85 {
pravinmagar 0:8353b4dd38cc 86 uint8_t x=0,answer=0; //x=0 and answer=0, if not put, AT+CCLK?\r is not executed
pravinmagar 0:8353b4dd38cc 87 char response[100];
pravinmagar 0:8353b4dd38cc 88 memset(response, '\0', 100); // Initialize the string
pravinmagar 0:8353b4dd38cc 89 wait_ms(100);
pravinmagar 0:8353b4dd38cc 90 while( gsm.readable() > 0) gsm.getc(); // Clean the input buffer
pravinmagar 0:8353b4dd38cc 91 gsm.printf("%s \r", ATcommand); // Send the AT command
pravinmagar 0:8353b4dd38cc 92 x = 0;
pravinmagar 0:8353b4dd38cc 93 previous = time(NULL);
pravinmagar 0:8353b4dd38cc 94 do // this loop waits for the answer
pravinmagar 0:8353b4dd38cc 95 {
pravinmagar 0:8353b4dd38cc 96 if(gsm.readable() != 0)
pravinmagar 0:8353b4dd38cc 97 {
pravinmagar 0:8353b4dd38cc 98 response[x] = gsm.getc(); // if there are data in the UART input buffer, reads it and checks for the asnwer
pravinmagar 0:8353b4dd38cc 99 pc.putc(response[x]);
pravinmagar 0:8353b4dd38cc 100 x++;
pravinmagar 0:8353b4dd38cc 101 if (strstr(response, expected_answer) != NULL) // check if the desired answer is in the response of the module
pravinmagar 0:8353b4dd38cc 102 {
pravinmagar 0:8353b4dd38cc 103 answer = 1;
pravinmagar 0:8353b4dd38cc 104 }
pravinmagar 0:8353b4dd38cc 105 }
pravinmagar 0:8353b4dd38cc 106 }
pravinmagar 0:8353b4dd38cc 107 while((answer == 0) && ((time(NULL) - previous) < timeout)); // Waits for the asnwer with time out
pravinmagar 0:8353b4dd38cc 108 //pc.printf("%s \r\n",response);
pravinmagar 0:8353b4dd38cc 109 if(clk_flag == 1)
pravinmagar 0:8353b4dd38cc 110 {
pravinmagar 0:8353b4dd38cc 111 sprintf(timestamp,response); //copies response to timestamp for further processing }
pravinmagar 0:8353b4dd38cc 112 }
pravinmagar 0:8353b4dd38cc 113 return answer;
pravinmagar 0:8353b4dd38cc 114 }
pravinmagar 0:8353b4dd38cc 115 //--------------------------------------------------------------------------------------------------//
pravinmagar 0:8353b4dd38cc 116 // Send AT Command (2 response) //
pravinmagar 0:8353b4dd38cc 117 //--------------------------------------------------------------------------------------------------//
pravinmagar 0:8353b4dd38cc 118 int8_t sendATcommand2(char* ATcommand, char* expected_answer1,char* expected_answer2, unsigned int timeout)
pravinmagar 0:8353b4dd38cc 119 {
pravinmagar 0:8353b4dd38cc 120 uint8_t x=0, answer=0;
pravinmagar 0:8353b4dd38cc 121 char response[100];
pravinmagar 0:8353b4dd38cc 122 time_t previous;
pravinmagar 0:8353b4dd38cc 123 memset(response, '\0', 100); // Initialize the string
pravinmagar 0:8353b4dd38cc 124 Thread::wait(100);
pravinmagar 0:8353b4dd38cc 125 while( gsm.readable() != 0) gsm.getc(); // Clean the input buffer
pravinmagar 0:8353b4dd38cc 126 gsm.printf("%s \r", ATcommand); // Send the AT command
pravinmagar 0:8353b4dd38cc 127 x = 0;
pravinmagar 0:8353b4dd38cc 128 previous = time(NULL);
pravinmagar 0:8353b4dd38cc 129 do // this loop waits for the answer
pravinmagar 0:8353b4dd38cc 130 {
pravinmagar 0:8353b4dd38cc 131 if(gsm.readable() != 0) // if there are data in the UART input buffer, reads it and checks for the asnwer
pravinmagar 0:8353b4dd38cc 132 {
pravinmagar 0:8353b4dd38cc 133 response[x] = gsm.getc();
pravinmagar 0:8353b4dd38cc 134 pc.putc(response[x]);
pravinmagar 0:8353b4dd38cc 135 sprintf(ftpget,"%s",response);
pravinmagar 0:8353b4dd38cc 136 x++;
pravinmagar 0:8353b4dd38cc 137 if (strstr(response, expected_answer1) != NULL) // check if the desired answer 1 is in the response of the module
pravinmagar 0:8353b4dd38cc 138 {
pravinmagar 0:8353b4dd38cc 139 answer = 1;
pravinmagar 0:8353b4dd38cc 140 }
pravinmagar 0:8353b4dd38cc 141 if (strstr(response, expected_answer2) != NULL) // check if the desired answer 2 is in the response of the module
pravinmagar 0:8353b4dd38cc 142 {
pravinmagar 0:8353b4dd38cc 143 answer = 2;
pravinmagar 0:8353b4dd38cc 144 break;
pravinmagar 0:8353b4dd38cc 145 }
pravinmagar 0:8353b4dd38cc 146 }
pravinmagar 0:8353b4dd38cc 147 }
pravinmagar 0:8353b4dd38cc 148 while((answer == 0) && ((time(NULL) - previous) < timeout)); // Waits for the asnwer with time out
pravinmagar 0:8353b4dd38cc 149 return answer;
pravinmagar 0:8353b4dd38cc 150 }
pravinmagar 0:8353b4dd38cc 151
pravinmagar 0:8353b4dd38cc 152 //--------------------------------------------------------------------------------------------------//
pravinmagar 0:8353b4dd38cc 153 // Getting File Directories and names //
pravinmagar 0:8353b4dd38cc 154 //--------------------------------------------------------------------------------------------------//
pravinmagar 0:8353b4dd38cc 155 void GetFileDir()
pravinmagar 0:8353b4dd38cc 156 {
pravinmagar 0:8353b4dd38cc 157 int attempt_cnt=0;
pravinmagar 0:8353b4dd38cc 158 char month_dir[100]="";
pravinmagar 0:8353b4dd38cc 159 char date_dir[100] ="";
pravinmagar 0:8353b4dd38cc 160 sendATcommand("AT+CCLK?\r", "OK", 5,1);
pravinmagar 0:8353b4dd38cc 161 //sprintf(response,timestamp);
pravinmagar 0:8353b4dd38cc 162 x=20;
pravinmagar 0:8353b4dd38cc 163 year = 10*(timestamp[x+1]-48) + (timestamp[x+2]-48);
pravinmagar 0:8353b4dd38cc 164 while(year!=14&&year!=15)
pravinmagar 0:8353b4dd38cc 165 {
pravinmagar 0:8353b4dd38cc 166 sendATcommand("AT+CCLK?\r", "OK", 5,1);
pravinmagar 0:8353b4dd38cc 167 //sprintf(response,timestamp);
pravinmagar 0:8353b4dd38cc 168 year = 10*(timestamp[x+1]-48) + (timestamp[x+2]-48);
pravinmagar 0:8353b4dd38cc 169 //pc.printf("\r\ncurrent timestamp %s\r\n",timestamp);
pravinmagar 0:8353b4dd38cc 170 attempt_cnt++;
pravinmagar 0:8353b4dd38cc 171 if(attempt_cnt>4) break;
pravinmagar 0:8353b4dd38cc 172 }
pravinmagar 0:8353b4dd38cc 173 if(year==14||year==15)
pravinmagar 0:8353b4dd38cc 174 {
pravinmagar 0:8353b4dd38cc 175 if(timestamp!=timestampold)
pravinmagar 0:8353b4dd38cc 176 {
pravinmagar 0:8353b4dd38cc 177 sprintf(timestampold,timestamp);
pravinmagar 0:8353b4dd38cc 178 //pc.printf("\r\nold time stamp is%s\r\n",timestampold);
pravinmagar 0:8353b4dd38cc 179 month = (timestamp[x+4]-48)*10+(timestamp[x+5]-48);
pravinmagar 0:8353b4dd38cc 180 date = (timestamp[x+7]-48)*10+(timestamp[x+8]-48);
pravinmagar 0:8353b4dd38cc 181 hour = (timestamp[x+10]-48)*10+(timestamp[x+11]-48);
pravinmagar 0:8353b4dd38cc 182 minute = (timestamp[x+13]-48)*10+(timestamp[x+14]-48);
pravinmagar 0:8353b4dd38cc 183 second = (timestamp[x+16]-48)*10+(timestamp[x+17]-48);
pravinmagar 0:8353b4dd38cc 184
pravinmagar 0:8353b4dd38cc 185 sprintf(main_dir,"/sd/%s",sitename);
pravinmagar 0:8353b4dd38cc 186 sprintf(month_dir,"%s/%s%02d%02d",main_dir,sitename,year,month);
pravinmagar 0:8353b4dd38cc 187 sprintf(date_dir,"%s/%s%02d%02d%02d",month_dir,sitename,year,month,date);
pravinmagar 0:8353b4dd38cc 188 sprintf(hour_dir,"%s/%s%02d%02d%02d%02d",date_dir,sitename,year,month,date,hour);
pravinmagar 0:8353b4dd38cc 189 sprintf(filepath,"%s/%s%02d%02d%02d%02d%02d%02d",hour_dir,sitename,year,month,date,hour,minute,second);
pravinmagar 0:8353b4dd38cc 190 sprintf(filename,"%s%02d%02d%02d%02d%02d%02d",sitename,year,month,date,hour,minute,second);
pravinmagar 0:8353b4dd38cc 191 gsmerr=0;
pravinmagar 0:8353b4dd38cc 192 mkdir(main_dir,0777);
pravinmagar 0:8353b4dd38cc 193 mkdir(month_dir,0777);
pravinmagar 0:8353b4dd38cc 194 mkdir(date_dir,0777);
pravinmagar 0:8353b4dd38cc 195 mkdir(hour_dir,0777);
pravinmagar 0:8353b4dd38cc 196 }
pravinmagar 0:8353b4dd38cc 197 else
pravinmagar 0:8353b4dd38cc 198 {
pravinmagar 0:8353b4dd38cc 199 sprintf(filepath,"%s/%s%02d%02d%02d%02d%02d%02dErr%03d",hour_dir,sitename,year,month,date,hour,minute,second,gsmerr);
pravinmagar 0:8353b4dd38cc 200 sprintf(filename,"%s%02d%02d%02d%02d%02d%02dErr%03d",sitename,year,month,date,hour,minute,second,gsmerr);
pravinmagar 0:8353b4dd38cc 201 gsmerr++;
pravinmagar 0:8353b4dd38cc 202 }
pravinmagar 0:8353b4dd38cc 203 }
pravinmagar 0:8353b4dd38cc 204 else
pravinmagar 0:8353b4dd38cc 205 {
pravinmagar 0:8353b4dd38cc 206 sprintf(timestamp,timestampold);
pravinmagar 0:8353b4dd38cc 207 sprintf(filepath,"%s/%s%02d%02d%02d%02d%02d%02dErr%03d",hour_dir,sitename,year,month,date,hour,minute,second,gsmerr);
pravinmagar 0:8353b4dd38cc 208 sprintf(filename,"%s%02d%02d%02d%02d%02d%02dErr%03d",sitename,year,month,date,hour,minute,second,gsmerr);
pravinmagar 0:8353b4dd38cc 209 gsmerr++;
pravinmagar 0:8353b4dd38cc 210 }
pravinmagar 0:8353b4dd38cc 211 }
pravinmagar 0:8353b4dd38cc 212
pravinmagar 0:8353b4dd38cc 213 //--------------------------------------------------------------------------------------------------//
pravinmagar 0:8353b4dd38cc 214 // Temperature Sampling //
pravinmagar 0:8353b4dd38cc 215 //--------------------------------------------------------------------------------------------------//
pravinmagar 0:8353b4dd38cc 216 void temp_val()
pravinmagar 0:8353b4dd38cc 217 {
pravinmagar 0:8353b4dd38cc 218 TC33temp=TC_33.read_u16();
pravinmagar 0:8353b4dd38cc 219 TC50temp=TC_50.read_u16();
pravinmagar 0:8353b4dd38cc 220 TCRLtemp=TC_RLY.read_u16();
pravinmagar 0:8353b4dd38cc 221
pravinmagar 0:8353b4dd38cc 222 }
pravinmagar 0:8353b4dd38cc 223
pravinmagar 0:8353b4dd38cc 224 //--------------------------------------------------------------------------------------------------//
pravinmagar 0:8353b4dd38cc 225 // AC-DC Sampling //
pravinmagar 0:8353b4dd38cc 226 //--------------------------------------------------------------------------------------------------//
pravinmagar 0:8353b4dd38cc 227 void calculate_ADC()
pravinmagar 0:8353b4dd38cc 228 {
pravinmagar 0:8353b4dd38cc 229 Timer t;
pravinmagar 0:8353b4dd38cc 230 unsigned long j=0;
pravinmagar 0:8353b4dd38cc 231 //pc.printf("\n\rStarting Reading \n\r");
pravinmagar 0:8353b4dd38cc 232 t.start();
pravinmagar 0:8353b4dd38cc 233 while(j<dataLength)
pravinmagar 0:8353b4dd38cc 234 {
pravinmagar 0:8353b4dd38cc 235 if((int)(t.read()*100*freq*1000)%100 == 0)
pravinmagar 0:8353b4dd38cc 236 {
pravinmagar 0:8353b4dd38cc 237 ACdata.datai[j] = AC_input.read_u16();
pravinmagar 0:8353b4dd38cc 238 DCdata.datai[j] = DC_input.read_u16();
pravinmagar 0:8353b4dd38cc 239 ++j;
pravinmagar 0:8353b4dd38cc 240 }
pravinmagar 0:8353b4dd38cc 241 }
pravinmagar 0:8353b4dd38cc 242 t.stop();
pravinmagar 0:8353b4dd38cc 243 //pc.printf("Time Taken %f \n\r", t.read());
pravinmagar 0:8353b4dd38cc 244 t.reset();
pravinmagar 0:8353b4dd38cc 245 //pc.printf("Total Samples %d\r\n",j);
pravinmagar 0:8353b4dd38cc 246 }
pravinmagar 0:8353b4dd38cc 247 //--------------------------------------------------------------------------------------------------//
pravinmagar 0:8353b4dd38cc 248 // Storage //
pravinmagar 0:8353b4dd38cc 249 //--------------------------------------------------------------------------------------------------//
pravinmagar 0:8353b4dd38cc 250 void store(void const *args)
pravinmagar 0:8353b4dd38cc 251 {
pravinmagar 0:8353b4dd38cc 252 tid3 = osThreadGetId();
pravinmagar 0:8353b4dd38cc 253 //osThreadSetPriority(tid3, osPriorityHigh);
pravinmagar 0:8353b4dd38cc 254 while(true)
pravinmagar 0:8353b4dd38cc 255 {
pravinmagar 0:8353b4dd38cc 256 osSignalWait(0x1, osWaitForever);
pravinmagar 0:8353b4dd38cc 257 //pc.printf("\r\n%d is value of ns\r\n",ns);
pravinmagar 0:8353b4dd38cc 258 switch (ns)
pravinmagar 0:8353b4dd38cc 259 {
pravinmagar 0:8353b4dd38cc 260 case 0:
pravinmagar 0:8353b4dd38cc 261 GetFileDir();
pravinmagar 0:8353b4dd38cc 262 sprintf(filenameAC,"%sAC.txt",filename);
pravinmagar 0:8353b4dd38cc 263 sprintf(pathAC,"%sAC.txt",filepath);
pravinmagar 0:8353b4dd38cc 264 pc.printf("\r\nFilename-AC\t%s", pathAC);
pravinmagar 0:8353b4dd38cc 265 FILE *fp = fopen(pathAC, "w");
pravinmagar 0:8353b4dd38cc 266 if(fp == NULL)
pravinmagar 0:8353b4dd38cc 267 {
pravinmagar 0:8353b4dd38cc 268 //pc.printf("Could not open file for write\n\r");
pravinmagar 0:8353b4dd38cc 269 reset_mod();
pravinmagar 0:8353b4dd38cc 270 }
pravinmagar 0:8353b4dd38cc 271 else
pravinmagar 0:8353b4dd38cc 272 {
pravinmagar 0:8353b4dd38cc 273 for(unsigned long k=0; k<dataLength; ++k)
pravinmagar 0:8353b4dd38cc 274 {
pravinmagar 0:8353b4dd38cc 275 if (k%4==0)
pravinmagar 0:8353b4dd38cc 276 {
pravinmagar 0:8353b4dd38cc 277 fprintf(fp,"\n\n");
pravinmagar 0:8353b4dd38cc 278 }
pravinmagar 0:8353b4dd38cc 279 fprintf(fp, "%c%c", ACdata.datac[2*k],ACdata.datac[2*k+1]);
pravinmagar 0:8353b4dd38cc 280 }
pravinmagar 0:8353b4dd38cc 281 fprintf(fp, "EOF");
pravinmagar 0:8353b4dd38cc 282 fclose(fp);
pravinmagar 0:8353b4dd38cc 283 }
pravinmagar 0:8353b4dd38cc 284 sprintf(filenameDC,"%sDC.txt",filename);
pravinmagar 0:8353b4dd38cc 285 sprintf(pathDC,"%sDC.txt",filepath);
pravinmagar 0:8353b4dd38cc 286 pc.printf("\r\nFilename-DC\t%s", pathDC);
pravinmagar 0:8353b4dd38cc 287 FILE *fp1 = fopen(pathDC, "w");
pravinmagar 0:8353b4dd38cc 288 if(fp1 == NULL)
pravinmagar 0:8353b4dd38cc 289 {
pravinmagar 0:8353b4dd38cc 290 //pc.printf("Could not open file for write\n\r");
pravinmagar 0:8353b4dd38cc 291 reset_mod();
pravinmagar 0:8353b4dd38cc 292 }
pravinmagar 0:8353b4dd38cc 293 else
pravinmagar 0:8353b4dd38cc 294 {
pravinmagar 0:8353b4dd38cc 295 for(unsigned long k=0; k<dataLength; ++k)
pravinmagar 0:8353b4dd38cc 296 {
pravinmagar 0:8353b4dd38cc 297 if (k%4==0)
pravinmagar 0:8353b4dd38cc 298 {
pravinmagar 0:8353b4dd38cc 299 fprintf(fp,"\n\n");
pravinmagar 0:8353b4dd38cc 300 }
pravinmagar 0:8353b4dd38cc 301 fprintf(fp1, "%c%c", DCdata.datac[2*k],DCdata.datac[2*k+1]);
pravinmagar 0:8353b4dd38cc 302 }
pravinmagar 0:8353b4dd38cc 303 fprintf(fp1, "EOF");
pravinmagar 0:8353b4dd38cc 304 }
pravinmagar 0:8353b4dd38cc 305 fclose(fp1);
pravinmagar 0:8353b4dd38cc 306 sprintf(pathTC,"%sTC.txt",hour_dir);
pravinmagar 0:8353b4dd38cc 307 //pc.printf("\r\nFilename-TC\t%s", pathTC);
pravinmagar 0:8353b4dd38cc 308 FILE *fp2 = fopen(pathTC, "a");
pravinmagar 0:8353b4dd38cc 309 if(fp2 == NULL)
pravinmagar 0:8353b4dd38cc 310 {
pravinmagar 0:8353b4dd38cc 311 //pc.printf("Could not open file for write\n\r");
pravinmagar 0:8353b4dd38cc 312 //reset_mod();
pravinmagar 0:8353b4dd38cc 313 }
pravinmagar 0:8353b4dd38cc 314 else
pravinmagar 0:8353b4dd38cc 315 {
pravinmagar 0:8353b4dd38cc 316 for(unsigned long k=0; k<28; ++k)
pravinmagar 0:8353b4dd38cc 317 {
pravinmagar 0:8353b4dd38cc 318 fprintf(fp2, "\r\n3.3V-%d C",TC33temp);
pravinmagar 0:8353b4dd38cc 319 fprintf(fp2, "\r\n5.0V-%d C",TC50temp);
pravinmagar 0:8353b4dd38cc 320 fprintf(fp2, "\r\nRlay-%d C",TCRLtemp);
pravinmagar 0:8353b4dd38cc 321 fprintf(fp2, ",");
pravinmagar 0:8353b4dd38cc 322 }
pravinmagar 0:8353b4dd38cc 323 }
pravinmagar 0:8353b4dd38cc 324 fclose(fp2);
pravinmagar 0:8353b4dd38cc 325 osSignalSet(tid6, 0x1);
pravinmagar 0:8353b4dd38cc 326 break;
pravinmagar 0:8353b4dd38cc 327
pravinmagar 0:8353b4dd38cc 328 case 1:
pravinmagar 0:8353b4dd38cc 329 sprintf(pathTC,"%sTC.txt",hour_dir);
pravinmagar 0:8353b4dd38cc 330 //pc.printf("\r\nFilename-TC\t%s", pathTC);
pravinmagar 0:8353b4dd38cc 331 FILE *fp4 = fopen(pathTC, "a");
pravinmagar 0:8353b4dd38cc 332 if(fp4 == NULL)
pravinmagar 0:8353b4dd38cc 333 {
pravinmagar 0:8353b4dd38cc 334 //pc.printf("Could not open file for write\n\r");
pravinmagar 0:8353b4dd38cc 335 //reset_mod();
pravinmagar 0:8353b4dd38cc 336 }
pravinmagar 0:8353b4dd38cc 337 //fprintf(fp3, "\r\n20%d/%d%d/%d%d-%d%d:%d%d:%d%d",year,montht,monthu,datet,dateu,hourt,houru,minutet,minuteu,secondt,secondu);
pravinmagar 0:8353b4dd38cc 338 else
pravinmagar 0:8353b4dd38cc 339 {
pravinmagar 0:8353b4dd38cc 340 for(unsigned long k=0; k<28; ++k)
pravinmagar 0:8353b4dd38cc 341 {
pravinmagar 0:8353b4dd38cc 342 fprintf(fp4, "\r\n3.3V-%d C",TC33temp);
pravinmagar 0:8353b4dd38cc 343 fprintf(fp4, "\r\n5.0V-%d C",TC50temp);
pravinmagar 0:8353b4dd38cc 344 fprintf(fp4, "\r\nRlay-%d C",TCRLtemp);
pravinmagar 0:8353b4dd38cc 345 fprintf(fp4, ",");
pravinmagar 0:8353b4dd38cc 346 }
pravinmagar 0:8353b4dd38cc 347 }
pravinmagar 0:8353b4dd38cc 348 fclose(fp4);
pravinmagar 0:8353b4dd38cc 349 break;
pravinmagar 0:8353b4dd38cc 350 }
pravinmagar 0:8353b4dd38cc 351 }
pravinmagar 0:8353b4dd38cc 352 }
pravinmagar 0:8353b4dd38cc 353
pravinmagar 0:8353b4dd38cc 354 //--------------------------------------------------------------------------------------------------//
pravinmagar 0:8353b4dd38cc 355 // Sampling Function //
pravinmagar 0:8353b4dd38cc 356 //--------------------------------------------------------------------------------------------------//
pravinmagar 0:8353b4dd38cc 357
pravinmagar 0:8353b4dd38cc 358 void sampling(void const *args)
pravinmagar 0:8353b4dd38cc 359 {
pravinmagar 0:8353b4dd38cc 360 int smplngcnt=0;
pravinmagar 0:8353b4dd38cc 361 tid1 = osThreadGetId();
pravinmagar 0:8353b4dd38cc 362 //osThreadSetPriority(tid1, osPriorityRealtime);
pravinmagar 0:8353b4dd38cc 363 //pc.printf("\r\nstarted sampling thread\r\n");
pravinmagar 0:8353b4dd38cc 364 while(true)
pravinmagar 0:8353b4dd38cc 365 {
pravinmagar 0:8353b4dd38cc 366 if(smplngcnt%16==0)
pravinmagar 0:8353b4dd38cc 367 {
pravinmagar 0:8353b4dd38cc 368 pc.printf("AC sampling attempt");
pravinmagar 0:8353b4dd38cc 369 if(smplngcnt>27) smplngcnt=0;
pravinmagar 0:8353b4dd38cc 370 smplngcnt++;
pravinmagar 0:8353b4dd38cc 371 ns=0;
pravinmagar 0:8353b4dd38cc 372 calculate_ADC();
pravinmagar 0:8353b4dd38cc 373 temp_val();
pravinmagar 0:8353b4dd38cc 374 smplngcnt++;
pravinmagar 0:8353b4dd38cc 375 osSignalSet(tid3, 0x1);
pravinmagar 0:8353b4dd38cc 376 }
pravinmagar 0:8353b4dd38cc 377 else
pravinmagar 0:8353b4dd38cc 378 {
pravinmagar 0:8353b4dd38cc 379 ns=1;
pravinmagar 0:8353b4dd38cc 380 temp_val();
pravinmagar 0:8353b4dd38cc 381 smplngcnt++;
pravinmagar 0:8353b4dd38cc 382 }
pravinmagar 0:8353b4dd38cc 383 Thread::wait(10000);
pravinmagar 0:8353b4dd38cc 384
pravinmagar 0:8353b4dd38cc 385 }
pravinmagar 0:8353b4dd38cc 386 }
pravinmagar 0:8353b4dd38cc 387
pravinmagar 0:8353b4dd38cc 388 //--------------------------------------------------------------------------------------------------//
pravinmagar 0:8353b4dd38cc 389 // Read Filenames from SD Card //
pravinmagar 0:8353b4dd38cc 390 //--------------------------------------------------------------------------------------------------//
pravinmagar 0:8353b4dd38cc 391 /*void read_ALLFILENames(void const *args)
pravinmagar 0:8353b4dd38cc 392 {
pravinmagar 0:8353b4dd38cc 393
pravinmagar 0:8353b4dd38cc 394 while (true)
pravinmagar 0:8353b4dd38cc 395 {
pravinmagar 0:8353b4dd38cc 396
pravinmagar 0:8353b4dd38cc 397 tid5 = osThreadGetId();
pravinmagar 0:8353b4dd38cc 398 osSignalWait(0x1, osWaitForever);
pravinmagar 0:8353b4dd38cc 399 //osThreadSetPriority(tid5, osPriorityBelowNormal);
pravinmagar 0:8353b4dd38cc 400 pc.printf("\r\n reading names");
pravinmagar 0:8353b4dd38cc 401
pravinmagar 0:8353b4dd38cc 402 FILE *fp = fopen("/sd/AllFileName.txt", "r");
pravinmagar 0:8353b4dd38cc 403 while(!feof(fp))
pravinmagar 0:8353b4dd38cc 404 {
pravinmagar 0:8353b4dd38cc 405 //pc.putc("%c", fgetc(fp));
pravinmagar 0:8353b4dd38cc 406 fscanf(fp,"%s",allfilename);
pravinmagar 0:8353b4dd38cc 407 //pc.printf("\r\n%s",allfilename);
pravinmagar 0:8353b4dd38cc 408 sprintf(mainfilename[m],allfilename);
pravinmagar 0:8353b4dd38cc 409 m++;
pravinmagar 0:8353b4dd38cc 410 //pc.printf("\n\r value of m=%d\n\r",m);
pravinmagar 0:8353b4dd38cc 411
pravinmagar 0:8353b4dd38cc 412 }
pravinmagar 0:8353b4dd38cc 413 fclose(fp);
pravinmagar 0:8353b4dd38cc 414 mfinal=m;
pravinmagar 0:8353b4dd38cc 415 //pc.printf("\n\rvalue of m=%d\r\n",mfinal);
pravinmagar 0:8353b4dd38cc 416 for(m=0;m<mfinal/3;m++)
pravinmagar 0:8353b4dd38cc 417 {
pravinmagar 0:8353b4dd38cc 418 //pc.printf("\r\n%dpath\t%s",m,mainfilename[3*m]);
pravinmagar 0:8353b4dd38cc 419 sprintf(ftppathac,"%s",mainfilename[3*m]);
pravinmagar 0:8353b4dd38cc 420 //pc.printf("\r\n%dpath\t%s",m,mainfilename[3*m+1]);
pravinmagar 0:8353b4dd38cc 421 sprintf(ftpfilenameac, "%s", filename[3*m+1]);
pravinmagar 0:8353b4dd38cc 422 //pc.printf("\r\n%dpath\t%s",m,mainfilename[3*m+2]);
pravinmagar 0:8353b4dd38cc 423 }
pravinmagar 0:8353b4dd38cc 424 }
pravinmagar 0:8353b4dd38cc 425 }*/
pravinmagar 0:8353b4dd38cc 426
pravinmagar 0:8353b4dd38cc 427 //--------------------------------------------------------------------------------------------------//
pravinmagar 0:8353b4dd38cc 428 // GSM Initialization //
pravinmagar 0:8353b4dd38cc 429 //--------------------------------------------------------------------------------------------------//
pravinmagar 0:8353b4dd38cc 430 void gsm_init()
pravinmagar 0:8353b4dd38cc 431 {
pravinmagar 0:8353b4dd38cc 432 int cnt = 0;
pravinmagar 0:8353b4dd38cc 433 while((sendATcommand("AT+CREG?", "+CREG: 1,1", 5, 0) || sendATcommand("AT+CREG?", "+CREG: 1,5", 5, 0)) == 0)
pravinmagar 0:8353b4dd38cc 434 {
pravinmagar 0:8353b4dd38cc 435 if(sendATcommand("AT+CREG=1", "+CREG:1", 5, 0))
pravinmagar 0:8353b4dd38cc 436 {
pravinmagar 0:8353b4dd38cc 437 pc.printf("creg is 1");
pravinmagar 0:8353b4dd38cc 438 return;
pravinmagar 0:8353b4dd38cc 439 }
pravinmagar 0:8353b4dd38cc 440 else if(sendATcommand("AT+CREG=1", "+CREG:5", 5, 0))
pravinmagar 0:8353b4dd38cc 441 {
pravinmagar 0:8353b4dd38cc 442 pc.printf("creg is 5");
pravinmagar 0:8353b4dd38cc 443 return;
pravinmagar 0:8353b4dd38cc 444 }
pravinmagar 0:8353b4dd38cc 445 //wait(2);
pravinmagar 0:8353b4dd38cc 446 ++cnt;
pravinmagar 0:8353b4dd38cc 447 //pc.printf("%d", cnt);
pravinmagar 0:8353b4dd38cc 448 if(cnt == 4)
pravinmagar 0:8353b4dd38cc 449 {
pravinmagar 0:8353b4dd38cc 450 pc.printf("GSM registration failed");
pravinmagar 0:8353b4dd38cc 451 return;
pravinmagar 0:8353b4dd38cc 452 }
pravinmagar 0:8353b4dd38cc 453 }
pravinmagar 0:8353b4dd38cc 454 }
pravinmagar 0:8353b4dd38cc 455 //--------------------------------------------------------------------------------------------------//
pravinmagar 0:8353b4dd38cc 456 // FTP Connect function //
pravinmagar 0:8353b4dd38cc 457 //--------------------------------------------------------------------------------------------------//
pravinmagar 0:8353b4dd38cc 458 bool ftp_connect()
pravinmagar 0:8353b4dd38cc 459 {
pravinmagar 0:8353b4dd38cc 460 int ftp_connect_attempt=0;
pravinmagar 0:8353b4dd38cc 461 int ftp_close_attempt=0;
pravinmagar 0:8353b4dd38cc 462 // char command[50];
pravinmagar 0:8353b4dd38cc 463 // char result[50];
pravinmagar 0:8353b4dd38cc 464 if(sendATcommand("AT+SAPBR=2,1", "+SAPBR: 1,3,\"0.0.0.0\"", 5, 0))
pravinmagar 0:8353b4dd38cc 465 {
pravinmagar 0:8353b4dd38cc 466 }
pravinmagar 0:8353b4dd38cc 467 else
pravinmagar 0:8353b4dd38cc 468 {
pravinmagar 0:8353b4dd38cc 469 while(!sendATcommand("AT+SAPBR=2,1", "+SAPBR: 1,3,\"0.0.0.0\"", 5, 0))
pravinmagar 0:8353b4dd38cc 470 {
pravinmagar 0:8353b4dd38cc 471 sendATcommand("AT+SAPBR=0,1","OK",5, 0);
pravinmagar 0:8353b4dd38cc 472 ftp_close_attempt++;
pravinmagar 0:8353b4dd38cc 473 if(ftp_close_attempt>3)
pravinmagar 0:8353b4dd38cc 474 {
pravinmagar 0:8353b4dd38cc 475 return 0;
pravinmagar 0:8353b4dd38cc 476 }
pravinmagar 0:8353b4dd38cc 477 }
pravinmagar 0:8353b4dd38cc 478 }
pravinmagar 0:8353b4dd38cc 479 while(sendATcommand("AT+SAPBR=2,1", "+SAPBR: 1,3,\"0.0.0.0\"", 5, 0))
pravinmagar 0:8353b4dd38cc 480 {
pravinmagar 0:8353b4dd38cc 481 sendATcommand("AT+SAPBR=1,1", "OK", 5, 0);
pravinmagar 0:8353b4dd38cc 482 ftp_connect_attempt++;
pravinmagar 0:8353b4dd38cc 483 if(ftp_connect_attempt>6)
pravinmagar 0:8353b4dd38cc 484 {
pravinmagar 0:8353b4dd38cc 485 return 0;
pravinmagar 0:8353b4dd38cc 486 } //Connect to Bearer 1
pravinmagar 0:8353b4dd38cc 487 }
pravinmagar 0:8353b4dd38cc 488
pravinmagar 0:8353b4dd38cc 489 sendATcommand("AT+FTPTYPE=\"I\"", "OK", 5, 0);
pravinmagar 0:8353b4dd38cc 490 sendATcommand("AT+FTPSERV=\"ftp.panchsheel.biz\"", "OK", 10, 0);
pravinmagar 0:8353b4dd38cc 491 sendATcommand("AT+FTPUN=\"hardware@panchsheel.biz\"", "OK\r", 10, 0);
pravinmagar 0:8353b4dd38cc 492 if(sendATcommand("AT+FTPPW=\"DAStest123\"", "OK\r", 10, 0)) return 1;
pravinmagar 0:8353b4dd38cc 493 else return 0;
pravinmagar 0:8353b4dd38cc 494 //sprintf(command,"%s%s", "AT+FTPPUTNAME=",filename);
pravinmagar 0:8353b4dd38cc 495 //sprintf(result,"%s", "OK");
pravinmagar 0:8353b4dd38cc 496 //sendATcommand(command,result, 5);
pravinmagar 0:8353b4dd38cc 497 //sendATcommand("AT+FTPPUTPATH=\"/\"", "OK", 5);
pravinmagar 0:8353b4dd38cc 498 //if(sendATcommand("AT+FTPPUT=1\r", "+FTPPUT:1,1", 10)) return 1;
pravinmagar 0:8353b4dd38cc 499 //else return 0;
pravinmagar 0:8353b4dd38cc 500 }
pravinmagar 0:8353b4dd38cc 501
pravinmagar 0:8353b4dd38cc 502 //--------------------------------------------------------------------------------------------------//
pravinmagar 0:8353b4dd38cc 503 // FTP Send Function //
pravinmagar 0:8353b4dd38cc 504 //--------------------------------------------------------------------------------------------------//
pravinmagar 0:8353b4dd38cc 505
pravinmagar 0:8353b4dd38cc 506 void ftp_put(bool ftp_type)
pravinmagar 0:8353b4dd38cc 507 {
pravinmagar 0:8353b4dd38cc 508 char ftpfilename[30]="";
pravinmagar 0:8353b4dd38cc 509 char ftpfilepath[100]="";
pravinmagar 0:8353b4dd38cc 510 if (ftp_type ==0)
pravinmagar 0:8353b4dd38cc 511 {
pravinmagar 0:8353b4dd38cc 512 sprintf(ftpfilename,"%s",filenameAC);
pravinmagar 0:8353b4dd38cc 513 // pc.printf("\n %s",ftpfilename);
pravinmagar 0:8353b4dd38cc 514 // pc.printf("\n %p",ftpfilename);
pravinmagar 0:8353b4dd38cc 515 sprintf(ftpfilepath,"%s",pathAC);
pravinmagar 0:8353b4dd38cc 516
pravinmagar 0:8353b4dd38cc 517 }
pravinmagar 0:8353b4dd38cc 518 else if (ftp_type ==1)
pravinmagar 0:8353b4dd38cc 519 {
pravinmagar 0:8353b4dd38cc 520 sprintf(ftpfilename,"%s",filenameDC);
pravinmagar 0:8353b4dd38cc 521 sprintf(ftpfilepath,"%s",pathDC);
pravinmagar 0:8353b4dd38cc 522 }
pravinmagar 0:8353b4dd38cc 523 pc.printf("\r\nftp_put attempt\n\r");
pravinmagar 0:8353b4dd38cc 524 char command1[40];
pravinmagar 0:8353b4dd38cc 525 char result1[20];
pravinmagar 0:8353b4dd38cc 526 // pc.printf("\n %p",ftpfilename);
pravinmagar 0:8353b4dd38cc 527 sprintf(command1,"%s\"%s\"", "AT+FTPPUTNAME=", ftpfilename);
pravinmagar 0:8353b4dd38cc 528 // pc.printf("\n %p",command1);
pravinmagar 0:8353b4dd38cc 529 sprintf(result1,"%s", "OK");
pravinmagar 0:8353b4dd38cc 530 for(int putname_attempt=0; putname_attempt<3;putname_attempt++)
pravinmagar 0:8353b4dd38cc 531 {
pravinmagar 0:8353b4dd38cc 532 // pc.printf("\n %p",ftpfilename);
pravinmagar 0:8353b4dd38cc 533 if(sendATcommand(command1,result1, 10, 0))
pravinmagar 0:8353b4dd38cc 534 {
pravinmagar 0:8353b4dd38cc 535 // pc.printf("\n %p",ftpfilename);
pravinmagar 0:8353b4dd38cc 536 sendATcommand("AT+FTPPUTPATH=\"/Trial//\"", "OK", 5, 0);
pravinmagar 0:8353b4dd38cc 537 //sendATcommand("AT+FTPPUT=1\r", "+FTPPUT:1,1", 10);
pravinmagar 0:8353b4dd38cc 538 //pc.printf("\r\n%s\r\n",ftpfilepath);
pravinmagar 0:8353b4dd38cc 539 //pc.printf("\r\n%s\r\n",ftpfilename);
pravinmagar 0:8353b4dd38cc 540 // unsigned long int cnt=0;
pravinmagar 0:8353b4dd38cc 541 if(sendATcommand("AT+FTPPUT=1", "OK", 10, 0))
pravinmagar 0:8353b4dd38cc 542 {
pravinmagar 0:8353b4dd38cc 543 pc.printf("in loop");
pravinmagar 0:8353b4dd38cc 544 pc.printf("\n\r %s",ftpfilepath);
pravinmagar 0:8353b4dd38cc 545 FILE *fp9 = fopen(ftpfilepath, "r");
pravinmagar 0:8353b4dd38cc 546 if(fp9==NULL)return;
pravinmagar 0:8353b4dd38cc 547 else
pravinmagar 0:8353b4dd38cc 548 {
pravinmagar 0:8353b4dd38cc 549 int trialcount=0;
pravinmagar 0:8353b4dd38cc 550 int allowedtrials=5;
pravinmagar 0:8353b4dd38cc 551 while(trialcount<allowedtrials)
pravinmagar 0:8353b4dd38cc 552 {
pravinmagar 0:8353b4dd38cc 553 if(sendATcommand("AT+FTPPUT=2,1000","+FTPPUT:2,1000", 10, 0))
pravinmagar 0:8353b4dd38cc 554 {
pravinmagar 0:8353b4dd38cc 555 trialcount=0;
pravinmagar 0:8353b4dd38cc 556 for(int i=0; i<1000; i++)
pravinmagar 0:8353b4dd38cc 557 {
pravinmagar 0:8353b4dd38cc 558 gsm.printf("%c", fgetc(fp9));
pravinmagar 0:8353b4dd38cc 559
pravinmagar 0:8353b4dd38cc 560 }
pravinmagar 0:8353b4dd38cc 561 break;
pravinmagar 0:8353b4dd38cc 562 }
pravinmagar 0:8353b4dd38cc 563 else
pravinmagar 0:8353b4dd38cc 564 {
pravinmagar 0:8353b4dd38cc 565 pc.printf("attempt %d failed",trialcount);
pravinmagar 0:8353b4dd38cc 566 trialcount++;
pravinmagar 0:8353b4dd38cc 567 }
pravinmagar 0:8353b4dd38cc 568 }
pravinmagar 0:8353b4dd38cc 569
pravinmagar 0:8353b4dd38cc 570 fclose(fp9);
pravinmagar 0:8353b4dd38cc 571 }
pravinmagar 0:8353b4dd38cc 572
pravinmagar 0:8353b4dd38cc 573 for(int ftp_close_attempt=0; ftp_close_attempt<5; ftp_close_attempt++)
pravinmagar 0:8353b4dd38cc 574 {
pravinmagar 0:8353b4dd38cc 575 if(sendATcommand("AT+FTPPUT=2,0", "OK", 5, 0))
pravinmagar 0:8353b4dd38cc 576 {
pravinmagar 0:8353b4dd38cc 577 ftp_close_attempt=6;
pravinmagar 0:8353b4dd38cc 578 }
pravinmagar 0:8353b4dd38cc 579 }
pravinmagar 0:8353b4dd38cc 580 return;
pravinmagar 0:8353b4dd38cc 581 //}
pravinmagar 0:8353b4dd38cc 582
pravinmagar 0:8353b4dd38cc 583 }
pravinmagar 0:8353b4dd38cc 584 return;
pravinmagar 0:8353b4dd38cc 585 }
pravinmagar 0:8353b4dd38cc 586 }
pravinmagar 0:8353b4dd38cc 587 pc.printf("\n\r %s\n\r","i am not able to send data");
pravinmagar 0:8353b4dd38cc 588 }
pravinmagar 0:8353b4dd38cc 589
pravinmagar 0:8353b4dd38cc 590 //--------------------------------------------------------------------------------------------------//
pravinmagar 0:8353b4dd38cc 591 // FTP Function Thread //
pravinmagar 0:8353b4dd38cc 592 //--------------------------------------------------------------------------------------------------//
pravinmagar 0:8353b4dd38cc 593
pravinmagar 0:8353b4dd38cc 594 void FTP_Fun(void const *args)
pravinmagar 0:8353b4dd38cc 595 {
pravinmagar 0:8353b4dd38cc 596 tid6 = osThreadGetId();
pravinmagar 0:8353b4dd38cc 597
pravinmagar 0:8353b4dd38cc 598 while(true)
pravinmagar 0:8353b4dd38cc 599 {
pravinmagar 0:8353b4dd38cc 600 osSignalWait(0x1, osWaitForever);
pravinmagar 0:8353b4dd38cc 601 //osThreadSetPriority(tid6, osPriorityLow);
pravinmagar 0:8353b4dd38cc 602
pravinmagar 0:8353b4dd38cc 603 if(ftp_connect())
pravinmagar 0:8353b4dd38cc 604 {
pravinmagar 0:8353b4dd38cc 605 //char ACfilename[100],DCfilename[100], TCfilename[100];
pravinmagar 0:8353b4dd38cc 606 //sprintf(ACfilename,"%sAC",filename);
pravinmagar 0:8353b4dd38cc 607 //sprintf(DCfilename,"%sDC",filename);
pravinmagar 0:8353b4dd38cc 608 //sprintf(TCfilename,"%s%02d%02d%02d%03dTC.txt",sitename,year,month,date,hour);
pravinmagar 0:8353b4dd38cc 609 ftp_put(0);
pravinmagar 0:8353b4dd38cc 610 ftp_put(1);
pravinmagar 0:8353b4dd38cc 611 //ftp_put(3,pathTC,TCfilename);
pravinmagar 0:8353b4dd38cc 612 }
pravinmagar 0:8353b4dd38cc 613 }
pravinmagar 0:8353b4dd38cc 614 }
pravinmagar 0:8353b4dd38cc 615 //--------------------------------------------------------------------------------------------------//
pravinmagar 0:8353b4dd38cc 616 // Main Function //
pravinmagar 0:8353b4dd38cc 617 //--------------------------------------------------------------------------------------------------//
pravinmagar 0:8353b4dd38cc 618 int main()
pravinmagar 0:8353b4dd38cc 619 {
pravinmagar 0:8353b4dd38cc 620 //mkdir("/sd/strtup", 0777);
pravinmagar 0:8353b4dd38cc 621 gsm_rst=1;
pravinmagar 0:8353b4dd38cc 622 wait(5);
pravinmagar 0:8353b4dd38cc 623 //pc.printf("Hello\r\n");
pravinmagar 0:8353b4dd38cc 624 //gsm_init();
pravinmagar 0:8353b4dd38cc 625 //wait(2);
pravinmagar 0:8353b4dd38cc 626 gsm.baud(115200);
pravinmagar 0:8353b4dd38cc 627 pc.baud(115200);
pravinmagar 0:8353b4dd38cc 628 Thread thread1(sampling);
pravinmagar 0:8353b4dd38cc 629 Thread thread3(store);
pravinmagar 0:8353b4dd38cc 630 //Thread thread4(SDError);
pravinmagar 0:8353b4dd38cc 631 //Thread thread5(read_ALLFILENames);
pravinmagar 0:8353b4dd38cc 632 Thread thread6(FTP_Fun);
pravinmagar 0:8353b4dd38cc 633 while(true)
pravinmagar 0:8353b4dd38cc 634 {
pravinmagar 0:8353b4dd38cc 635 for (int f=0; f<reset_time; f++)//reset after 60 min
pravinmagar 0:8353b4dd38cc 636 {
pravinmagar 0:8353b4dd38cc 637 Thread::wait(60000);
pravinmagar 0:8353b4dd38cc 638 }
pravinmagar 0:8353b4dd38cc 639 reset_mod();
pravinmagar 0:8353b4dd38cc 640 //osSignalSet(tid2, 0x1);
pravinmagar 0:8353b4dd38cc 641 }
pravinmagar 0:8353b4dd38cc 642 }