summaryrefslogtreecommitdiffstats
path: root/src/imports/wifi/qwifimanager.cpp
Commit message (Collapse)AuthorAgeFilesLines
* [Wifi] graduate from Qt.labs.wifi 0.1 to B2Qt.Wifi 1.0Gatis Paeglis2014-12-021-818/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Make wifi library available from c++ 1) included with "#include <B2QtWifi>", available classes are: QWifiDevice, QWifiManager, QWifiConfiguration - Re-design of API: 1) connectedSSID -> currentSSID get current network from this property instead of networks state change events 2) networkStateChanaged(QWifiNetwork *) -> networkStateChanged(NetworkState) Don't expose QWifiNetwork objects to library users, use data model roles instead, no need to pollute API with "read-only" class. The flaws of exposing QWifiNetwork become apparent when looking at C++ API. 3) New BackendState enum for backend state changes events, backendStateChanged(BackendState) Initializing backend can be lengthy operation and can block GUI thread, same is true for DHCP requests, now these operations are moved into a separate thread and backend state change events are delivered asynchronously. 4) Make WifiManager a Singleton, we don't want several instances starting and stopping system processes and it makes global state handling simpler. 5) Rename Interface -> WifiDevice 6!) Introducing QWifiConfiguration. This abstraction allows for easy way to add new features, whatever we choose to support from: http://w1.fi/cgit/hostap/plain/wpa_supplicant/wpa_supplicant.conf The idea for it is to be a Qt-style wrapper for "network {}" configurations from wpa_supplicant.conf. Also this makes life simpler for developers if they know what network they will be using, they can omit scanning, listing, selecting parts and do something like this instead: WifiConfiguration { id: config ssid: "network name" passphrase: "12345678" } if (!WifiManager.connect(config)) print("failed to connect: " + WifiManager.lastError) - Optimizations: 1) Async. event delivery. 2) eLinux: Don't use "ifup", it is slow because it starts dhcp request even before any network has been configured. Use start-stop-daemon and ifconfig directly. - Bug fixes (many), but most importantly: 1) Get backend state properly when WifiManager is created. - Public header cleanup - Other: 1) Added categorized logging. 2) Methods to get/set wifi interface name. Not exposed to qml. - Missing parts that will be added as a separate patch: * [doc] Getting started guide for c++ and qml * [doc] Update for qml docs and new docs for c++. The current docs are out-of-date. Task-number: QTEE-649 Task-number: QTEE-810 Change-Id: I7dc8709aed2de622828a119749aef31534a4296d Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
* Change copyright noticeRainer Keller2014-10-061-2/+2
| | | | | | | URL points to qt.io Change-Id: If1dcfcef627ee3e2bdde49522ebabcaa66cea29b Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
* Fix timing issues in wifi libraryGatis Paeglis2014-09-191-0/+5
| | | | | | | | | | | | | | | There is a timing issue on a device startup if the default application calls Wifi.Interface.wifiSupported() before qconnectivity service has finished initialize wifi firmware/driver. This results in wifiSupported() returing false on nexus 2013, even if this device supports wifi. The solution is to move firmware/driver initialization to Qt Wifi library. Change-Id: If5b4650181f8b7237bd19f3fc3afbd2c75f759e8 Task-number: QTEE-770 Reviewed-by: Eirik Aavitsland <eirik.aavitsland@digia.com>
* Fix #ifdef for Android detectionGatis Paeglis2014-06-301-1/+3
| | | | | | | | It was wrongly adding "IFNAME=" to wpa_supplicant calls on eLinux, "IFNAME=" is required only for eAndroid. Change-Id: Ic16d321765071df66fbffc1c3d6ce78180eb3b1c Reviewed-by: Eirik Aavitsland <eirik.aavitsland@digia.com>
* Fix Wifi issues on Android 4.4.2Gatis Paeglis2014-06-131-2/+7
| | | | | | | | | | | | | | | | | | | | - Reload Wi-Fi firmware on a device startup (initializes wlan0 interface). - Android version 4.4 (and above) requires IFNAME=wlan0 prefix to the wpa_supplicant calls, without this all calls to the wpa_supplicant fail. - Fix "broken pipe" issue - a message in the logcat when trying to access a broken network. This seems to be a generic message whenever something is wrong with a network configuration (broken routing table, firewall issues, DNS issues etc.). Android uses Connectivity and NetworkManagement JAVA services to handle network configuration - we can use qconnectivity daemon for this. Task-number: QTEE-562 Change-Id: Ib5a93c677439a0e9bf92ede532667542d2bc4bed Reviewed-by: Eirik Aavitsland <eirik.aavitsland@digia.com>
* Set initial "backend ready" state.Gatis Paeglis2014-05-161-3/+5
| | | | | Change-Id: Id1d7141cbbee181235093627cf18180354a78a6b Reviewed-by: Kalle Viironen <kalle.viironen@digia.com>
* Port QtWifi to eLinuxGatis Paeglis2014-05-151-4/+71
| | | | | | | | | | | | | Current limitations: - Wifi adapter must be connected before staring the device (and ethernet cable should not be connected at the same time). "allow-hotplug wlan0" in /etc/network/interfaces doesn't seem to help for detecting wifi adapter on-the-fly. Change-Id: I8be407e9e042fc86136efd3e220680fb2ce64bd6 Reviewed-by: Eirik Aavitsland <eirik.aavitsland@digia.com>
* Merge branch 'stable' into devKalle Viironen2014-04-161-46/+293
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * stable: (22 commits) Add note about headphones on eAndroid Doc: Relocate unmount instructions Doc: Add ChangeLog for Qt Enterprise Embedded 2.1.0 Doc: Disable code highlighting for command-line instructions doc: update version number to 2.1.0 [Wifi] Add new enums and make some API changes Doc: Add documentation on custom build & deploy steps Doc: Create QML Type reference page Doc: Add information about licenses in embedded Linux images Doc: Improve instructions for deploying existing projects Doc: Separate Building Your Own Linux Image into its own page doc: use same directory for yocto and qt doc: config.<MACHINE> needed only once doc: guide for imx53 and how to setup QtCreator Doc: Be more precise on screen content for Nexus7 Add documentation to QtWifi library Doc: Add note for users to not use root for installation doc: describe how to use network connection for adb Rename misleading class name Remove unnecessary roles from QWifiNetworkList ... Conflicts: src/imports/wifi/qwifimanager.cpp Change-Id: Ie7efa2ec91ac154f1e984600f569d9c7f8383627
| * [Wifi] Add new enums and make some API changesGatis Paeglis2014-04-071-50/+79
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Now QtWifi can provide feedback when incorrect password is entered. - networkStateChanged signal provides a reference to the currently active network connection. - bug fixes in QWifiManager::connect Task-number: QTEE-408 Change-Id: Ic7458b864f09aef3cfca40fb081dec45e0bba7db Reviewed-by: Eirik Aavitsland <eirik.aavitsland@digia.com>
| * Doc: Create QML Type reference pageTopi Reinio2014-04-021-2/+5
| | | | | | | | | | | | | | | | | | | | Create a landing page for QtEE-specific QML modules and types. Ensure it links correctly to WiFi Module documentation, and add it to TOC. Change-Id: Ib3edf9ff8e50f11e138a57aabc1f84749ac48e16 Reviewed-by: Gatis Paeglis <gatis.paeglis@digia.com> Reviewed-by: Eirik Aavitsland <eirik.aavitsland@digia.com>
| * Add documentation to QtWifi libraryGatis Paeglis2014-03-191-0/+215
| | | | | | | | | | Change-Id: Ifd71c65a155ad296f3491085e91556eb69226b2b Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
* | Compilation fixes for Android 4.4aavit2014-04-011-6/+68
|/ | | | | Change-Id: I2017665372e190f9d12841820714457967ff3a3a Reviewed-by: Gatis Paeglis <gatis.paeglis@digia.com>
* [Wifi] Fix initialization codeGatis Paeglis2014-02-191-11/+11
| | | | | | | | Bug was that on freshly deployed Boot2Qt image (Nexus) the current code caused a device to restart when trying to launch "launcher settings". Change-Id: I3cc55488a1993c2c74567fccf39edd189b356bac Reviewed-by: Eirik Aavitsland <eirik.aavitsland@digia.com>
* Update copyright yearaavit2014-02-121-1/+1
| | | | | Change-Id: Ic818e79d7bfca04bd8a8d8aa12b3ff70ea26a7a3 Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
* Make sure that wifi event thread doesn't block on exitGatis Paeglis2014-01-301-6/+16
| | | | | | | | | After setting m_exitEventThread to True we need to generate wifi event, otherwise there might be cases that we block in wifi_wait_for_event and wifi event thread never exits. Change-Id: I699ca0c25e23abc7045c1850bf773443bac897e8 Reviewed-by: Eirik Aavitsland <eirik.aavitsland@digia.com>
* Fix dhcp issues and improve public APIGatis Paeglis2014-01-281-151/+177
| | | | | | | | | | | | | | | | | | | | | - Use qconnectivity daemon for dhcp requests. Since dhcp requests are executed in other process we don't block gui thread for this lengthy operation. - Why not to use "do_dhcp_request" - it is a legacy implementation of a dhcp client and is not used anywhere in the Android source code itself. It appears that do_dhcp_request was not removed from the libhardware_legacy to keep compatibility for others, whose code might still depend on it. - Differnet changes to the internal implementation and the public API. - Add 'Interface' singleton type, installing a singleton type allows developers to provide arbitrary functionality to a client without requiring individual instances of the type to be instantiated by the client. We use this to determine if Android has wifi interface. Change-Id: I836f3a2a587b1ebf9f670ed08b10fe3483504b9e Reviewed-by: Eirik Aavitsland <eirik.aavitsland@digia.com>
* Add license headersTopi Reinio2013-12-031-0/+18
| | | | | | | Add an Enterprise License header to source files. Change-Id: I373886dade31ce00d4c10c64ebaf8ba226d5a62d Reviewed-by: Eirik Aavitsland <eirik.aavitsland@digia.com>
* Snapshot of wifi module development, from customer projectaavit2013-08-051-66/+134
| | | | | | | Corresponds to 0c397d2287d33b08501c48e029306b8908583e6a of github repo Change-Id: I60c140513255394b6728ddd0ff85ac79fa5e88b9 Reviewed-by: Eirik Aavitsland <eirik.aavitsland@digia.com>
* Moved wifi to its own importable moduleGunnar Sletta2013-03-211-0/+306