gpsd-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [gpsd-users] Sending SiRF commands to GPS receiver


From: Alexander Carver
Subject: Re: [gpsd-users] Sending SiRF commands to GPS receiver
Date: Sat, 25 Feb 2012 22:25:50 -0800
User-agent: Mozilla/5.0 (Windows NT 5.1; rv:10.0.2) Gecko/20120216 Thunderbird/10.0.2

On 2/25/2012 22:17, Eric S. Raymond wrote:
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.

I did ask about gpsctl. When I say 'via gpsd', I mean exactly that, using gpsd as the gateway for gpsctl. :)

My question was how to do it with gpsctl since the examples given don't specify how to do it with SiRF messages. It shows examples for other types of devices but not SiRF.


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.


It's a Globalsat 212 but the SiRF version is 2.3.2. I start gpsd with the -G command right now so it's always awake but once in a while I need to kick it so I need to understand how to send the command via gpsctl.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]