2

ライブラリで D-Bus を使用する方法を理解するために使用している短いテスト プログラムがありlibdbus-c++ます。WiFi AP とその強みのリストを読み取るために、 wpa_supplicantD-Bus API (ドキュメントはこちら)に接続しようとしています。

このガイドに従って、プロキシ ヘッダーを生成し、シグナルのスタブ ハンドラーをdbusxx-xml2cpp wpa_supplicant_dbus_service.xml --proxy=proxy.h含むクラスを実装しました。WPAS

class WPAS : public fi::w1::wpa_supplicant1_proxy,
                    public DBus::IntrospectableProxy,
                    public DBus::ObjectProxy
{
public:
     WPAS(DBus::Connection &connection, const char *path, const char *name):
     DBus::ObjectProxy(connection, path, name)
     {
     }

    void InterfaceAdded(const ::DBus::Path& path, const std::map< std::string, ::DBus::Variant >& properties) {}
    void InterfaceRemoved(const ::DBus::Path& path) {}
    void PropertiesChanged(const std::map< std::string, ::DBus::Variant >& properties) {}
};

コードの残りの部分は次のようになります。

#include <dbus-c++/dbus.h>
#include "proxy.h"

DBus::BusDispatcher dispatcher;

int main(int argc, char** argv)
{
    DBus::default_dispatcher = &dispatcher;
    DBus::Connection bus = DBus::Connection::SystemBus();

    DBus::Path path;

    WPAS wpad(bus, "/fi/w1/wpa_supplicant1", "fi.w1.wpa_supplicant1");

    path = wpad.GetInterface("wlan2");

    return 0;
}

しかし、私は次に何をすべきかわかりません。Scan()のメソッドを呼び出すことが目的ですfi.w1.wpa_supplicant1.Interface

4

1 に答える 1