한국어
Linux Programming
 

D-Bus ObjectManager

makersweb 2022.02.12 20:28 조회 수 : 1833

D-Bus ObjectManager 인터페이스는 특정 서비스의 전체 객체 계층에 액세스하는 방법을 제공한다. 인터페이스 추가 및 제거를 위한 신호와 모든 인터페이스의 속성뿐만 아니라 개체의 인터페이스등 가능한 모든 개체를 반환하는 GetManagedObjects 메서드가 포함되어 있다. 예를 들어 BlueZ 5 서비스의 루트 ("/") 경로에서 ObjectManager 인터페이스를 찾을 수 있다. 객체 관리 및 검색의 대부분의 작업은 ObjectManager를 통해 수행 할 수 있다. 응용 프로그램은 ObjectManager.GetManagedObjects 메서드를 호출하여 사용 가능한 어댑터를 검색하고 "org.bluez.Adapter1"와 같은 인터페이스를 사용하여 반환된 객체를 찾는다. 응용 프로그램에서는 GetManagedObjects 응답에서 첫 번째 어댑터를 선택하기만 하면 된다.

ObjectManager.png

 

다음은 bluez 5의 GetManagedObjects 메서드 응답에 대한 일부분이다.

{'/org/bluez': {'org.bluez.AgentManager1': {},
                'org.bluez.ProfileManager1': {},
                'org.freedesktop.DBus.Introspectable': {}},
'/org/bluez/hci0': {'org.bluez.Adapter1': {'Address': '00:1A:7D:DA:71:15',
                                            'AddressType': 'public',
                                            'Alias': 'ubuntu',
                                            'Class': 786432,
                                            'Discoverable': True,
                                            'DiscoverableTimeout': 0,
                                            'Discovering': False,
                                            'Modalias': 'usb:v1D6Bp0246d0530',
                                            'Name': 'ubuntu',
                                            'Pairable': True,
                                            'PairableTimeout': 0,
                                            'Powered': True,
                                            'UUIDs': ['00001112-0000-1000-8000-00805f9b34fb',
                                                      '00001801-0000-1000-8000-00805f9b34fb',
                                                      '0000110e-0000-1000-8000-00805f9b34fb',
                                                      '00001800-0000-1000-8000-00805f9b34fb',
                                                      '00001200-0000-1000-8000-00805f9b34fb',
                                                      '0000110c-0000-1000-8000-00805f9b34fb',
                                                      '0000110a-0000-1000-8000-00805f9b34fb',
                                                      '0000110b-0000-1000-8000-00805f9b34fb',
                                                      '00001108-0000-1000-8000-00805f9b34fb']},
                     'org.bluez.GattManager1': {},
                     'org.bluez.Media1': {},
                     'org.bluez.NetworkServer1': {},
                     'org.freedesktop.DBus.Introspectable': {},
                     'org.freedesktop.DBus.Properties': {}},
...}

 

번호 제목 글쓴이 날짜 조회 수
45 리눅스에서 시리얼 포트 사용 및 접근 권한 makersweb 2024.05.21 1429
44 리눅스 Qt 응용프로그램 AppImage 로 구축 makersweb 2024.01.07 1593
43 GRUB의 timeout 설정 makersweb 2023.11.07 1845
42 lubuntu 22.04 LTS 설치 file makersweb 2023.01.23 2951
41 시스템에서 사용 가능한 D-Bus 서비스를 보려면? makersweb 2022.12.29 2658
40 리눅스에서 네트워크 구성 makersweb 2022.06.11 4196
» D-Bus ObjectManager file makersweb 2022.02.12 1833
38 ifconfig 는 대부분 ip 명령으로 대체 makersweb 2022.02.12 2898
37 SocketCAN 유틸 사용방법 file makersweb 2022.02.05 10502
36 dbus-broker를 기본 DBus 구현으로 설정 makersweb 2021.01.20 2577
35 리눅스 오디오 스택과 아키텍처 file makersweb 2020.09.02 4112
34 wayland-scanner 를 통해 Wayland 프로토콜 코드생성 makersweb 2020.06.08 2166
33 Wayland 의 Client Application 프로그래밍 기본 루틴 makersweb 2020.06.04 2876
32 Wayland 의 주요 객체들 makersweb 2020.06.04 2082
31 Weston 의 설명 및 관련 컴포넌트 makersweb 2020.06.03 3847
30 64비트 리눅스에서 32비트 응용프로그램을 실행하려면 makersweb 2020.02.29 2895
29 initramfs (initial ram file system: 초기 램 파일 시스템) makersweb 2020.02.25 3053
28 플랫폼 디바이스 드라이버 개발 시 많이 사용되는 커널 API 및 매크로 makersweb 2020.01.28 5956
27 PATH에 새로운 경로 추가 makersweb 2019.09.19 1148
26 리눅스 컴파일러 최신으로 업데이트 linux 2018.12.26 2610