Subversion Repositories NaviCtrl

Rev

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);