如何使用 txdbus 等待 dbus 信号触发?

时间:2021-05-09 12:11:34

标签: python twisted

例如https://raw.githubusercontent.com/cocagne/txdbus/master/doc/tutorial_examples/signal_client

#!/usr/bin/env python
from twisted.internet import reactor, defer
from txdbus import client, error

def onSignal( tickCount ):
    print 'Got tick signal: ', tickCount
    
@defer.inlineCallbacks
def main():

    try:
        cli   = yield client.connect(reactor)
        robj  = yield cli.getRemoteObject( 'org.example', '/Signaller' )
        robj.notifyOnSignal( 'tick', onSignal )
    except error.DBusException, e:
        print 'DBus Error:', e
                
reactor.callWhenRunning(main)
reactor.run()

在上面的代码示例中,我们如何等待使用twisted调用onSignal方法?

1 个答案:

答案 0 :(得分:0)

您无需“等待”onSignal 被调用。相反,onSignal您如何等待来自 DBus 的 tick 信号。

您希望在每个刻度上发生什么?将该代码放入 onSignal。等待onSignal后你想发生什么?将该代码放入 onSignal