118,6 → 118,9 |
{ |
|
uint8_t retvalue = 0; |
uint16_t i; |
int8_t c; |
const prog_char *str; |
|
if(doc == NULL) return(0); |
|
127,10 → 130,14 |
if(doc->file != NULL) // could the file be opened? |
{ |
retvalue = 1; // the document could be created on the drive. |
doc->state = KML_DOC_OPENED; // change document state to opened. At next a placemark has to be opened. |
fwrite_((void*)KML_DOCUMENT_HEADER, sizeof(KML_DOCUMENT_HEADER)-1,1,doc->file);// write the KML-header to the document. |
doc->state = KML_DOC_OPENED; // change document state to opened. At next a placemark has to be opened. |
str = KML_DOCUMENT_HEADER; // write the KML-header to the document. |
for(i= 0; i < sizeof(KML_DOCUMENT_HEADER); i++) |
{ |
c = (int8_t)pgm_read_byte(str++); // get byte from flash |
fputc_(c, doc->file); // and write that to sd-card |
} |
} |
|
return(retvalue); |
} |
|
147,6 → 154,9 |
{ |
|
uint8_t retvalue = 1; |
uint16_t i; |
int8_t c; |
const prog_char *str; |
|
if(doc == NULL) return(0); |
|
165,7 → 175,12 |
case KML_DOC_OPENED: // close the file on the memorycard |
if(doc->file != NULL) |
{ |
fwrite_((void*)KML_DOCUMENT_FOOTER, sizeof(KML_DOCUMENT_FOOTER)-1,1,doc->file); // write the KML- footer to the document. |
str = KML_DOCUMENT_FOOTER; // write the KML- footer to the document. |
for(i= 0; i < sizeof(KML_DOCUMENT_FOOTER); i++) |
{ |
c = (int8_t)pgm_read_byte(str++); // get byte from flash |
fputc_(c, doc->file); // and write that to sd-card |
} |
fclose_(doc->file); |
retvalue = 1; |
} |
193,6 → 208,10 |
uint8_t KML_PlaceMarkOpen(KML_Document_t *doc) |
{ |
uint8_t retvalue = 0; |
uint16_t i; |
int8_t c; |
const prog_char *str; |
|
if(doc->state == KML_DOC_OPENED) |
{ |
if(doc->file != NULL) |
199,7 → 218,12 |
{ |
doc->state = KML_DOC_PLACEMARK_OPENED; |
retvalue = 1; |
fwrite_((void*)KML_PLACEMARK_HEADER, sizeof(KML_PLACEMARK_HEADER)-1,1,doc->file); |
str = KML_PLACEMARK_HEADER; |
for(i= 0; i < sizeof(KML_PLACEMARK_HEADER); i++) |
{ |
c = (int8_t)pgm_read_byte(str++); // get byte from flash |
fputc_(c, doc->file); // and write that to sd-card |
} |
} |
} |
return(retvalue); |
217,7 → 241,10 |
uint8_t KML_PlaceMarkClose(KML_Document_t *doc) |
{ |
|
uint8_t retvalue = 0; // close the Placemark-tag of the corosponding document. |
uint8_t retvalue = 0; |
uint16_t i; |
int8_t c; |
const prog_char *str; |
|
if(doc->state == KML_DOC_PLACEMARK_OPENED) |
{ |
224,11 → 251,15 |
if(doc->file != NULL) |
{ |
doc->state = KML_DOC_OPENED; |
fwrite_((void*)KML_PLACEMARK_FOOTER, sizeof(KML_PLACEMARK_FOOTER)-1,1,doc->file); |
str = KML_PLACEMARK_FOOTER; |
for(i= 0; i < sizeof(KML_PLACEMARK_FOOTER); i++) |
{ |
c = (int8_t)pgm_read_byte(str++); // get byte from flash |
fputc_(c, doc->file); // and write that to sd-card |
} |
retvalue = 1; |
} |
} |
|
return(retvalue); |
} |
|
245,6 → 276,9 |
{ |
|
uint8_t retvalue = 0; |
uint16_t i; |
int8_t c; |
const prog_char *str; |
|
if(doc->state == KML_DOC_PLACEMARK_OPENED) |
{ |
251,7 → 285,12 |
if(doc->file != NULL) |
{ |
doc->state = KML_DOC_LINESTRING_OPENED; |
fwrite_((void*)KML_LINESTRING_HEADER, sizeof(KML_LINESTRING_HEADER)-1,1,doc->file); |
str = KML_LINESTRING_HEADER; |
for(i= 0; i < sizeof(KML_LINESTRING_HEADER); i++) |
{ |
c = (int8_t)pgm_read_byte(str++); // get byte from flash |
fputc_(c, doc->file); // and write that to sd-card |
} |
retvalue = 1; |
} |
} |
271,6 → 310,9 |
{ |
|
uint8_t retvalue = 0; |
uint16_t i; |
int8_t c; |
const prog_char *str; |
|
if(doc->state == KML_DOC_LINESTRING_OPENED) |
{ |
277,7 → 319,12 |
if(doc->file != NULL) |
{ |
doc->state = KML_DOC_PLACEMARK_OPENED; |
fwrite_((void*)KML_LINESTRING_FOOTER, sizeof(KML_LINESTRING_FOOTER)-1,1,doc->file); |
str = KML_LINESTRING_FOOTER; |
for(i= 0; i < sizeof(KML_LINESTRING_FOOTER); i++) |
{ |
c = (int8_t)pgm_read_byte(str++); // get byte from flash |
fputc_(c, doc->file); // and write that to sd-card |
} |
retvalue = 1; |
} |
} |
298,7 → 345,6 |
|
uint8_t retvalue = 0; |
int8_t string[50]; |
// int32_t rel_altitude = 0; |
|
if(doc == NULL) return(0); |
|
331,7 → 377,6 |
} |
} |
} |
|
return(retvalue); |
} |
|
352,7 → 397,7 |
switch(doc->state) |
{ |
case KML_DOC_CLOSED: // document hasn't been opened yet therefore it will be initialized automatically |
retval = KML_DocumentOpen("default.kml",doc); // open the kml-document with a standardname. |
retval = KML_DocumentOpen("default.kml",doc); // open the kml-document with a standardname. |
break; |
|
case KML_DOC_OPENED: // if a document has been opened before but no placemark exists: |