Alexander Carver<address@hidden>:
Is it possible to send any SiRF command to a GPS via gpsd or can you
only send certain commands already in the source code? I see the -x
in gpsctl but it's not clear how to send SiRF messages (SiRF isn't
one of the listed examples).
It's not possible to send general control messages from an ordinary
gpsd client. It is possible to do it via the gpsctl utility; you should
look into that.
The reason for this restriction is that the devices gosd manages are shared
resources. The capability to send unrestricyed control messages from a
client could be a tool with which to DOS other users.
I specifically want to send message 133 (0x85) which toggles the
DGPS source of the receiver. I've discovered that my receiver
occasionally loses the SBAS satellite and won't recover it on its
own. However, toggling the source from SBAS to NONE and then back
to SBAS causes it to lock onto the satellite again.
The message is seven bytes long:
MsgID (1 byte unsigned), Source (1 byte unsigned), internal beacon
frequency (4 bytes unsigned), internal beacon bitrate (1 byte
unsigned)
The last two are unused when selecting SBAS and are set to zero so
turning off DGPS should use this message payload (hex spaced out to
show message divisions):
85 00 00000000 00
And turning it back on set to SBAS is:
85 01 00000000 00
Which SiRF is this? I could make this sequence part of the configuration
string set at device wakeup time; that way, if the device had lost the
satellite during a session, it would be re-acquired whenever the device
is reopened by another WATCH.