Форум сайта python.su
Купил дешевый (китайский ?) GPS блютусный приемник, почти noname.
Хотелось бы на Питоне набросать автоматическую запись NMEA-0831 с gzipаньем на флешку, чтобы
потом грузить данные на ПК и на их основе генерировать карты (собирать статистику по трекам,
для часто повторяющихся траекторий рисовать толстые линии, и накладывать все это на отсканированные
карты при необходимости).
В идеале вообще сляпать на Питоне фриварный тулкит для Симбиана – навигатор с 3Д отображением (SLES на Nokia E61
должен потянуть), средства для “топосъемки” на ходу типа выбрал в меню пунктик, объехал участок на велосипеде,
и в БД добавиля полигон с полями типа (адрес, ФИО хозяина, “яблоневый сад”, “должен 150 р за воду”
Офлайн
Не понял вопроса. Чего надо-то? Связаться с ним по синезубу?
Начинание конечно хорошее. :)
Офлайн
получилось сразу как открыл доку, теперь буду копить статистику (трассы) и возиться с их фильтрацией – приемник при слабом сигнале начинает нести ахинею в виде дикой болтанки координат
Офлайн
GPSlogger.py
from socket import *
from time import *
sock=socket(AF_BT,SOCK_STREAM)
gps=bt_discover()
sock.connect((gps[0],gps[1]['SPP slave']))
dat=open('E:/data/GPS.%.4i%.2i%.2i_%.2i%.2i.dat'%localtime()[:5],'w')
while 1:
t=sock.recv(0x100)
print t
dat.write(t) ; dat.flush()
Офлайн
вывод треков через виндозный gnuplot: GPSplotter.py
import os,re
last=[]
toplot=[]
for i in os.listdir('.'):
if re.match(r'GPS\.\d+_\d+\.dat',i):
df='%s.trace'%re.findall(r'(.+)\.dat',i)[0] ; toplot.append(df) ; dat=open(df,'w')
for rec in open(i).readlines():
try:
t=re.findall(r'(\d+\.\d+),([NS]),(\d+\.\d+),([WE])',rec)[0]
except:
pass
else:
if t != last:
last=t
X=float(t[2])/100
if t[3]!='E':
X=-X
Y=float(t[0])/100
if t[1]!='N':
Y=-Y
dat.write('%.6f %.6f\n'%(X,Y))
dat.close()
plot=open('MAP.plot','w')
t='plot '
for i in toplot:
t+='"%s" w l,'%i
plot.write(t[:-1]+'\n')
plot.write('pause(-1)\n')
plot.close()
Офлайн
PonyatovА как сделать что б через USB находил GPS?
GPSlogger.pyfrom socket import *
from time import *
sock=socket(AF_BT,SOCK_STREAM)
gps=bt_discover()
sock.connect((gps[0],gps[1]['SPP slave']))
dat=open('E:/data/GPS.%.4i%.2i%.2i_%.2i%.2i.dat'%localtime()[:5],'w')
while 1:
t=sock.recv(0x100)
print t
dat.write(t) ; dat.flush()
Офлайн
bigbigedВы про windows? Тогда, насколько я знаю, gps приемник эмулируется com портом, читайте с него.
А как сделать что б через USB находил GPS?
Офлайн