gpsd_proto 0.4.1

The gpsd_proto module contains types and functions to connect to gpsd to get GPS coordinates and satellite information.
Documentation
# gpsd_proto   [![Build Status]][travis] [![Latest Version]][crates.io] [![Latest Docs]][docs.rs] [![Coverage Status]][codecov.io]

[Build Status]: https://travis-ci.org/bwolf/gpsd_proto.svg?branch=master
[travis]: https://travis-ci.org/bwolf/gpsd_proto
[Latest Version]: https://meritbadge.herokuapp.com/gpsd_proto
[crates.io]: https://crates.io/crates/gpsd_proto
[Latest Docs]: https://docs.rs/gpsd_proto/badge.svg
[docs.rs]: https://docs.rs/gpsd_proto/
[Coverage Status]: https://codecov.io/gh/bwolf/gpsd_proto/branch/master/graph/badge.svg
[codecov.io]: https://codecov.io/gh/bwolf/gpsd_proto

<!--- Module documentation of src/lib.rs follows --->

The `gpsd_proto` module contains types and functions to connect to
[gpsd](http://catb.org/gpsd/) to get GPS coordinates and satellite
information.

`gpsd_proto` uses a plain TCP socket to connect to `gpsd`, reads
and writes JSON messages. The main motivation to create this crate
was independence from C libraries, like `libgps` (provided by
`gpsd`) to ease cross compiling.

A example demo application is provided in the `example` sub
directory. Check the repository for up to date sample code.

# Testing

`gpsd_proto` has been tested against `gpsd` version 3.17 on macOS
with a GPS mice (Adopt SkyTraQ Venus 8) and the iOS app
[GPS2IP](http://www.capsicumdreams.com/iphone/gps2ip/).

Feel free to report any other supported GPS by opening a GitHub
issue.

# Reference documentation

Important reference documentation of `gpsd` are the [JSON
protocol](http://www.catb.org/gpsd/gpsd_json.html) and the [client
HOWTO](http://catb.org/gpsd/client-howto.html).

# Development notes

Start `gpsd` with a real GPS device:

```sh
/usr/local/sbin/gpsd -N -D4 /dev/tty.SLAB_USBtoUART
```

Or start [gpsd](http://catb.org/gpsd/gpsd.html) with a TCP stream to a remote GPS:

```sh
/usr/local/sbin/gpsd -N -D2 tcp://<IP>:<PORT>
```

Test the connection to `gpsd` with `telnet localhost 2947` and send the string:

```text
?WATCH={"enable":true,"json":true};
```