私は組み込みLinuxの近くですべてのWifiベアラを取得するためにQtベースの小さなアプリケーションを作成しています。そのためにQtDBusでConnmanを使用しています。すべての無線LAN信号を取得するために、qdbusxml2cppアプリケーションを使用して自動生成されたアダプタコードを取得しようとしています。これを行うには、私は次のコンテンツとサービスのた記述としてconnman-dbus.confファイルを使用しています:qdbusxml2cppが正しく動作していない
<!DOCTYPE busconfig PUBLIC "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
"http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
<busconfig>
<policy user="root">
<allow own="net.connman"/>
<allow send_destination="net.connman"/>
<allow send_interface="net.connman.Agent"/>
<allow send_interface="net.connman.Counter"/>
<allow send_interface="net.connman.Notification"/>
<allow send_interface="net.connman.Manager"/>
</policy>
<policy at_console="true">
<allow send_destination="net.connman"/>
</policy>
<policy context="default">
<deny send_destination="net.connman"/>
</policy>
</busconfig>
その後、私は、次のコマンドを実行します。
$ qdbusxml2cpp -N -v /etc/dbus-1/system.d/connman-dbus.conf -a connmandbusexample.h:connmandbusexample.cpp
しかし、結果をこれは、次のコードです:
connmandbusexample.cpp
/*
* This file was generated by qdbusxml2cpp version 0.8
* Command line was: qdbusxml2cpp -N -v /etc/dbus-1/system.d/connman-dbus.conf -a connmandbusexample.h:connmandbusexample.cpp
*
* qdbusxml2cpp is Copyright (C) 2015 Digia Plc and/or its subsidiary(-ies).
*
* This is an auto-generated file.
* Do not edit! All changes made to it will be lost.
*/
#include "connmandbusexample.h"
#include <QtCore/QMetaObject>
#include <QtCore/QByteArray>
#include <QtCore/QList>
#include <QtCore/QMap>
#include <QtCore/QString>
#include <QtCore/QStringList>
#include <QtCore/QVariant>
connmandbusexample.h
/*
* This file was generated by qdbusxml2cpp version 0.8
* Command line was: qdbusxml2cpp -N -v /etc/dbus-1/system.d/connman-dbus.conf -a connmandbusexample.h:connmandbusexample.cpp
*
* qdbusxml2cpp is Copyright (C) 2015 Digia Plc and/or its subsidiary(-ies).
*
* This is an auto-generated file.
* This file may have been hand-edited. Look for HAND-EDIT comments
* before re-generating it.
*/
#ifndef CONNMANDBUSEXAMPLE_H_1462807819
#define CONNMANDBUSEXAMPLE_H_1462807819
#include <QtCore/QObject>
#include <QtDBus/QtDBus>
QT_BEGIN_NAMESPACE
class QByteArray;
template<class T> class QList;
template<class Key, class Value> class QMap;
class QString;
class QStringList;
class QVariant;
QT_END_NAMESPACE
#endif
あなたが見ることができるように、このコードは有用ではありませんので、私はqdbusxml2cppと間違って何かをやっている場合、私は思ったんだけど。また、QtDBusを使用するより適切なアプローチでこれを実現できるかどうかはわかりません。最後に、ルート権限で動作していないQtアプリケーションからWi-Fiネットワークに接続することは可能ですか?上記のすべては、このトピックで役立つ非常に関連した質問ですと思います。