Reputation: 81
Hardware and Software: GPS NEO 7m, Raspberry PI3, ArchARM
I'm trying to read GPS coordinates [via UART] using this Python program:
from sys import argv
import gps
import requests
#Listen on port 2947 of gpsd
session = gps.gps("localhost", "2947")
session.stream(gps.WATCH_ENABLE | gps.WATCH_NEWSTYLE)
while True :
#Read GPS Coordinates
report = session.next()
try :
if report["class"] == "TPV" :
print(str(rep.lat) + "," + str(rep.lon))
except Exception as e :
print("Got exception " + str(e))
I have configured everything correctly, because I get the coordinates doing cgps -s. When I try to run the program above I get:
Traceback (most recent call last):
File "/home/alarm/program_python/testGPS.py", line 14, in <module>
session = gps.gps("localhost", "2947")
File "/usr/lib/python3.9/site-packages/gps/gps.py", line 580, in __init__
gpscommon.__init__(self, host=host, port=port,
File "/usr/lib/python3.9/site-packages/gps/client.py", line 66, in __init__
self.connect(self.host, self.port)
File "/usr/lib/python3.9/site-packages/gps/client.py", line 92, in connect
self.sock.connect(sa)
OSError: [Errno 101] Network is unreachable
The procedure I made:
This works fine.
Running the python program gives me the error above
I don't know what to do more. What am I missing?
file gpsd.socket:
[Unit]
Description=GPS (Global Positioning System) Daemon Sockets
[Socket]
ListenStream=/var/run/gpsd.sock
#ListenStream=[::1]:2947
#ListenStream=127.0.0.1:2947
# To allow gpsd remote access, start gpsd with the -G option and
# uncomment the next two lines:
ListenStream=[::]:2947
ListenStream=0.0.0.0:2947
SocketMode=0600
BindIPv6Only=yes
[Install]
WantedBy=sockets.target
Thanks a lot
Upvotes: 0
Views: 226
Reputation: 81
Ok, I found the problem. It seems that gps module only runs with Python2
So, I did a clean arch arm instalation with Python2 and pip2, installed gps using sudo pip2 install gps and it works like a charm
If I run python3 the modules aren't found
Upvotes: 0