GPS compatible modems.

Dan Williams dcbw at redhat.com
Thu Dec 18 07:34:47 PST 2014


On Thu, 2014-12-18 at 11:09 +0000, Marc Murphy wrote:
> > -----Original Message-----
> > From: David McCullough [mailto:david.mccullough at accelecon.com]
> > 
> > 
> > Marc Murphy wrote the following:
> > > This is all working well with the MC7710 and the MU609.  I have an app to
> > use the dbus i/f and enable/disable the modem and get NMEA traces.
> > >
> > > I do see a difference in operation though between the Sierra and the
> > Huawei.
> > >
> > > In the app I have written I have a context that gets the modem info
> > > over dbus and configures it to give GPS;
> > >
> > > 		ctx->modem = mm_object_peek_modem (MM_OBJECT
> > (modems->data));
> > >
> > > 		ctx->object = MM_OBJECT (modems->data);
> > >
> > > 		    ctx->modem_location = mm_object_get_modem_location
> > > (ctx->object);
> > >
> > >
> > > 		    if (mm_modem_get_state (mm_object_peek_modem
> > (ctx->object)) < MM_MODEM_STATE_ENABLED) {
> > > 		        gboolean result;
> > > 		        g_printerr ("error: modem not enabled yet... lets try and
> > > enable it\n");
> > >
> > > 		        g_debug ("enabling modem...");
> > > 		        if(mm_modem_enable_sync (ctx->modem, NULL,
> > &error))
> > > 			        g_debug ("enabled modem...");
> > > 		    }
> > > 		mm_modem_location_setup_sync (ctx->modem_location,
> > > 							 sources,
> > >
> > mm_modem_location_signals_location (ctx->modem_location),
> > > 							 NULL,
> > > 							 &error);
> > >
> > > Once it is all  set up then I request the location
> > >
> > >     mm_modem_location_get_full_sync (ctx->modem_location,
> > >                                      &location_3gpp,
> > >                                      &location_gps_nmea,
> > >                                      &location_gps_raw,
> > >                                      &location_cdma_bs,
> > >                                      NULL,
> > >                                      &error);
> > >
> > > And extract the NMEA trace I am interested in.
> > >
> > > With the Sierra each 5 second poll of the location info I see the NMEA trace
> > is updating as I can see the time increasing:
> > > Took 9.000000 seconds to find modem
> > > Took 1 seconds to enable modem
> > > Got location $GPRMC,091806.0,A,XXXXXXXXXXXXXXXXXXXXXXX,,,A*44
> > >
> > > Took 160 seconds to get lock
> > > Got location $GPRMC,091811.0,A, XXXXXXXXXXXXXXXXXXXXXXX,,,A*40
> > >
> > > Got location $GPRMC,091816.0,A, XXXXXXXXXXXXXXXXXXXXXXX,,,A*40
> > >
> > > Got location $GPRMC,091821.0,A, XXXXXXXXXXXXXXXXXXXXXXX,,,A*47
> > >
> > > With the Huawei each 5 second poll of the location info I see the NMEA
> > trace is static:
> > 
> > 
> > I think when I setup the Huawei code I hardcoded the command to the
> > modem to only send updates every 30 seconds.  There is no update-now
> > option IIRC and 30 seconds seemed like a fair enough compromise.
> > 
> > Look for "^WPDFR=65535,30" in plugins/huawei/mm-broadband-modem-
> > huawei.c.`
> > 
> That would explain a lot...  I have been using the mmcli as well to test the location
> and the the updates are ~30secs sometimes more.
> 
> I will have a play with the WPDFR settings.  Thank you.

It seems we should have made the Location.Setup() call take some
arguments, like update interval :)  I think it would be useful to
configure this via the D-Bus interface when enabling location, since
different clients might have different requirements on update speed.

Dan

> Marc
> 
> > > error: modem not enabled yet... lets try and enable it Took 21.500000
> > > seconds to find modem Took 1 seconds to enable modem Got location
> > > $GPRMC,092239.0,A, XXXXXXXXXXXXXXXXXXXXXXX,,,A*7C
> > >
> > > Took 55 seconds to get lock
> > > Got location $GPRMC,092240.0,A, XXXXXXXXXXXXXXXXXXXXXXX,,,A*7C
> > >
> > > Got location $GPRMC,092240.0,A, XXXXXXXXXXXXXXXXXXXXXXX,,,A*7C
> > >
> > > Got location $GPRMC,092240.0,A, XXXXXXXXXXXXXXXXXXXXXXX,,,A*7C
> > >
> > > If I keep killing and running the app it will update the location each time.  It
> > is almost as if I have to kill the dbus context and start again for each fetch of
> > location.... is this the way it is intended to be used or is there an issue here ?
> > 
> > I have no idea about this,  this is all at a higher level than the Huawei code,
> > unless you are just hitting the 30 second thing ?
> > 
> > Cheers,
> > Davidm
> > 
> > 
> > > -----Original Message-----
> > > From: Aleksander Morgado [mailto:aleksander at aleksander.es]
> > > Sent: 03 December 2014 07:42
> > > To: Marc Murphy
> > > Cc: Dan Williams; Yegor Yefremov; David McCullough;
> > > modemmanager-devel at lists.freedesktop.org
> > > Subject: Re: GPS compatible modems.
> > >
> > > On Tue, Dec 2, 2014 at 10:10 PM, Marc Murphy <marcmltd at marcm.co.uk>
> > wrote:
> > > > Thanks for the feedback, now to write the app to get the NMEA from the
> > MM dbus instead of the ttyUSB.
> > >
> > > For the Huawei MU609 you'll see that the modem also reports
> > "unmanaged GPS" capabilities in ModemManager. That means that you can
> > use ModemManager to just start/stop GPS, and still read NMEA traces
> > yourself with another application through the TTY (i.e. ModemManager
> > won't parse and expose NMEA traces).
> > >
> > > The Sierra MC7710 could do this, but right now it defaults to use QMI for
> > everything (i.e. no TTY with NMEA traces involved at all).
> > >
> > > --
> > > Aleksander
> > > https://aleksander.es
> > 
> > --
> > David McCullough,  david.mccullough at accelecon.com,   Ph: 0410 560 763
> _______________________________________________
> ModemManager-devel mailing list
> ModemManager-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/modemmanager-devel




More information about the ModemManager-devel mailing list