Commit Graph

159 Commits

Author SHA1 Message Date
Aleksander Morgado 72c14ee8b0 nas: implement "Get Tx Rx Info" request/response 2013-06-18 15:26:58 +02:00
Dan Williams 70ef65c843 nas: add Network Time indication 2013-05-31 13:44:52 -05:00
Dan Williams 243fddb23b dms: DMS v1.1 supports GetOperatingMode/SetOperatingMode
My Gobi 1K with 2008-era firmware and DMS v1.1 supports these, so
whatever docs said they required DMS 1.2 are wrong.
2013-04-19 17:27:02 -05:00
Aleksander Morgado 8045711f3c dms: activation code string needs explicit 1-byte length prefix
Reported by Arman Uguray <armansito@google.com>
2013-03-07 09:09:54 +01:00
Dan Williams a95ec833dc nas: add Get CDMA Position Info
Not sure what NAS version supports it, but at least NAS 1.3 is required.
2012-10-31 14:12:59 -05:00
Dan Williams 38171469d3 wds: annotate GetCurrentSettings with correct byte orders
IPv6 addresses are always sent in network byte order.  Oddly,
IPv4 addresses appear to be sent as LE uint32s rather than
BE/network byte order.
2012-10-23 17:25:05 +02:00
Aleksander Morgado 1fd2385c52 wds: "Start Network" may be aborted 2012-10-10 21:14:48 +02:00
Aleksander Morgado fbd231e4ad nas: "Network Scan" may be aborted 2012-10-10 21:14:48 +02:00
Aleksander Morgado 13b53c6a1d libqmi-glib,qmi-codegen: timed out operations will issue an ABORT message
Messages can now be tagged with a special 'abort' keyword, so that whenever the
message times out we issue a new ABORT command to cancel the specific timed out
request.

This support is currently only available for the NAS and WDS services, which are
the ones supporting ABORT for their long-running operations.
2012-10-10 21:14:48 +02:00
Aleksander Morgado 6b6c4906b6 dms: activation state related commands already in DMS 1.3 2012-10-10 15:02:55 +02:00
Aleksander Morgado 50ea36c699 nas: Ec/Io given always as a signed integer 2012-09-27 14:28:32 +02:00
Aleksander Morgado 4adcc1aa77 dms: implement "Set Firmware Preference" request/response 2012-09-26 09:46:13 +02:00
Aleksander Morgado 6b776b3d63 dms: implement "Delete Stored Image" request/response 2012-09-26 09:46:13 +02:00
Aleksander Morgado fb70a5f785 dms: implement "Get Stored Image Info" request/response 2012-09-26 09:45:43 +02:00
Aleksander Morgado 9ba71b7472 dms: implement "List Stored Images" request/response 2012-09-26 09:45:42 +02:00
Aleksander Morgado 45b3dfc67f dms: implement "Get Firmware Preference" request/response 2012-09-26 09:45:42 +02:00
Aleksander Morgado 201e0cea5f qmi-codegen: for strings, use 'size-prefix-format' instead of 'length-prefix-size'
Use the new 'size-prefix-format' property to specify whether the length prefix
variable is a 'guint8' or a 'guint16'.

We therefore consolidate the way how this length prefix variable is specified in
both arrays and strings.

So, instead of:
    "length-prefix-size" : "16"

We now just do:
    "size-prefix-format" : "guint16"
2012-09-19 12:06:28 +02:00
Aleksander Morgado 7345ca6aaf qmi-codegen: for arrays, use a new 'size-prefix-format' instead of 'array-size'
The 'array-size' property was used to define an implicit variable to be found at
the beginning of every array. This property expected a dictionary with one
single 'format' key.

Instead of this setup, create a new 'size-prefix-format' property which directly
expects the format string of the variable to be used as array-length indicator.

So, instead of:
    "array-size" : { "format" : "guint16" }

We can now just use:
    "size-prefix-format" : "guint16"

Also, remove the explicit size definitions when the format is "guint8", as that
is the default already when none specified and the array is not of fixed size.
2012-09-19 12:06:28 +02:00
Aleksander Morgado 243686a044 pds: NMEA string length is given as a 16 bit uint in the extended version
This seems quite useless, as we know that the maximum NMEA trace length is 200
characters, but anyway.
2012-09-18 13:14:38 +02:00
Aleksander Morgado f4321400c1 pds: implement "Get/Set Auto Tracking State" requests/responses 2012-09-18 13:14:38 +02:00
Aleksander Morgado 202acdbdd2 pds: implement "Get/Set GPS Service State" requests/responses 2012-09-18 13:14:38 +02:00
Aleksander Morgado c8137b6d0f pds: new TODO to include parsing all TLVs in the "Event Report" indication
The GPS module can give us already processed information in addition to the raw
NMEA traces, including GPS/UTC date, latitude/longitude, DOPs...

Add a TODO task to process these additional TLVs, which will require changes in
the codegen in order to handle single-precision and double-precision float
number reading.
2012-09-18 13:14:38 +02:00
Aleksander Morgado 33132db8e4 pds: start implementing "Event Report" indication
Currently just some of the TLVs with the raw NMEA traces.
2012-09-18 13:14:38 +02:00
Aleksander Morgado 9347e8df7f pds: implement "Set Event Report" request/response 2012-09-18 13:14:38 +02:00
Aleksander Morgado 3d26f41300 pds: setup generation of the PDS service support
Including "PDS Reset".
2012-09-18 13:14:38 +02:00
Aleksander Morgado ab43bccdf4 wds: remove `QmiWdsAuthenticationPreference'
Use the more generic `QmiWdsAuthentication' flags instead, which match properly.
2012-09-08 10:39:33 +02:00
Dan Williams b165e39a9e wds: implement "Get Current Settings" request/response 2012-09-08 10:34:13 +02:00
Dan Williams fe5d329e42 wds: Extended Technology Preference is a guint16
Not a guint8; flattened Gobi API says:

enum eQMIWDSExtendedTechPrefs:UINT16
{
   ...
}

Plus the values are wrong, so fix that.
2012-09-08 10:34:13 +02:00
Dan Williams af5966923f ctl: implement Set Data Format command 2012-09-08 10:34:13 +02:00
Aleksander Morgado 33cf86b703 wms: "Send From Memory Storage" only introduced in 1.2 it seems 2012-09-07 11:28:00 +02:00
Aleksander Morgado 9b65c877ca wms: 'Message ID' TLV is supposed to be mandatory, but it really may not be
See the following ModemManager logs:

ModemManager[7942]: [/dev/cdc-wdm0] Sending message...
<<<<<< QMUX:
<<<<<<   length  = 47
<<<<<<   flags   = 0x00
<<<<<<   service = "wms"
<<<<<<   client  = 16
<<<<<< QMI:
<<<<<<   flags       = "none"
<<<<<<   transaction = 16
<<<<<<   tlv_length  = 35
<<<<<<   message     = "Raw Send" (0x0020)
<<<<<< TLV:
<<<<<<   type       = "Raw Message Data" (0x01)
<<<<<<   length     = 32
<<<<<<   value      = 06:1D:00:00:01:00:09:81:36:39:53:39:F6:00:00:12:C8:37:3B:0C:42:BE:D9:61:D0:30:2C:0F:8F:DF:EC:30
<<<<<<   translated = [ format = '6' raw_data = '{ [0] = '0 ' [1] = '1 ' [2] = '0 ' [3] = '9 ' [4] = '129 ' [5] = '54 ' [6] = '57 ' [7] = '83 ' [8] = '57 ' [9] = '246 ' [10] = '0 ' [11] = '0 ' [12] = '18 ' [13]
= '200 ' [14] = '55 ' [15] = '59 ' [16] = '12 ' [17] = '66 ' [18] = '190 ' [19] = '217 ' [20] = '97 ' [21] = '208 ' [22] = '48 ' [23] = '44 ' [24] = '15 ' [25] = '143 ' [26] = '223 ' [27] = '236 ' [28] = '48 '}'
 ]

ModemManager[7942]: [/dev/cdc-wdm0] Received message...
>>>>>> QMUX:
>>>>>>   length  = 19
>>>>>>   flags   = 0x80
>>>>>>   service = "wms"
>>>>>>   client  = 16
>>>>>> QMI:
>>>>>>   flags       = "response"
>>>>>>   transaction = 16
>>>>>>   tlv_length  = 7
>>>>>>   message     = "Raw Send" (0x0020)
>>>>>> TLV:
>>>>>>   type       = "Result" (0x02)
>>>>>>   length     = 4
>>>>>>   value      = 00:00:00:00
>>>>>>   translated = SUCCESS
2012-09-06 19:53:03 +02:00
Aleksander Morgado 94c5f373a8 wms: implement "Send From Memory Storage" request/response 2012-09-06 19:53:03 +02:00
Aleksander Morgado e47dc3b633 wms: all basic WMS commands were available already in WMS 1.0 2012-09-06 19:53:02 +02:00
Aleksander Morgado 550067b381 wms: implement "Get Routes" request/response 2012-09-06 19:53:02 +02:00
Aleksander Morgado 279dcc8f09 wms: implement "Set Routes" request/response 2012-09-06 19:53:02 +02:00
Aleksander Morgado 2e0b20b4be wms: implement "List Messages" request/response 2012-09-06 19:53:02 +02:00
Aleksander Morgado a31e7d7892 wms: implement "Get Message Protocol" request/response 2012-09-06 19:53:02 +02:00
Aleksander Morgado d3debea3d5 wms: implement "Delete" request/response 2012-09-06 19:53:02 +02:00
Aleksander Morgado 39c44acbd6 wms: implement "Modify Tag" request/response 2012-09-06 19:53:02 +02:00
Aleksander Morgado 38602a1192 wms: implement "Raw Read" request/response 2012-09-06 19:53:02 +02:00
Aleksander Morgado 74cd71c101 wms: implement "Raw Write" request/response 2012-09-06 19:53:02 +02:00
Aleksander Morgado fab0a21ac2 wms: implement "Raw Send" request/response 2012-09-06 19:53:02 +02:00
Aleksander Morgado 77fd9daac7 wms: implement "Event Report" indication 2012-09-06 19:53:02 +02:00
Aleksander Morgado fc634a1f86 wms: implement "Set Event Report" request/response 2012-09-06 19:53:02 +02:00
Aleksander Morgado 787b02287f wms: setup generation of the WMS service support
Including "WMS Reset".
2012-09-06 10:28:54 +02:00
Aleksander Morgado 5906ac7b98 dms: set 'max-size' of 15 bytes for the IMEI retrieved in "Get IDs"
Some devices will report incorrect IMEI values when retrieving IDs. We can
detect a wrong IMEI because the size of the string returned must not exceed
15 characters.

Example trace of incorrect IMEI value reported:

QMUX:
  length  = 47
  flags   = 0x80
  service = "dms"
  client  = 3
QMI:
  flags       = "response"
  transaction = 6
  tlv_length  = 35
  message     = "Get IDs" (0x0025)
TLV:
  type       = "Result" (0x02)
  length     = 4
  value      = 00:00:00:00
  translated = SUCCESS
TLV:
  type       = "Imei" (0x11)
  length     = 25
  value      = 33:35:33:36:31:33:30:34:38:38:30:35:31:39:39:02:B0:1C:0E:02:84:E3:A6:01:3D
  translated = 353613048805199���=
2012-09-04 14:28:00 +02:00
Aleksander Morgado f72cbc9c5f build: include NAS json database in dist 2012-09-03 20:55:51 +02:00
Dan Williams d15264faa8 nas: Get/Set Technology Preference part of NAS 1.0, not 1.7
The TP stuff has been around since the beginning, actually.
2012-08-31 10:45:13 -05:00
Aleksander Morgado 5a3fdc736c nas: implement "Get RF Band Information" request/response 2012-08-30 17:35:22 +02:00
Aleksander Morgado f741da1041 nas: fix RF Band info array size indicator type 2012-08-30 17:33:33 +02:00