Simplify of the availablePortsByUdev()
authorDenis Shienkov <denis.shienkov@gmail.com>
Sun, 1 Jun 2014 14:48:59 +0000 (14:48 +0000)
committerThe Qt Project <gerrit-noreply@qt-project.org>
Sat, 7 Jun 2014 12:16:57 +0000 (14:16 +0200)
commit6aa21015ea0a956d8a563dd3b52f4701368b4f2d
treef81763c861b459285a218964badd9ff3f388251b
parentd598a00e823d8509fc67fc2452dcaf2939092804
Simplify of the availablePortsByUdev()

There is no sense to use udev_device_get_subsystem() for comparing with
the predetermined names of subsystems (like "pnp", "usb" and so on).
This idea was preliminary and required further revising after
accumulation of some statistic.

The main ideas in favor of refactoring are given below:

* It seems that reasonable to use the "ID_MODEL", "ID_VENDOR" and others
identifiers to query of properties for all types of serial ports. We
lose nothing, because in the worst case the getUdevPropertyValue()
function will simply return an empty string, as before.

* Earlier we excluded from the list all ports which have a subsystem
with the "platform" name. Practice showed that for these devices is used
the serial8250 driver. Therefore it is reasonable to exclude this type
of devices by the name of drivers instead of by the name of subsystems.

Also are made related changes:

* Is added the resolving of chars for the new udev_device_get_driver()
function

* The functions of getting properties are wrapped for reduction of
length up to 100 characters.

Tested on ArchLinux 64-bit with the on-board, PL2303 serial devices
using Qt4 and then Qt5.

Tested build on Android x86 using Qt5.

Change-Id: I1a66164ca1893180e1ed97524cff98b4a933a63b
Reviewed-by: Sergey Belyashov <Sergey.Belyashov@gmail.com>
Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
src/serialport/qserialportinfo_unix.cpp
src/serialport/qtudev_p.h