Rev 362 | Rev 379 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 362 | Rev 378 | ||
---|---|---|---|
Line 60... | Line 60... | ||
60 | #include "uart1.h" |
60 | #include "uart1.h" |
61 | #include "kml.h" |
61 | #include "kml.h" |
62 | #include "gpx.h" |
62 | #include "gpx.h" |
63 | #include "ssc.h" |
63 | #include "ssc.h" |
64 | #include "settings.h" |
64 | #include "settings.h" |
- | 65 | #include "led.h" |
|
- | 66 | ||
- | 67 | #define MIN_SD_INTERVAL 500 |
|
Line 65... | Line 68... | ||
65 | 68 | ||
Line 66... | Line 69... | ||
66 | u8 SD_LoggingError = 0; |
69 | u8 SD_LoggingError = 0; |
Line 67... | Line 70... | ||
67 | 70 | ||
68 | #define LOG_FLUSH_INTERVAL 20000 // 20s |
71 | #define LOG_FLUSH_INTERVAL 2000 // 20s //## |
69 | 72 | ||
70 | typedef enum |
73 | typedef enum |
Line 186... | Line 189... | ||
186 | case LOGFILE_START: |
189 | case LOGFILE_START: |
187 | // find unused logfile name |
190 | // find unused logfile name |
188 | do |
191 | do |
189 | { // try to generate a new logfile name |
192 | { // try to generate a new logfile name |
190 | logfilename = GenerateKMLLogFileName(); |
193 | logfilename = GenerateKMLLogFileName(); |
191 | }while((logfilename != NULL) && fexist_(logfilename) && (SD_WatchDog)); |
194 | }while((logfilename != NULL) && fexist_(logfilename)); |
192 | // if logfilename exist |
195 | // if logfilename exist |
193 | if(logfilename != NULL) |
196 | if(logfilename != NULL) |
194 | { |
197 | { |
195 | // try to create the log file |
198 | // try to create the log file |
196 | if(KML_DocumentOpen(logfilename, &logfile)) |
199 | if(KML_DocumentOpen(logfilename, &logfile)) |
Line 302... | Line 305... | ||
302 | return logfilestate; |
305 | return logfilestate; |
303 | } |
306 | } |
304 | // no init |
307 | // no init |
305 | if(CheckDelay(logtimer) || part) |
308 | if(CheckDelay(logtimer) || part) |
306 | { |
309 | { |
307 | logtimer = SetDelay(LogDelay); // standard interval |
310 | if(!part) logtimer = SetDelay(LogDelay); // standard interval |
Line 308... | Line 311... | ||
308 | 311 | ||
309 | if(FC.StatusFlags & FC_STATUS_MOTOR_RUN || part) |
312 | if(FC.StatusFlags & FC_STATUS_MOTOR_RUN || part) |
310 | { |
313 | { |
311 | switch(logfilestate) |
314 | switch(logfilestate) |
Line 321... | Line 324... | ||
321 | case LOGFILE_START: |
324 | case LOGFILE_START: |
322 | // find unused logfile name |
325 | // find unused logfile name |
323 | do |
326 | do |
324 | { // try to generate a new logfile name |
327 | { // try to generate a new logfile name |
325 | logfilename = GenerateGPXLogFileName(); |
328 | logfilename = GenerateGPXLogFileName(); |
326 | }while((logfilename != NULL) && fexist_(logfilename) && (SD_WatchDog)); |
329 | }while((logfilename != NULL) && fexist_(logfilename)); |
327 | // if logfilename exist |
330 | // if logfilename exist |
328 | if(logfilename != NULL) |
331 | if(logfilename != NULL) |
329 | { |
332 | { |
330 | // try to create the log file |
333 | // try to create the log file |
331 | if(GPX_DocumentOpen(logfilename, &logfile)) |
334 | if(GPX_DocumentOpen(logfilename, &logfile)) |
Line 370... | Line 373... | ||
370 | else // successful log |
373 | else // successful log |
371 | { |
374 | { |
372 | if(CheckDelay(flushtimer)) |
375 | if(CheckDelay(flushtimer)) |
373 | { |
376 | { |
374 | flushtimer = SetDelay(LOG_FLUSH_INTERVAL); |
377 | flushtimer = SetDelay(LOG_FLUSH_INTERVAL); |
- | 378 | LED_RED_ON; |
|
- | 379 | ||
375 | fflush_(logfile.file); |
380 | fflush_(logfile.file); |
- | 381 | LED_RED_OFF; |
|
- | 382 | ||
376 | } |
383 | } |
377 | } |
384 | } |
378 | } |
385 | } |
379 | if(++part == 9) part = 0; |
386 | if(++part == 9) part = 0; |
380 | //DebugOut.Analog[19] = CountMilliseconds - measure_time; |
387 | //DebugOut.Analog[19] = CountMilliseconds - measure_time; |
Line 417... | Line 424... | ||
417 | //---------------------------------------------------------------------------------------------------- |
424 | //---------------------------------------------------------------------------------------------------- |
418 | // initialize logging |
425 | // initialize logging |
419 | void Logging_Init(void) |
426 | void Logging_Init(void) |
420 | { |
427 | { |
421 | SD_LoggingError = 0; |
428 | SD_LoggingError = 0; |
422 | LogCfg.KML_Interval = 500; //default |
429 | LogCfg.KML_Interval = 1000; //default |
423 | Settings_GetParamValue(PID_KML_LOGGING, (u16*)&LogCfg.KML_Interval); // overwrite by settings value |
430 | Settings_GetParamValue(PID_KML_LOGGING, (u16*)&LogCfg.KML_Interval); // overwrite by settings value |
424 | if(LogCfg.KML_Interval != 0 && LogCfg.KML_Interval < 500) LogCfg.KML_Interval = 500; |
431 | if(LogCfg.KML_Interval != 0 && LogCfg.KML_Interval < MIN_SD_INTERVAL) LogCfg.KML_Interval = MIN_SD_INTERVAL; |
Line 425... | Line 432... | ||
425 | 432 | ||
426 | Logging_KML(0); // initialize |
433 | Logging_KML(0); // initialize |
427 | LogCfg.GPX_Interval = 0; //default |
434 | LogCfg.GPX_Interval = 0; //default |
428 | Settings_GetParamValue(PID_GPX_LOGGING, (u16*)&LogCfg.GPX_Interval); // overwrite by settings value |
435 | Settings_GetParamValue(PID_GPX_LOGGING, (u16*)&LogCfg.GPX_Interval); // overwrite by settings value |
429 | if(LogCfg.GPX_Interval != 0 && LogCfg.GPX_Interval < 500) LogCfg.GPX_Interval = 500; |
436 | if(LogCfg.GPX_Interval != 0 && LogCfg.GPX_Interval < MIN_SD_INTERVAL) LogCfg.GPX_Interval = MIN_SD_INTERVAL; |
430 | Logging_GPX(0); // initialize |
437 | Logging_GPX(0); // initialize |
Line 431... | Line 438... | ||
431 | } |
438 | } |
432 | 439 |