使用 libdbus-c++ 获得 DBus::Path - 下一步是啥?

     2023-04-14     181

关键词:

【中文标题】使用 libdbus-c++ 获得 DBus::Path - 下一步是啥?【英文标题】:Got a DBus::Path with libdbus-c++ - what next?使用 libdbus-c++ 获得 DBus::Path - 下一步是什么? 【发布时间】:2013-05-04 03:24:21 【问题描述】:

我有一个简短的测试程序,用于研究如何将 D-Bus 与 libdbus-c++ 库一起使用。我正在尝试连接到wpa_supplicant D-Bus API(记录在here),以便阅读WiFi AP 列表及其优势。

在this guide 之后,我使用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;

但是,我不知道下一步该做什么。目的是调用fi.w1.wpa_supplicant1.InterfaceScan()方法。

【问题讨论】:

【参考方案1】:

它遵循与您调用fi::w1::wpa_supplicant1.GetInterface 类似的模式;即,我将创建另一个继承自 fi::w1::wpa_supplicant1::Interface_proxyDBus::IntrospectableProxyDBus::ObjectProxy 的类(例如 WPASI)。

假设两个对象(wpad 和界面)在同一个服务上,您将创建这个新类的实例,如下所示:

WPASI wpasi( bus, path, "fi.w1.wpa_supplicant1" );

然后像往常一样拨打wpasi.Scan()

【讨论】:

使用 mongodb 获得条件总和

】使用mongodb获得条件总和【英文标题】:getsumconditionalwithmongodb【发布时间】:2018-10-1809:04:53【问题描述】:我需要通过idCategory获得销售总额,知道吗?我在mongondb中有这3个模式category=["id":1,"name":"cat1","id":2,"name":"cat2"]product=["id":... 查看详情

如何使用 CSS 获得特定数字的孩子?

】如何使用CSS获得特定数字的孩子?【英文标题】:HowcanIgetaspecificnumberchildusingCSS?【发布时间】:2011-08-0514:32:30【问题描述】:我有一个table,其tds是动态创建的。我知道如何获得第一个和最后一个孩子,但我的问题是:有没有... 查看详情

使用 Alamofire 获得空响应

】使用Alamofire获得空响应【英文标题】:GettingnullresponseusingAlamofire【发布时间】:2020-04-2718:19:29【问题描述】:"vUserList":["firstName":"Kate","lastName":"Bell","email":"katebell@mac.com","lastName":"Higgins","firstName":"Daniel","email":"dhi 查看详情

如何使用 MySQL 获得高等教育?

】如何使用MySQL获得高等教育?【英文标题】:HowToGetHighestEducationUsingMySQL?【发布时间】:2016-05-0402:13:07【问题描述】:我在尝试获得最高教育结果时遇到问题。例如我有5张桌子。员工+-----------+----------+|STAFFID|NAME|+-----------+-------... 查看详情

为啥我使用 AFNetworking 获得“内容长度”,而使用 Alamofire 却没有?

】为啥我使用AFNetworking获得“内容长度”,而使用Alamofire却没有?【英文标题】:WhyamIgetting\'Content-Length\'withAFNetworkingbutnotwithAlamofire?为什么我使用AFNetworking获得“内容长度”,而使用Alamofire却没有?【发布时间】:2018-10-0223:53:5... 查看详情

使用 Parse.com 获得警告

】使用Parse.com获得警告【英文标题】:GettingWarningwithParse.com【发布时间】:2014-10-0800:58:38【问题描述】:我正在尝试通过enumerateObjectsUsingBlock访问NSArray槽上的每个项目,因为它让我可以使用快速枚举和评估索引。当我使用findObjec... 查看详情

如何使用多级 Dockerfile 获得大量缓存

】如何使用多级Dockerfile获得大量缓存【英文标题】:HowtogetsubstantialcachingwithmultistageDockerfile【发布时间】:2021-12-1101:26:50【问题描述】:目前我有以下Dockerfile:FROMdebian:10asbuilderRUNsleep10COPYinputinput#worldsmosttrivialbuildpipelineRUNcatinput&... 查看详情

如何使用自动布局获得真实大小的 UIView

】如何使用自动布局获得真实大小的UIView【英文标题】:HowtogetrealsizeUIViewwithautolayout【发布时间】:2014-12-2605:45:36【问题描述】:我是一名iOS新开发者。我使用自动布局。我有问题。约束后我无法获得UIView的实际大小。例如,当... 查看详情

Swift:你如何使用 UIPanGestureRecognizer 获得每次触摸的速度?

】Swift:你如何使用UIPanGestureRecognizer获得每次触摸的速度?【英文标题】:Swift:HowdoyougetthevelocityforeachtoucheswithUIPanGestureRecognizer?【发布时间】:2020-03-2621:05:51【问题描述】:我想使用UIPanGestureRecognizer获得每次触摸的速度,就像... 查看详情

SQL - 如何使用 ISO 周获得年周?

】SQL-如何使用ISO周获得年周?【英文标题】:SQL-HowtogettheYear-WeekusingtheISOweeks?【发布时间】:2021-12-1318:12:11【问题描述】:我想使用ISO周数获得年份数-周数(f.i.2021-01)。我确实设法使用以下代码将它们分开:IsoWeek:(datepart(ISOW... 查看详情

使用网格搜索获得最佳模型的“并行”管道

】使用网格搜索获得最佳模型的“并行”管道【英文标题】:"Parallel"pipelinetogetbestmodelusinggridsearch【发布时间】:2017-07-0503:19:27【问题描述】:在sklearn中,可以定义串行管道以获得管道所有连续部分的最佳超参数组合。... 查看详情

markdown如何使用终端获得乐趣。(代码片段)

查看详情

python使用textport获得性能(代码片段)

查看详情

使用策略护照贝宝:未能获得访问令牌

】使用策略护照贝宝:未能获得访问令牌【英文标题】:Usingstrategypassportpaypal:failedtoobtainaccesstoken【发布时间】:2016-07-2914:55:06【问题描述】:护照(JaredHanson),如何通过openID或OAuth使用Paypal?我正在使用passport-paypal-oauth策略(ht... 查看详情

如何使用父枢轴值作为条件获得雄辩的关系

】如何使用父枢轴值作为条件获得雄辩的关系【英文标题】:Howtogeteloquentrelationshipusingparentpivotvalueaswherecondition【发布时间】:2019-11-2110:08:06【问题描述】:我试图在Eloquent中获得hasMany关系,但在where子句中使用父数据透视表的... 查看详情

使用 sklearn 嵌套交叉验证获得最佳参数

】使用sklearn嵌套交叉验证获得最佳参数【英文标题】:Gettingthebestparametersusingsklearnnestedcross-validation【发布时间】:2018-02-0317:13:30【问题描述】:我的理解是否正确,“greed_search.fit(X,Y)”在以下代码中与嵌套CV没有任何关系?这... 查看详情

Android:使用 SurfaceView 重新获得焦点

】Android:使用SurfaceView重新获得焦点【英文标题】:Android:RegainingfocususingSurfaceView【发布时间】:2010-10-1421:54:25【问题描述】:我目前正在熟悉Android,正在使用LunarLander示例。我发现,如果您离开应用程序(例如,点击通话按钮... 查看详情

使用以下查询获得结果的最佳方法是啥

】使用以下查询获得结果的最佳方法是啥【英文标题】:whatisthebestwaytogetresultusingthebelowquery使用以下查询获得结果的最佳方法是什么【发布时间】:2018-08-1308:03:02【问题描述】:以下查询没有显示任何输出,但没有任何错误-selec... 查看详情