pdeschen / bancroft Goto Github PK
View Code? Open in Web Editor NEWA gpsd node module client
Home Page: http://blog.rassemblr.com/2011/07/bancroft-non-blocking-gps-daemon-client-for-node-js/
A gpsd node module client
Home Page: http://blog.rassemblr.com/2011/07/bancroft-non-blocking-gps-daemon-client-for-node-js/
http://www.catb.org/gpsd/gpsd_json.html
self.location.track = data.track;
I'm using your module from long time now. It's really good and helpful thank you ๐ .
I need some extra parameters like ept, mode, epx, epv. I'm gettting them with the location data, I think you're filtering it out. Is it possible to add those parameters to the json object?
From time to time, message get splits between two poll. Should I look for \r along with \n?
error! { message: 'bad message format',
cause: '{"class":"SKY","tag":"GSV","device":"/dev/ttyUSB0","xdop":2.11,"ydop":1.30,"vdop":3.10,"tdop":2.74,"hdop":2.00,"gdop":4.88,"pdop":3.70,"satellites":[{"PRN":2,"el":36,"az":254,"ss"',
error:
{ stack: [Getter/Setter],
arguments: [],
type: 'unexpected_eos',
message: [Getter/Setter] } }
error! { message: 'bad message format',
cause: ':45,"used":true},{"PRN":4,"el":81,"az":288,"ss":41,"used":true},{"PRN":10,"el":39,"az":174,"ss":0,"used":false},{"PRN":12,"el":29,"az":313,"ss":39,"used":true},{"PRN":13,"el":5,"az":108,"ss":0,"used":false},{"PRN":17,"el":61,"az":101,"ss":44,"used":true},{"PRN":20,"el":24,"az":47,"ss":0,"used":false},{"PRN":23,"el":12,"az":80,"ss":0,"used":false},{"PRN":27,"el":5,"az":256,"ss":0,"used":false},{"PRN":28,"el":11,"az":165,"ss":0,"used":false}]}\r',
error:
{ stack: [Getter/Setter],
arguments: [ ':' ],
type: 'unexpected_token',
message: [Getter/Setter] } }
With the device I'm using, a GlobalSat BU-353 the time reported by TPV events is actually a string. The device, not knowing the real time, seems to be starting at the date 2009-02-15 at midnight, and incrementing the seconds since the time the device first starts.
Here's some code I altered to log the data:
/* timestamp received is in seconds */ console.log('time', typeof(data.time), data.time); self.location.timestamp = data.time * 1000;
Here's the output:
time string 2009-02-15T00:13:47.050Z time string 2009-02-15T00:13:48.040Z time string 2009-02-15T00:13:49.040Z time string 2009-02-15T00:13:50.050Z
Once the string is multiplied by 1000, it of course becomes NaN.
I'm making this ticket here but I'll submit a fix myself via pull request.
I'm a little concerned about a fix though; my device always starts at the same date, but will other devices start at other arbitrary dates? Has anyone else used this module with different devices and had similar issues? Also, what is the timestamp supposed to be anyway, a UNIX time integer?
It seems that after running my app a few times without establishing any GPS/satellite signal, when the location check runs it crashes and returns the following:
/home/pi/Desktop/picycle/node_modules/bancroft/bancroft.js:85
for ( var index = 0; index < data.satellites.length; index++)
^
TypeError: Cannot read property 'length' of undefined
at Socket.<anonymous> (/home/pi/Desktop/picycle/node_modules/bancroft/bancroft.js:85:61)
at Socket.EventEmitter.emit (events.js:95:17)
at Socket.<anonymous> (_stream_readable.js:746:14)
at Socket.EventEmitter.emit (events.js:92:17)
at emitReadable_ (_stream_readable.js:408:10)
at emitReadable (_stream_readable.js:404:5)
at readableAddChunk (_stream_readable.js:165:9)
at Socket.Readable.push (_stream_readable.js:127:10)
Any ideas?
Via an option, (track
), accumulate waypoints into a kml document.
Is there any option to reconnect if gpsd isn't running?
From my tests I see that if gpsd isn't running before brancroft there is no option to connect again..
I have tried to run your example with a ND-100S GPS receiver, it displays 'connected' in the console however it does not show up message regarding location or satellites.
I have installed GPSD however it returns the following for the 'test':
$ sudo apt-get install gpsd
$ sudo gpsd -D 2 -n -b -N -P /tmp/gpsd.pid /dev/ttyUSB0
gpsd:INFO: launching (Version 3.6)
gpsd:ERROR: can't bind to IPv4 port gpsd, Address already in use
gpsd:ERROR: maybe gpsd is already running!
gpsd:ERROR: can't create IPv6 socket
The second test fails as well:
$ gpspipe -w
-bash: gpspipe: command not found
When running the app this is the output:
pi@raspberrypi ~/Desktop/pi $ sudo nodejs app.js
The "sys" module is now called "util". It should have a similar interface.
connected
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.