Rev 428 | Rev 436 | 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); |