Commit Graph

627 Commits

Author SHA1 Message Date
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 ba4e131c89 qmi-codegen: handle string arrays
Like these:

struct {
	uint8 num_instances;
	struct {
		uint8 length;
		char data[];
	};
};
2012-09-08 10:34:13 +02:00
Dan Williams e6f08631b7 qmi-codegen: handle fixed-size arrays
Like IPv6 addresses.
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 e7a72f26b6 qmi-codegen: handle variable-sized string length prefix fields
Most string lengths are UINT8, but some (WDS Get Current Settings
PCSCF Domain Name List, for example) are UINT16.
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 2c741dd8ef docs: add WMS documentation 2012-09-06 19:53:02 +02:00
Aleksander Morgado 1f4e3593b5 message: handle management of WMS messages 2012-09-06 10:28:54 +02:00
Aleksander Morgado f258d22187 device: handle creation of WMS clients 2012-09-06 10:28:54 +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 c9e0877226 docs: organize chapter index 2012-09-06 10:28:53 +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 334177e678 qmi-codegen: allow 'max-size' in output string variables
If 'max-size' is given for an output string variable, we will read up to the
specified number of bytes from the buffer. This will help us handle cases where
the firmware of the device doesn't match what it sends with what it wanted to
send (e.g. IMEI longer than 15 characters).
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
Aleksander Morgado 3683cfb398 device: ensure the IO data callback gets removed when disposing the object 2012-09-02 15:25:26 +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 9addcd303f device: fix FD handling, must be signed
Before the fix:

$> qmicli -d /dev/cdc-wdm0 --dms-get-capabilities
(qmicli:9081): GLib-WARNING **: giounix.c:411Error while getting flags for FD: Bad file descriptor (9)
(qmicli:9081): GLib-WARNING **: Invalid file descriptor.
(qmicli:9081): GLib-WARNING **: Invalid file descriptor.
error: couldn't open the QmiDevice: Cannot open QMI device: Cannot set non-blocking channel: Bad file descriptor

After the fix:

$> qmicli -d /dev/cdc-wdm0 --dms-get-capabilities
error: couldn't open the QmiDevice: Cannot open QMI device: Cannot open device file '/dev/cdc-wdm0': Permission denied
2012-08-31 16:29:24 +02:00
Aleksander Morgado 8ae80af6e7 nas: no bits set in `QmiNasRadioTechnologyPreference' means 'auto' 2012-08-31 00:56:29 +02:00
Aleksander Morgado b03ca502f4 nas: consolidate `QmiNasActiveBand' names 2012-08-30 19:17:19 +02: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
Aleksander Morgado b1d52264fa build: minor indentation fixes 2012-08-28 14:47:29 +02:00
Aleksander Morgado d473f9ab35 wds: implement "Verbose Call End Reason" types 2012-08-28 13:18:56 +02:00
Aleksander Morgado d39c997771 wds: implement "Call End Reason" type 2012-08-28 13:18:56 +02:00
Aleksander Morgado c18cd871b6 libqmi-glib: register errors in DBus 2012-08-27 16:46:13 +02:00
Aleksander Morgado a605d46a3d wds: implement "Set IP Family" request/response 2012-08-27 15:22:13 +02:00
Aleksander Morgado 5dc6797111 cli: avoid redeclaration of variables 2012-08-23 16:20:19 +02:00
Aleksander Morgado b08738cb39 dms: don't name variable as 'time' 2012-08-23 16:16:36 +02:00
Aleksander Morgado 091c83884b cli,qmi-network: `--start-network' now requires the APN passed as a string 2012-08-23 16:15:03 +02:00
Dan Williams 88290226e7 cli: fix CDMA serving system Network ID label 2012-08-22 20:26:52 -05:00
Dan Williams 8d0abc1bdd build: enable more compiler warnings: --enable-more-warnings=yes/no/error 2012-08-22 20:26:51 -05:00
Dan Williams bc1d88da9e build: add --with-traces=yes to enable -DMESSAGE_ENABLE_TRACE 2012-08-22 20:26:51 -05:00
Aleksander Morgado d5288d8c13 wds: add missing TLVs to 'Start Network' and 'Stop Network' 2012-08-21 18:06:18 +02:00
Aleksander Morgado a35de0d3bf cli: add missing line breaks 2012-08-09 17:24:48 +02:00