Qtとwpa_supplicant.confを使用してWi-Fiをスキャンして接続します。

Qtとwpa_supplicant.confを使用してWi-Fiをスキャンして接続します。

私はARM LinuxデバイスでQtベースのアプリケーションを書いています。最も効率的な方法でWi-Fi機能を作成したいです。私は現在、QProcessを使用してwpa_supplicant.confのネットワークブロックを変更し、wlan0インターフェイスを起動してアクセスポイントに接続するスクリプトを実行しています。 shスクリプトは次のとおりです。

sed -i 's: ssid=.*: ssid="Name":' /etc/wpa_supplicant.conf
sed -i 's: psk=.*: psk="Password":' /etc/wpa_supplicant.conf
ifdown wlan0
ifup wlan0

ネットワークをスキャンするには、次のコマンドを実行する別のQProcessを実行します。

iw wlan0 scan | grep SSID

Qtと組み込み開発が初めてなので、いくつかの質問をしたいと思います。 QProcessを使用することに加えて、Qtでスクリプトをより効率的に実行するより良い方法はありますか? QProcessの使用量が多すぎるのはいくらですか?私はwpa_cliにも触れて使用したいのですが、QtやC ++アプリケーションを介してそれと対話する方法がわかりません。誰もがスキャンを処理し、Wi-Fiに接続するためのより良い方法(または一般的にQtでLinuxでコマンドを実行するための最良の方法)を教えてくれればとても感謝します。ありがとう

ベストアンサー1

QProcessは、外部プログラムを実行する最も簡単な方法です。私はそれを頻繁に使用し、Linuxでコマンドの出力を解析します。

はい、QNetworkを使用してネットワークに直接接続する別の方法があります。この方法も非常に簡単で難しいことではありません。

QTとQNetworkを使用してネットワークをスキャンするには、このリンクを参照してください。 https://stackoverflow.com/questions/45486924/qt-scanning-wi-fi-by-qnetworkaccessmanagerそしてこのリンク https://github.com/abdularis/Wifi-Client-Scannerこの https://github.com/nlharri/WifiScannerLinux

wpaアプリケーションに接続する必要がある場合は、qtを使用して接続する方法を示す良いプログラムがあります。 https://github.com/loh-tar/wpa-cute

WPA申請者の詳細については、以下を参照してください。 https://wiki.archlinux.org/index.php/WPA_supplicant

最後に、親指を立ててください。

おすすめ記事