Discussion Board
-
bt_gps & gsm_loc simple python app
2005-01-17, 16:13
#1
Registered User
Hi Guys,
I've just put together two smaller Python apps I've seen around in this discussion board.
The resulting app prints 1) info obtained by a BT gps (i.e. $GPRMC sentence, but may change as you like) and 2) GSM cell id.
My wish is to collect these info periodically (i.e. 2/3 minutes) and send them back via an HTTP POST to a specified host.... could anybody help? ;-)
Thanks
-Luca
____________________________________
# Simple BT App
#$GPRMC,161229.487,A,3723.2475,N,12158.3416,W,0.13,309.62,120598, ,*10
import socket,location,urllib
class BTReader:
def connect(self):
self.sock=socket.socket(socket.AF_BT,socket.SOCK_STREAM)
address,services=socket.bt_discover()
print "Discovered: %s, %s"%(address,services)
target=(address,services.values()[0])
print "Connecting to "+str(target)
self.sock.connect(target)
def readposition(self):
try:
buffer=""
ch = self.sock.recv(1)
while(ch !='\n'):
buffer+=ch
ch = self.sock.recv(1)
# print buffer
if (buffer[0:6]=="$GPRMC"):
(GPRMC,utc,status,lat,latns,lon,lonew,knots,course,date,xx1,xx2)=buffer.split(",")
return "GPS (%s,%s,%s,%s,%s)"%(utc,lat+latns,lon+lonew,knots,course)
except Error:
return "Error!\n"
return ""
def close(self):
self.sock.close()
class GSM_loc:
def upd(self):
self.loc = location.gsm_location()
return "GSM (MCC:%s MNC:%s LAC:%s CID=%s)"%(self.loc[0], self.loc[1], self.loc[2], self.loc[3])
gsm = GSM_loc()
bt=BTReader()
bt.connect()
i=0
while (i<15):
print gsm.upd()
print bt.readposition()
i+=1
bt.close()
-
Quick hack
2005-01-18, 09:02
#2
Registered User
From (http://www.python.org/doc/current/li...-examples.html)
==
import httplib, urllib
# replace with whatever you want POSTed...
gps_coords = urllib.urlencode({'param_1': 'value_1', 'param_2': 'value_2'})
# form contents
headers = {"Content-type": "application/x-www-form-urlencoded", "Accept": "text/plain"}
conn = httplib.HTTPConnection("location-server.com:80")
conn.request("POST", "/cgi-bin/collect_loc", gps_coords, headers)
response = conn.getresponse()
data = response.read()
conn.close()
==
Both httplib and urllib are shipped with PyS60. Of course, you will have to create the CGI script separately.
Cheers,
Sandeep
http://sandeep.weblogs.us/
Last edited by sandeep; 2005-01-18 at 09:17.
-
Thanks!
2005-01-18, 10:29
#3
Registered User
Hi Sandeep,
Thanks a lot! I'll post my resulting work.
Bye.
-Luca
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules