Shop OBEX P1 Docs P2 Docs Learn Events
Spin and KML — Parallax Forums

Spin and KML

RagtopRagtop Posts: 406
edited 2010-10-01 12:44 in Propeller 1
I thought I would share some Spin code that I created to make animated timeline KML files out of GPS readings.

An example Google Earth file that I created with it is here:

http://www.ragtopvideo.com/me/banyon.kmz

Still trying to figure out how to move the camera view to keep the track centered.
CON
  _CLKMODE = XTAL1 + PLL16X
  _XINFREQ = 5_000_000


obj
   sdcard: "fsrw"
   gps   : "GPS_Float"
   FS    : "FloatString"
 

var
   long latold, latnew, longold, longnew, distance
   long x, filenum, open, oldelevation, newelevation
   long Stack[16], buttonpressed, firstloopcheck  
   long year, month, day, hour, minute, second, endhour,endminute,endsecond
   long count 'for counting every 8th icon to fly map over to new position still working on
   long Elcheck,rtcheck 'elevation and rotation changes
pub main                               '900 coordinate updates an hour / every 4 seconds
       sdcard.mount(1)    ' 1 cog 
       gps.init             ' 4 cogs
       initButton         ' 1 cog
       
       dira[7]~~         'card writing LED indicator
       outa[7] := 0
       dira[6]~~         'sat fix LED indicator
       outa[6] := 0
       filenum := 1
       open := 0
       firstloopcheck := 0   
       repeat
          repeat while buttonpressed == 0   'just wait until button pressed first time
            CheckSatFix 
          ShortBlink
          buttonpressed := 0  
          if open == 1       'if file open and button pressed, close file.
             Endfile
             firstloopcheck := 0
          else
             distance := 0   'start new file using filenum to increment filenames
             Openfile

Pub Openfile
          case filenum
             1:   sdcard.popen(string("track1.kml"),"w")
             2:   sdcard.popen(string("track2.kml"),"w")
             3:   sdcard.popen(string("track3.kml"),"w")
             4:   sdcard.popen(string("track4.kml"),"w")
             5:   sdcard.popen(string("track5.kml"),"w")
             6:   sdcard.popen(string("track6.kml"),"w")
             7:   sdcard.popen(string("track7.kml"),"w")
             8:   sdcard.popen(string("track8.kml"),"w")
             9:   sdcard.popen(string("track9.kml"),"w")
             10:  sdcard.popen(string("track10.kml"),"w")

          'term1
          WriteFileHeader
          filenum++
          open := 1
          count := 1
          WriteIcons
Pub EndFile
        Shortblink
        CheckSatFix
        TakeReading
        sdcard.SDStr(string("<Placemark>",13,10))  
        sdcard.SDStr(string("<name>Finished. Distance traveled is "))
        sdcard.sddec(distance)
        sdcard.SDStr(string(" ft "))
        sdcard.sdstr(fs.floattostring(gps.miles))
        sdcard.SDStr(string(" miles </name>",13,10))    

        elcheck := gps.ElevationCheck
        rtcheck := gps.rotation 
        
        PickIcon
                
        sdcard.SDStr(string("<Point>",13,10))
        sdcard.SDStr(string("<coordinates>",13,10))
        sdcard.sdstr(fs.floattostring(longnew))
        sdcard.sdstr(string(","))
        sdcard.sdstr(fs.floattostring(latnew))
        sdcard.sdstr(string(","))
        sdcard.sddec(0) 
        sdcard.sdstr(string(13,10))
        sdcard.SDStr(string("</coordinates>",13,10))                      
        sdcard.SDStr(string("</Point>",13,10))
        TimeStamp
        sdcard.SDStr(string("</Placemark>",13,10))

        'sdcard.SDStr(string("</gx:Playlist>",13,10))     
        'sdcard.SDStr(string("</gx:Tour>",13,10)) 

        sdcard.SDStr(string(" </Document>",13,10))

        'sdcard.SDStr(string("</Feature>",13,10)) 
        sdcard.SDStr(string("</kml>",13,10)) 
        sdcard.pclose
        LongBlink
        open := 0

PUB InitButton
   cognew(button(@buttonpressed), @stack)

Pub button(bp)
   dira[8]~  
   long[bp] := 0
   repeat
 
     if ina[8] == 1       'stores a button press until an action is done in main program to remove timing issues.
        long[bp] := 1


Pub CheckSatFix
    repeat while gps.Long_Fix_Quality < 1 or gps.Long_Fix_Quality > 8
       FixIndicatoroff
    FixIndicatorOn   
    
Pub FixIndicatorOn
    outa[6] := 1
Pub FixIndicatorOff
    outa[6] := 0    

Pub WriteFileHeader
            sdcard.SDStr(string("<?xml version='1.0' encoding='UTF-8'?>",13,10))
            sdcard.SDStr(string("<kml xmlns='http://www.opengis.net/kml/2.2'",13,10))
            sdcard.SDStr(string("xmlns:gx='http://www.google.com/kml/ext/2.2'>",13,10))
            'sdcard.SDStr(string("<Feature id='Ragtops path'>",13,10))
             
            sdcard.SDStr(string("  <Document>",13,10))
            sdcard.SDStr(string("<description>This is track #"))
            sdcard.SDDec(filenum)
            sdcard.SDStr(string(" that was started on "))
            sdcard.sddec(gps.Long_Month)
            sdcard.SDStr(string("/"))
            sdcard.sddec(gps.Long_Day) 
            sdcard.SDStr(string("/"))
            sdcard.sddec(gps.Long_year)
            sdcard.SDStr(string("</description>",13,10))
            
            'sdcard.SDStr(string("<gx:Tour>",13,10))
            'sdcard.SDStr(string("<name>Play me!</name>",13,10))
            'sdcard.SDStr(string("<gx:Playlist> ",13,10))

            Styles
            TakeReading
            'FlyTo
                'sdcard.SDStr(string("<gx:AnimatedUpdate>",13,10))
               ' sdcard.SDStr(string("<gx:duration>0.0</gx:duration> ",13,10))
                'sdcard.SDStr(string(" <Update>",13,10))
                'sdcard.SDStr(string("  <targetHref>...</targetHref>",13,10))
                'sdcard.SDStr(string("<Create>",13,10))
                   
            sdcard.SDStr(string("<Placemark>",13,10))  
            sdcard.SDStr(string("<name>Start</name>",13,10))
            sdcard.SDStr(string("<styleUrl>#levelNIcon</styleUrl>",13,10))
            sdcard.SDStr(string("<Point>",13,10))
            sdcard.SDStr(string("<coordinates>",13,10))            

            sdcard.sdstr(fs.floattostring(longnew))
            sdcard.sdstr(string(","))
            sdcard.sdstr(fs.floattostring(latnew))
            sdcard.sdstr(string(","))
            sdcard.sddec(0)
            sdcard.sdstr(string(13,10))
            sdcard.SDStr(string("</coordinates>",13,10))                         
            sdcard.SDStr(string("</Point>",13,10))
            TimeStamp               
            sdcard.SDStr(string("</Placemark>",13,10))

               ' sdcard.SDStr(string("</Create>",13,10))
                'sdcard.SDStr(string(" </Update>",13,10))
                'sdcard.SDStr(string("</gx:AnimatedUpdate>",13,10))
                    
            
            firstloopcheck := 1
  

Pub WriteIcons

             repeat while buttonpressed == 0
                Shortblink
                CheckSatFix
                TakeReading            
                if count == 8                     'move view of map to stay with track every 8 times
                   count := 1
                   'FlyTo
                count++
                elcheck := gps.ElevationCheck
                rtcheck := gps.rotation

                'sdcard.SDStr(string("<gx:AnimatedUpdate>",13,10))
                'sdcard.SDStr(string("<gx:duration>0.0</gx:duration> ",13,10))
                'sdcard.SDStr(string(" <Update>",13,10))
                'sdcard.SDStr(string("  <targetHref>...</targetHref>",13,10))
                'sdcard.SDStr(string("<Create>",13,10)) 
                sdcard.SDStr(string("<Placemark>",13,10))  
                sdcard.SDStr(string("<name>"))
                'sdcard.sddec(gps.Long_Hour)
                'sdcard.SDStr(string(":"))
                'sdcard.sddec(gps.Long_minute)
                {sdcard.SDStr(string(" *E* "))
                sdcard.SDDec(Elcheck)
                sdcard.SDStr(string(" *R* "))
                sdcard.SDDec(rtcheck)}                  
                sdcard.SDStr(string("</name>",13,10))
                ' check for being stopped.  only want one icon, so need to check if still stopped.
                PickIcon                                         
                sdcard.SDStr(string("<Point>",13,10))
                sdcard.SDStr(string("<coordinates>",13,10))
                sdcard.sdstr(fs.floattostring(longnew))
                sdcard.sdstr(string(","))
                sdcard.sdstr(fs.floattostring(latnew))
                sdcard.sdstr(string(","))
                sdcard.sddec(0) 
                sdcard.sdstr(string(13,10))
                sdcard.SDStr(string("</coordinates>",13,10))

                sdcard.SDStr(string("</Point>",13,10))
                TimeStamp 
                sdcard.SDStr(string("</Placemark>",13,10))

                'sdcard.SDStr(string("</Create>",13,10))
                'sdcard.SDStr(string(" </Update>",13,10))
                'sdcard.SDStr(string("</gx:AnimatedUpdate>",13,10))
                    
               waitcnt (clkfreq * 4 + cnt)



       
Pub ShortBlink
       repeat 8
          !outa[7]
          waitcnt(9000_000 + cnt)
      
          
Pub LongBlink
      outa[7] := 1
      waitcnt(clkfreq * 4 + cnt)
      outa[7] := 0

Pub RecordOn
    outa[7] := 1

Pub RecordOff
    outa[7] := 0               

PUB TakeReading
    CheckSatFix
    longold := longnew
    latold := latnew
    longnew := gps.Float_Longitude_Deg
    latnew :=  gps.Float_Latitude_Deg
    if firstloopcheck <> 0
        gps.distance(latold,longold,latnew,longnew)
        distance := gps.final
    
        
Pub FlyTo
    sdcard.SDStr(string("<FlyTo>",13,10))
    sdcard.SDStr(string("<duration>2.0</duration>",13,10))
    if firstloopcheck == 0
         sdcard.SDStr(string("<flyToMode>bounce</flyToMode>",13,10))
    else
         sdcard.SDStr(string("<flyToMode>smooth</flyToMode>",13,10))      
    sdcard.SDStr(string("<LookAt>",13,10))
    TimeStamp              
    sdcard.SDStr(string("<longitude>"))
    sdcard.sdstr(fs.floattostring(longnew))
    sdcard.SDStr(string("</longitude>",13,10))
    sdcard.SDStr(string("<latitude>"))
    sdcard.sdstr(fs.floattostring(latnew))
    sdcard.SDStr(string("</latitude>",13,10))
    if firstloopcheck == 0
          sdcard.SDStr(string("<altitude>1000</altitude>",13,10))
    else
          sdcard.SDStr(string("<altitude>300</altitude>",13,10))      
    sdcard.SDStr(string("<heading>0</heading>",13,10))
    sdcard.SDStr(string("<tilt>0</tilt>",13,10))
    'sdcard.SDStr(string("<range>4202.579</range>",13,10))
    sdcard.SDStr(string("<altitudeMode>relativeToGround</altitudeMode>",13,10)) 
    sdcard.SDStr(string("</LookAt>",13,10))
    sdcard.SDStr(string("</FlyTo>",13,10))

Pub TimeStamp

     sdcard.SDStr(string("<TimeSpan id='ID'>",13,10))
     sdcard.SDStr(string("<begin>"))
     year:=gps.Long_year
     month:=gps.long_month
     day:=gps.long_day
     hour:=gps.long_hour - 4
     minute:=gps.long_minute
     second:=gps.long_second
     
     sdcard.sddec(gps.Long_year)
     sdcard.SDStr(string("-"))
     if month < 10
        sdcard.SDStr(string("0"))
        sdcard.sddec(month)
     else
        sdcard.sddec(month)    
   
     sdcard.SDStr(string("-"))
     
     if day < 10
        sdcard.SDStr(string("0"))
        sdcard.sddec(day)
     else
        sdcard.sddec(day)
        
     sdcard.SDStr(string("T"))
        
     if hour < 10
        sdcard.SDStr(string("0"))
        sdcard.sddec(hour)
     else
        sdcard.sddec(hour)
        
     sdcard.SDStr(string(":"))
        
     if minute < 10
        sdcard.SDStr(string("0"))
        sdcard.sddec(minute)
     else
        sdcard.sddec(minute)
        
     sdcard.SDStr(string(":"))
        
     if second < 10
        sdcard.SDStr(string("0"))
        sdcard.sddec(second)
     else
        sdcard.sddec(second)

     sdcard.SDStr(string("Z</begin>"))

     sdcard.SDStr(string("<end>"))
     CalculateEndTime
     sdcard.sddec(gps.Long_year)
     sdcard.SDStr(string("-"))
     if month < 10
        sdcard.SDStr(string("0"))
        sdcard.sddec(month)
     else
        sdcard.sddec(month)    
   
     sdcard.SDStr(string("-"))
     
     if day < 10
        sdcard.SDStr(string("0"))
        sdcard.sddec(day)
     else
        sdcard.sddec(day)
        
     sdcard.SDStr(string("T"))
        
     if endhour < 10
        sdcard.SDStr(string("0"))
        sdcard.sddec(endhour)
     else
        sdcard.sddec(endhour)
        
     sdcard.SDStr(string(":"))
        
     if endminute < 10
        sdcard.SDStr(string("0"))
        sdcard.sddec(endminute)
     else
        sdcard.sddec(endminute)
        
     sdcard.SDStr(string(":"))
        
     if endsecond < 10
        sdcard.SDStr(string("0"))
        sdcard.sddec(endsecond)
     else
        sdcard.sddec(endsecond)

     sdcard.SDStr(string("Z</end>"))
          
     sdcard.SDStr(string("</TimeSpan>",13,10))

Pub CalculateEndTime
     if (second + 20) > 60
         if (minute + 1) > 60
            endhour := hour + 1
            endminute := 0
            endsecond := (second + 20) - 60  
         else
            endhour := hour
            endminute := minute + 1
            endsecond := (second + 20) - 60
     else
       endhour := hour
       endminute := minute
       endsecond := second + 20            

Pub PickIcon
                if elcheck == 1      ' level
                   case rtcheck
                     1:  sdcard.SDStr(string("<styleUrl>#levelNIcon</styleUrl>",13,10))
                     2:  sdcard.SDStr(string("<styleUrl>#levelNEIcon</styleUrl>",13,10))
                     3:  sdcard.SDStr(string("<styleUrl>#levelEIcon</styleUrl>",13,10))
                     4:  sdcard.SDStr(string("<styleUrl>#levelSEIcon</styleUrl>",13,10))
                     5:  sdcard.SDStr(string("<styleUrl>#levelSIcon</styleUrl>",13,10))
                     6:  sdcard.SDStr(string("<styleUrl>#levelSWIcon</styleUrl>",13,10))
                     7:  sdcard.SDStr(string("<styleUrl>#levelWIcon</styleUrl>",13,10))
                     8:  sdcard.SDStr(string("<styleUrl>#levelNWIcon</styleUrl>",13,10))
                elseif ElCheck == 2      ' downhill     
                   case rtcheck
                     1:  sdcard.SDStr(string("<styleUrl>#downhillNIcon</styleUrl>",13,10))
                     2:  sdcard.SDStr(string("<styleUrl>#downhillNEIcon</styleUrl>",13,10))
                     3:  sdcard.SDStr(string("<styleUrl>#downhillEIcon</styleUrl>",13,10))
                     4:  sdcard.SDStr(string("<styleUrl>#downhillSEIcon</styleUrl>",13,10))
                     5:  sdcard.SDStr(string("<styleUrl>#downhillSIcon</styleUrl>",13,10))
                     6:  sdcard.SDStr(string("<styleUrl>#downhillSWIcon</styleUrl>",13,10))
                     7:  sdcard.SDStr(string("<styleUrl>#downhillWIcon</styleUrl>",13,10))
                     8:  sdcard.SDStr(string("<styleUrl>#downhillNWIcon</styleUrl>",13,10))
                elseif ElCheck == 3      ' uphill     
                   case rtcheck
                     1:  sdcard.SDStr(string("<styleUrl>#uphillNIcon</styleUrl>",13,10))
                     2:  sdcard.SDStr(string("<styleUrl>#uphillNEIcon</styleUrl>",13,10))
                     3:  sdcard.SDStr(string("<styleUrl>#uphillEIcon</styleUrl>",13,10))
                     4:  sdcard.SDStr(string("<styleUrl>#uphillSEIcon</styleUrl>",13,10))
                     5:  sdcard.SDStr(string("<styleUrl>#uphillSIcon</styleUrl>",13,10))
                     6:  sdcard.SDStr(string("<styleUrl>#uphillSWIcon</styleUrl>",13,10))
                     7:  sdcard.SDStr(string("<styleUrl>#uphillWIcon</styleUrl>",13,10))
                     8:  sdcard.SDStr(string("<styleUrl>#uphillNWIcon</styleUrl>",13,10))       

Pub Styles
            sdcard.SDStr(string("<Style id='levelNIcon'>",13,10))
            sdcard.SDStr(string("<IconStyle>",13,10)) 
            sdcard.SDStr(string("<scale>1</scale>",13,10))
            sdcard.SDStr(string("<Icon>",13,10))
            sdcard.SDStr(string("<href>http://www.ragtopvideo.com/me/levelN.png</href>",13,10))
            sdcard.SDStr(string("</Icon>",13,10))
            sdcard.SDStr(string("</IconStyle>",13,10)) 
            sdcard.SDStr(string("</Style>",13,10))

            sdcard.SDStr(string("<Style id='levelNEIcon'>",13,10))
            sdcard.SDStr(string("<IconStyle>",13,10)) 
            sdcard.SDStr(string("<scale>1</scale>",13,10))
            sdcard.SDStr(string("<Icon>",13,10))
            sdcard.SDStr(string("<href>http://www.ragtopvideo.com/me/levelNE.png</href>",13,10))
            sdcard.SDStr(string("</Icon>",13,10))
            sdcard.SDStr(string("</IconStyle>",13,10)) 
            sdcard.SDStr(string("</Style>",13,10))
            
            sdcard.SDStr(string("<Style id='levelEIcon'>",13,10))
            sdcard.SDStr(string("<IconStyle>",13,10)) 
            sdcard.SDStr(string("<scale>1</scale>",13,10))
            sdcard.SDStr(string("<Icon>",13,10))
            sdcard.SDStr(string("<href>http://www.ragtopvideo.com/me/levelE.png</href>",13,10))
            sdcard.SDStr(string("</Icon>",13,10))
            sdcard.SDStr(string("</IconStyle>",13,10)) 
            sdcard.SDStr(string("</Style>",13,10))

            sdcard.SDStr(string("<Style id='levelSEIcon'>",13,10))
            sdcard.SDStr(string("<IconStyle>",13,10)) 
            sdcard.SDStr(string("<scale>1</scale>",13,10))
            sdcard.SDStr(string("<Icon>",13,10))
            sdcard.SDStr(string("<href>http://www.ragtopvideo.com/me/levelSE.png</href>",13,10))
            sdcard.SDStr(string("</Icon>",13,10))
            sdcard.SDStr(string("</IconStyle>",13,10)) 
            sdcard.SDStr(string("</Style>",13,10))

            sdcard.SDStr(string("<Style id='levelSIcon'>",13,10))
            sdcard.SDStr(string("<IconStyle>",13,10)) 
            sdcard.SDStr(string("<scale>1</scale>",13,10))
            sdcard.SDStr(string("<Icon>",13,10))
            sdcard.SDStr(string("<href>http://www.ragtopvideo.com/me/levelS.png</href>",13,10))
            sdcard.SDStr(string("</Icon>",13,10))
            sdcard.SDStr(string("</IconStyle>",13,10)) 
            sdcard.SDStr(string("</Style>",13,10))           

            sdcard.SDStr(string("<Style id='levelSWIcon'>",13,10))
            sdcard.SDStr(string("<IconStyle>",13,10)) 
            sdcard.SDStr(string("<scale>1</scale>",13,10))
            sdcard.SDStr(string("<Icon>",13,10))
            sdcard.SDStr(string("<href>http://www.ragtopvideo.com/me/levelSW.png</href>",13,10))
            sdcard.SDStr(string("</Icon>",13,10))
            sdcard.SDStr(string("</IconStyle>",13,10)) 
            sdcard.SDStr(string("</Style>",13,10))

            sdcard.SDStr(string("<Style id='levelWIcon'>",13,10))
            sdcard.SDStr(string("<IconStyle>",13,10)) 
            sdcard.SDStr(string("<scale>1</scale>",13,10))
            sdcard.SDStr(string("<Icon>",13,10))
            sdcard.SDStr(string("<href>http://www.ragtopvideo.com/me/levelW.png</href>",13,10))
            sdcard.SDStr(string("</Icon>",13,10))
            sdcard.SDStr(string("</IconStyle>",13,10)) 
            sdcard.SDStr(string("</Style>",13,10))

            sdcard.SDStr(string("<Style id='levelNWIcon'>",13,10))
            sdcard.SDStr(string("<IconStyle>",13,10)) 
            sdcard.SDStr(string("<scale>1</scale>",13,10))
            sdcard.SDStr(string("<Icon>",13,10))
            sdcard.SDStr(string("<href>http://www.ragtopvideo.com/me/levelNW.png</href>",13,10))
            sdcard.SDStr(string("</Icon>",13,10))
            sdcard.SDStr(string("</IconStyle>",13,10)) 
            sdcard.SDStr(string("</Style>",13,10))

            sdcard.SDStr(string("<Style id='uphillNIcon'>",13,10))
            sdcard.SDStr(string("<IconStyle>",13,10)) 
            sdcard.SDStr(string("<scale>1</scale>",13,10))
            sdcard.SDStr(string("<Icon>",13,10))
            sdcard.SDStr(string("<href>http://www.ragtopvideo.com/me/uphillN.png</href>",13,10))
            sdcard.SDStr(string("</Icon>",13,10))
            sdcard.SDStr(string("</IconStyle>",13,10)) 
            sdcard.SDStr(string("</Style>",13,10))

            sdcard.SDStr(string("<Style id='uphillNEIcon'>",13,10))
            sdcard.SDStr(string("<IconStyle>",13,10)) 
            sdcard.SDStr(string("<scale>1</scale>",13,10))
            sdcard.SDStr(string("<Icon>",13,10))
            sdcard.SDStr(string("<href>http://www.ragtopvideo.com/me/uphillNE.png</href>",13,10))
            sdcard.SDStr(string("</Icon>",13,10))
            sdcard.SDStr(string("</IconStyle>",13,10)) 
            sdcard.SDStr(string("</Style>",13,10))
            
            sdcard.SDStr(string("<Style id='uphillEIcon'>",13,10))
            sdcard.SDStr(string("<IconStyle>",13,10)) 
            sdcard.SDStr(string("<scale>1</scale>",13,10))
            sdcard.SDStr(string("<Icon>",13,10))
            sdcard.SDStr(string("<href>http://www.ragtopvideo.com/me/uphillE.png</href>",13,10))
            sdcard.SDStr(string("</Icon>",13,10))
            sdcard.SDStr(string("</IconStyle>",13,10)) 
            sdcard.SDStr(string("</Style>",13,10))

            sdcard.SDStr(string("<Style id='uphillSEIcon'>",13,10))
            sdcard.SDStr(string("<IconStyle>",13,10)) 
            sdcard.SDStr(string("<scale>1</scale>",13,10))
            sdcard.SDStr(string("<Icon>",13,10))
            sdcard.SDStr(string("<href>http://www.ragtopvideo.com/me/uphillSE.png</href>",13,10))
            sdcard.SDStr(string("</Icon>",13,10))
            sdcard.SDStr(string("</IconStyle>",13,10)) 
            sdcard.SDStr(string("</Style>",13,10))

            sdcard.SDStr(string("<Style id='uphillSIcon'>",13,10))
            sdcard.SDStr(string("<IconStyle>",13,10)) 
            sdcard.SDStr(string("<scale>1</scale>",13,10))
            sdcard.SDStr(string("<Icon>",13,10))
            sdcard.SDStr(string("<href>http://www.ragtopvideo.com/me/uphillS.png</href>",13,10))
            sdcard.SDStr(string("</Icon>",13,10))
            sdcard.SDStr(string("</IconStyle>",13,10)) 
            sdcard.SDStr(string("</Style>",13,10))           

            sdcard.SDStr(string("<Style id='uphillSWIcon'>",13,10))
            sdcard.SDStr(string("<IconStyle>",13,10)) 
            sdcard.SDStr(string("<scale>1</scale>",13,10))
            sdcard.SDStr(string("<Icon>",13,10))
            sdcard.SDStr(string("<href>http://www.ragtopvideo.com/me/uphillSW.png</href>",13,10))
            sdcard.SDStr(string("</Icon>",13,10))
            sdcard.SDStr(string("</IconStyle>",13,10)) 
            sdcard.SDStr(string("</Style>",13,10))

            sdcard.SDStr(string("<Style id='uphillWIcon'>",13,10))
            sdcard.SDStr(string("<IconStyle>",13,10)) 
            sdcard.SDStr(string("<scale>1</scale>",13,10))
            sdcard.SDStr(string("<Icon>",13,10))
            sdcard.SDStr(string("<href>http://www.ragtopvideo.com/me/uphillW.png</href>",13,10))
            sdcard.SDStr(string("</Icon>",13,10))
            sdcard.SDStr(string("</IconStyle>",13,10)) 
            sdcard.SDStr(string("</Style>",13,10))

            sdcard.SDStr(string("<Style id='uphillNWIcon'>",13,10))
            sdcard.SDStr(string("<IconStyle>",13,10)) 
            sdcard.SDStr(string("<scale>1</scale>",13,10))
            sdcard.SDStr(string("<Icon>",13,10))
            sdcard.SDStr(string("<href>http://www.ragtopvideo.com/me/uphillNW.png</href>",13,10))
            sdcard.SDStr(string("</Icon>",13,10))
            sdcard.SDStr(string("</IconStyle>",13,10)) 
            sdcard.SDStr(string("</Style>",13,10))
            
            sdcard.SDStr(string("<Style id='downhillNIcon'>",13,10))
            sdcard.SDStr(string("<IconStyle>",13,10)) 
            sdcard.SDStr(string("<scale>1</scale>",13,10))
            sdcard.SDStr(string("<Icon>",13,10))
            sdcard.SDStr(string("<href>http://www.ragtopvideo.com/me/downhillN.png</href>",13,10))
            sdcard.SDStr(string("</Icon>",13,10))
            sdcard.SDStr(string("</IconStyle>",13,10)) 
            sdcard.SDStr(string("</Style>",13,10))

            sdcard.SDStr(string("<Style id='downhillNEIcon'>",13,10))
            sdcard.SDStr(string("<IconStyle>",13,10)) 
            sdcard.SDStr(string("<scale>1</scale>",13,10))
            sdcard.SDStr(string("<Icon>",13,10))
            sdcard.SDStr(string("<href>http://www.ragtopvideo.com/me/downhillNE.png</href>",13,10))
            sdcard.SDStr(string("</Icon>",13,10))
            sdcard.SDStr(string("</IconStyle>",13,10)) 
            sdcard.SDStr(string("</Style>",13,10))
            
            sdcard.SDStr(string("<Style id='downhillEIcon'>",13,10))
            sdcard.SDStr(string("<IconStyle>",13,10)) 
            sdcard.SDStr(string("<scale>1</scale>",13,10))
            sdcard.SDStr(string("<Icon>",13,10))
            sdcard.SDStr(string("<href>http://www.ragtopvideo.com/me/downhillE.png</href>",13,10))
            sdcard.SDStr(string("</Icon>",13,10))
            sdcard.SDStr(string("</IconStyle>",13,10)) 
            sdcard.SDStr(string("</Style>",13,10))

            sdcard.SDStr(string("<Style id='downhillSEIcon'>",13,10))
            sdcard.SDStr(string("<IconStyle>",13,10)) 
            sdcard.SDStr(string("<scale>1</scale>",13,10))
            sdcard.SDStr(string("<Icon>",13,10))
            sdcard.SDStr(string("<href>http://www.ragtopvideo.com/me/downhillSE.png</href>",13,10))
            sdcard.SDStr(string("</Icon>",13,10))
            sdcard.SDStr(string("</IconStyle>",13,10)) 
            sdcard.SDStr(string("</Style>",13,10))

            sdcard.SDStr(string("<Style id='downhillSIcon'>",13,10))
            sdcard.SDStr(string("<IconStyle>",13,10)) 
            sdcard.SDStr(string("<scale>1</scale>",13,10))
            sdcard.SDStr(string("<Icon>",13,10))
            sdcard.SDStr(string("<href>http://www.ragtopvideo.com/me/downhillS.png</href>",13,10))
            sdcard.SDStr(string("</Icon>",13,10))
            sdcard.SDStr(string("</IconStyle>",13,10)) 
            sdcard.SDStr(string("</Style>",13,10))           

            sdcard.SDStr(string("<Style id='downhillSWIcon'>",13,10))
            sdcard.SDStr(string("<IconStyle>",13,10)) 
            sdcard.SDStr(string("<scale>1</scale>",13,10))
            sdcard.SDStr(string("<Icon>",13,10))
            sdcard.SDStr(string("<href>http://www.ragtopvideo.com/me/downhillSW.png</href>",13,10))
            sdcard.SDStr(string("</Icon>",13,10))
            sdcard.SDStr(string("</IconStyle>",13,10)) 
            sdcard.SDStr(string("</Style>",13,10))

            sdcard.SDStr(string("<Style id='downhillWIcon'>",13,10))
            sdcard.SDStr(string("<IconStyle>",13,10)) 
            sdcard.SDStr(string("<scale>1</scale>",13,10))
            sdcard.SDStr(string("<Icon>",13,10))
            sdcard.SDStr(string("<href>http://www.ragtopvideo.com/me/downhillW.png</href>",13,10))
            sdcard.SDStr(string("</Icon>",13,10))
            sdcard.SDStr(string("</IconStyle>",13,10)) 
            sdcard.SDStr(string("</Style>",13,10))

            sdcard.SDStr(string("<Style id='downhillNWIcon'>",13,10))
            sdcard.SDStr(string("<IconStyle>",13,10)) 
            sdcard.SDStr(string("<scale>1</scale>",13,10))
            sdcard.SDStr(string("<Icon>",13,10))
            sdcard.SDStr(string("<href>http://www.ragtopvideo.com/me/downNW.png</href>",13,10))
            sdcard.SDStr(string("</Icon>",13,10))
            sdcard.SDStr(string("</IconStyle>",13,10)) 
            sdcard.SDStr(string("</Style>",13,10))



            sdcard.SDStr(string("<Style id='stopIcon'>",13,10))
            sdcard.SDStr(string("<IconStyle>",13,10)) 
            sdcard.SDStr(string("<scale>1</scale>",13,10))
            sdcard.SDStr(string("<Icon>",13,10))
            sdcard.SDStr(string("<href>http://www.ragtopvideo.com/me/stop.png</href>",13,10))
            sdcard.SDStr(string("</Icon>",13,10))
            sdcard.SDStr(string("</IconStyle>",13,10)) 
            sdcard.SDStr(string("</Style>",13,10))

Comments

  • MicrocontrolledMicrocontrolled Posts: 2,461
    edited 2010-09-21 13:11
    Nice! Thanks for sharing!
  • BluhairBluhair Posts: 7
    edited 2010-09-29 21:29
    Well done!
    Nice demo a little bit rough but very functional.
    Keep up the good work.

    Thank You
  • RagtopRagtop Posts: 406
    edited 2010-10-01 12:44
    Thank you. I have since found a major bug. I have it set to goto a do nothing loop if it loses three sat lock. Apparently when the battery goes down to a certain level, even though everything seems powered up, the GPS module that I have can't get a three sat lock.


    Which keeps me from closing the file, losing hours of data. Got to rewrite that.
Sign In or Register to comment.