Bluez API 문서에 따르면(장치 인터페이스) 이 메서드의 반환은 Connect()
하나 이상의 프로필에 대한 성공적인 연결을 나타냅니다.
잘못된 연결()
(뛰어 넘다)
이 방법은 하나 이상의 프로필이 성공적으로 연결된 경우 성공을 나타냅니다.
다음과 같이 설명되는 속성 도 있습니다 Connected
.
부울 연결 [읽기 전용]
원격 장치가 현재 연결되어 있는지 여부를 나타냅니다. PropertiesChanged 신호는 이 상태의 변경을 나타냅니다.
실제로는 Connect()
메서드 반환과 속성이 설정되었음을 속성에 알리는 신호 도착 사이에 몇 초의 간격이 있는 것으로 보입니다.PropertiesChanged
Connected
true
bluetoothctl을 실행할 때:
[bluetooth]# connect XX:XX:XX:XX:XX:XX
Attempting to connect to XX:XX:XX:XX:XX:XX
[CHG] Device XX:XX:XX:XX:XX:XX Connected: yes
Connection successful
다음 메시지가 D-Bus에 캡처됩니다.
메서드 호출 시간=1646854334.904791 보낸 사람=:1.521 -> 대상=org.bluez Sequence=50 경로=/org/bluez/hci0/dev_XX_XX_XX_XX_XX_XX;Interface=org.bluez.Device1;Member=Connect 신호 시간=1646854336.902736 보낸 사람=:1.128 -> 대상=(빈 대상) 시퀀스=10521 경로=/org/bluez/hci0/dev_XX_XX_XX_XX_XX_XX;Interface=org.freedesktop.DBus.Properties;Member=속성 변경됨 문자열 "org.bluez.Device1" 대량 [ 사전 항목( 문자열 "연결됨" 변형 부울 참 ) ] 대량 [ ] 메소드 반환 시간=1646854339.349113 보낸 사람=:1.128 -> 대상=:1.521 순서=10522 응답 순서=50
이는 우리에게 다음을 알려줍니다.
- 속성이 signal() 에 의해 보고된 내용으로 변경되면
[CHG] Device XX:XX:XX:XX:XX:XX Connected: yes
화면에 나타납니다 .Connected
true
time=1646854336.902736
Connection successful
이 메시지는 메소드가 ( )를 반환할 때 나타납니다 .Connect()
time=1646854339.349113
- 이러한 이벤트는 2.4초 간격으로 발생합니다.
문제는 이 두 이벤트의 차이점은 무엇이며 실제로 블루투스 장치가 연결되었음을 나타내는 이벤트는 무엇입니까?
(장치 연결을 끊을 때 Disconnect()
메서드 반환과 신호 도착 사이에 몇 초의 간격이 있습니다 0.003
).
환경: Linux 커널: 5.4-179
, Bluez: 5.62-r3
, Systemd 249.9
: .