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