Subversion Repositories NaviCtrl

Rev

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

Rev 428 Rev 434
Line 288... Line 288...
288
        s8 string[100];
288
        s8 string[100];
289
        s8 name[] = "----\0";
289
        s8 name[] = "----\0";
Line 290... Line 290...
290
 
290
 
Line 291... Line 291...
291
        if(doc == NULL) return(0);
291
        if(doc == NULL) return(0);
292
 
292
 
293
        if((GPSData.Position.Status != INVALID) && (NaviData.HomePosition.Status != INVALID))
293
//      if((GPSData.Position.Status != INVALID) && (NaviData.HomePosition.Status != INVALID))
294
        {
294
        {
295
                if(doc->state == GPX_DOC_TRACKSEGMENT_OPENED)
295
                if(doc->state == GPX_DOC_TRACKSEGMENT_OPENED)
296
                {
296
                {
Line 302... Line 302...
302
                                // write <trkpt> tag
302
                                // write <trkpt> tag
303
                        switch(part)
303
                        switch(part)
304
                          {
304
                          {
305
                           case 0:
305
                           case 0:
306
                                Logged_GPX_Counter++;
306
                                Logged_GPX_Counter++;
-
 
307
                    if(GPSData.Position.Status != INVALID)
-
 
308
                            {
307
                                if(GPSData.Position.Latitude < 0) u8_1 = '-';
309
                                 if(GPSData.Position.Latitude < 0) u8_1 = '-';
308
                                else u8_1 = '+';
310
                                 else u8_1 = '+';
309
                                i32_1 = abs(GPSData.Position.Latitude)/10000000L;
311
                                 i32_1 = abs(GPSData.Position.Latitude)/10000000L;
310
                                i32_2 = abs(GPSData.Position.Latitude)%10000000L;
312
                                 i32_2 = abs(GPSData.Position.Latitude)%10000000L;
311
                                sprintf(string, "<trkpt lat=\"%c%ld.%07ld\" ",u8_1, i32_1, i32_2);
313
                                 sprintf(string, "<trkpt lat=\"%c%ld.%07ld\" ",u8_1, i32_1, i32_2);
312
                                fputs_(string, doc->file);
314
                                 fputs_(string, doc->file);
313
                                if(GPSData.Position.Longitude < 0) u8_1 = '-';
315
                                 if(GPSData.Position.Longitude < 0) u8_1 = '-';
314
                                else u8_1 = '+';
316
                                 else u8_1 = '+';
315
                                i32_1 = abs(GPSData.Position.Longitude)/10000000L;
317
                                 i32_1 = abs(GPSData.Position.Longitude)/10000000L;
316
                                i32_2 = abs(GPSData.Position.Longitude)%10000000L;
318
                                 i32_2 = abs(GPSData.Position.Longitude)%10000000L;
317
                                sprintf(string, "lon=\"%c%ld.%07ld\">\r\n",u8_1, i32_1, i32_2);
319
                                 sprintf(string, "lon=\"%c%ld.%07ld\">\r\n",u8_1, i32_1, i32_2);
-
 
320
                            } else sprintf(string, "<trkpt lat=0 lon=0>");
318
                                fputs_(string, doc->file);
321
                           fputs_(string, doc->file);
319
                           break;
322
                           break;
320
                           case 1:
323
                           case 1:
321
                                // write <ele> taga
324
                                // write <ele> taga
322
                                i32_2 = GPSData.Position.Altitude - NaviData.HomePosition.Altitude;
325
                                i32_2 = GPSData.Position.Altitude - NaviData.HomePosition.Altitude;
-
 
326
                    if(GPSData.Position.Status != INVALID) i32_2 = 0;
323
                                if(i32_2 < 0) i32_2 = 0; // avoid negative altitudes in log
327
                                if(i32_2 < 0) i32_2 = 0; // avoid negative altitudes in log
324
                                i32_1 = i32_2/1000L;
328
                                i32_1 = i32_2/1000L;
325
                                i32_2 = i32_2%1000L;
329
                                i32_2 = i32_2%1000L;
326
                                sprintf(string,"<ele>%ld.%03ld</ele>\r\n",i32_1, i32_2);
330
                                sprintf(string,"<ele>%ld.%03ld</ele>\r\n",i32_1, i32_2);
327
                                fputs_(string, doc->file);
331
                                fputs_(string, doc->file);