So here is a log of gpsd (gpsd: 3.20.1~dev (revision release-3.20-295-gbf61e6e92)) connected to a Trimble GPS unit in RTK mode (both via its config and the indicator light on the yellow can that says it has RTK fix):
$ python3
Python 3.6.9 (default, Nov 7 2019, 10:44:02)
[GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import gps as gps
>>> g = gps.gps()
>>> g.stream(flags = gps.WATCH_ENABLE)
>>> g.next()
<dictwrapper: {'class': 'VERSION', 'release': '3.20.1~dev', 'rev': 'release-3.20-295-gbf61e6e92', 'proto_major': 3, 'proto_minor': 14}>
>>> g.next()
<dictwrapper: {'class': 'DEVICES', 'devices': [{'class': 'DEVICE', 'path': 'tcp://
192.168.142.1:5017', 'activated': '2020-03-16T20:43:07.589Z'}]}>
>>> g.next()
<dictwrapper: {'class': 'WATCH', 'enable': True, 'json': True, 'nmea': False, 'raw': 0, 'scaled': False, 'timing': False, 'split24': False, 'pps': False}>
>>> g.next()
<dictwrapper: {'class': 'DEVICE', 'path': 'tcp://
192.168.142.1:5017', 'driver': 'NMEA0183', 'activated': '2020-03-16T20:43:07.706Z'}>
>>> g.next()
<dictwrapper: {'class': 'TPV', 'device': 'tcp://
192.168.142.1:5017', 'status': 3, 'mode': 3, 'lat': 41.575029639, 'lon': -93.750597473, 'altHAE': 249.044, 'altMSL': 280.486, 'alt': 280.486, 'magvar': 0.7, 'geoidSep': -31.442, 'eph': 11.4, 'dgpsAge': 5.6, 'dgpsSta': 2}>
>>> g.next()
<dictwrapper: {'class': 'TPV', 'device': 'tcp://
192.168.142.1:5017', 'status': 2, 'mode': 3, 'time': '2020-03-16T20:43:07.600Z', 'ept': 0.005, 'lat': 41.575029639, 'lon': -93.750597473, 'altHAE': 249.044, 'altMSL': 280.486, 'alt': 280.486, 'track': 128.798, 'magtrack': 140.3968, 'magvar': 11.6, 'speed': 0.006, 'geoidSep': -31.442, 'eph': 11.4, 'dgpsAge': 5.6, 'dgpsSta': 2}>
>>> g.next()
<dictwrapper: {'class': 'TPV', 'device': 'tcp://
192.168.142.1:5017', 'status': 2, 'mode': 3, 'time': '2020-03-16T20:43:07.700Z', 'ept': 0.005, 'lat': 41.575029648, 'lon': -93.750597471, 'altHAE': 249.04, 'altMSL': 280.482, 'alt': 280.482, 'track': 0.0, 'magtrack': 11.5988, 'magvar': 11.6, 'speed': 0.002, 'climb': -0.04, 'geoidSep': -31.442, 'eph': 11.4, 'dgpsAge': 5.7, 'dgpsSta': 2}>
>>> g.next()
<dictwrapper: {'class': 'TPV', 'device': 'tcp://
192.168.142.1:5017', 'status': 2, 'mode': 3, 'time': '2020-03-16T20:43:07.800Z', 'ept': 0.005, 'lat': 41.575029644, 'lon': -93.750597459, 'altHAE': 249.04, 'altMSL': 280.482, 'alt': 280.482, 'track': 0.0, 'magtrack': 11.5988, 'magvar': 11.6, 'speed': 0.003, 'climb': 0.0, 'geoidSep': -31.442, 'eph': 11.4, 'dgpsAge': 5.8, 'dgpsSta': 2}>
>>> g.next()
<dictwrapper: {'class': 'TPV', 'device': 'tcp://
192.168.142.1:5017', 'status': 2, 'mode': 3, 'time': '2020-03-16T20:43:07.900Z', 'ept': 0.005, 'lat': 41.575029637, 'lon': -93.750597451, 'altHAE': 249.043, 'altMSL': 280.485, 'alt': 280.485, 'track': 289.457, 'magtrack': 301.0558, 'magvar': 11.6, 'speed': 0.006, 'climb': 0.03, 'geoidSep': -31.442, 'eph': 11.4, 'dgpsAge': 5.9, 'dgpsSta': 2}>
>>> g.next()
According to this output, the status starts at '3' and then goes to '2' - no RTK fix as I understand the status field - and remains that way forever.
However if I pipe the GGA raw NMEAs:
$ gpspipe -R
192.168.142.1:5017 | grep GGA
$GNGGA,204206.40,4134.50177979,N,09345.03585798,W,4,20,0.6,280.498,M,-31.442,M,9.4,0002*63
$GNGGA,204206.50,4134.50177815,N,09345.03585736,W,4,20,0.6,280.506,M,-31.442,M,9.5,0002*6A
$GNGGA,204206.60,4134.50177990,N,09345.03585809,W,4,20,0.6,280.504,M,-31.442,M,9.6,0002*67
$GNGGA,204206.70,4134.50177982,N,09345.03585839,W,4,20,0.6,280.505,M,-31.442,M,9.7,0002*66
$GNGGA,204206.80,4134.50177854,N,09345.03585696,W,4,20,0.6,280.493,M,-31.442,M,9.8,0002*69
$GNGGA,204206.90,4134.50178005,N,09345.03585920,W,4,20,0.6,280.496,M,-31.442,M,9.9,0002*6D
$GNGGA,204207.00,4134.50177857,N,09345.03585723,W,4,20,0.6,280.495,M,-31.442,M,10.0,0002*5A
$GNGGA,204207.10,4134.50177650,N,09345.03585859,W,4,20,0.6,280.505,M,-31.442,M,10.1,0002*59
$GNGGA,204207.20,4134.50177814,N,09345.03585917,W,4,20,0.6,280.508,M,-31.442,M,10.2,0002*51
$GNGGA,204207.30,4134.50177753,N,09345.03585967,W,4,20,0.6,280.509,M,-31.442,M,10.3,0002*5B
$GNGGA,204207.40,4134.50177538,N,09345.03585740,W,4,20,0.6,280.503,M,-31.442,M,5.4,0002*61
The fix quality status is locked on 4 or RTK Fix.
The only NMEAs this unit emits is GGA and RMC (it's configurable and verified via gpspipe).
What am I doing wrong?
-aps