summaryrefslogtreecommitdiffstats
path: root/examples/wifi/wifi-cpp
diff options
context:
space:
mode:
Diffstat (limited to 'examples/wifi/wifi-cpp')
-rw-r--r--examples/wifi/wifi-cpp/doc/images/wifi-cpp.jpgbin41866 -> 0 bytes
-rw-r--r--examples/wifi/wifi-cpp/doc/src/wifi-cpp.qdoc97
-rw-r--r--examples/wifi/wifi-cpp/main.cpp228
-rw-r--r--examples/wifi/wifi-cpp/wifi-cpp.pro9
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
deleted file mode 100644
index 90feb20..0000000
--- a/examples/wifi/wifi-cpp/doc/images/wifi-cpp.jpg
+++ /dev/null
Binary files differ
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