Sign in to follow this  
Followers 0
seesoe

ruby to autoit for gps xml nmea

21 posts in this topic

#1 ·  Posted (edited)

hello everyone, im working on a wifi bot and it has an on board gps unit.

the gps is bluetooth, and that hooks to the computer where i have a program that makes that bluetooth connection into a serial connection.

so now i have nmea feed coming in on COM port

my question can the following simple straight forward script be made into a autoit script if so can someone please help?

require 'serialport'

def dmmm2dec(degrees,sw)
  deg= (degrees/100.0).floor #decimal degrees
  frac= ((degrees/100.0)-deg)/0.6 #decimal fraction
  ret = deg+frac #positive return value
  if ((sw=="S") or (sw=="W")):
      ret=ret*(-1) #flip sign if south or west
  end
  return ret
end

sp = SerialPort.new('/dev/tty.holux', 4800,8,1,SerialPort::NONE)

while(line=sp.readline) do
  if line =~ /\$GPGGA/
    tokens = line.split(",")
    lat = dmmm2dec((tokens[2]).to_f,tokens[3]) #[2] is lat in deg+minutes, [3] is {N|S|W|E}
    lng = dmmm2dec((tokens[4]).to_f,tokens[5]) #[4] is long in deg+minutes, [5] is {N|S|W|E}
    puts "http://maps.google.com/maps?ie=UTF8&ll=#{lat},#{lng}" 
    sleep 1
  end
end
Edited by seesoe

Share this post


Link to post
Share on other sites



Hi,

you may have a look at martins udfs

Mega


Scripts & functions Organize Includes Let Scite organize the include files

Yahtzee The game "Yahtzee" (Kniffel, DiceLion)

LoginWrapper Secure scripts by adding a query (authentication)

_RunOnlyOnThis UDF Make sure that a script can only be executed on ... (Windows / HD / ...)

Internet-Café Server/Client Application Open CD, Start Browser, Lock remote client, etc.

MultipleFuncsWithOneHotkey Start different funcs by hitting one hotkey different times

Share this post


Link to post
Share on other sites

anyone i should look out for in particular?

Share this post


Link to post
Share on other sites

thanks! i was able to get a small script written to split the data up and put it into its own box lat= long=.........

but now i need help with the other part of the script, the part that translates the raw data into normal gps data

heres those parts of the script im trying to translate, but i can't seem to get anything going.

def dmmm2dec(degrees,sw)
  deg= (degrees/100.0).floor #decimal degrees
  frac= ((degrees/100.0)-deg)/0.6 #decimal fraction
  ret = deg+frac #positive return value
  if ((sw=="S") or (sw=="W")):
      ret=ret*(-1) #flip sign if south or west
  end
  return ret
end

while(line=sp.readline) do
  if line =~ /\$GPGGA/
    tokens = line.split(",")
    lat = dmmm2dec((tokens[2]).to_f,tokens[3]) #[2] is lat in deg+minutes, [3] is {N|S|W|E}
    lng = dmmm2dec((tokens[4]).to_f,tokens[5]) #[4] is long in deg+minutes, [5] is {N|S|W|E}
    puts "http://maps.google.com/maps?ie=UTF8&ll=#{lat},#{lng}"

im guessing token is like stringsplit

Share this post


Link to post
Share on other sites

thanks! i was able to get a small script written to split the data up and put it into its own box lat= long=.........

but now i need help with the other part of the script, the part that translates the raw data into normal gps data

heres those parts of the script im trying to translate, but i can't seem to get anything going.

Well, the first part is easy:
#cs
def dmmm2dec(degrees,sw)
  deg= (degrees/100.0).floor #decimal degrees
  frac= ((degrees/100.0)-deg)/0.6 #decimal fraction
  ret = deg+frac #positive return value
  if ((sw=="S") or (sw=="W")):
      ret=ret*(-1) #flip sign if south or west
  end
  return ret
end
#ce

Func _Dmmm2Dec($degrees, $sw)
    Local $deg = Floor($degrees / 100); decimal degrees
    Local $frac = (($degrees / 100) - $deg) / 0.6; decimal fraction
    Local $ret = $deg + $frac; positive return value
    If $sw = "S" Or $sw = "W" Then $ret = $ret * -1; flip sign if south or west
    Return $ret
EndFunc

The second part has some syntax I don't get (I'm not a programmer, and don't know Ruby). Post the AutoIt code you used to read a line of data from the port: how did you implement "sp.readline"?

Also post how that line is formatted and it will be easy to translate from there.

:)


Valuater's AutoIt 1-2-3, Class... Is now in Session!For those who want somebody to write the script for them: RentACoder"Any technology distinguishable from magic is insufficiently advanced." -- Geek's corollary to Clarke's law

Share this post


Link to post
Share on other sites

ya i thought that part would be easy, but i didn't know exactly how it could be done, im not a coder either i just understand some syntax and put things together.

heres what im working with so far, be sure to use the com udf in the same dir

#include <file.au3>
#include <GUIConstants.au3>
#include <CommMG.au3>;or if you save the commMg.dll in the @scripdir use #include @SciptDir & '\commmg.dll'

#Region ### START Koda GUI section ### Form=
$Form1_1 = GUICreate("MY GPS", 400, 158, 407, 426)
GUICtrlCreateLabel("Latitude:", 8, 16, 45, 17)
GUICtrlCreateLabel("Longitude:", 8, 40, 54, 17)
$lat = GUICtrlCreateLabel("N/A", 72, 16, 120, 17)
$long = GUICtrlCreateLabel("N/A", 72, 40, 120, 17)
GUICtrlCreateLabel("Satellites:", 8, 64, 49, 17)
$sat = GUICtrlCreateLabel("N/A", 72, 64, 120, 17)
GUICtrlCreateLabel("Altitude:", 8, 88, 42, 17)
$alt = GUICtrlCreateLabel("N/A", 72, 88, 120, 17)
GUICtrlCreateLabel("NMEA Data:", 8, 112, 120, 17)
$nmea = GUICtrlCreateLabel("FAIL", 72, 112, 120, 17)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

$result = '';used for any returned error message setting port

Func _Dmmm2Dec($degrees, $sw)
    Local $deg = Floor($degrees / 100); decimal degrees
    Local $frac = (($degrees / 100) - $deg) / 0.6; decimal fraction
    Local $ret = $deg + $frac; positive return value
    If $sw = "S" Or $sw = "W" Then $ret = $ret * -1; flip sign if south or west
    Return $ret
EndFunc

While 1
    If GuiGetMsg() = $GUI_EVENT_CLOSE Then Exit
    _CommSetPort(10,$result,4800,8,0,1,0)   
    $data = _CommGetstring()
    If StringInStr( $data, "$GPGGA" ) Then
        $data = StringSplit( $data, "," )
            If $data[0] > 9 Then
                GUICtrlSetData( $lat, $data[4] & $data[3] )
                GUICtrlSetData( $long, $data[6] & $data[5] )
                GUICtrlSetData( $sat, $data[8] )
                GUICtrlSetData( $alt, $data[10] )
                GUICtrlSetData( $nmea, _CommGetstring() )
;               FileWrite("nmea.xml", $data[4] & $data[3] )
            EndIf
    EndIf
WEnd

so now maybe i can do something like

filewrite("nmea.xml", $lat = _Dmmm2Dec............ thats all i can think of lol

the gui stuff is just there for now so i can see what im doing, but the info will in the end be phrases ed to a xml file that google map api can read and track, but i'll probably just keep it so that i can see whats going on.

an example of a string of gpgga nmea can be found here (with all the meanings)

$GPGGA - Global Positioning System Fix Data

Share this post


Link to post
Share on other sites

#8 ·  Posted (edited)

ya i thought that part would be easy, but i didn't know exactly how it could be done, im not a coder either i just understand some syntax and put things together.

heres what im working with so far, be sure to use the com udf in the same dir

#include <file.au3>
#include <GUIConstants.au3>
#include <CommMG.au3>;or if you save the commMg.dll in the @scripdir use #include @SciptDir & '\commmg.dll'

#Region ### START Koda GUI section ### Form=
$Form1_1 = GUICreate("MY GPS", 400, 158, 407, 426)
GUICtrlCreateLabel("Latitude:", 8, 16, 45, 17)
GUICtrlCreateLabel("Longitude:", 8, 40, 54, 17)
$lat = GUICtrlCreateLabel("N/A", 72, 16, 120, 17)
$long = GUICtrlCreateLabel("N/A", 72, 40, 120, 17)
GUICtrlCreateLabel("Satellites:", 8, 64, 49, 17)
$sat = GUICtrlCreateLabel("N/A", 72, 64, 120, 17)
GUICtrlCreateLabel("Altitude:", 8, 88, 42, 17)
$alt = GUICtrlCreateLabel("N/A", 72, 88, 120, 17)
GUICtrlCreateLabel("NMEA Data:", 8, 112, 120, 17)
$nmea = GUICtrlCreateLabel("FAIL", 72, 112, 120, 17)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

$result = '';used for any returned error message setting port

Func _Dmmm2Dec($degrees, $sw)
    Local $deg = Floor($degrees / 100); decimal degrees
    Local $frac = (($degrees / 100) - $deg) / 0.6; decimal fraction
    Local $ret = $deg + $frac; positive return value
    If $sw = "S" Or $sw = "W" Then $ret = $ret * -1; flip sign if south or west
    Return $ret
EndFunc

While 1
    If GuiGetMsg() = $GUI_EVENT_CLOSE Then Exit
    _CommSetPort(10,$result,4800,8,0,1,0)   
    $data = _CommGetstring()
    If StringInStr( $data, "$GPGGA" ) Then
        $data = StringSplit( $data, "," )
            If $data[0] > 9 Then
                GUICtrlSetData( $lat, $data[4] & $data[3] )
                GUICtrlSetData( $long, $data[6] & $data[5] )
                GUICtrlSetData( $sat, $data[8] )
                GUICtrlSetData( $alt, $data[10] )
                GUICtrlSetData( $nmea, _CommGetstring() )
;               FileWrite("nmea.xml", $data[4] & $data[3] )
            EndIf
    EndIf
WEnd

so now maybe i can do something like

filewrite("nmea.xml", $lat = _Dmmm2Dec............ thats all i can think of lol

the gui stuff is just there for now so i can see what im doing, but the info will in the end be phrases ed to a xml file that google map api can read and track, but i'll probably just keep it so that i can see whats going on.

an example of a string of gpgga nmea can be found here (with all the meanings)

$GPGGA - Global Positioning System Fix Data

You might want to change that FileWrite() to FileWriteLine(), so you get an end of line added between writes.

Does _CommGetstring() a second time in "GUICtrlSetData( $nmea, _CommGetstring() )" get you the same string again, or read the next string? I'm not sure that's what you meant to do. Maybe:

While 1
    If GUIGetMsg() = $GUI_EVENT_CLOSE Then Exit
    _CommSetPort(10, $result, 4800, 8, 0, 1, 0)
    $sData = _CommGetstring()
    If StringInStr($sData, "$GPGGA") Then
        $avData = StringSplit($sData, ",")
        If $avData[0] > 9 Then
            GUICtrlSetData($lat, $avData[4] & $avData[3])
            GUICtrlSetData($long, $avData[6] & $avData[5])
            GUICtrlSetData($sat, $avData[8])
            GUICtrlSetData($alt, $avData[10])
            GUICtrlSetData($nmea, $sData)
            FileWriteLine("nmea.xml", $avData[4] & $avData[3])
        EndIf
    EndIf
WEnd

If you want to write this as XML, take a look in the Example Scripts forum and find eltorro's _XMLDomWrapper.au3 UDF.

:)

Edited by PsaltyDS

Valuater's AutoIt 1-2-3, Class... Is now in Session!For those who want somebody to write the script for them: RentACoder"Any technology distinguishable from magic is insufficiently advanced." -- Geek's corollary to Clarke's law

Share this post


Link to post
Share on other sites

ahh, i see what you changed, there were 2 $data vars for different things

i just added the second _CommGetstring() for the heck of it so i can see the raw feed

lat = dmmm2dec((tokens[2]).to_f,tokens[3])

lng = dmmm2dec((tokens[4]).to_f,tokens[5])

i figured out that ruby reads after the detected string so our tokens are

GUICtrlSetData($lat, $avData[3] & $avData[4])

GUICtrlSetData($long, $avData[5] & $avData[6])

ruby displays value then north or something

the autoit script is currently doing the opposite, so i switched it, now i need to see how to implement the function you made to the received values.

the values of $avdata 3,4 and $avdata 5,6 are 2934.0711,N,08225.8432,W

Share this post


Link to post
Share on other sites

scratch all that i just wrote in the reply before, was just me thinking out loud:D

i got it to work!!! :)

one thing i can't figure out now is how the function works

about 75% of the time the final data i get is rounded wrong i get values like

-82.4307266666667, 29.5679066666667 when they should be -82.43073, 29.567905

i tested the first value in the google api and it was fine, the reason im kinda worried about the rounding is because the xml file that the api accepts might not take a number that big, but it should, if the url test passed and it did pass.

now i need to add, ftp upload and MAYBE add gui com setup

and a big one is make it genorate the xml file i want with the dynamic long lat values

also things work a little slow in terms of the com getting data then writing to the txt file

#include <file.au3>
#include <GUIConstants.au3>
#include <CommMG.au3>;or if you save the commMg.dll in the @scripdir use #include @SciptDir & '\commmg.dll'
$result = '';used for any returned error message setting port

#Region ### START Koda GUI section ### Form=
$Form1_1 = GUICreate("MY GPS", 438, 152, 311, 385)
GUICtrlCreateLabel("NMEA Data:", 8, 8, 64, 17)
$nmea = GUICtrlCreateLabel("No Signal", 80, 8, 350, 17)
GUICtrlCreateLabel("Satellites:", 23, 32, 44, 17)
$sat = GUICtrlCreateLabel("No Signal", 80, 32, 120, 17)
GUICtrlCreateLabel("Time:", 42, 56, 28, 17)
$time = GUICtrlCreateLabel("No Signal", 80, 56, 120, 17)
GUICtrlCreateLabel("Longitude:", 18, 80, 54, 17)
$pLong = GUICtrlCreateLabel("N/A", 80, 104, 120, 17)
GUICtrlCreateLabel("Latitude:", 27, 104, 45, 17)
$pLat = GUICtrlCreateLabel("N/A", 80, 80, 120, 17)
GUICtrlCreateLabel("Altitude:", 30, 128, 42, 17)
$alt = GUICtrlCreateLabel("N/A", 80, 128, 120, 17)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

Func _Dmmm2Dec($degrees, $sw)
    Local $deg = Floor($degrees / 100); decimal degrees
    Local $frac = (($degrees / 100) - $deg) / 0.6; decimal fraction
    Local $ret = $deg + $frac; positive return value
    If $sw = "S" Or $sw = "W" Then $ret = $ret * -1; flip sign if south or west
    Return $ret
EndFunc

While 1
    If GUIGetMsg() = $GUI_EVENT_CLOSE Then Exit
    _CommSetPort(10, $result, 4800, 8, 0, 1, 0)
    $sData = _CommGetstring()
    If StringInStr($sData, "$GPGGA") Then
        $avData = StringSplit($sData, ",")
        If $avData[0] > 9 Then
            $long = _Dmmm2Dec(($avData[5]) ,$avData[6])
            $lat = _Dmmm2Dec(($avData[3]) ,$avData[4])
            GUICtrlSetData($nmea, $sData)
            GUICtrlSetData($sat, $avData[8])
            GUICtrlSetData($time, $avData[2]) ; need to write a function to convert it raw data is displayed only
            GUICtrlSetData($pLong, $long)
            GUICtrlSetData($pLat, $lat)
            GUICtrlSetData($alt, $avData[10]*3.2808399) ;in feet take *3.2808399 for meters
            FileWriteLine("nmea.txt", $long & $lat & @CRLF ) ;xml output for static google map api tracker and dynamic postioning
        EndIf
    EndIf
WEnd

Share this post


Link to post
Share on other sites

i got everything working heres what the program does

connects to the gps unit and gets nmea data, and looks for a string starting with the info we want

then it gets that and phrases it into correct coordinates

then it puts that in a simple xml file

then keeps uploading that to remote server for a google map api to handle

something is wrong with the phrasing function, it doesn't round correctly but it still works fine. (thanks to PsaltyDS)

theguy0000 also help with the file write parts.

#include <file.au3>
#include <FTP.au3>
#include <GUIConstants.au3>
#include <CommMG.au3>;or if you save the commMg.dll in the @scripdir use #include @SciptDir & '\commmg.dll'

$COMn = "10";change to your units com port
$result = '';used for any returned error message setting port

$server = '';ftp domain
$username = '';ftp user
$pass = '';ftp password
$XMLpath = '/google_api/autoit/NMEA.xml';full path of remote upload dir

Opt("OnExitFunc","alldone")
HotKeySet("{ESC}","alldone")

#Region ### START Koda GUI section ### Form=
$Form1_1 = GUICreate("MY GPS", 438, 152, 311, 385)
GUICtrlCreateLabel("NMEA Data:", 8, 8, 64, 17)
$nmea = GUICtrlCreateLabel("No Signal", 80, 8, 350, 17)
GUICtrlCreateLabel("Satellites:", 23, 32, 44, 17)
$sat = GUICtrlCreateLabel("No Signal", 80, 32, 120, 17)
GUICtrlCreateLabel("Time:", 42, 56, 28, 17)
$time = GUICtrlCreateLabel("No Signal", 80, 56, 120, 17)
GUICtrlCreateLabel("Longitude:", 18, 80, 54, 17)
$pLong = GUICtrlCreateLabel("N/A", 80, 104, 120, 17)
GUICtrlCreateLabel("Latitude:", 27, 104, 45, 17)
$pLat = GUICtrlCreateLabel("N/A", 80, 80, 120, 17)
GUICtrlCreateLabel("Altitude:", 30, 128, 42, 17)
$alt = GUICtrlCreateLabel("N/A", 80, 128, 120, 17)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

Func _Dmmm2Dec($degrees, $sw)
    Local $deg = Floor($degrees / 100); decimal degrees
    Local $frac = (($degrees / 100) - $deg) / 0.6; decimal fraction
    Local $ret = $deg + $frac; positive return value
    If $sw = "S" Or $sw = "W" Then $ret = $ret * -1; flip sign if south or west
    Return $ret
EndFunc

Func AllDone()
    _Commcloseport()
    Exit
EndFunc

While 1
    If GUIGetMsg() = $GUI_EVENT_CLOSE Then Exit

    _CommSetPort($COMn, $result, 4800, 8, 0, 1, 0)
    $sData = _CommGetstring()
    If StringInStr($sData, "$GPGGA") Then
        $avData = StringSplit($sData, ",")
        If $avData[0] > 9 Then
            $long = _Dmmm2Dec(($avData[5]) ,$avData[6])
            $lat = _Dmmm2Dec(($avData[3]) ,$avData[4])
            GUICtrlSetData($nmea, $sData)
            GUICtrlSetData($sat, $avData[8])
            GUICtrlSetData($time, $avData[2]) ; need to write a function to convert it raw data is displayed only
            GUICtrlSetData($pLong, $long)
            GUICtrlSetData($pLat, $lat)
            GUICtrlSetData($alt, $avData[10]*3)
            $hnd = FileOpen ("NMEA.xml", 2)
                FileWrite($hnd, '<?xml version="1.0" encoding="UTF-16"?>' &@crlf)
                FileWrite ($hnd, "  <markers>" &@crlf)
                FileWrite ($hnd, '      <marker lat="' &$lat& '" lng="' & $long & '"/>' &@crlf)
                FileWrite ($hnd, "  </markers>")
                FileClose ($hnd)
            If FileExists( @ScriptDir & '/NMEA.xml') Then
                $Open = _FTPOpen('MyFTP Control')
                $FTPconn = _FTPConnect($Open, $server, $username, $pass)
                $FTPt = _FtpPutFile($FTPconn, @ScriptDir & '/NMEA.xml',$XMLpath)
                $FTPcls = _FTPClose($Open)
            EndIf
        EndIf
    EndIf
WEnd

Alldone()

Share this post


Link to post
Share on other sites

something is wrong with the phrasing function, it doesn't round correctly but it still works fine.

What kind of rounding did you want? This change gives three decimal places:
Func _Dmmm2Dec($degrees, $sw)
    Local $deg = Floor($degrees / 100); decimal degrees
    Local $frac = (($degrees / 100) - $deg) / 0.6; decimal fraction
    Local $ret = Round($deg + $frac, 3); positive return value
    If $sw = "S" Or $sw = "W" Then $ret = $ret * -1; flip sign if south or west
    Return $ret
EndFunc

:)


Valuater's AutoIt 1-2-3, Class... Is now in Session!For those who want somebody to write the script for them: RentACoder"Any technology distinguishable from magic is insufficiently advanced." -- Geek's corollary to Clarke's law

Share this post


Link to post
Share on other sites

no i want it to round to 6 places but it would randomly round to 6 but then round to 13, but the 13 still worked but it just wasn't clean.

i used the new rounding function and changed 3 to 6 and it works normally now, rounding to 6:) thanks!

Share this post


Link to post
Share on other sites

#14 ·  Posted (edited)

ok heres another update, this is pretty much final unless i do gui changes

#include <file.au3>
#include <FTP.au3>
#include <GUIConstants.au3>
#include <CommMG.au3>;or if you save the commMg.dll in the @scripdir use #include @SciptDir & '\commmg.dll'

$COMn = "10"
$result = '';used for any returned error message setting port

$server = 'ftp..com'
$username = 'elhalawa'
$pass = ''
$XMLpath = '/google_api/autoit/NMEA.xml'

Opt("OnExitFunc","alldone")
HotKeySet("{ESC}","alldone")

#Region ### START Koda GUI section ### Form=
$Form1_1 = GUICreate("MY GPS", 438, 152, 311, 385)
GUICtrlCreateLabel("NMEA Data:", 8, 8, 64, 17)
$nmea = GUICtrlCreateLabel("No Signal", 80, 8, 350, 17)
GUICtrlCreateLabel("Satellites:", 23, 32, 44, 17)
$sat = GUICtrlCreateLabel("No Signal", 80, 32, 120, 17)
GUICtrlCreateLabel("Time:", 42, 56, 28, 17)
$time = GUICtrlCreateLabel("No Signal", 80, 56, 120, 17)
GUICtrlCreateLabel("Longitude:", 18, 80, 54, 17)
$pLong = GUICtrlCreateLabel("N/A", 80, 104, 120, 17)
GUICtrlCreateLabel("Latitude:", 27, 104, 45, 17)
$pLat = GUICtrlCreateLabel("N/A", 80, 80, 120, 17)
GUICtrlCreateLabel("Altitude:", 30, 128, 42, 17)
$alt = GUICtrlCreateLabel("N/A", 80, 128, 120, 17)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

Func _Dmmm2Dec($degrees, $sw)
    Local $deg = Floor($degrees / 100); decimal degrees
    Local $frac = (($degrees / 100) - $deg) / 0.6; decimal fraction
    Local $ret = Round($deg + $frac, 6); positive return value
    If $sw = "S" Or $sw = "W" Then $ret = $ret * -1; flip sign if south or west
    Return $ret
EndFunc

Func AllDone()
    _Commcloseport()
    Exit
EndFunc

While 1
    If GUIGetMsg() = $GUI_EVENT_CLOSE Then Exit

    _CommSetPort($COMn, $result, 4800, 8, 0, 1, 0)
    $sData = _CommGetstring()
    If StringInStr($sData, "$GPGGA") Then
        $avData = StringSplit($sData, ",")
        If $avData[0] > 9 Then
            $long = _Dmmm2Dec(($avData[5]) ,$avData[6])
            $lat = _Dmmm2Dec(($avData[3]) ,$avData[4])
            GUICtrlSetData($nmea, $sData)
            GUICtrlSetData($sat, $avData[8])
            GUICtrlSetData($time, $avData[2]) ; need to write a function to convert it raw data is displayed only
            GUICtrlSetData($pLong, $long)
            GUICtrlSetData($pLat, $lat)
            GUICtrlSetData($alt, $avData[10] * 3)
            $hnd = FileOpen ("NMEA.xml", 2)
                $label = "semiteQ"
                $html = "HERE I AM!! Can you see me?"
                FileWrite($hnd, "   <markers>" &@crlf)
                FileWrite($hnd, '     <marker lat="' &$lat& '" lng="' & $long & '" html="' & $html & '" label="' & $label & '" />' &@crlf)
                FileWrite($hnd, "   </markers>")
                FileClose($hnd)
            If FileExists( @ScriptDir & '/NMEA.xml') Then
                $Open = _FTPOpen('MyFTP Control')
                $FTPconn = _FTPConnect($Open, $server, $username, $pass)
                $FTPt = _FtpPutFile($FTPconn, @ScriptDir & '/NMEA.xml',$XMLpath)
                $FTPcls = _FTPClose($Open)
            EndIf
        EndIf
    EndIf
WEnd

Alldone()
Edited by seesoe

Share this post


Link to post
Share on other sites

thanks, i'll write a more official thread on the program, im busy with other stuff for now, but i will real soon.

heres the google maps page i made, its a simple setup, im going to polish everything up when i get bored

enjoy:D

http://arabicavi.com/google_api/autoit/api.html

you can zoom scroll, and it will auto refresh the map and have the point from the xml file in the middle, you can turn that on and off with the functions under the map.

Share this post


Link to post
Share on other sites

turns out i got real real bored today:D, and i made a gui with user input and save data forms, for the xml and ftp info, still haven't gotten all the gui functions to work yet, so im going to post the new code later tomorrow when i fix n tidy everything up.

Share this post


Link to post
Share on other sites
AUtoogle Tracker - Track your self on google maps with gps device!

Share this post


Link to post
Share on other sites

hello again, i pulled the robot back out to work on, i have to update the google map api and the autoit script, everything gets old quickly now days.

here is my code, i wrote this with an old autoit and when i updated my code broke. like i said i had a hard time writing this program its my first and still my first program.

can someone please help me fix my script?

thanks

cheers

AUtoogle_Tracker.zip

Share this post


Link to post
Share on other sites

#20 ·  Posted (edited)

hello again, i pulled the robot back out to work on, i have to update the google map api and the autoit script, everything gets old quickly now days.

here is my code, i wrote this with an old autoit and when i updated my code broke. like i said i had a hard time writing this program its my first and still my first program.

can someone please help me fix my script?

thanks

cheers

@seesoe

your script is missing include files for constants that were moved to separate files since your last update

add this line to the top of AUtoogle Tracker.au3 and any file needing a constants upgrade

#Region;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Add_Constants=y
#EndRegion;**** Directives created by AutoIt3Wrapper_GUI ****

this is what you should have:

(removed deprecated file GUIConstants.au3)

#include <File.au3>
#include <FTP.au3>
#include <MATH.au3>
#include <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <CommMG.au3>

Edit link to GUI forum sticky

How to convert GUI scripts to v3.2.12.0, Read me if your scripts no longer work in v3.2.12.0

http://www.autoitscript.com/forum/index.php?showtopic=70902

Edited by rover

I see fascists...

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0