2017-04-07 1 views
1

나는 노출 된 dbus 메서드를 호출하기 위해 Python으로 작성된 dbus 클라이언트를 가지고 있습니다. 코드는 다음과 같습니다회신을 기대하지 않고 Dbus 메서드 호출

bus = dbus.SessionBus() 
service = bus.get_object(PANEL_BUS_NAME, PANEL_BUS_OBJECT) 
__panelInterface = dbus.Interface(service, PANEL_BUS_INTERFACE) 
__panelInterface.SetBTConnected() 

문제는 처음 메서드를 호출 할 때 노출 된 메서드가 실행되는 데 시간이 걸리는 것입니다. 내 이해 dbus는 메서드의 프로세스에서 응답하지만 시간이 초과됩니다. 그러나, 내가 이해하지 못하는 것은 다시 호출되면 메소드가 즉시 실행된다는 것입니다. 즉, 블록은 처음에만 발생합니다. 누군가가 나에게이 행동에 대한 치료법을 추천하고 그것을 이해하도록 도울 수 있습니까 ??

+0

당신이하고있는 일에 대한 완전한 예를 제공해 줄 수 있습니까? 무엇보다도 위의 코드가 있습니까? 또한 파이썬 바인딩을 사용하고 있습니까? – JoGr

답변

0

Bustle 또는 dbus-monitor과 같은 D-Bus 분석 도구로이를 디버깅하는 것이 유용 할 수 있습니다. 그들은 메시지와 답장이 보내질 때, 오류가 반환되었는지 여부, 그리고 시간이 소비 된 곳을 알려줄 것입니다.

관련 문제