[PATCH] telit: implement the network time interface for Telit modems
Bjørn Mork
bjorn at mork.no
Wed Mar 11 13:17:51 PDT 2015
Aleksander Morgado <aleksander at aleksander.es> writes:
> Hey,
>
> On Wed, Mar 11, 2015 at 6:49 PM, Jason Simmons <jsimmons at chromium.org> wrote:
>> Add support for querying the real-time clock to the Telit plugin.
>> Tested with a Telit HE910 modem.
>> ---
>> plugins/telit/mm-broadband-modem-telit.c | 174
>> ++++++++++++++++++++++++++++++-
>> 1 file changed, 173 insertions(+), 1 deletion(-)
>>
>> diff --git a/plugins/telit/mm-broadband-modem-telit.c
>> b/plugins/telit/mm-broadband-modem-telit.c
>> index 5e1dbff..429a735 100644
>> --- a/plugins/telit/mm-broadband-modem-telit.c
>> +++ b/plugins/telit/mm-broadband-modem-telit.c
>> @@ -29,12 +29,15 @@
>> #include "mm-modem-helpers.h"
>> #include "mm-base-modem-at.h"
>> #include "mm-iface-modem.h"
>> +#include "mm-iface-modem-time.h"
>> #include "mm-broadband-modem-telit.h"
>>
>> static void iface_modem_init (MMIfaceModem *iface);
>> +static void iface_modem_time_init (MMIfaceModemTime *iface);
>>
>> G_DEFINE_TYPE_EXTENDED (MMBroadbandModemTelit, mm_broadband_modem_telit,
>> MM_TYPE_BROADBAND_MODEM, 0,
>> - G_IMPLEMENT_INTERFACE (MM_TYPE_IFACE_MODEM,
>> iface_modem_init));
>> + G_IMPLEMENT_INTERFACE (MM_TYPE_IFACE_MODEM,
>> iface_modem_init)
>> + G_IMPLEMENT_INTERFACE (MM_TYPE_IFACE_MODEM_TIME,
>> iface_modem_time_init));
>>
>>
>> /*****************************************************************************/
>> /* Load access technologies (Modem interface) */
>> @@ -175,6 +178,164 @@ load_access_technologies (MMIfaceModem *self,
>> }
>>
>>
>> /*****************************************************************************/
>> +/* Load network time (Time interface) */
>> +
>> +static gboolean
>> +parse_cclk_reply (const char *response,
>> + gchar **iso8601p,
>> + MMNetworkTimezone **tzp,
>> + GError **error)
>
> Could you put this in a mm-modem-helpers-telit.c|h set of files in the
> telit plugin, and add unit tests? You can check e.g. how that is done
> in the Huawei plugin for the ^TIME response parsers.
Why make this telit-specific? It will likely work with other modules
supporting AT+CCLK. Just tested on my Sierra Wireless EM7345 and it
works fine after first setting AT+CTZU=1 :
bjorn at nemi:~$ mmcli -m 5 --command="AT+CTZU?"
response: '+CTZU: 1'
bjorn at nemi:~$ mmcli -m 5 --command="AT+CCLK?"
response: '+CCLK: "15/03/11,21:15:18+4"'
bjorn at nemi:~$ mmcli -m 5
/org/freedesktop/ModemManager1/Modem/5 (device id '387cb41c2728a4dae8488ffd480c36ad8081139b')
-------------------------
Hardware | manufacturer: 'Generic'
| model: 'MBIM [1199:A001]'
| revision: 'FIH7160_V1.2_WW_01.1415.07'
| supported: 'gsm-umts, lte'
| current: 'gsm-umts, lte'
| equipment id: '013937000536191'
-------------------------
System | device: '/sys/devices/pci0000:00/0000:00:1d.7/usb2/2-4'
| drivers: 'cdc_mbim, cdc_acm'
| plugin: 'Generic'
| primary port: 'cdc-wdm0'
| ports: 'ttyACM3 (at), cdc-wdm0 (mbim), wwan0 (net)'
-------------------------
Numbers | own : 'unknown'
-------------------------
Status | lock: 'none'
| unlock retries: 'sim-pin2 (3)'
| state: 'registered'
| power state: 'on'
| access tech: 'lte'
| signal quality: '16' (cached)
-------------------------
Modes | supported: 'allowed: 2g, 3g, 4g; preferred: none'
| current: 'allowed: 2g, 3g, 4g; preferred: none'
-------------------------
Bands | supported: 'unknown'
| current: 'unknown'
-------------------------
IP | supported: 'ipv4, ipv6, ipv4v6'
-------------------------
3GPP | imei: '013937000536191'
| enabled locks: 'sim, fixed-dialing'
| operator id: '24201'
| operator name: 'N Telenor'
| subscription: 'unknown'
| registration: 'home'
-------------------------
SIM | path: '/org/freedesktop/ModemManager1/SIM/5'
-------------------------
Bearers | paths: 'none'
Bjørn
More information about the ModemManager-devel
mailing list