dd
Dependencies: C12832 LM75B mbed
Ah_main.cpp@0:05a20e3e3179, 2015-04-21 (annotated)
- Committer:
- pfe
- Date:
- Tue Apr 21 10:16:20 2015 +0000
- Revision:
- 0:05a20e3e3179
dd
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
pfe | 0:05a20e3e3179 | 1 | #include "mbed.h" |
pfe | 0:05a20e3e3179 | 2 | #include "C12832.h" |
pfe | 0:05a20e3e3179 | 3 | #include "MSCFileSystem.h" |
pfe | 0:05a20e3e3179 | 4 | //----------------------- |
pfe | 0:05a20e3e3179 | 5 | #include "Define.h" |
pfe | 0:05a20e3e3179 | 6 | #include "RecGPS.h" |
pfe | 0:05a20e3e3179 | 7 | //----------------------- |
pfe | 0:05a20e3e3179 | 8 | MSCFileSystem fsLog("USB"); // Enregsetement des doonées "Flash Disque USB" |
pfe | 0:05a20e3e3179 | 9 | FILE *Fs_Log; |
pfe | 0:05a20e3e3179 | 10 | I2C _I2C(p28,p27); // I2C SCL,SDA |
pfe | 0:05a20e3e3179 | 11 | Serial _ComGPS(p13, p14); // TX non connecté, pin14 RX. |
pfe | 0:05a20e3e3179 | 12 | Serial _ComXbee(p9,p10); // Serial tx(p9),rx(10) |
pfe | 0:05a20e3e3179 | 13 | #define pRST_Xbee p30 // pin RST Xbee |
pfe | 0:05a20e3e3179 | 14 | Ticker _Ticker5ms; |
pfe | 0:05a20e3e3179 | 15 | Timer _Timer1; // Timer pour mesurer le temps |
pfe | 0:05a20e3e3179 | 16 | |
pfe | 0:05a20e3e3179 | 17 | DigitalIn boutonStart(p13); // Joystique Left : Boutton pour pouvoir controler le debut de l'enregistrement |
pfe | 0:05a20e3e3179 | 18 | DigitalIn boutonEnd(p16); // Joystique Right : Boutton pour pouvoir controler la fin de l'enregistrement |
pfe | 0:05a20e3e3179 | 19 | |
pfe | 0:05a20e3e3179 | 20 | DigitalOut RSTXbee (p30); |
pfe | 0:05a20e3e3179 | 21 | DigitalOut LedGPS (LED1); |
pfe | 0:05a20e3e3179 | 22 | DigitalOut LedLog (LED2); |
pfe | 0:05a20e3e3179 | 23 | DigitalOut LedXbee (LED3); |
pfe | 0:05a20e3e3179 | 24 | DigitalOut LedError(LED4); |
pfe | 0:05a20e3e3179 | 25 | //----------------------- |
pfe | 0:05a20e3e3179 | 26 | StructGPS GPS; |
pfe | 0:05a20e3e3179 | 27 | unsigned long TimeBtpress=0,TIMER_10ms; |
pfe | 0:05a20e3e3179 | 28 | unsigned long FileIndex; |
pfe | 0:05a20e3e3179 | 29 | char Txt[16],Txt_Log[100],Txt_Tx2GSC[100],DataLogFileName[32]; |
pfe | 0:05a20e3e3179 | 30 | unsigned long tk1; // des variables pour stocker les temps de mesure |
pfe | 0:05a20e3e3179 | 31 | //----------------------------------- Reception des données GPS 10Hz |
pfe | 0:05a20e3e3179 | 32 | void AutoMat_GPS(){ |
pfe | 0:05a20e3e3179 | 33 | static unsigned char i=0,j=0,GPSDataType=0,ET_AutoMat_GPS=ET_01; |
pfe | 0:05a20e3e3179 | 34 | static char gps_mess; |
pfe | 0:05a20e3e3179 | 35 | while(_ComGPS.readable()){ |
pfe | 0:05a20e3e3179 | 36 | gps_mess=_ComGPS.getc(); |
pfe | 0:05a20e3e3179 | 37 | |
pfe | 0:05a20e3e3179 | 38 | switch(ET_AutoMat_GPS){ |
pfe | 0:05a20e3e3179 | 39 | case ET_01: if(gps_mess==prompt$GP[i]){ |
pfe | 0:05a20e3e3179 | 40 | i++; |
pfe | 0:05a20e3e3179 | 41 | if(i==3){ |
pfe | 0:05a20e3e3179 | 42 | i=0; |
pfe | 0:05a20e3e3179 | 43 | j=0; |
pfe | 0:05a20e3e3179 | 44 | ET_AutoMat_GPS=ET_02; |
pfe | 0:05a20e3e3179 | 45 | } |
pfe | 0:05a20e3e3179 | 46 | }else i=0; |
pfe | 0:05a20e3e3179 | 47 | break; |
pfe | 0:05a20e3e3179 | 48 | case ET_02: if(gps_mess==promptGGA[i]){ |
pfe | 0:05a20e3e3179 | 49 | i++; |
pfe | 0:05a20e3e3179 | 50 | if(i==3){ |
pfe | 0:05a20e3e3179 | 51 | i=0; |
pfe | 0:05a20e3e3179 | 52 | j=0; |
pfe | 0:05a20e3e3179 | 53 | ET_AutoMat_GPS = ET_03; |
pfe | 0:05a20e3e3179 | 54 | GPSDataType = GGA; |
pfe | 0:05a20e3e3179 | 55 | } |
pfe | 0:05a20e3e3179 | 56 | break; |
pfe | 0:05a20e3e3179 | 57 | }else i=0; |
pfe | 0:05a20e3e3179 | 58 | |
pfe | 0:05a20e3e3179 | 59 | if(gps_mess==promptRMC[j]){ |
pfe | 0:05a20e3e3179 | 60 | j++; |
pfe | 0:05a20e3e3179 | 61 | if(j==3){ |
pfe | 0:05a20e3e3179 | 62 | j=0; |
pfe | 0:05a20e3e3179 | 63 | ET_AutoMat_GPS=ET_03; |
pfe | 0:05a20e3e3179 | 64 | GPSDataType=RMC; |
pfe | 0:05a20e3e3179 | 65 | } |
pfe | 0:05a20e3e3179 | 66 | break; |
pfe | 0:05a20e3e3179 | 67 | }else j=0; |
pfe | 0:05a20e3e3179 | 68 | |
pfe | 0:05a20e3e3179 | 69 | ET_AutoMat_GPS=ET_01; |
pfe | 0:05a20e3e3179 | 70 | break; |
pfe | 0:05a20e3e3179 | 71 | |
pfe | 0:05a20e3e3179 | 72 | case ET_03: _MsgGPSRx[i]=gps_mess; |
pfe | 0:05a20e3e3179 | 73 | i++; |
pfe | 0:05a20e3e3179 | 74 | if((i<NData_GPS_Max)&&(gps_mess!=0x0D))break; |
pfe | 0:05a20e3e3179 | 75 | |
pfe | 0:05a20e3e3179 | 76 | switch(GPSDataType){ |
pfe | 0:05a20e3e3179 | 77 | |
pfe | 0:05a20e3e3179 | 78 | case GGA: DecodageGPGGA(i-1);// l'appel de la fonction de decodage du message GPGGA |
pfe | 0:05a20e3e3179 | 79 | LedGPS=!LedGPS; |
pfe | 0:05a20e3e3179 | 80 | if (GpsData.GGA_Valid==0x01){ |
pfe | 0:05a20e3e3179 | 81 | GpsData.GGA_Valid=0x00; |
pfe | 0:05a20e3e3179 | 82 | GPS=GpsData; |
pfe | 0:05a20e3e3179 | 83 | } |
pfe | 0:05a20e3e3179 | 84 | break; |
pfe | 0:05a20e3e3179 | 85 | case RMC: //DecodageGPRMC(i-1);// l'appel de la fonction de decodage du message GPGGA //DecodageGPRMC(i-1); |
pfe | 0:05a20e3e3179 | 86 | break; |
pfe | 0:05a20e3e3179 | 87 | default: break; |
pfe | 0:05a20e3e3179 | 88 | } |
pfe | 0:05a20e3e3179 | 89 | ET_AutoMat_GPS=ET_01; |
pfe | 0:05a20e3e3179 | 90 | GPSDataType=0; |
pfe | 0:05a20e3e3179 | 91 | default : break; |
pfe | 0:05a20e3e3179 | 92 | } |
pfe | 0:05a20e3e3179 | 93 | } |
pfe | 0:05a20e3e3179 | 94 | } |
pfe | 0:05a20e3e3179 | 95 | //----------------------------------- Transmission données au sol 10 packet/s |
pfe | 0:05a20e3e3179 | 96 | void AutoMat_Xbee_Tx(){ |
pfe | 0:05a20e3e3179 | 97 | switch (ET_AutoMat_Xbee_Tx) { |
pfe | 0:05a20e3e3179 | 98 | case ET_01: |
pfe | 0:05a20e3e3179 | 99 | LedXbee = !LedXbee; |
pfe | 0:05a20e3e3179 | 100 | sprintf(Txt_Tx2GSC,"$GPS;%lu;%lu;",OldTimer_10ms,GPS.Qual); |
pfe | 0:05a20e3e3179 | 101 | _ComXbee.printf("%s",Txt_Tx2GSC); |
pfe | 0:05a20e3e3179 | 102 | ET_AutoMat_Xbee_Tx = ET_02; |
pfe | 0:05a20e3e3179 | 103 | break; |
pfe | 0:05a20e3e3179 | 104 | case ET_02 : |
pfe | 0:05a20e3e3179 | 105 | sprintf(Txt_Tx2GSC,"%2u:%2u:%2u;",GPS.hh,GPS.mm,GPS.ss); |
pfe | 0:05a20e3e3179 | 106 | _ComXbee.printf("%s",Txt_Tx2GSC); |
pfe | 0:05a20e3e3179 | 107 | ET_AutoMat_Xbee_Tx = ET_03; |
pfe | 0:05a20e3e3179 | 108 | break; |
pfe | 0:05a20e3e3179 | 109 | case ET_03 : |
pfe | 0:05a20e3e3179 | 110 | sprintf(Txt_Tx2GSC,"%2u;%2u.%u;%c;",GPS.LatDeg,GPS.LatMin,GPS.Latmmmm,GPS.LatDir); |
pfe | 0:05a20e3e3179 | 111 | _ComXbee.printf("%s",Txt_Tx2GSC); |
pfe | 0:05a20e3e3179 | 112 | ET_AutoMat_Xbee_Tx = ET_04; |
pfe | 0:05a20e3e3179 | 113 | break; |
pfe | 0:05a20e3e3179 | 114 | case ET_04 : |
pfe | 0:05a20e3e3179 | 115 | sprintf(Txt_Tx2GSC,"%3u;%2u.%u;%c;",GPS.LongDeg,GPS.LongMin,GPS.Longmmmm,GPS.LongDir); |
pfe | 0:05a20e3e3179 | 116 | _ComXbee.printf("%s",Txt_Tx2GSC); |
pfe | 0:05a20e3e3179 | 117 | ET_AutoMat_Xbee_Tx = ET_05; |
pfe | 0:05a20e3e3179 | 118 | break; |
pfe | 0:05a20e3e3179 | 119 | case ET_05 : |
pfe | 0:05a20e3e3179 | 120 | sprintf(Txt_Tx2GSC,"%c%u\r\n",GPS.SignHMSL,GPS.HMSL); |
pfe | 0:05a20e3e3179 | 121 | _ComXbee.printf("%s",Txt_Tx2GSC); |
pfe | 0:05a20e3e3179 | 122 | ET_AutoMat_Xbee_Tx = ET_06; |
pfe | 0:05a20e3e3179 | 123 | break; |
pfe | 0:05a20e3e3179 | 124 | //------------ |
pfe | 0:05a20e3e3179 | 125 | case ET_06 : |
pfe | 0:05a20e3e3179 | 126 | sprintf(Txt_Tx2GSC,"$PDV;%lu;%4u;%4u;%4u;%4d\r\n",OldTimer_10ms,OldCAP,OldALT,OldTAS,OldTEMPRE); |
pfe | 0:05a20e3e3179 | 127 | _ComXbee.printf("%s",Txt_Tx2GSC); |
pfe | 0:05a20e3e3179 | 128 | ET_AutoMat_Xbee_Tx = ET_00; |
pfe | 0:05a20e3e3179 | 129 | break; |
pfe | 0:05a20e3e3179 | 130 | default: ET_AutoMat_Xbee_Tx=ET_00; break; |
pfe | 0:05a20e3e3179 | 131 | } |
pfe | 0:05a20e3e3179 | 132 | } |
pfe | 0:05a20e3e3179 | 133 | //----------------------------------- LogData 100Hz, LogGPS 10Hz |
pfe | 0:05a20e3e3179 | 134 | void AutoMat_DataLog(){ |
pfe | 0:05a20e3e3179 | 135 | switch (ET_AutoMat_DataLog){ |
pfe | 0:05a20e3e3179 | 136 | |
pfe | 0:05a20e3e3179 | 137 | case ET_01: |
pfe | 0:05a20e3e3179 | 138 | LedLog=!LedLog; |
pfe | 0:05a20e3e3179 | 139 | //-------------- |
pfe | 0:05a20e3e3179 | 140 | OldTimer_10ms = TIMER_10ms; |
pfe | 0:05a20e3e3179 | 141 | // au max 100us (0.1ms) |
pfe | 0:05a20e3e3179 | 142 | sprintf(Txt_Log,"PDV;%lu;%5d;%5d;%5d;%5d\r\n",TIMER_10ms,CAP,ALT,TAS,TEMPRE); |
pfe | 0:05a20e3e3179 | 143 | // au max 5000 us (5ms) |
pfe | 0:05a20e3e3179 | 144 | fprintf(Fs_Log,Txt_Log); |
pfe | 0:05a20e3e3179 | 145 | // 100us |
pfe | 0:05a20e3e3179 | 146 | sprintf(Txt_Log,"GPS;%lu;%1u;%2u:%2u:%2u;%2u;%2u.%u;%c;%3u;%2u.%u;%c;%c%u\r\n",TIMER_10ms,GPS.Qual,GPS.hh,GPS.mm,GPS.ss,GPS.LatDeg,GPS.LatMin,GPS.Latmmmm,GPS.LatDir,GPS.LongDeg,GPS.LongMin,GPS.Longmmmm,GPS.LongDir,GPS.SignHMSL,GPS.HMSL); |
pfe | 0:05a20e3e3179 | 147 | // au max 5 ms |
pfe | 0:05a20e3e3179 | 148 | fprintf(Fs_Log,Txt_Log); |
pfe | 0:05a20e3e3179 | 149 | //------------------ |
pfe | 0:05a20e3e3179 | 150 | ET_AutoMat_DataLog++; |
pfe | 0:05a20e3e3179 | 151 | break; |
pfe | 0:05a20e3e3179 | 152 | case ET_02: |
pfe | 0:05a20e3e3179 | 153 | case ET_03: |
pfe | 0:05a20e3e3179 | 154 | case ET_04: |
pfe | 0:05a20e3e3179 | 155 | case ET_05: |
pfe | 0:05a20e3e3179 | 156 | case ET_06: |
pfe | 0:05a20e3e3179 | 157 | case ET_07: |
pfe | 0:05a20e3e3179 | 158 | case ET_08: |
pfe | 0:05a20e3e3179 | 159 | case ET_09: |
pfe | 0:05a20e3e3179 | 160 | case ET_10: |
pfe | 0:05a20e3e3179 | 161 | // au max 100us (0.1ms) |
pfe | 0:05a20e3e3179 | 162 | sprintf(Txt_Log,"PDV;%lu;%5d;%5d;%5d;%5d\r\n",TIMER_10ms,CAP,ALT,TAS,TEMPRE); |
pfe | 0:05a20e3e3179 | 163 | // au max 5000 us (5ms) |
pfe | 0:05a20e3e3179 | 164 | fprintf(Fs_Log,Txt_Log); |
pfe | 0:05a20e3e3179 | 165 | break; |
pfe | 0:05a20e3e3179 | 166 | |
pfe | 0:05a20e3e3179 | 167 | default: break ; |
pfe | 0:05a20e3e3179 | 168 | } |
pfe | 0:05a20e3e3179 | 169 | } |
pfe | 0:05a20e3e3179 | 170 | //------------------------------------------ Sansors |
pfe | 0:05a20e3e3179 | 171 | void AutoMat_ALT_EAGLE_V4(){ |
pfe | 0:05a20e3e3179 | 172 | static char L_i2c_Data[2],error; |
pfe | 0:05a20e3e3179 | 173 | switch (ET_AutoMat_ALT) { |
pfe | 0:05a20e3e3179 | 174 | case ET_01 : |
pfe | 0:05a20e3e3179 | 175 | L_i2c_Data[0] = 0x07; // Send "register number" command to sensor |
pfe | 0:05a20e3e3179 | 176 | error = _I2C.write(Add_Sensor_ALT_EG4, L_i2c_Data, 1,true); // Send command string |
pfe | 0:05a20e3e3179 | 177 | if (error==0) ET_AutoMat_ALT = ET_02; |
pfe | 0:05a20e3e3179 | 178 | break; |
pfe | 0:05a20e3e3179 | 179 | case ET_02 : |
pfe | 0:05a20e3e3179 | 180 | error = _I2C.read(Add_Sensor_ALT_EG4, L_i2c_Data, 2, true); |
pfe | 0:05a20e3e3179 | 181 | if (error==0) { |
pfe | 0:05a20e3e3179 | 182 | ALT = *((unsigned short*)L_i2c_Data)&0xffff; //altitude en décimètre |
pfe | 0:05a20e3e3179 | 183 | ALT = ALT-3000; |
pfe | 0:05a20e3e3179 | 184 | } |
pfe | 0:05a20e3e3179 | 185 | ET_AutoMat_ALT = ET_01; |
pfe | 0:05a20e3e3179 | 186 | break; |
pfe | 0:05a20e3e3179 | 187 | default : break; |
pfe | 0:05a20e3e3179 | 188 | } |
pfe | 0:05a20e3e3179 | 189 | } |
pfe | 0:05a20e3e3179 | 190 | |
pfe | 0:05a20e3e3179 | 191 | void AutoMat_TAS_EAGLE_V4(){ |
pfe | 0:05a20e3e3179 | 192 | static char L_i2c_Data[2],error; |
pfe | 0:05a20e3e3179 | 193 | switch (ET_AutoMat_TAS) { |
pfe | 0:05a20e3e3179 | 194 | case ET_01 : |
pfe | 0:05a20e3e3179 | 195 | L_i2c_Data[0] = 0x07; // Send "register number" command to sensor |
pfe | 0:05a20e3e3179 | 196 | error = _I2C.write(Add_Sensor_TAS_EG4, L_i2c_Data, 1,true); // Send command string |
pfe | 0:05a20e3e3179 | 197 | if (error==0) ET_AutoMat_TAS = ET_02; |
pfe | 0:05a20e3e3179 | 198 | break; |
pfe | 0:05a20e3e3179 | 199 | case ET_02 : |
pfe | 0:05a20e3e3179 | 200 | error = _I2C.read(Add_Sensor_TAS_EG4, L_i2c_Data, 2, true); |
pfe | 0:05a20e3e3179 | 201 | if (error==0) { |
pfe | 0:05a20e3e3179 | 202 | TAS = *((unsigned short*)L_i2c_Data)&0xffff; //altitude en décimètre |
pfe | 0:05a20e3e3179 | 203 | TAS = sqrt((float)(TAS-offset_TAS)*5.87755102); |
pfe | 0:05a20e3e3179 | 204 | } |
pfe | 0:05a20e3e3179 | 205 | ET_AutoMat_TAS = ET_01; |
pfe | 0:05a20e3e3179 | 206 | break; |
pfe | 0:05a20e3e3179 | 207 | default : break; |
pfe | 0:05a20e3e3179 | 208 | } |
pfe | 0:05a20e3e3179 | 209 | } |
pfe | 0:05a20e3e3179 | 210 | void AutoMat_CAP_HMC(){ |
pfe | 0:05a20e3e3179 | 211 | static char L_i2c_Data[2],error; |
pfe | 0:05a20e3e3179 | 212 | switch (ET_AutoMat_CAP) { |
pfe | 0:05a20e3e3179 | 213 | case ET_01 : |
pfe | 0:05a20e3e3179 | 214 | L_i2c_Data[0] = 0x07; // Send "register number" command to sensor |
pfe | 0:05a20e3e3179 | 215 | error = _I2C.write(Add_Sensor_CAP_HMC, L_i2c_Data, 1,true); // Send command string |
pfe | 0:05a20e3e3179 | 216 | if (error==0) ET_AutoMat_CAP = ET_02; |
pfe | 0:05a20e3e3179 | 217 | break; |
pfe | 0:05a20e3e3179 | 218 | case ET_02 : |
pfe | 0:05a20e3e3179 | 219 | error = _I2C.read(Add_Sensor_CAP_HMC , L_i2c_Data, 2, true); |
pfe | 0:05a20e3e3179 | 220 | if (error==0) { |
pfe | 0:05a20e3e3179 | 221 | CAP = *((unsigned short*)L_i2c_Data)&0xffff; //altitude en décimètre |
pfe | 0:05a20e3e3179 | 222 | } |
pfe | 0:05a20e3e3179 | 223 | ET_AutoMat_CAP = ET_01; |
pfe | 0:05a20e3e3179 | 224 | break; |
pfe | 0:05a20e3e3179 | 225 | default : break; |
pfe | 0:05a20e3e3179 | 226 | } |
pfe | 0:05a20e3e3179 | 227 | } |
pfe | 0:05a20e3e3179 | 228 | //------------------- |
pfe | 0:05a20e3e3179 | 229 | void Sansors_Init(){ |
pfe | 0:05a20e3e3179 | 230 | char L_i2c_Data[3]; |
pfe | 0:05a20e3e3179 | 231 | //------------ init Compass HMC //Continuous mode, periodic set/reset, 20Hz measurement rate. |
pfe | 0:05a20e3e3179 | 232 | L_i2c_Data[0] = HMC6352_CONTINUOUS; |
pfe | 0:05a20e3e3179 | 233 | L_i2c_Data[1] = 0x01; |
pfe | 0:05a20e3e3179 | 234 | L_i2c_Data[2] = 20; |
pfe | 0:05a20e3e3179 | 235 | _I2C.write(Add_Sensor_CAP_HMC,L_i2c_Data,3); // Send command |
pfe | 0:05a20e3e3179 | 236 | //---------------------------- |
pfe | 0:05a20e3e3179 | 237 | wait_ms(1); //attendre 1mS |
pfe | 0:05a20e3e3179 | 238 | //------------- Get Offset TAS |
pfe | 0:05a20e3e3179 | 239 | L_i2c_Data[0] = 0x01; // Send "read data" command to sensor |
pfe | 0:05a20e3e3179 | 240 | _I2C.write(Add_Sensor_TAS_EG4,L_i2c_Data,1); // Send command string |
pfe | 0:05a20e3e3179 | 241 | wait_ms(1); //attendre 400µS avant de relancer |
pfe | 0:05a20e3e3179 | 242 | _I2C.read(Add_Sensor_TAS_EG4,L_i2c_Data, 2); |
pfe | 0:05a20e3e3179 | 243 | offset_TAS = *((unsigned short*)L_i2c_Data)&0xffff; // Altitude en décimètre |
pfe | 0:05a20e3e3179 | 244 | } |
pfe | 0:05a20e3e3179 | 245 | |
pfe | 0:05a20e3e3179 | 246 | void Irq05ms(){ |
pfe | 0:05a20e3e3179 | 247 | static unsigned char L_Flag_Timer=0, LTIMER005ms=0,LTIMER010ms=0; |
pfe | 0:05a20e3e3179 | 248 | LTIMER005ms++; |
pfe | 0:05a20e3e3179 | 249 | L_Flag_Timer = 1; |
pfe | 0:05a20e3e3179 | 250 | //----------------------------- |
pfe | 0:05a20e3e3179 | 251 | if(LTIMER005ms >= 2){ |
pfe | 0:05a20e3e3179 | 252 | //----------------- |
pfe | 0:05a20e3e3179 | 253 | TIMER_10ms = TIMER_10ms+1; |
pfe | 0:05a20e3e3179 | 254 | LTIMER005ms = 0; |
pfe | 0:05a20e3e3179 | 255 | LTIMER010ms++; |
pfe | 0:05a20e3e3179 | 256 | L_Flag_Timer = 2; |
pfe | 0:05a20e3e3179 | 257 | //----------------- |
pfe | 0:05a20e3e3179 | 258 | if(LTIMER010ms >= 10){ |
pfe | 0:05a20e3e3179 | 259 | LTIMER010ms = 0; |
pfe | 0:05a20e3e3179 | 260 | L_Flag_Timer = 3; |
pfe | 0:05a20e3e3179 | 261 | } |
pfe | 0:05a20e3e3179 | 262 | //----------------- |
pfe | 0:05a20e3e3179 | 263 | } |
pfe | 0:05a20e3e3179 | 264 | |
pfe | 0:05a20e3e3179 | 265 | AutoMat_ALT_EAGLE_V4(); |
pfe | 0:05a20e3e3179 | 266 | AutoMat_TAS_EAGLE_V4(); |
pfe | 0:05a20e3e3179 | 267 | AutoMat_CAP_HMC(); |
pfe | 0:05a20e3e3179 | 268 | |
pfe | 0:05a20e3e3179 | 269 | if (Flag_Timer != 0xFF) Flag_Timer = L_Flag_Timer; |
pfe | 0:05a20e3e3179 | 270 | //----------------------------- |
pfe | 0:05a20e3e3179 | 271 | } |
pfe | 0:05a20e3e3179 | 272 | |
pfe | 0:05a20e3e3179 | 273 | int main() { |
pfe | 0:05a20e3e3179 | 274 | |
pfe | 0:05a20e3e3179 | 275 | CAP = 0; |
pfe | 0:05a20e3e3179 | 276 | TAS = 0; |
pfe | 0:05a20e3e3179 | 277 | ALT = 0; |
pfe | 0:05a20e3e3179 | 278 | LedError = 0; |
pfe | 0:05a20e3e3179 | 279 | //-------------------- |
pfe | 0:05a20e3e3179 | 280 | _I2C.frequency(100000); |
pfe | 0:05a20e3e3179 | 281 | _ComGPS.baud(38400); //GPS V4 EAGLE |
pfe | 0:05a20e3e3179 | 282 | _ComGPS.attach(&AutoMat_GPS,Serial::RxIrq); // defini une interruption chaque foix que le recepteur GPS envoi un charactere |
pfe | 0:05a20e3e3179 | 283 | _ComXbee.baud(38400); |
pfe | 0:05a20e3e3179 | 284 | RSTXbee=0; |
pfe | 0:05a20e3e3179 | 285 | wait(0.5); |
pfe | 0:05a20e3e3179 | 286 | RSTXbee=1; |
pfe | 0:05a20e3e3179 | 287 | Sansors_Init(); |
pfe | 0:05a20e3e3179 | 288 | //-------------------- |
pfe | 0:05a20e3e3179 | 289 | //-------------- File Creat RGPSLogX.csv and DataLogX.csv X=FileIndex |
pfe | 0:05a20e3e3179 | 290 | FileIndex = 5; |
pfe | 0:05a20e3e3179 | 291 | //-------------------- |
pfe | 0:05a20e3e3179 | 292 | sprintf(DataLogFileName,"/USB/DataLog%lu.csv",FileIndex); |
pfe | 0:05a20e3e3179 | 293 | Fs_Log = fopen(DataLogFileName, "w");//ajouter un nouveau fichier et écraser l'ancien |
pfe | 0:05a20e3e3179 | 294 | //-------------------- Verification de la creations des fichers |
pfe | 0:05a20e3e3179 | 295 | if(Fs_Log==NULL) goto LabError; |
pfe | 0:05a20e3e3179 | 296 | fprintf(Fs_Log,"LogData\r\n"); |
pfe | 0:05a20e3e3179 | 297 | fprintf(Fs_Log,"GPS;TIMER1;Qual;Heur;LatD;LatMin;LatDir;LongD;LongMin;LongDir;HMSL\r\n"); |
pfe | 0:05a20e3e3179 | 298 | fprintf(Fs_Log,"PDV;TIMER1;CAP;ALT;TAS;Tem\r\n"); |
pfe | 0:05a20e3e3179 | 299 | //-------------------- |
pfe | 0:05a20e3e3179 | 300 | // Active les Automat |
pfe | 0:05a20e3e3179 | 301 | ET_AutoMat_ALT = ET_01; |
pfe | 0:05a20e3e3179 | 302 | ET_AutoMat_TAS = ET_01; |
pfe | 0:05a20e3e3179 | 303 | ET_AutoMat_CAP = ET_01; |
pfe | 0:05a20e3e3179 | 304 | _Ticker5ms.attach_us(&Irq05ms,5000); |
pfe | 0:05a20e3e3179 | 305 | // la variable un nom de 1ms mais on fait ca sur 5ms ce n'est pas cohérent !!!!!!! |
pfe | 0:05a20e3e3179 | 306 | // Samir |
pfe | 0:05a20e3e3179 | 307 | //-------------------- |
pfe | 0:05a20e3e3179 | 308 | CAP = 9991; |
pfe | 0:05a20e3e3179 | 309 | ALT = 9992; |
pfe | 0:05a20e3e3179 | 310 | TAS = 9993; |
pfe | 0:05a20e3e3179 | 311 | TEMPRE = 9994; |
pfe | 0:05a20e3e3179 | 312 | TimeBtpress=0; |
pfe | 0:05a20e3e3179 | 313 | while(TimeBtpress<100){ |
pfe | 0:05a20e3e3179 | 314 | if(boutonStart == 1)TimeBtpress++; |
pfe | 0:05a20e3e3179 | 315 | if(boutonStart == 0)TimeBtpress=0; |
pfe | 0:05a20e3e3179 | 316 | wait(0.005); |
pfe | 0:05a20e3e3179 | 317 | } |
pfe | 0:05a20e3e3179 | 318 | //while(boutonStart==0); // Boutton pour pouvoir controler le debut de l'enregistrement |
pfe | 0:05a20e3e3179 | 319 | Flag_Timer = 0; |
pfe | 0:05a20e3e3179 | 320 | TimeBtpress=0; |
pfe | 0:05a20e3e3179 | 321 | while(boutonEnd==0){ // Boutton pour pouvoir controler la fin de l'enregistrement |
pfe | 0:05a20e3e3179 | 322 | |
pfe | 0:05a20e3e3179 | 323 | switch (Flag_Timer) { |
pfe | 0:05a20e3e3179 | 324 | |
pfe | 0:05a20e3e3179 | 325 | case 0x01: |
pfe | 0:05a20e3e3179 | 326 | Flag_Timer = 0; |
pfe | 0:05a20e3e3179 | 327 | break; |
pfe | 0:05a20e3e3179 | 328 | case 0x02: |
pfe | 0:05a20e3e3179 | 329 | Flag_Timer = 0xFF; |
pfe | 0:05a20e3e3179 | 330 | AutoMat_DataLog(); |
pfe | 0:05a20e3e3179 | 331 | AutoMat_Xbee_Tx(); |
pfe | 0:05a20e3e3179 | 332 | |
pfe | 0:05a20e3e3179 | 333 | Flag_Timer = 0; |
pfe | 0:05a20e3e3179 | 334 | break; |
pfe | 0:05a20e3e3179 | 335 | case 0x03: |
pfe | 0:05a20e3e3179 | 336 | Flag_Timer = 0xFF; |
pfe | 0:05a20e3e3179 | 337 | |
pfe | 0:05a20e3e3179 | 338 | GPS = GpsData; |
pfe | 0:05a20e3e3179 | 339 | OldALT = ALT; |
pfe | 0:05a20e3e3179 | 340 | OldTAS = TAS; |
pfe | 0:05a20e3e3179 | 341 | OldCAP = CAP; |
pfe | 0:05a20e3e3179 | 342 | OldTEMPRE = TEMPRE; |
pfe | 0:05a20e3e3179 | 343 | |
pfe | 0:05a20e3e3179 | 344 | ET_AutoMat_Xbee_Tx = ET_01; |
pfe | 0:05a20e3e3179 | 345 | ET_AutoMat_DataLog = ET_01; |
pfe | 0:05a20e3e3179 | 346 | AutoMat_DataLog(); |
pfe | 0:05a20e3e3179 | 347 | AutoMat_Xbee_Tx(); |
pfe | 0:05a20e3e3179 | 348 | |
pfe | 0:05a20e3e3179 | 349 | Flag_Timer = 0x00; |
pfe | 0:05a20e3e3179 | 350 | break; |
pfe | 0:05a20e3e3179 | 351 | |
pfe | 0:05a20e3e3179 | 352 | default: break; |
pfe | 0:05a20e3e3179 | 353 | }// fin switch |
pfe | 0:05a20e3e3179 | 354 | } |
pfe | 0:05a20e3e3179 | 355 | _Ticker5ms.detach(); |
pfe | 0:05a20e3e3179 | 356 | _ComGPS.attach(NULL,Serial::RxIrq); |
pfe | 0:05a20e3e3179 | 357 | LedXbee = 0; |
pfe | 0:05a20e3e3179 | 358 | LedGPS = 0; |
pfe | 0:05a20e3e3179 | 359 | LedLog = 1; |
pfe | 0:05a20e3e3179 | 360 | fclose(Fs_Log); |
pfe | 0:05a20e3e3179 | 361 | wait(1); |
pfe | 0:05a20e3e3179 | 362 | LedLog = 0; |
pfe | 0:05a20e3e3179 | 363 | while(1){ |
pfe | 0:05a20e3e3179 | 364 | LedError=!LedError; |
pfe | 0:05a20e3e3179 | 365 | wait(0.5); |
pfe | 0:05a20e3e3179 | 366 | } |
pfe | 0:05a20e3e3179 | 367 | //---------------- |
pfe | 0:05a20e3e3179 | 368 | LabError: |
pfe | 0:05a20e3e3179 | 369 | LedError=1; |
pfe | 0:05a20e3e3179 | 370 | //---------------- |
pfe | 0:05a20e3e3179 | 371 | |
pfe | 0:05a20e3e3179 | 372 | } |