revid + psi: getting metadata from replies now

This commit is contained in:
saxon 2018-12-13 15:51:51 +10:30
parent 35d86b559d
commit b78904ac72
2 changed files with 18 additions and 3 deletions

View File

@ -148,8 +148,22 @@ func (s *httpSender) send() error {
if send {
reply, _, err = s.client.Send(netsender.RequestRecv, pins)
}
err = extractMeta(reply, s)
if err != nil {
return err
}
return err
}
func extractMeta(r string, s *httpSender) error {
dec, err := netsender.NewJsonDecoder(r)
if err != nil {
s.log(smartlogger.Warning, pkg+"Could not decode JSON to get metadata")
}
// Extract time from reply
t, err := netsender.ExtractJsonInt(reply, "ts")
t, err := dec.Int("ts")
if err != nil {
s.log(smartlogger.Warning, pkg+"No timestamp in reply")
} else {
@ -157,14 +171,14 @@ func (s *httpSender) send() error {
}
// Extract gps from reply
g, err := netsender.ExtractJsonString(reply, "ll")
g, err := dec.String("ll")
if err != nil {
s.log(smartlogger.Warning, pkg+"No gps in reply")
} else {
mts.GpsMeta(g)
}
return err
return nil
}
func (s *httpSender) release() {

View File

@ -121,6 +121,7 @@ func addCrc(out []byte) []byte {
out = updateCrc(out)
return out
}
func updateCrc(out []byte) []byte {
crc32 := crc32_Update(0xffffffff, crc32_MakeTable(bits.Reverse32(crc32.IEEE)), out[1:len(out)-4])
out[len(out)-4] = byte(crc32 >> 24)