Wireless Gas Meter Reading System Data Logger

Dependencies:   mbed

Committer:
harrisjunaid
Date:
Tue Apr 17 15:54:02 2012 +0000
Revision:
0:a67cda7c126f

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
harrisjunaid 0:a67cda7c126f 1 #include "mbed.h"
harrisjunaid 0:a67cda7c126f 2 #include "Serial.h"
harrisjunaid 0:a67cda7c126f 3
harrisjunaid 0:a67cda7c126f 4
harrisjunaid 0:a67cda7c126f 5 //File Handling
harrisjunaid 0:a67cda7c126f 6 #define FSNAME "msc"
harrisjunaid 0:a67cda7c126f 7 #include "MSCFileSystem.h"
harrisjunaid 0:a67cda7c126f 8 MSCFileSystem msc(FSNAME);
harrisjunaid 0:a67cda7c126f 9
harrisjunaid 0:a67cda7c126f 10 //Gas Consumption Variable
harrisjunaid 0:a67cda7c126f 11 unsigned GasCounter = 0;
harrisjunaid 0:a67cda7c126f 12
harrisjunaid 0:a67cda7c126f 13 //Time Handling
harrisjunaid 0:a67cda7c126f 14 struct tm TIME;
harrisjunaid 0:a67cda7c126f 15 Timer TimeIn_Filter;
harrisjunaid 0:a67cda7c126f 16
harrisjunaid 0:a67cda7c126f 17
harrisjunaid 0:a67cda7c126f 18 //PC Serial for DEBUG Messages
harrisjunaid 0:a67cda7c126f 19 Serial pc(USBTX, USBRX);
harrisjunaid 0:a67cda7c126f 20
harrisjunaid 0:a67cda7c126f 21
harrisjunaid 0:a67cda7c126f 22 //Time Update
harrisjunaid 0:a67cda7c126f 23 InterruptIn TimeIn(p21);//Push Button input for Time Reset (minimum > 2V)
harrisjunaid 0:a67cda7c126f 24
harrisjunaid 0:a67cda7c126f 25 //XBee Range Check
harrisjunaid 0:a67cda7c126f 26 InterruptIn RangeIn(p22);//Push Button input for XBee Range Check
harrisjunaid 0:a67cda7c126f 27
harrisjunaid 0:a67cda7c126f 28 //XBEE Connection
harrisjunaid 0:a67cda7c126f 29 Serial xbee(p9, p10);//XBEE Dout (xbee p2) <--> mbed rx p10, XBEE Din (xbee p3) <--> mbed tx p9
harrisjunaid 0:a67cda7c126f 30 DigitalOut xbee_reset(p8);//XBEE Reset (xbee p5) <--> mbed digital out p8
harrisjunaid 0:a67cda7c126f 31 DigitalIn xbee_power(p11);//XBEE Power Indicator (xbee p13) Digital In
harrisjunaid 0:a67cda7c126f 32 DigitalIn xbee_associate(p12);//XBEE Association (xbee p15) Digital In
harrisjunaid 0:a67cda7c126f 33 DigitalIn xbee_CTS(p13);//XBEE pin 12 CTS High = Signal to stop data transfer over UART
harrisjunaid 0:a67cda7c126f 34 DigitalOut xbee_sleep(p14);//XBEE SLEEP_RQ (p9)
harrisjunaid 0:a67cda7c126f 35 //unsigned xbeeon_off = 0;//Default OFF
harrisjunaid 0:a67cda7c126f 36
harrisjunaid 0:a67cda7c126f 37 //Indicators
harrisjunaid 0:a67cda7c126f 38
harrisjunaid 0:a67cda7c126f 39 DigitalOut XBeePower(LED1);//User can now power off
harrisjunaid 0:a67cda7c126f 40 DigitalOut XBeeAssoc(LED2);//XBee Associate
harrisjunaid 0:a67cda7c126f 41 DigitalOut XBeeRange(LED2);//XBee Range Check Indication
harrisjunaid 0:a67cda7c126f 42 DigitalOut CounterLog(LED3);//Counter Log Activity
harrisjunaid 0:a67cda7c126f 43 DigitalOut PushButton(LED3);//Bush Button Indication
harrisjunaid 0:a67cda7c126f 44 DigitalOut Time(LED4);//Time Based Activity
harrisjunaid 0:a67cda7c126f 45
harrisjunaid 0:a67cda7c126f 46 //Functions
harrisjunaid 0:a67cda7c126f 47
harrisjunaid 0:a67cda7c126f 48
harrisjunaid 0:a67cda7c126f 49 unsigned ClockSet();//Called at sensor input
harrisjunaid 0:a67cda7c126f 50
harrisjunaid 0:a67cda7c126f 51 void TimeInterrupt();//Called at p21 high -> Clock Update Interrupt
harrisjunaid 0:a67cda7c126f 52 void TimeInterrupt() {//Called at p21 high -> Clock Update Interrupt
harrisjunaid 0:a67cda7c126f 53 pc.printf("/nTimeInterrupt Called\n");///////..............DEBUG
harrisjunaid 0:a67cda7c126f 54
harrisjunaid 0:a67cda7c126f 55 /* if ((TimeIn_Filter.read()) == 0) {
harrisjunaid 0:a67cda7c126f 56
harrisjunaid 0:a67cda7c126f 57 TimeIn_Filter.start();
harrisjunaid 0:a67cda7c126f 58 pc.printf("/nTimeInterrupt Timer Started\n");///////..............DEBUG
harrisjunaid 0:a67cda7c126f 59
harrisjunaid 0:a67cda7c126f 60 PushButton = 1;
harrisjunaid 0:a67cda7c126f 61 }
harrisjunaid 0:a67cda7c126f 62
harrisjunaid 0:a67cda7c126f 63 while (1) {
harrisjunaid 0:a67cda7c126f 64 if ((TimeIn_Filter.read() >= 2)) {//All readings within 2 sec from first call ignored as noise
harrisjunaid 0:a67cda7c126f 65
harrisjunaid 0:a67cda7c126f 66 pc.printf("/nTimeInterrupt Timer >=2 \n");///////..............DEBUG
harrisjunaid 0:a67cda7c126f 67 */
harrisjunaid 0:a67cda7c126f 68 while ( (ClockSet() != 1) );//Till TIME.txt is not found
harrisjunaid 0:a67cda7c126f 69
harrisjunaid 0:a67cda7c126f 70 /*TimeIn_Filter.stop();
harrisjunaid 0:a67cda7c126f 71 TimeIn_Filter.reset();
harrisjunaid 0:a67cda7c126f 72 pc.printf("/nTimeInterrupt Timer Stoped\n");///////..............DEBUG
harrisjunaid 0:a67cda7c126f 73 PushButton = 0;
harrisjunaid 0:a67cda7c126f 74 }*/
harrisjunaid 0:a67cda7c126f 75 //}
harrisjunaid 0:a67cda7c126f 76 }
harrisjunaid 0:a67cda7c126f 77
harrisjunaid 0:a67cda7c126f 78
harrisjunaid 0:a67cda7c126f 79 unsigned ClockSet() {
harrisjunaid 0:a67cda7c126f 80 pc.printf("\nClockSet Called\n");///////////..........DEBUG
harrisjunaid 0:a67cda7c126f 81 FILE *TimeUpdate;
harrisjunaid 0:a67cda7c126f 82 TimeUpdate = fopen( "/" FSNAME "/TIME.txt", "r");
harrisjunaid 0:a67cda7c126f 83
harrisjunaid 0:a67cda7c126f 84 if (TimeUpdate == NULL) {//File Not Found
harrisjunaid 0:a67cda7c126f 85 pc.printf("\nERROR: TIME.txt not found\n");//////......DEBUG
harrisjunaid 0:a67cda7c126f 86
harrisjunaid 0:a67cda7c126f 87
harrisjunaid 0:a67cda7c126f 88 //LED4 File not Found Indication
harrisjunaid 0:a67cda7c126f 89 Time = 1;
harrisjunaid 0:a67cda7c126f 90 wait(0.2);
harrisjunaid 0:a67cda7c126f 91 Time = 0;
harrisjunaid 0:a67cda7c126f 92 wait(0.2);
harrisjunaid 0:a67cda7c126f 93 Time = 1;
harrisjunaid 0:a67cda7c126f 94 wait(0.2);
harrisjunaid 0:a67cda7c126f 95 Time = 0;
harrisjunaid 0:a67cda7c126f 96 Time = 1;
harrisjunaid 0:a67cda7c126f 97 wait(0.2);
harrisjunaid 0:a67cda7c126f 98 Time = 0;
harrisjunaid 0:a67cda7c126f 99
harrisjunaid 0:a67cda7c126f 100 return 0;
harrisjunaid 0:a67cda7c126f 101 } else {
harrisjunaid 0:a67cda7c126f 102
harrisjunaid 0:a67cda7c126f 103 //01:34->T
harrisjunaid 0:a67cda7c126f 104 //01/34/67->Y
harrisjunaid 0:a67cda7c126f 105 char T[10], Y[20];
harrisjunaid 0:a67cda7c126f 106 fscanf(TimeUpdate,"%s%s",T,Y);
harrisjunaid 0:a67cda7c126f 107
harrisjunaid 0:a67cda7c126f 108
harrisjunaid 0:a67cda7c126f 109 char h[3] = {T[0], T[1], '\0'};//01:34->T
harrisjunaid 0:a67cda7c126f 110 char mi[3] = {T[3], T[4], '\0'};
harrisjunaid 0:a67cda7c126f 111 char d[3] = {Y[0], Y[1], '\0'};//01/34/67->Y
harrisjunaid 0:a67cda7c126f 112 char mo[3] = {Y[3], Y[4], '\0'};
harrisjunaid 0:a67cda7c126f 113 char y[5] = {Y[6], Y[7], Y[8], Y[9], '\0'};
harrisjunaid 0:a67cda7c126f 114
harrisjunaid 0:a67cda7c126f 115 //Converting String to int and stroing in tm structure
harrisjunaid 0:a67cda7c126f 116 TIME.tm_hour = atoi(h);
harrisjunaid 0:a67cda7c126f 117 TIME.tm_min = atoi(mi);
harrisjunaid 0:a67cda7c126f 118 TIME.tm_mday = atoi(d);
harrisjunaid 0:a67cda7c126f 119 TIME.tm_mon = atoi(mo);
harrisjunaid 0:a67cda7c126f 120 TIME.tm_year = atoi(y) ;
harrisjunaid 0:a67cda7c126f 121
harrisjunaid 0:a67cda7c126f 122 // Adjust for tm structure required values
harrisjunaid 0:a67cda7c126f 123 TIME.tm_year = TIME.tm_year - 1900;//Number of years since 1900 (windows)
harrisjunaid 0:a67cda7c126f 124 TIME.tm_mon = TIME.tm_mon - 1;//Jan
harrisjunaid 0:a67cda7c126f 125
harrisjunaid 0:a67cda7c126f 126 //mbed time update
harrisjunaid 0:a67cda7c126f 127 set_time(mktime(&TIME));//broket time converted to simple time and passed to set_time (sets system time)
harrisjunaid 0:a67cda7c126f 128
harrisjunaid 0:a67cda7c126f 129 //LED4 Time Update Indication
harrisjunaid 0:a67cda7c126f 130 Time = 1;
harrisjunaid 0:a67cda7c126f 131 wait(2);
harrisjunaid 0:a67cda7c126f 132 Time = 0;
harrisjunaid 0:a67cda7c126f 133
harrisjunaid 0:a67cda7c126f 134 // display the time
harrisjunaid 0:a67cda7c126f 135 /*
harrisjunaid 0:a67cda7c126f 136 char HourMin[10], Calandar[12];
harrisjunaid 0:a67cda7c126f 137 while (1) {
harrisjunaid 0:a67cda7c126f 138 time_t seconds = time(NULL);//CURRENT TIME
harrisjunaid 0:a67cda7c126f 139 TIME = *localtime(&seconds);//TO BROKEN TIME
harrisjunaid 0:a67cda7c126f 140 strftime(HourMin, sizeof(HourMin), "%T", &TIME);//FORMATTED OUTPUT
harrisjunaid 0:a67cda7c126f 141 strftime(Calandar, sizeof(Calandar), "%d/%m/%Y", &TIME);
harrisjunaid 0:a67cda7c126f 142 pc.printf("\n%s %s", HourMin, Calandar);
harrisjunaid 0:a67cda7c126f 143 wait(1);
harrisjunaid 0:a67cda7c126f 144 }
harrisjunaid 0:a67cda7c126f 145
harrisjunaid 0:a67cda7c126f 146 */
harrisjunaid 0:a67cda7c126f 147 }
harrisjunaid 0:a67cda7c126f 148 fclose(TimeUpdate);//Close File Handler
harrisjunaid 0:a67cda7c126f 149 return 1;//Time Updated Successfully
harrisjunaid 0:a67cda7c126f 150
harrisjunaid 0:a67cda7c126f 151 }
harrisjunaid 0:a67cda7c126f 152
harrisjunaid 0:a67cda7c126f 153 void XBeeRangeCheck_Indication(unsigned status);
harrisjunaid 0:a67cda7c126f 154 void XBeeRangeCheck_Indication(unsigned status) {//LED4 is Flashed (Indicating previous shut down was not safe)
harrisjunaid 0:a67cda7c126f 155 if (status == 1) {
harrisjunaid 0:a67cda7c126f 156 for (unsigned i=0; i<=5 ; i++) {
harrisjunaid 0:a67cda7c126f 157 XBeeRange = 1;
harrisjunaid 0:a67cda7c126f 158 wait(0.2);
harrisjunaid 0:a67cda7c126f 159 XBeeRange = 0;
harrisjunaid 0:a67cda7c126f 160 wait(0.2);
harrisjunaid 0:a67cda7c126f 161 XBeeRange = 1;
harrisjunaid 0:a67cda7c126f 162 wait(0.2);
harrisjunaid 0:a67cda7c126f 163 XBeeRange = 0;
harrisjunaid 0:a67cda7c126f 164 }
harrisjunaid 0:a67cda7c126f 165
harrisjunaid 0:a67cda7c126f 166 } else {
harrisjunaid 0:a67cda7c126f 167 XBeeRange = 0;
harrisjunaid 0:a67cda7c126f 168 wait(4);
harrisjunaid 0:a67cda7c126f 169 }
harrisjunaid 0:a67cda7c126f 170 }
harrisjunaid 0:a67cda7c126f 171
harrisjunaid 0:a67cda7c126f 172
harrisjunaid 0:a67cda7c126f 173
harrisjunaid 0:a67cda7c126f 174
harrisjunaid 0:a67cda7c126f 175
harrisjunaid 0:a67cda7c126f 176 unsigned Xbee_RangeCheck();//XBEE Range Check (Check for END DEVICE)
harrisjunaid 0:a67cda7c126f 177 unsigned Xbee_RangeCheck() {
harrisjunaid 0:a67cda7c126f 178
harrisjunaid 0:a67cda7c126f 179 char response[5];
harrisjunaid 0:a67cda7c126f 180 wait(10);//Allow Time For Communication
harrisjunaid 0:a67cda7c126f 181 for (int i=1 ; i<=3 ; i++) {//Enter XBEE in AT Command Mode
harrisjunaid 0:a67cda7c126f 182 xbee.putc('+');
harrisjunaid 0:a67cda7c126f 183 wait(0.05);
harrisjunaid 0:a67cda7c126f 184 }
harrisjunaid 0:a67cda7c126f 185 xbee.scanf("%s",response);//Get Xbee Response
harrisjunaid 0:a67cda7c126f 186 //pc.printf("\n%s\n",response);//////////////...........DEBUG
harrisjunaid 0:a67cda7c126f 187
harrisjunaid 0:a67cda7c126f 188 //XBEE IS IN COMMAND MODE AND OK RESPONSE IS READ
harrisjunaid 0:a67cda7c126f 189 xbee.printf("ATDNREADER");//AT(AT Command Mode) DN(Destination Node Command) LOGGER(Node Identifier "NI" for END DEVICE)
harrisjunaid 0:a67cda7c126f 190 xbee.putc('\r');//Carriage Return
harrisjunaid 0:a67cda7c126f 191 xbee.scanf("%s",response);//Get Response
harrisjunaid 0:a67cda7c126f 192 //pc.printf("\n%s\n",response);/////////////.............DEBUG
harrisjunaid 0:a67cda7c126f 193 xbee.printf("ATCN");
harrisjunaid 0:a67cda7c126f 194 xbee.putc('\r');
harrisjunaid 0:a67cda7c126f 195 if (response[0] == 'E') {//Could Not Find End Device ("ERROR"\r returned)
harrisjunaid 0:a67cda7c126f 196 pc.printf("\nCound not find END DEVICE\n");/////////.............DEBUG
harrisjunaid 0:a67cda7c126f 197 //EndDevice_Indication();
harrisjunaid 0:a67cda7c126f 198 return 0;//Return No End Device
harrisjunaid 0:a67cda7c126f 199
harrisjunaid 0:a67cda7c126f 200 } else {//End Device is Active ("OK"\r returned)
harrisjunaid 0:a67cda7c126f 201 pc.printf("\nEnd Device Responded\n");/////////.............DEBUG
harrisjunaid 0:a67cda7c126f 202 return 1;//Return End Device is ON
harrisjunaid 0:a67cda7c126f 203 }
harrisjunaid 0:a67cda7c126f 204 }
harrisjunaid 0:a67cda7c126f 205
harrisjunaid 0:a67cda7c126f 206
harrisjunaid 0:a67cda7c126f 207 void RangeIn_Handler();
harrisjunaid 0:a67cda7c126f 208 void RangeIn_Handler() {
harrisjunaid 0:a67cda7c126f 209 if (Xbee_RangeCheck())//Meter Reader is ON
harrisjunaid 0:a67cda7c126f 210 XBeeRangeCheck_Indication(1) ;//Flash LED 2
harrisjunaid 0:a67cda7c126f 211 else//Meter Reader is OFF
harrisjunaid 0:a67cda7c126f 212 XBeeRangeCheck_Indication(0);//LED2 off for 4 sec
harrisjunaid 0:a67cda7c126f 213 }
harrisjunaid 0:a67cda7c126f 214 void Xbee_Reset();//Reset xbee
harrisjunaid 0:a67cda7c126f 215 void Xbee_Reset() {
harrisjunaid 0:a67cda7c126f 216 pc.printf("\nXBee_Reset called");//////////..........DEBUG
harrisjunaid 0:a67cda7c126f 217 xbee_reset = 0;//RESET
harrisjunaid 0:a67cda7c126f 218 wait_ms(1);
harrisjunaid 0:a67cda7c126f 219 xbee_reset = 1;//Back To Operation
harrisjunaid 0:a67cda7c126f 220 wait_ms(1);
harrisjunaid 0:a67cda7c126f 221 }
harrisjunaid 0:a67cda7c126f 222
harrisjunaid 0:a67cda7c126f 223
harrisjunaid 0:a67cda7c126f 224 unsigned RTS();
harrisjunaid 0:a67cda7c126f 225 unsigned RTS() {//returns 1 when mbed is Clear To Send
harrisjunaid 0:a67cda7c126f 226 if (xbee_CTS == 0) return 1;//mbed is Clear To Send
harrisjunaid 0:a67cda7c126f 227 else return 0;
harrisjunaid 0:a67cda7c126f 228 }
harrisjunaid 0:a67cda7c126f 229
harrisjunaid 0:a67cda7c126f 230
harrisjunaid 0:a67cda7c126f 231
harrisjunaid 0:a67cda7c126f 232 void nocsv_indication();
harrisjunaid 0:a67cda7c126f 233 void nocsv_indication() {//Flash LED2 => NO END DEVICE
harrisjunaid 0:a67cda7c126f 234 for (unsigned i=0; i<=5 ; i++) {
harrisjunaid 0:a67cda7c126f 235 CounterLog = 1;
harrisjunaid 0:a67cda7c126f 236 wait(0.2);
harrisjunaid 0:a67cda7c126f 237 CounterLog = 0;
harrisjunaid 0:a67cda7c126f 238 wait(0.2);
harrisjunaid 0:a67cda7c126f 239 CounterLog = 1;
harrisjunaid 0:a67cda7c126f 240 wait(0.2);
harrisjunaid 0:a67cda7c126f 241 CounterLog = 0;
harrisjunaid 0:a67cda7c126f 242 }
harrisjunaid 0:a67cda7c126f 243 }
harrisjunaid 0:a67cda7c126f 244
harrisjunaid 0:a67cda7c126f 245
harrisjunaid 0:a67cda7c126f 246 unsigned Reading_Handler();//Manage "GasCounter" Log File "GAS.csv"
harrisjunaid 0:a67cda7c126f 247 unsigned Reading_Handler() {
harrisjunaid 0:a67cda7c126f 248 pc.printf("\nReading_Handler called\n");///...........DEBUG
harrisjunaid 0:a67cda7c126f 249
harrisjunaid 0:a67cda7c126f 250 FILE *csv;
harrisjunaid 0:a67cda7c126f 251 csv = fopen( "/" FSNAME "/GAS.csv", "rb+");
harrisjunaid 0:a67cda7c126f 252
harrisjunaid 0:a67cda7c126f 253 if (csv == NULL) {//File Not Found
harrisjunaid 0:a67cda7c126f 254 pc.printf("\nERROR: GAS.csv not found\n");
harrisjunaid 0:a67cda7c126f 255
harrisjunaid 0:a67cda7c126f 256
harrisjunaid 0:a67cda7c126f 257 return 0;//File not found
harrisjunaid 0:a67cda7c126f 258 }
harrisjunaid 0:a67cda7c126f 259
harrisjunaid 0:a67cda7c126f 260 fseek(csv,0,SEEK_END);//Move File Pointer at End of File
harrisjunaid 0:a67cda7c126f 261
harrisjunaid 0:a67cda7c126f 262 char HourMin[10], Calandar[12];
harrisjunaid 0:a67cda7c126f 263 time_t seconds = time(NULL);//GET CURRENT TIME
harrisjunaid 0:a67cda7c126f 264 TIME = *localtime(&seconds);//CURRENT TIME TO BROKEN TIME
harrisjunaid 0:a67cda7c126f 265
harrisjunaid 0:a67cda7c126f 266 //EXCEL SUPPORTED FORMATTED OUTPUT
harrisjunaid 0:a67cda7c126f 267 strftime(HourMin, sizeof(HourMin), "%T", &TIME);
harrisjunaid 0:a67cda7c126f 268 strftime(Calandar, sizeof(Calandar), "%d/%m/%Y", &TIME);
harrisjunaid 0:a67cda7c126f 269
harrisjunaid 0:a67cda7c126f 270 //Printing To GAS.csv
harrisjunaid 0:a67cda7c126f 271 fprintf(csv,"%u,%s,%s\n",GasCounter, HourMin, Calandar);
harrisjunaid 0:a67cda7c126f 272
harrisjunaid 0:a67cda7c126f 273
harrisjunaid 0:a67cda7c126f 274 fclose(csv);
harrisjunaid 0:a67cda7c126f 275 return 1;//GAS.csv UPDATED
harrisjunaid 0:a67cda7c126f 276 }
harrisjunaid 0:a67cda7c126f 277
harrisjunaid 0:a67cda7c126f 278
harrisjunaid 0:a67cda7c126f 279 int main() {
harrisjunaid 0:a67cda7c126f 280
harrisjunaid 0:a67cda7c126f 281 TimeIn.rise(&TimeInterrupt);//p21 Push Buttor (Update mbed clock)
harrisjunaid 0:a67cda7c126f 282 RangeIn.rise(&RangeIn_Handler);//p22 Push Buttor (Flash LED2 if found else LED2 off for 4 s)
harrisjunaid 0:a67cda7c126f 283
harrisjunaid 0:a67cda7c126f 284 ClockSet();
harrisjunaid 0:a67cda7c126f 285 // pc.printf("\nReached Here\n");//////..............DEBUG
harrisjunaid 0:a67cda7c126f 286 Xbee_Reset();
harrisjunaid 0:a67cda7c126f 287
harrisjunaid 0:a67cda7c126f 288 while (1) {
harrisjunaid 0:a67cda7c126f 289 //pc.printf("Entered While");
harrisjunaid 0:a67cda7c126f 290 XBeePower = xbee_power;
harrisjunaid 0:a67cda7c126f 291 XBeeAssoc = xbee_associate;
harrisjunaid 0:a67cda7c126f 292 if (xbee.readable()) {
harrisjunaid 0:a67cda7c126f 293 if (xbee.getc() == '*') {//Next is counter value
harrisjunaid 0:a67cda7c126f 294 xbee.scanf("%u", &GasCounter);
harrisjunaid 0:a67cda7c126f 295 //wait(0.2);
harrisjunaid 0:a67cda7c126f 296 //xbee.putc('R');//Reading Received
harrisjunaid 0:a67cda7c126f 297 //xbee.putc('\r');
harrisjunaid 0:a67cda7c126f 298 //wait(0.2);
harrisjunaid 0:a67cda7c126f 299 pc.printf("\n%u", GasCounter);//////////........DEBUG
harrisjunaid 0:a67cda7c126f 300 if ( Reading_Handler() != 1) {//GAS.csv not updated
harrisjunaid 0:a67cda7c126f 301 //ERROR INDICATION
harrisjunaid 0:a67cda7c126f 302 nocsv_indication();
harrisjunaid 0:a67cda7c126f 303 } else {
harrisjunaid 0:a67cda7c126f 304 //READING SUCCESSFUL LOG INDICATION
harrisjunaid 0:a67cda7c126f 305 CounterLog = 1;
harrisjunaid 0:a67cda7c126f 306 wait(2);//LED3 ON for 2 sec
harrisjunaid 0:a67cda7c126f 307 CounterLog = 0;
harrisjunaid 0:a67cda7c126f 308
harrisjunaid 0:a67cda7c126f 309 }
harrisjunaid 0:a67cda7c126f 310
harrisjunaid 0:a67cda7c126f 311 // TO VIEW COMPLETE WIRELESS DATA
harrisjunaid 0:a67cda7c126f 312 //pc.putc(xbee.getc());
harrisjunaid 0:a67cda7c126f 313 }
harrisjunaid 0:a67cda7c126f 314 }
harrisjunaid 0:a67cda7c126f 315 }
harrisjunaid 0:a67cda7c126f 316
harrisjunaid 0:a67cda7c126f 317 }