diff --git a/PyTracker/trunk/tracking.txt b/PyTracker/trunk/INFO.TXT
similarity index 100%
rename from PyTracker/trunk/tracking.txt
rename to PyTracker/trunk/INFO.TXT
diff --git a/PyTracker/trunk/PyTrackerClient.py b/PyTracker/trunk/PyTrackerClient.py
index 02b0c5c..e6429c3 100644
--- a/PyTracker/trunk/PyTrackerClient.py
+++ b/PyTracker/trunk/PyTrackerClient.py
@@ -102,6 +102,7 @@ class TrackClient:
def StopTrack(self):
self.SendData(self.__username, self.__pwhash, action="STOP")
+
+# remove connect_to_signal event
self.terminator.remove()
self.usage_iface.ReleaseResource("GPS")
- sys.exit()
diff --git a/PyTracker/trunk/PyTrackerServer.py b/PyTracker/trunk/PyTrackerServer.py
new file mode 100644
index 0000000..589b29d
--- /dev/null
+++ b/PyTracker/trunk/PyTrackerServer.py
@@ -0,0 +1,90 @@
+from __future__ import with_statement
+import time
+from socket import *
+from WriteGPX import *
+
+class TrackServer:
+ def __init__(self, host, port, hashfile, datadir = '.'):
+ self.InitSocker(host, port)
+ self.InitHashdb(hashfile)
+ self.InitTrackDict()
+ self.datadir = datadir
+
+ def InitHashdb(self, hashfile):
+ self.hashdb=[]
+ with open(hashfile, "r") as file:
+ for line in file:
+ if line:
+ self.hashdb.append((line.split()[0], \
+ line.split()[1]))
+
+ def InitTrackDict(self):
+ self.TrackDict={}
+ for data in self.hashdb:
+ self.TrackDict[data[0]] = ""
+
+ def InitSocket(self, host, port):
+
+# Set the socket parameters
+# e.g. host = "localhost"
+# e.g. port = 49152
+ self.__addr = (str(host),int(port))
+
+# Create socket and bind it to the address
+ self.__UDPSock = socket(AF_INET,SOCK_DGRAM)
+ self.__UDPSock.bind(sel.__addr)
+
+# Debug message:
+ print "UDP Socket for %s at port %s created" % (host, port)
+
+ def VerifyUser(self, username, password_hash):
+ for data in self.hashdb:
+ if data[0] == username and data[1] == password_hash:
+ return 1
+ return 0
+
+
+ def Parser(self, stuff):
+
+# Parses the complete data sent to UDP port
+ try:
+ username, password_hash, action, data = stuff.split(';')
+
+# Verifies the user and password
+ if self.VerifyUser(username, password_hash):
+ if action == "START":
+ self.NewTrack(username)
+ if action == "STOP":
+ self.CloseTrack(username)
+ if action == "TRANSMIT":
+ self.AddToTrack(username, data)
+ print "Action", action,"received"
+ except:
+ print "Something went wrong.."
+
+ def NewTrack(self, username):
+ if not self.TrackDict[username]:
+ self.TrackDict[username] = WriteGPX("%s%s%s" % (self.datadir, username, time.strftime("%Y%m%d%H%M%S"))
+ print "Created track", self.TrackDict[username]
+
+ def CloseTrack(self, username):
+ if self.TrackDict[username]:
+ self.TrackDict[username].close()
+ print "Closed track", self.TrackDict[username]
+ del self.TrackDict[username]
+
+ def AddToTrack(self, username, data):
+ lat, lon, ele, time = data.split(',')
+ self.TrackDict[username].write(lat, lon, ele, time)
+
+
+buf = 1024
+
+# Create instance of TrackServer
+instance = TrackServer()
+
+#Receive messages
+while 1:
+ data,addr = UDPSock.recvfrom(1024)
+ print "Following data received:", data
+ instance.Parser(data)
diff --git a/PyTracker/trunk/PyTracker.py b/PyTracker/trunk/PyTracker[old].py
similarity index 100%
rename from PyTracker/trunk/PyTracker.py
rename to PyTracker/trunk/PyTracker[old].py
diff --git a/PyTracker/trunk/WriteGPX.py b/PyTracker/trunk/WriteGPX.py
index a88db93..c87a709 100644
--- a/PyTracker/trunk/WriteGPX.py
+++ b/PyTracker/trunk/WriteGPX.py
@@ -3,16 +3,20 @@
authors: Pau1us
license: gpl v2 or later
-This is a Class to creat *.gpx Files
+This is a Class to create *.gpx Files
Usage:
open new file: file = WriteGPX(filename)
write trackpint: file.write(lat, lon, alt, utctime)
close file: file.close()
The file musst be closed, otherwise the file will be incomplete
'''
+from __future__ import with_statement
+<<<<<<< .mine
+=======
from __future__ import with_statement
+>>>>>>> .r158
class WriteGPX:
def __init__(self, filename):
self.filename = filename
@@ -31,9 +35,9 @@ class WriteGPX:
def write(self, lat, lon, ele, time):
self.trackpoint = '\n\
-%s\n\
-\n\
-\n' % (lat, lon, ele, time)
+ %s\n\
+ \n\
+ \n' % (lat, lon, ele, time)
with open(self.filename,'a') as file:
file.write(self.trackpoint)
diff --git a/PyTracker/trunk/server.py b/PyTracker/trunk/server.py
deleted file mode 100644
index 038d29a..0000000
--- a/PyTracker/trunk/server.py
+++ /dev/null
@@ -1,79 +0,0 @@
-from __future__ import with_statement
-import time
-from socket import *
-
-class TrackServer:
- def __init__(self):
- self.InitHashdb("hashfile.txt")
- self.InitTrackDict()
-
- def InitHashdb(self, hashfile):
- self.hashdb=[]
- with open(hashfile, "r") as file:
- for line in file:
- if line:
- self.hashdb.append((line.split()[0], \
- line.split()[1]))
-
- def InitTrackDict(self):
- self.TrackDict={}
- for data in self.hashdb:
- self.TrackDict[data[0]] = ""
-
- def VerifyUser(self, username, password_hash):
- for data in self.hashdb:
- if data[0] == username and data[1] == password_hash:
- return 1
- return 0
-
-
- def Parser(self, stuff):
-# Parses the complete data sent to UDP port
- try:
- username, password_hash, action, data = stuff.split()
-# Verifies the user and password
- if self.VerifyUser(username, password_hash):
-
- if action == "START":
- self.NewTrack(username)
- if action == "STOP":
- self.CloseTrack(username)
- if action == "TRANSMIT":
- self.AddToTrack(username, data)
- print "Action", action,"received"
- except:
- print "Something went wrong.."
-
- def NewTrack(self, username):
- self.TrackDict[username] = "/home/edistar/Openmoko/projects/tracking/data/" + username + time.strftime("%Y%m%d%H%M%S")
- print "Created track", self.TrackDict[username]
-
- def CloseTrack(self, username):
- self.TrackDict[username] = ""
- print "Closed track", self.TrackDict[username]
-
- def AddToTrack(self, username, data):
- with open(self.TrackDict[username], "a") as trackfile:
- trackfile.write(data + "\n")
- print "Successfully added data to track", self.TrackDict[username]
-
-instance=TrackServer()
-
-# Set the socket parameters
-host = ""
-port = 49152
-buf = 1024
-addr = (host,port)
-
-# Create socket and bind to address
-UDPSock = socket(AF_INET,SOCK_DGRAM)
-UDPSock.bind(addr)
-
-# Create instance of TrackServer
-instance = TrackServer()
-
-#Receive messages
-while 1:
- data,addr = UDPSock.recvfrom(buf)
- print "Following data received:", data
- instance.Parser(data)