2010-02-10 4 views
3

DBus를 통해 파이썬 응용 프로그램에서 어떤 신호를 구독할지 선언 할 수 있습니까?DBus에 가입 된 신호를 선언 하시겠습니까?

즉, 신호가 구독되는 "인트로 뷰"인터페이스를 통해 광고하는 방법이 있습니까? 나는 "D-Feet D-Bus 디버거"를 사용합니다.

예. 응용 프로그램은 신호 X에 가입합니다 (bus 개체의 add_signal_receiver 메서드 사용).

답변

1

이것은 신호가 버스에서 방출되고 응용 프로그램이 흥미로운 것을 선택하기 때문에 가능하지 않습니다. dbus 내부에서 구독이 일어나지 않습니다.

+0

같은 결론에 왔습니다. 감사. – jldupont

4

D-Bus 클라이언트는 버스 데몬에서 AddMatch을 호출하여 특정 패턴과 일치하는 메시지에 대한 관심을 등록합니다. 대부분의 바인딩은 프록시 객체를 생성 할 때 특정 서비스 및 객체 경로의 모든 신호 또는 해당 서비스 및 객체 경로의 특정 인터페이스 신호에 대해 일치 규칙을 추가합니다.

dbus-monitor를 사용하면 추가 규칙을 볼 수 있습니다 : dbus-monitor member=AddMatch을 실행 한 다음 D-Bus를 사용하는 응용 프로그램을 실행하십시오. 마찬가지로 도청 통화를 RemoveMatch으로 도청 할 수 있습니다. 그러나 현재 현재 적용되는 일치 규칙 세트를 데몬에 요청하는 방법은 없습니다. 이 질문을하는 방법을 추가하는 것은 데몬이 이미 알고있는 경우 클라이언트가이를 다시 광고하는 방법을 추가하는 것보다 더 합리적 일 것입니다.

관련 문제