diff --git a/go.mod b/go.mod index 26b2235a..c33bce0a 100644 --- a/go.mod +++ b/go.mod @@ -30,7 +30,6 @@ require ( github.com/hashicorp/mdns v1.0.4 github.com/inconshreveable/go-vhost v0.0.0-20160627193104-06d84117953b github.com/jpillora/go-tld v1.1.1 - github.com/koppacetic/go-gpsd v0.4.0 github.com/kr/binarydist v0.1.0 // indirect github.com/malfunkt/iprange v0.9.0 github.com/mattn/go-isatty v0.0.13 // indirect @@ -39,6 +38,7 @@ require ( github.com/mitchellh/go-homedir v1.1.0 github.com/pkg/errors v0.9.1 // indirect github.com/robertkrimen/otto v0.0.0-20210614181706-373ff5438452 + github.com/stratoberry/go-gpsd v1.0.0 github.com/tarm/serial v0.0.0-20180830185346-98f6abe2eb07 github.com/thoj/go-ircevent v0.0.0-20210723090443-73e444401d64 golang.org/x/net v0.0.0-20210813160813-60bc85c4be6d diff --git a/go.sum b/go.sum index 45e89a1d..69ac92fc 100644 --- a/go.sum +++ b/go.sum @@ -60,8 +60,6 @@ github.com/inconshreveable/go-vhost v0.0.0-20160627193104-06d84117953b h1:IpLPmn github.com/inconshreveable/go-vhost v0.0.0-20160627193104-06d84117953b/go.mod h1:aA6DnFhALT3zH0y+A39we+zbrdMC2N0X/q21e6FI0LU= github.com/jpillora/go-tld v1.1.1 h1:P1ZwtKDHBYYUl235R/D64cdBARfGYzEy1Hg2Ikir3FQ= github.com/jpillora/go-tld v1.1.1/go.mod h1:kitBxOF//DR5FxYeIGw+etdiiTIq5S7bx0dwy1GUNAk= -github.com/koppacetic/go-gpsd v0.4.0 h1:/T3cRvi1ZsWbxCZPB9pPor0HjIw3HuD+MSvaxV5QqQ8= -github.com/koppacetic/go-gpsd v0.4.0/go.mod h1:mhcLuh9X++WHepbL3jEmEwnx1OkQDepZMihv12RO4qk= github.com/kr/binarydist v0.1.0 h1:6kAoLA9FMMnNGSehX0s1PdjbEaACznAv/W219j2uvyo= github.com/kr/binarydist v0.1.0/go.mod h1:DY7S//GCoz1BCd0B0EVrinCKAZN3pXe+MDaIZbXQVgM= github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= @@ -93,6 +91,8 @@ github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZN github.com/robertkrimen/otto v0.0.0-20210614181706-373ff5438452 h1:ewTtJ72GFy2e0e8uyiDwMG3pKCS5mBh+hdSTYsPKEP8= github.com/robertkrimen/otto v0.0.0-20210614181706-373ff5438452/go.mod h1:xvqspoSXJTIpemEonrMDFq6XzwHYYgToXWj5eRX1OtY= github.com/rogpeppe/go-charset v0.0.0-20180617210344-2471d30d28b4/go.mod h1:qgYeAmZ5ZIpBWTGllZSQnw97Dj+woV0toclVaRGI8pc= +github.com/stratoberry/go-gpsd v1.0.0 h1:wDfZWGKlt0oqfi4nLjiqxJeKPIs/qMLbiO5fuUi7QCg= +github.com/stratoberry/go-gpsd v1.0.0/go.mod h1:AiDv9UF/0tKQBVmL7iojbxXhq36cY1/El3AuhfCK2Co= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY= diff --git a/modules/gps/gps.go b/modules/gps/gps.go index 7017b082..5029c1d9 100644 --- a/modules/gps/gps.go +++ b/modules/gps/gps.go @@ -8,7 +8,7 @@ import ( "github.com/bettercap/bettercap/session" "github.com/adrianmo/go-nmea" - "github.com/koppacetic/go-gpsd" + "github.com/stratoberry/go-gpsd" "github.com/tarm/serial" "github.com/evilsocket/islazy/str" @@ -159,7 +159,7 @@ func (mod *GPS) readFromSerial() { } func (mod *GPS) runFromGPSD() { - mod.gpsd.Subscribe("TPV", func(r interface{}) { + mod.gpsd.AddFilter("TPV", func(r interface{}) { report := r.(*gpsd.TPVReport) mod.Session.GPS.Updated = report.Time mod.Session.GPS.Latitude = report.Lat @@ -170,14 +170,15 @@ func (mod *GPS) runFromGPSD() { mod.Session.Events.Add("gps.new", mod.Session.GPS) }) - mod.gpsd.Subscribe("SKY", func(r interface{}) { + mod.gpsd.AddFilter("SKY", func(r interface{}) { report := r.(*gpsd.SKYReport) mod.Session.GPS.NumSatellites = int64(len(report.Satellites)) mod.Session.GPS.HDOP = report.Hdop //mod.Session.GPS.Separation = 0 }) - mod.gpsd.Run() + done := mod.gpsd.Watch() + <-done } func (mod *GPS) Start() error { @@ -205,10 +206,12 @@ func (mod *GPS) Stop() error { if mod.serial != nil { // let the read fail and exit mod.serial.Close() - } else { - if err := mod.gpsd.Close(); err != nil { - mod.Error("failed closing the connection to GPSD: %s", err) - } - } + } /* + FIXME: no Close or Stop method in github.com/stratoberry/go-gpsd + else { + if err := mod.gpsd.Close(); err != nil { + mod.Error("failed closing the connection to GPSD: %s", err) + } + } */ }) }