Subversion Repositories NaviCtrl

Rev

Rev 573 | Rev 582 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 573 Rev 581
Line 71... Line 71...
71
 
71
 
Line 72... Line 72...
72
u8 SD_LoggingError = 0;
72
u8 SD_LoggingError = 0;
Line -... Line 73...
-
 
73
 
73
 
74
#define LOG_FLUSH_INTERVAL 4000 // 4s     // -> and if an Error occures
74
#define LOG_FLUSH_INTERVAL 4000 // 4s     // -> and if an Error occures
75
 
75
 
76
 
76
typedef enum
77
typedef enum
77
{
78
{
Line 354... Line 355...
354
                {
355
                {
355
                        switch(logfilestate)
356
                        switch(logfilestate)
356
                        {
357
                        {
357
                                case LOGFILE_IDLE:
358
                                case LOGFILE_IDLE:
358
                                case LOGFILE_CLOSED:
359
                                case LOGFILE_CLOSED:
-
 
360
                                        if((GPSData.Status != INVALID) && (SystemTime.Valid) &&
359
                                        if((GPSData.Status != INVALID) && (SystemTime.Valid) && /*(GPSData.Flags & FLAG_GPSFIXOK) && (GPSData.SatFix == SATFIX_3D)*/ (FC.StatusFlags & FC_STATUS_FLY))
361
                                        ((FC.StatusFlags & FC_STATUS_FLY) || (LogCfg.StartAtMotorrun && (FC.StatusFlags & FC_STATUS_MOTOR_RUN))))
360
                                        {
362
                                        {
361
                                                logfilestate = LOGFILE_START;
363
                                                logfilestate = LOGFILE_START;
362
                                        }
364
                                        }
363
                                        part = 0;
365
                                        part = 0;
364
                                        break;
366
                                        break;
Line 400... Line 402...
400
                                        // else retry in next loop
402
                                        // else retry in next loop
401
                                        part = 0;
403
                                        part = 0;
402
                                        break;
404
                                        break;
403
                                case LOGFILE_OPENED:
405
                                case LOGFILE_OPENED:
404
                                        // append new gps log data
406
                                        // append new gps log data
405
                                        measure_time = CountMilliseconds;
407
//                                      measure_time = CountMilliseconds;
406
                                        if((GPSData.Status != INVALID))// && (GPSData.Flags & FLAG_GPSFIXOK) && (GPSData.SatFix == SATFIX_3D))
408
                                        if((GPSData.Status != INVALID))// && (GPSData.Flags & FLAG_GPSFIXOK) && (GPSData.SatFix == SATFIX_3D))
407
                                        {
409
                                        {
408
                                                if(!GPX_LoggGPSCoordinates(&logfile,part))
410
                                                if(!GPX_LoggGPSCoordinates(&logfile,part))
409
                                                {       // error logging data
411
                                                {       // error logging data
410
                                                        UART1_PutString("\r\nError logging to gpx-file\r\n");
412
                                                        UART1_PutString("\r\nError logging to gpx-file\r\n");
Line 412... Line 414...
412
                                                        SD_LoggingError = 13;
414
                                                        SD_LoggingError = 13;
413
                                                        logfilestate = LOGFILE_ERROR;
415
                                                        logfilestate = LOGFILE_ERROR;
414
                                                }
416
                                                }
415
                                                else // successful log
417
                                                else // successful log
416
                                                {
418
                                                {
417
                                                        if(ErrorCode != old_errorcode || CheckDelay(flushtimer))
419
                                                        if(ErrorCode != old_errorcode || CheckDelay(flushtimer) || part == 8)
418
                                                        {
420
                                                        {
419
                                                                if(ErrorCode) { while(++part < 9) GPX_LoggGPSCoordinates(&logfile,part); }; // close this chapter 
421
                                                                if(ErrorCode) { while(++part < 9) GPX_LoggGPSCoordinates(&logfile,part); }; // close this chapter 
420
                                                                if(ErrorCode != old_errorcode) flushtimer = SetDelay(1000);
422
                                                                if(ErrorCode != old_errorcode) flushtimer = SetDelay(1000);
421
                                                                else flushtimer = SetDelay(LOG_FLUSH_INTERVAL);
423
                                                                else flushtimer = SetDelay(LOG_FLUSH_INTERVAL);
422
                                                                fflush_(logfile.file);
424
                                                                fflush_(logfile.file);
423
                                                                old_errorcode = ErrorCode;
425
                                                                old_errorcode = ErrorCode;
424
                                                        }
426
                                                        }
425
                                                }
427
                                                }
426
                                        }
428
                                        }
427
                                        if(++part >= 9) part = 0;
429
                                        if(++part >= 9) part = 0;
428
//DebugOut.Analog[19] = CountMilliseconds - measure_time;
430
//DebugOut.Analog[18] = CountMilliseconds - measure_time;
429
                                        break;
431
                                        break;
Line 430... Line 432...
430
 
432
 
431
                                case LOGFILE_ERROR:
433
                                case LOGFILE_ERROR:
432
                                        part = 0;
434
                                        part = 0;
Line 472... Line 474...
472
        if(LogCfg.KML_Interval != 0 && LogCfg.KML_Interval < MIN_SD_INTERVAL_KML) LogCfg.KML_Interval = MIN_SD_INTERVAL_KML;
474
        if(LogCfg.KML_Interval != 0 && LogCfg.KML_Interval < MIN_SD_INTERVAL_KML) LogCfg.KML_Interval = MIN_SD_INTERVAL_KML;
Line 473... Line 475...
473
 
475
 
474
        Logging_KML(0); // initialize
476
        Logging_KML(0); // initialize
475
        LogCfg.GPX_Interval = 0; //default
477
        LogCfg.GPX_Interval = 0; //default
-
 
478
        Settings_GetParamValue(PID_GPX_LOGGING, (u16*)&LogCfg.GPX_Interval); // overwrite by settings value
476
        Settings_GetParamValue(PID_GPX_LOGGING, (u16*)&LogCfg.GPX_Interval); // overwrite by settings value
479
        Settings_GetParamValue(PID_LOG_AT_MOTORRUN, (u16*)&LogCfg.StartAtMotorrun); // overwrite by settings value
477
        if(LogCfg.GPX_Interval != 0 && LogCfg.GPX_Interval < MIN_SD_INTERVAL_GPX) LogCfg.GPX_Interval = MIN_SD_INTERVAL_GPX;
480
        if(LogCfg.GPX_Interval != 0 && LogCfg.GPX_Interval < MIN_SD_INTERVAL_GPX) LogCfg.GPX_Interval = MIN_SD_INTERVAL_GPX;
478
        Logging_GPX(0); // initialize
481
        Logging_GPX(0); // initialize
Line 479... Line 482...
479
}
482
}