1 /* 依赖 hostapd_cli 处理WIFI Ap信息*/ 2 #ifndef HOSTAPDCLI_H 3 #define HOSTAPDCLI_H 4 #include "processhandler.h" 5 #include <QObject> 6 7 8 typedef struct WIFI_INFO_AP{ 9 QString ssid; 10 int signal; 11 QString rx_bytes; 12 QString tx_bytes; 13 QString connected_time; 14 15 bool operator ==(const WIFI_INFO_AP &info) 16 { 17 return info.ssid == ssid; 18 } clearWIFI_INFO_AP19 void clear(){ 20 ssid.clear(); 21 } isEmptyWIFI_INFO_AP22 bool isEmpty(){return ssid.isEmpty();} 23 } ScanInfoAp; 24 25 class HostapdcliPrivate; 26 class Hostapdcli: public QObject,public ProcessHandler 27 { 28 Q_OBJECT 29 public: 30 Hostapdcli(QObject *parent=nullptr); 31 ~Hostapdcli(); 32 33 // m_hostapdcil->start_hostapd("/lib/modules/4.9.170/8821cs.ko", 34 // "8821cs", 35 // "nl80211", 36 // "wlan0", 37 // "172.16.0.50"); 38 void start_hostapd(const QString & ko, 39 const QString &ModuleName, 40 const QString &driverName, 41 const QString &cardName, 42 const QString &ip); 43 void stop_hostapd(); 44 45 void setStart(bool bStart); 46 47 void setWifiName(const QString &ssid); 48 49 void setWifiPassword(const QString &passphrase); 50 51 void setInterface(const QString &interface); 52 53 void reload(); 54 55 void allsta(); 56 57 Q_SIGNALS: 58 void hospapdStartFinish(); 59 void newConnected(const QString &ssid); 60 void lostConnected(const QString &ssid); 61 void newStaInfo(const QList<ScanInfoAp> &infos); 62 63 protected: 64 65 void processMessage(const QString &d) override; 66 friend class HostapdcliPrivate; 67 private: 68 HostapdcliPrivate *m_d; 69 }; 70 71 #endif // HOSTAPDCLI_H 72