summaryrefslogtreecommitdiff
path: root/ubxtool
diff options
context:
space:
mode:
authorGary E. Miller <gem@rellim.com>2019-04-11 15:48:50 -0700
committerGary E. Miller <gem@rellim.com>2019-04-11 15:48:50 -0700
commit6f437b8f4da1de53b3275292e361218d0d540714 (patch)
tree459e344cc7086da38cb7f5a5114c22700a6ee91b /ubxtool
parent3228ab692fbdb89f3a1ff4a09f157fa44cb0f6da (diff)
downloadgpsd-6f437b8f4da1de53b3275292e361218d0d540714.tar.gz
ubxtool: Improve decode of UBX-CFG-VALGET.
Diffstat (limited to 'ubxtool')
-rwxr-xr-xubxtool23
1 files changed, 21 insertions, 2 deletions
diff --git a/ubxtool b/ubxtool
index 31870170..4f2093e6 100755
--- a/ubxtool
+++ b/ubxtool
@@ -2017,7 +2017,24 @@ class ubx(object):
# we are at least protver 27
if 27 > opts['protver']:
opts['protver'] = 27
- # FIXME: decode answers
+
+ # duplicated in cfg_valset()
+ m_len -= 4
+ i = 4
+ while 0 < m_len:
+ u = struct.unpack_from('<L', buf, i)
+ m_len -= 4
+ i += 4
+ item = self.cfg_by_key(u[0])
+ cfg_type = self.item_to_type(item)
+
+ size = cfg_type[0]
+ frmat = cfg_type[1]
+ flavor = cfg_type[2]
+ v = struct.unpack_from(frmat, buf, i)
+ s += ('\n item: %s/%#x val: %s' % (item[0], u[0], v[0]))
+ m_len -= size
+ i += size
return s
@@ -2034,6 +2051,8 @@ class ubx(object):
s = ' version: %u layer: %#x transaction %#x reserved: %u\n' % u
s += ' layers: %s, %s' % (self._layers(u[1]),
self._transaction(u[2]))
+
+ # duplicated in cfg_valset()
m_len -= 4
i = 4
while 0 < m_len:
@@ -2268,7 +2287,7 @@ class ubx(object):
if 92 <= m_len:
# version 15
u = struct.unpack_from('<lhH', buf, 81)
- s += ( '\n headVeh %d magDec %d magAcc %u' % u)
+ s += ('\n headVeh %d magDec %d magAcc %u' % u)
return s
def nav_sat(self, buf):