Subversion Repositories NaviCtrl

Rev

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

Rev 548 Rev 553
Line 347... Line 347...
347
        {
347
        {
348
                if(doc->state == GPX_DOC_TRACKSEGMENT_OPENED)
348
                if(doc->state == GPX_DOC_TRACKSEGMENT_OPENED)
349
                {
349
                {
350
                        if(doc->file != NULL)
350
                        if(doc->file != NULL)
351
                        {
351
                        {
-
 
352
                                static s32 altitude; // store to make sure they are all recorded in one timestamp
352
                                s32 i32_1, i32_2;
353
                                s32 i32_1, i32_2;
353
                                s16 i16_1;
354
                                s16 i16_1;
354
                                u8 u8_1, u8_2;
355
                                u8 u8_1, u8_2;
355
                                // write <trkpt> tag
356
                                // write <trkpt> tag
356
                        switch(part)
357
                        switch(part)
Line 370... Line 371...
370
                                 i32_1 = abs(GPSData.Position.Longitude)/10000000L;
371
                                 i32_1 = abs(GPSData.Position.Longitude)/10000000L;
371
                                 i32_2 = abs(GPSData.Position.Longitude)%10000000L;
372
                                 i32_2 = abs(GPSData.Position.Longitude)%10000000L;
372
                                 sprintf(string, "lon=\"%c%ld.%07ld\">\r\n",u8_1, i32_1, i32_2);
373
                                 sprintf(string, "lon=\"%c%ld.%07ld\">\r\n",u8_1, i32_1, i32_2);
373
                            } else sprintf(string, "<trkpt lat=\"\" lon=\"\">");
374
                            } else sprintf(string, "<trkpt lat=\"\" lon=\"\">");
374
                           fputs_(string, doc->file);
375
                           fputs_(string, doc->file);
-
 
376
                           altitude = GPSData.Position.Altitude;
375
                           break;
377
                           break;
376
                           case 1:
378
                           case 1:
377
                                // write <ele> tag
379
                                // write <ele> tag
378
                                i32_2 = abs(GPSData.Position.Altitude - NaviData.HomePosition.Altitude);
380
                                i32_2 = altitude - NaviData.HomePosition.Altitude;
379
                    if(GPSData.Position.Status == INVALID) i32_2 = 0;
381
                    if(GPSData.Position.Status == INVALID) i32_2 = 0;
380
                                i32_1 = i32_2/1000L;
382
                                i32_1 = i32_2/1000L;
381
                                i32_2 = i32_2%1000L;
383
                                i32_2 = i32_2%1000L;
382
                                if(GPSData.Position.Altitude < 0) i32_1 *= -1;
384
                                if(altitude - NaviData.HomePosition.Altitude < 0)       sprintf(string,"<ele>-%ld.%03ld</ele>\r\n",abs(i32_1),abs(i32_2));
383
                                sprintf(string,"<ele>%ld.%03ld</ele>\r\n",i32_1, i32_2);
385
                                else                                                                                            sprintf(string,"<ele>%ld.%03ld</ele>\r\n",i32_1,i32_2);
384
                                fputs_(string, doc->file);
386
                                fputs_(string, doc->file);
385
                                // write <time> tag     only at a resolution of one second
387
                                // write <time> tag     only at a resolution of 1/100 second
386
//                              sprintf(string, "<time>%04d-%02d-%02dT%02d:%02d:%02dZ</time>\r\n",SystemTime.Year, SystemTime.Month, SystemTime.Day, SystemTime.Hour, SystemTime.Min, SystemTime.Sec);
388
//                              sprintf(string, "<time>%04d-%02d-%02dT%02d:%02d:%02dZ</time>\r\n",SystemTime.Year, SystemTime.Month, SystemTime.Day, SystemTime.Hour, SystemTime.Min, SystemTime.Sec);
387
                                sprintf(string, "<time>%04d-%02d-%02dT%02d:%02d:%02d.%dZ</time>\r\n",SystemTime.Year, SystemTime.Month, SystemTime.Day, SystemTime.Hour, SystemTime.Min, SystemTime.Sec,SystemTime.mSec/100);
389
                                sprintf(string, "<time>%04d-%02d-%02dT%02d:%02d:%02d.%dZ</time>\r\n",SystemTime.Year, SystemTime.Month, SystemTime.Day, SystemTime.Hour, SystemTime.Min, SystemTime.Sec,SystemTime.mSec/100);
388
                                fputs_(string, doc->file);
390
                                fputs_(string, doc->file);
389
                                // write <sat> tag
391
                                // write <sat> tag
390
                                sprintf(string, "<sat>%d</sat>\r\n", NaviData.SatsInUse);
392
                                sprintf(string, "<sat>%d</sat>\r\n", NaviData.SatsInUse);
Line 560... Line 562...
560
                                fputs_(string, doc->file);
562
                                fputs_(string, doc->file);
561
                                // Navigation Update speed (in 0.1Hz)
563
                                // Navigation Update speed (in 0.1Hz)
562
//                              sprintf(string, "<NaviUpdate>%d,%d</NaviUpdate>\r\n",FreqGpsProcessedIn5Sec,FreqNewGpsDataIn5Sec);
564
//                              sprintf(string, "<NaviUpdate>%d,%d</NaviUpdate>\r\n",FreqGpsProcessedIn5Sec,FreqNewGpsDataIn5Sec);
563
//                              fputs_(string, doc->file);
565
//                              fputs_(string, doc->file);
564
                                // eof extensions
566
                                // eof extensions
565
                                i32_2 = abs(GPSData.Position.Altitude);
567
                                i32_2 = altitude;
566
                    if(GPSData.Position.Status == INVALID) i32_2 = 0;
568
                    if(GPSData.Position.Status == INVALID) i32_2 = 0;
567
                                i32_1 = i32_2/1000L;
569
                                i32_1 = i32_2/1000L;
568
                                i32_2 = i32_2%1000L;
570
                                i32_2 = i32_2%1000L;
569
                                if(GPSData.Position.Altitude < 0) i32_1 *= -1;
571
                                if(altitude < 0) sprintf(string,"<ele_raw>-%ld.%03ld</ele_raw>\r\n",abs(i32_1),abs(i32_2));
570
                                sprintf(string,"<ele_raw>%ld.%03ld</ele_raw>\r\n",i32_1, i32_2);
572
                                else                     sprintf(string,"<ele_raw>%ld.%03ld</ele_raw>\r\n",i32_1,i32_2);
571
                                fputs_(string, doc->file);
573
                                fputs_(string, doc->file);
Line 572... Line 574...
572
 
574
 
573
                                sprintf(string, "</extensions>\r\n");
575
                                sprintf(string, "</extensions>\r\n");
574
                                fputs_(string, doc->file);
576
                                fputs_(string, doc->file);