Rev 427 | Rev 432 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 427 | Rev 429 | ||
---|---|---|---|
Line 68... | Line 68... | ||
68 | #define MIN_SD_INTERVAL_KML 200 |
68 | #define MIN_SD_INTERVAL_KML 200 |
69 | #define MIN_SD_INTERVAL_GPX 500 |
69 | #define MIN_SD_INTERVAL_GPX 500 |
Line 70... | Line 70... | ||
70 | 70 | ||
Line 71... | Line 71... | ||
71 | u8 SD_LoggingError = 0; |
71 | u8 SD_LoggingError = 0; |
Line 72... | Line 72... | ||
72 | 72 | ||
73 | #define LOG_FLUSH_INTERVAL 20000 // 20s //## |
73 | #define LOG_FLUSH_INTERVAL 4000 // 4s //## |
74 | 74 | ||
75 | typedef enum |
75 | typedef enum |
Line 105... | Line 105... | ||
105 | LastTime.Month = SystemTime.Month; |
105 | LastTime.Month = SystemTime.Month; |
106 | LastTime.Day = SystemTime.Day; |
106 | LastTime.Day = SystemTime.Day; |
107 | LastTime.Valid = 1; |
107 | LastTime.Valid = 1; |
108 | filenum = 0; // reset file counter |
108 | filenum = 0; // reset file counter |
109 | } |
109 | } |
110 | // use filename with absolute path i.e. leading |
110 | if(filenum < 100) sprintf(filename, "/LOG/%04i%02i%02i/KML/%02i%02i%02i%02i.KML", SystemTime.Year, SystemTime.Month, SystemTime.Day, SystemTime.Year % 100, SystemTime.Month, SystemTime.Day, filenum); |
111 | sprintf(filename, "/LOG/%04i%02i%02i/KML/GPS%05i.KML", SystemTime.Year, SystemTime.Month, SystemTime.Day, filenum); |
111 | else sprintf(filename, "/LOG/%04i%02i%02i/KML/GPS%05i.KML", SystemTime.Year, SystemTime.Month, SystemTime.Day, filenum); |
112 | filenum++; |
112 | filenum++; |
113 | return filename; |
113 | return filename; |
114 | } |
114 | } |
115 | else return NULL; |
115 | else return NULL; |
116 | } |
116 | } |
Line 131... | Line 131... | ||
131 | LastTime.Month = SystemTime.Month; |
131 | LastTime.Month = SystemTime.Month; |
132 | LastTime.Day = SystemTime.Day; |
132 | LastTime.Day = SystemTime.Day; |
133 | LastTime.Valid = 1; |
133 | LastTime.Valid = 1; |
134 | filenum = 0; // reset file counter |
134 | filenum = 0; // reset file counter |
135 | } |
135 | } |
136 | // use filename with absolute path i.e. leading |
136 | if(filenum < 100) sprintf(filename, "/LOG/%04i%02i%02i/GPX/%02i%02i%02i%02i.GPX", SystemTime.Year, SystemTime.Month, SystemTime.Day, SystemTime.Year % 100, SystemTime.Month, SystemTime.Day, filenum); |
137 | sprintf(filename, "/LOG/%04i%02i%02i/GPX/GPS%05i.GPX", SystemTime.Year, SystemTime.Month, SystemTime.Day, filenum); |
137 | else sprintf(filename, "/LOG/%04i%02i%02i/GPX/GPS%05i.GPX", SystemTime.Year, SystemTime.Month, SystemTime.Day, filenum); |
138 | filenum++; |
138 | filenum++; |
139 | return filename; |
139 | return filename; |
140 | } |
140 | } |
141 | else return NULL; |
141 | else return NULL; |
142 | } |
142 | } |
Line 178... | Line 178... | ||
178 | { |
178 | { |
179 | switch(logfilestate) |
179 | switch(logfilestate) |
180 | { |
180 | { |
181 | case LOGFILE_IDLE: |
181 | case LOGFILE_IDLE: |
182 | case LOGFILE_CLOSED: |
182 | case LOGFILE_CLOSED: |
183 | if((GPSData.Status != INVALID) && (GPSData.NumOfSats > 2) && /*(GPSData.Flags & FLAG_GPSFIXOK) && (GPSData.SatFix == SATFIX_3D)*/ (FC.StatusFlags & FC_STATUS_FLY)) |
183 | if((GPSData.Status != INVALID) && (SystemTime.Valid) && /*(GPSData.Flags & FLAG_GPSFIXOK) && (GPSData.SatFix == SATFIX_3D)*/ (FC.StatusFlags & FC_STATUS_FLY)) |
184 | { |
184 | { |
185 | logfilestate = LOGFILE_START; |
185 | logfilestate = LOGFILE_START; |
186 | } |
186 | } |
187 | break; |
187 | break; |
188 | case LOGFILE_START: |
188 | case LOGFILE_START: |
Line 221... | Line 221... | ||
221 | } |
221 | } |
222 | // else retry in next loop |
222 | // else retry in next loop |
223 | break; |
223 | break; |
224 | case LOGFILE_OPENED: |
224 | case LOGFILE_OPENED: |
225 | // append new gps log data |
225 | // append new gps log data |
226 | if((GPSData.Status != INVALID) && (GPSData.Flags & FLAG_GPSFIXOK) && (GPSData.SatFix == SATFIX_3D)) |
226 | if((GPSData.Status != INVALID))// && (GPSData.Flags & FLAG_GPSFIXOK) && (GPSData.SatFix == SATFIX_3D)) |
227 | { |
227 | { |
228 | if(!KML_LoggGPSCoordinates(&logfile)) |
228 | if(!KML_LoggGPSCoordinates(&logfile)) |
229 | { // error logging data |
229 | { // error logging data |
230 | UART1_PutString("\r\nError logging to kml-file\r\n"); |
230 | UART1_PutString("\r\nError logging to kml-file\r\n"); |
231 | SD_LoggingError = 3; |
231 | SD_LoggingError = 3; |
Line 312... | Line 312... | ||
312 | { |
312 | { |
313 | switch(logfilestate) |
313 | switch(logfilestate) |
314 | { |
314 | { |
315 | case LOGFILE_IDLE: |
315 | case LOGFILE_IDLE: |
316 | case LOGFILE_CLOSED: |
316 | case LOGFILE_CLOSED: |
317 | if((GPSData.Status != INVALID) && (GPSData.NumOfSats > 2) && /*(GPSData.Flags & FLAG_GPSFIXOK) && (GPSData.SatFix == SATFIX_3D)*/ (FC.StatusFlags & FC_STATUS_FLY)) |
317 | if((GPSData.Status != INVALID) && (SystemTime.Valid) && /*(GPSData.Flags & FLAG_GPSFIXOK) && (GPSData.SatFix == SATFIX_3D)*/ (FC.StatusFlags & FC_STATUS_FLY)) |
318 | { |
318 | { |
319 | logfilestate = LOGFILE_START; |
319 | logfilestate = LOGFILE_START; |
320 | } |
320 | } |
321 | part = 0; |
321 | part = 0; |
322 | break; |
322 | break; |
Line 358... | Line 358... | ||
358 | part = 0; |
358 | part = 0; |
359 | break; |
359 | break; |
360 | case LOGFILE_OPENED: |
360 | case LOGFILE_OPENED: |
361 | // append new gps log data |
361 | // append new gps log data |
362 | measure_time = CountMilliseconds; |
362 | measure_time = CountMilliseconds; |
363 | if((GPSData.Status != INVALID) && (GPSData.Flags & FLAG_GPSFIXOK) && (GPSData.SatFix == SATFIX_3D)) |
363 | if((GPSData.Status != INVALID))// && (GPSData.Flags & FLAG_GPSFIXOK) && (GPSData.SatFix == SATFIX_3D)) |
364 | { |
364 | { |
365 | if(!GPX_LoggGPSCoordinates(&logfile,part)) |
365 | if(!GPX_LoggGPSCoordinates(&logfile,part)) |
366 | { // error logging data |
366 | { // error logging data |
367 | UART1_PutString("\r\nError logging to gpx-file\r\n"); |
367 | UART1_PutString("\r\nError logging to gpx-file\r\n"); |
368 | GPX_DocumentClose(&logfile); |
368 | GPX_DocumentClose(&logfile); |