ARLISS2012

Dependencies:   mbed-rtos mbed MMA7361L MPL115A2

Fork of rtos_basic by mbed official

Revision:
3:b740280416f6
Parent:
2:5e02179f4141
Child:
4:4faccc542b32
--- a/main.cpp	Wed Aug 22 03:02:00 2012 +0000
+++ b/main.cpp	Fri Aug 24 02:26:51 2012 +0000
@@ -17,6 +17,7 @@
 Serial gps(p13, p14); // decide pin number of gps                                                                        <which pin does system use?(end)
 
 float begin, end;// timer define
+float begin_1;
 
 FILE *fp = fopen("/local/cansat.txt", "a"); //file system start, file open                                               <about file system to open "cansat.txt"
 
@@ -28,7 +29,7 @@
 bool gps_flag = true; //about gps_flag define(true)                                                                      <gps_define(true)
 bool gps_get = true; //which gps get or lost
 bool stateSW = false; //about switch flag define(false)                                                                  <stateSW(false)
-int at = 20; // define avarage time                                                                                      <define avarage time
+int at = 20; // define avarage time
 
 void gps_thread(void const *argument)                                //   <gps thread start
 {
@@ -84,7 +85,7 @@
                     humi_buff = 0; //humidity buffer reset
                     accelx_buff = 0; //accelx buffer reset
                     accely_buff = 0; //accely buffer reset
-                    accelz_buff = 0; //accelz buffer reset                                                                <buffer reset(end)
+                    accelz_buff = 0; //accelz buffer reset                                                           // <buffer reset(end)
                     leds = 0;
                     leds = 2;
 
@@ -94,7 +95,7 @@
                         humi_buff += hu * 3.3 * 100; //humidity data culculation
                         accelx_buff += accel.getAccelX(); //accelx get
                         accely_buff += accel.getAccelY(); //accely get
-                        accelz_buff += accel.getAccelZ(); //accelz get                                                    <get data loop(end)
+                        accelz_buff += accel.getAccelZ(); //accelz get
                         wait(0.005);
                     }
 
@@ -111,6 +112,21 @@
                     end = timer.read_us();
                     double timers = (end - begin) / 1000000;
 
+                    if(xbee_count > 6) {
+                        double stop_timer = (end - begin_1) / 1000000;
+                        if(stop_timer > 1800) {
+                            fclose(fp);
+                            timer.stop();
+                            gps_flag = 0;
+                            while(true) {
+                                leds = 8;
+                                wait(1.0);
+                                leds = 0;
+                                wait(1.0);
+                            }
+                        }
+                    }
+
                     if(timers > 2000) {
                         timer_count ++;
                         begin = timer.read_us(); //timer number read
@@ -121,6 +137,10 @@
 
                         if(xbee_count > 5) {
                             xbee_flag = true;
+                            if(xbee_count == 5) {
+                                begin_1 = timer.read_us();
+                                break;
+                            }
                         }
                     }
 
@@ -128,6 +148,7 @@
 
                     if (gps_get == false) {
                         fprintf(fp, "$DATA,%4.1f,%4.1f,%2.2f,%2.2f,%2.2f,%4.1f,%4.1f,%5.2f,#end\r\n", timers + timer_count * 2000, tempv, accelX, accelY, accelZ, press, humi,lx);
+                        xbee.printf("%5.3f\r\n", lx);
                         if(xbee_flag == true) {
                             xbee.printf("$DATA,%4.1f,%4.1f,%2.2f,%2.2f,%2.2f,%4.1f,%4.1f,%5.2f,#end\r\n", timers + timer_count * 2000, tempv, accelX, accelY, accelZ, press, humi,lx);
                         }