xref: /OK3568_Linux_fs/app/forlinx/flapp/src/plugins/wifi/wpaclicmd.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1 #ifndef WPACLICMD_H
2 #define WPACLICMD_H
3 
4 #include <QObject>
5 #include <QThread>
6 #include "processhandler.h"
7 class ScanInfo{
8 public:
9     QString bssid;
10     int frequency ;
11     int signalLevel;
12     QString  flags;
13     QString ssid;
14     int state=0;
15     bool operator ==(const ScanInfo &info)
16     {
17         return info.ssid == ssid  && state == info.state;
18     }
clear()19     void clear(){
20         ssid.clear();
21     }
isEmpty()22     bool isEmpty(){return ssid.isEmpty();}
23 } ;
24 
25 
26 class WpaclicmdPrivate;
27 class Wpaclicmd : public QThread
28 {
29     Q_OBJECT
30 public:
31     explicit Wpaclicmd(QObject *parent = nullptr);
32     ~ Wpaclicmd();
33 
34     //        m_wpaCli->startWpa_supplicant("/lib/modules/4.9.170/8821cs.ko",
35     //                                      "8821cs",
36     //                                      "nl80211",
37     //                                      "wlan0");
38     //启动Wpa_supplicant服务.
39     void startWpa_supplicant(const QString & ko,
40                              const QString &ModuleName,
41             const QString &driverName, const QString &cardName);
42 
43     //启动 wap_cli 客户.
44     void setStart(bool bStart);
45     void connectWifi(const QString &ssid, const QString &psk);
46     QString disconnectWifi();
47 
48 protected:
49     void run();
50 
51 Q_SIGNALS:
52     void wpa_supplicantStartFinish();
53     void wifiScanResult(const QList<ScanInfo> & info);
54     void wifiStatus(const QMap<QString, QString > &info);
55 
56 
57 private:
58     QString scan();
59     QString scanResults();
60     QString status();
61     QString addNetwork();
62     QString removeNetWork();
63     QString setSSID(const QString &ssid);
64     QString setPSK(const QString &psk);
65     QString selectNetwork(const QString &network);
66     void udhcpc(const QString & cardName);
67     QString saveConfig();
68     QString execCmd(const QString &cmd);
69 
70 private:
71     WpaclicmdPrivate *m_d;
72 };
73 
74 #endif // WPACLICMD_H
75