저수준 블루투스 유틸리티

저수준 블루투스 유틸리티

장치를 페어링 및 페어링 해제하고, 장치에서 오는 메시지를 표시하고, 장치에 메시지를 보내고(파일 시스템을 사용하여 완료했으면 좋겠습니다!) 사용 가능한 플래그를 설정할 수 있는 Linux용 Bluetooth 유틸리티는 무엇입니까?

염두에 둔 응용 프로그램은 10개의 작은 블루투스 키보드를 갖고 각 키보드의 각 키를 매핑하여 MIDI 메시지를 보내고 싶다는 것입니다(분명히 midi 부분은 이 OP의 일부가 아닙니다).

답변1

다음은 장치와 상호 작용하는 데 사용할 수 있는 Bluetooth 관련 여러 도구 목록입니다.

hciconfig

hciconfig

  • PC의 블루투스 hci에 대한 정보를 제공합니다.
  • 장치가 실행 중이고 필수 스캔 모드가 있는지 확인하세요.
  • 달리기 hcitool dev도 이 정보 중 일부를 제공해야 합니다.

hcitool

hcitool inq그리고hcitool scan

  • 근처의 블루투스 장치에 대한 정보를 제공하거나 식별합니다.

hcitool info <BTAddr>

  • 원격 블루투스 장치에 대한 정보 얻기

l2ping

l2ping <BTAddr>

  • 원격 Bluetooth 장치와 통신할 수 있는지 확인하는 한 가지 방법

SDP도구

sdptool browse <BTAddr> or sdptool records <BTAddr>

  • 원격 블루투스 장치에서 제공하는 서비스에 대한 정보를 제공합니다.

obexftp

obexftp –nopath –noconn –uuid none –bluetooth <BTAddr> –channel <OPUSHChann elNo> –put <FileToPut>

  • 원격 장치 측에서 핀을 지정하지 않고 파일을 보낼 수 있습니다.
  • 장치의 OPush 채널 번호는 위의 sdptool에서 가져옵니다.

obexftp -b <BTAddr> -v -p <FileToPut>

  • 지정된 BT 장치에 파일을 넣을 수 있습니다.
  • obexftp를 사용하여 BT 장치의 파일을 가져오거나 나열할 수도 있습니다.
  • 또한 -b 옵션만 제공하면 근처에 있는 BT 장치를 식별할 수 있습니다.

패스키 에이전트

passkey-agent –default <Pin>

  • 여기에 지정된 핀은 원격 BT 장치가 제공해야 하거나 사용자가 요청 시 해당 장치에 입력해야 하는 것입니다.

obexpushd

obexpushd

  • 블루투스 장치에서 전송된 파일을 수신할 수 있습니다.
  • 누가 시작했는지에 따라 수신된 파일은 해당 홈 디렉터리에 저장됩니다.

편성

이 사이트의 지침에 따라 명령줄을 통해 장치를 Linux 상자와 페어링할 수 있습니다. 기사 제목은 다음과 같습니다.Linux의 명령줄에서 Bluetooth 장치를 페어링하는 방법.

  1. 블루투스 장치의 Mac 주소 찾기

    $ hcitool scan
    
    Scanning ...
        11:22:33:44:55:66   device 1
        12:34:56:78:90:12   device 2
    
  2. 예상되는 페어링 코드를 전달하도록 블루투스 에이전트 설정

    $ bluetooth-agent 0000 &
    
  3. rfcomm 구성 파일을 편집 /etc/bluetooth/rfcomm.conf하고 위에 있는 MAC 주소를 입력하세요.

    rfcomm0 {
      # Automatically bind the device at startup
      bind no;
      # Bluetooth address of the device
      device 11:22:33:44:55:66;
      # RFCOMM channel for the connection
      channel 3;
      # Description of the connection
      comment "This is Device 1's serial port.";
    }
    

    메모:중요한 주의 사항은 장치를 시작 시 바인딩하지 않도록 구성한 경우(bind no;) 직렬 포트(루트 권한도 필요함)를 사용하기 전에 이 명령을 사용하여 rfcomm을 수동으로 실행해야 한다는 것입니다.

    $ sudo rfcomm connect rfcomm0
    

참고자료

관련 정보