繁体   English   中英

对DBus感到困惑

[英]Confused about DBus

好的,所以,我在这里可能会错过一些情节,但确实需要一些帮助。 我对开发等非常陌生,现在已经到了需要实现DBus(或其他程序间通信)的地步。 我发现这个概念有点难以理解。

我的实现是使用HTML网站更改某些变量以在另一个程序中使用,从而允许该程序在其工作中动态变化。 我正在使用Raspbian在树莓派PI上执行此操作。 我正在运行一个网络服务器来托管我的网站,而这正是造成混乱的原因。

据我了解,DBus运行一项服务,该服务允许您从另一个程序中的一个程序调用方法。 那么这是否意味着我的网站需要运行DBUS服务以允许我从其中调用方法到我的程序中? 为了使事情更加复杂,我使用Python进行编码,因此不确定是否可以在我的网站上运行Python脚本来运行DBUS服务。 使用JavaScript会更好吗?

对我而言,最合乎逻辑的解决方案是运行单个DBUS服务,该服务以某种方式从不同程序中导入方法,并且其他想要运行这些方法的人可以查询该服务。 那可能吗?

帮助将不胜感激! 先感谢您!

  • 那么这是否意味着我的网站需要运行DBUS服务以允许我从其中调用方法到我的程序中?

是的,dbus后台进程(守护程序)将在您的Web服务器上运行。 实际上,dbus提供了两个守护程序。 一个是系统守护程序,它允许对象接收系统信息(例如,示例的打印机可用性),第二个是应用程序IPC守护程序的常规用户应用程序。 这是您肯定要用于不同应用程序进行通信的第二个守护程序。

  • 我使用Python进行编码,因此不确定是否可以在我的网站上运行Python脚本,该脚本将允许我运行DBUS服务。

使用python没问题; dbus具有许多语言的绑定(例如Java,perl,ruby,c ++,Python)。 dbus对象可以映射到python对象。

  • 最合乎逻辑的解决方案是运行单个DBUS服务,该服务以某种方式从不同程序中导入方法,并且其他想要运行这些方法的人可以查询该服务。 那可能吗?

正确-dbus提供了一种机制,客户端进程将通过该机制创建一个或多个dbus对象,这些对象允许该进程将其他服务提供给其他支持dbus的进程。

听起来您应该编写一个隔离的D-Bus服务以充当数据存储,并在脚本中与其进行同步通信以写入和读取值。 您可以使用shelve保留服务调用之间的值。

在本教程中 ,“进行方法调用”部分介绍了同步调用,而“导出对象”部分介绍了编写大多数D-Bus服务的过程。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM