diff options
Diffstat (limited to 'examples/wifi/wifi-cpp')
-rw-r--r-- | examples/wifi/wifi-cpp/doc/images/wifi-cpp.jpg | bin | 41866 -> 0 bytes | |||
-rw-r--r-- | examples/wifi/wifi-cpp/doc/src/wifi-cpp.qdoc | 97 | ||||
-rw-r--r-- | examples/wifi/wifi-cpp/main.cpp | 228 | ||||
-rw-r--r-- | examples/wifi/wifi-cpp/wifi-cpp.pro | 9 |
4 files changed, 0 insertions, 334 deletions
diff --git a/examples/wifi/wifi-cpp/doc/images/wifi-cpp.jpg b/examples/wifi/wifi-cpp/doc/images/wifi-cpp.jpg Binary files differdeleted file mode 100644 index 90feb20..0000000 --- a/examples/wifi/wifi-cpp/doc/images/wifi-cpp.jpg +++ /dev/null diff --git a/examples/wifi/wifi-cpp/doc/src/wifi-cpp.qdoc b/examples/wifi/wifi-cpp/doc/src/wifi-cpp.qdoc deleted file mode 100644 index 334dba7..0000000 --- a/examples/wifi/wifi-cpp/doc/src/wifi-cpp.qdoc +++ /dev/null @@ -1,97 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 Digia Plc -** All rights reserved. -** For any questions to Digia, please use the contact form at -** http://www.qt.io -** -** This file is part of Qt Enterprise Embedded. -** -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise License Agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and Digia. -** -** If you have questions regarding the use of this file, please use -** the contact form at http://www.qt.io -** -****************************************************************************/ -/*! - \title Getting Started with B2Qt.Wifi in C++ - \example wifi/wifi-cpp - \ingroup wifi-examples - \brief Guide to getting started with B2Qt.Wifi using C++. - - \section1 Preparing the Application - - Use the following \c include statement to access the C++ classes: - - \code - #include <B2QtWifi> - \endcode - - Before building your application, add the following statement to your - \c .pro file to link against the B2Qt.Wifi library: - - \code - QT += b2qtwifi - \endcode - - This guide will demonstrate how to create a Qt Widget-based application - that utilizes the B2Qt.Wifi API to set up a wifi network connection. We - will start by looking at how to scan for wifi access points, and how to - display and process this data in the application. At the end of the guide - we will show how to connect directly to a known wifi network configuration. - - \image wifi-cpp.jpg - - \section1 Listing Wifi Networks - - First we need to set up QListView widget which we will use to list wifi - networks that can be detected by the device. The detected network access - points are packed as a list-based data model and can be retrieved using - QWifiManager::networks. Here we also set a custom item delegate and - connect to two QWifiManager signals. - - \snippet wifi/wifi-cpp/main.cpp 0 - - \section1 Creating a Delegate - - The Wifi network model has many data roles that describe the different - properties of Wifi network. This data can be used by an application to list - detailed network information and/or to create QWifiConfiguration objects. - In this example we are interested in the network name. In the paint() - method we check if the network name is equal to the currently active - network connection, and append appropriate network state information. - - \snippet wifi/wifi-cpp/main.cpp 1 - - \section1 Connecting to a Selected Network - - On press of the \uicontrol Connect button, connetToNetwork() slot gets - invoked. In this slot we query network properties for the selected network - and create a QWifiConfiguration object, which we later pass to the - QWifiManager::connect function to set up a connection. During this - operation any changes in the network state is reported by QWifiManager - asynchronously. - - \snippet wifi/wifi-cpp/main.cpp 2 - - We use QWifiManager::NetworkState change event handler to trigger the - repainting of the delegate. This way, we can present a current network - state to the user. - - \snippet wifi/wifi-cpp/main.cpp 4 - - \section1 Connecting To a Known Network - - If you already know the network configuration beforehand, you can skip the - network scanning, listing and selection steps. This can be a valid use-case - for devices that do not change their physical location. - - QWifiManager::BackendState change events are reported asynchronously, so we - must connect the signal to a slot that connects to the network access point - after the backend initialization is complete. - - \snippet wifi/wifi-cpp/main.cpp 3 - */ diff --git a/examples/wifi/wifi-cpp/main.cpp b/examples/wifi/wifi-cpp/main.cpp deleted file mode 100644 index 54a35e9..0000000 --- a/examples/wifi/wifi-cpp/main.cpp +++ /dev/null @@ -1,228 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 Digia Plc -** All rights reserved. -** For any questions to Digia, please use the contact form at -** http://www.qt.io -** -** This file is part of Qt Enterprise Embedded. -** -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise License Agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and Digia. -** -** If you have questions regarding the use of this file, please use -** the contact form at http://www.qt.io -** -****************************************************************************/ -#include <QtCore> -#include <QtWidgets> -#include <B2QtWifi> - -class NetworkDelegate : public QStyledItemDelegate -{ - Q_OBJECT -//! [1] -public: - NetworkDelegate(QObject *parent = 0) - : QStyledItemDelegate(parent) - { - m_wifiManager = QWifiManager::instance(); - } - - void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const - { - QStyledItemDelegate::paint(painter, option, index); - painter->save(); - QString ssid = qvariant_cast<QString>(index.data(QWifiManager::SSID)); - if (ssid == m_wifiManager->currentSSID()) - ssid += networkStateText(); - painter->drawText(option.rect, Qt::AlignVCenter, ssid); - painter->restore(); - } - - QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const - { - QFont font = QApplication::font(); - QFontMetrics fm(font); - return QSize(option.rect.width(), fm.height() * 2); - } - -protected: - QString networkStateText() const - { - QWifiManager::NetworkState networkState = m_wifiManager->networkState(); - switch (networkState) { - case QWifiManager::Disconnected: - return QStringLiteral(""); - break; - case QWifiManager::Authenticating: - return QStringLiteral(" (authenticating)"); - break; - case QWifiManager::HandshakeFailed: - return QStringLiteral(" (handshake failed)"); - break; - case QWifiManager::ObtainingIPAddress: - return QStringLiteral(" (obtaining IP address)"); - break; - case QWifiManager::DhcpRequestFailed: - return QStringLiteral(" (dhcp request failed)"); - break; - case QWifiManager::Connected: - return QStringLiteral(" (connected)"); - break; - } - } -//! [1] -private: - QWifiManager *m_wifiManager; -}; - -class WifiSettings : public QWidget -{ - Q_OBJECT -public: - //! [0] - WifiSettings(QWidget *parent = 0) - : QWidget(parent) - , m_listView(new QListView(this)) - , m_networkDelegate(new NetworkDelegate(this)) - { - m_wifiManager = QWifiManager::instance(); - m_listView->setModel(m_wifiManager->networks()); - m_listView->setItemDelegate(m_networkDelegate); - - connect(m_wifiManager, &QWifiManager::backendStateChanged, - this, &WifiSettings::handleBackendStateChanged); - connect(m_wifiManager, &QWifiManager::networkStateChanged, - this, &WifiSettings::handleNetworkStateChanged); - - setupWidgets(); - } - //! [0] -protected: - void setupWidgets() - { - m_backendStateReporter = new QLabel(this); - handleBackendStateChanged(m_wifiManager->backendState()); - m_passwordInput = new QLineEdit(this); - m_passwordInput->setPlaceholderText("Enter Password"); - - QPushButton *connectButton = new QPushButton("Connect", this); - QPushButton *disconnectButton = new QPushButton("Disconnect", this); - QPushButton *startBackendButton = new QPushButton("Switch On", this); - QPushButton *stopBackendButton = new QPushButton("Switch Off", this); - - connect(startBackendButton, &QPushButton::clicked, m_wifiManager, &QWifiManager::start); - connect(stopBackendButton, &QPushButton::clicked, m_wifiManager, &QWifiManager::stop); - connect(connectButton, &QPushButton::clicked, this, &WifiSettings::connectToNetwork); - connect(disconnectButton, &QPushButton::clicked, m_wifiManager, &QWifiManager::disconnect); - - QGridLayout *grid = new QGridLayout(this); - grid->addWidget(connectButton, 0, 0); - grid->addWidget(disconnectButton, 0, 1); - grid->addWidget(startBackendButton, 1, 0); - grid->addWidget(stopBackendButton, 1, 1); - grid->addWidget(m_listView, 2, 0, 1, 2); - grid->addWidget(m_passwordInput, 3, 0, 1, 2); - grid->addWidget(m_backendStateReporter, 4, 0, 1, 2); - setLayout(grid); - } - - -protected slots: - void handleBackendStateChanged(QWifiManager::BackendState state) - { - switch (state) { - case QWifiManager::Running: - m_wifiManager->setScanning(true); - m_backendStateReporter->setText("wifi backend state: <b>running<\b>"); - break; - case QWifiManager::NotRunning: - m_wifiManager->setScanning(false); - m_backendStateReporter->setText("wifi backend state: <b>stopped<\b>"); - break; - case QWifiManager::Initializing: - m_backendStateReporter->setText("wifi backend state: <b>initializing<\b>"); - break; - case QWifiManager::Terminating: - m_backendStateReporter->setText("wifi backend state: <b>terminating<\b>"); - break; - } - } - //! [4] - void handleNetworkStateChanged(QWifiManager::NetworkState state) - { - m_listView->viewport()->repaint(); - } - //! [4] - //! [2] - void connectToNetwork() - { - QModelIndex index = m_listView->currentIndex(); - QWifiConfiguration config; - if (index.isValid()) { - QString ssid = qvariant_cast<QString>(index.data(QWifiManager::SSID)); - config.setSsid(ssid); - config.setPassphrase(m_passwordInput->text()); - m_wifiManager->connect(&config); - } - } - //! [2] -private: - QWifiManager *m_wifiManager; - QListView *m_listView; - NetworkDelegate *m_networkDelegate; - QLabel *m_backendStateReporter; - QLineEdit *m_passwordInput; -}; - -//! [3] -class WifiConnectionHandler : public QObject -{ - Q_OBJECT -public: - WifiConnectionHandler() - { - // replace with a valid network configuration - m_config.setSsid("my-local-wifi"); - m_config.setPassphrase("helloworld123"); - m_config.setProtocol("WPA"); - m_manager = QWifiManager::instance(); - if (m_manager->backendState() == QWifiManager::Running) { - m_manager->connect(&m_config); - } else { - connect(m_manager, &QWifiManager::backendStateChanged, - this, &WifiConnectionHandler::connectToNetwork); - m_manager->start(); - } - } - -protected slots: - void connectToNetwork(QWifiManager::BackendState state) - { - if (state == QWifiManager::Running) - m_manager->connect(&m_config); - } - -private: - QWifiManager *m_manager; - QWifiConfiguration m_config; -}; -//! [3] - -int main(int argc, char *argv[]) -{ - QApplication a(argc, argv); - - WifiSettings wifiSettingsWindow; - wifiSettingsWindow.show(); - - // disable the above 2 lines before enabling this - // WifiConnectionHandler connectionHandler; - - return a.exec(); -} - -#include "main.moc" diff --git a/examples/wifi/wifi-cpp/wifi-cpp.pro b/examples/wifi/wifi-cpp/wifi-cpp.pro deleted file mode 100644 index f457df3..0000000 --- a/examples/wifi/wifi-cpp/wifi-cpp.pro +++ /dev/null @@ -1,9 +0,0 @@ -QT += core widgets b2qtwifi - -TARGET = wifi-cpp -TEMPLATE = app - -target.path = /data/user/qt/$$TARGET -INSTALLS += target - -SOURCES += main.cpp |