2011-02-01 4 views

답변

-1

Bluetooth 장치를 처리하는 Bluetooth 드라이버/OS 서비스의 바인딩이 필요합니다.
대부분의 드라이버는 C로 작성되고 일부는 C++로 작성됩니다. 소스 코드/API를 얻을 수 있거나 제공된다면 파이썬에서 액세스 할 수 있습니다. 이렇게하려면 OS 서비스에 대한 사용자 정의 바인딩을 코딩해야 할 수도 있습니다.

+1

왜 downvote? –

+0

API를 사용하기 위해 드라이버/라이브러리의 소스 코드가 필요하지 않습니다. Guanidene은 이미 Python 라이브러리를 사용하여 파일을 전송한다고 말합니다. –

+0

@RoshOxymoron : 그는 내가 그 질문을 적었을 때 언급하지 않았다. –

0

"파이썬 블루투스 속도"라고 말하는 것은 정확하지 않습니다. 파이썬은 단지 언어이자 실행 런타임이며 블루투스와 아무 관련이 없기 때문입니다. 블루투스로 작업하기 위해 파이썬 확장 프로그램을 사용하고 계신가요? 어떤 블루투스 스택을 사용하고 있습니까? 그리고 결국 운영 체제? 프로젝트 저자는 그것을 말한대로 "블루투스 작업 간단한 액세스를 제공합니다"때문에, 연결 속도를 확인할 수 없습니다 연한 파랑으로

, 당신은 할 수없는 PyBluez 블루투스 다른 파이썬 라이브러리와 같은. 내가 소켓을 사용하고 있기 때문에 보내고받은 데이터를 셀 수 있으므로 공정한 아이디어를 얻을 수 있습니다.

그러나 올바르게 HCI 층 수준에서 스택 내부에 자신을 놓고 대한 계산해야 전체 입력/출력 트래픽 량 결정 :

  • ACL -
  • SCO를 데이터 - 음성
  • 명령
  • 이벤트

내 권장 사항은 WireShark와 같은 이미 구성된 트래픽 분석기를 사용하는 것입니다.

업데이트 : 당신이 hci_lib.h에서 BlueZ 문서를 확인하면

이 함수 :

int hci_devinfo(int dev_id, struct hci_dev_info *di); 

은과 hci_dev_info 구조는 그렇게, acl_pkts 및 sco_pkts 찾고있는 정보가 포함되어 무엇을 해야 할 것은 파이썬이 BlueZ API 함수를 내보낼하고 간단한 해결 방법은 파일이 얼마나 큰 파악하는 것입니다

struct hci_dev_info { 
uint16_t dev_id; 
char  name[8]; 

bdaddr_t bdaddr; 

uint32_t flags; 
uint8_t type; 

uint8_t features[8]; 

uint32_t pkt_type; 
uint32_t link_policy; 
uint32_t link_mode; 

uint16_t acl_mtu; 
uint16_t acl_pkts; 
uint16_t sco_mtu; 
uint16_t sco_pkts; 

struct hci_dev_stats stat; 
}; 
+1

왜 downvote? –

+0

그것에 대해 생각해 보니, 이것은 코멘트가되어야합니다. –

+0

나는 당신의 대답을 downvote하지 않았고 진심으로 나는 내 자신도 downvoted 누가 상관하지 않습니다. 나는 초기 질문에 기초하여 정확한 응답을했다고 확신한다. 그것은 Guanidene 도움이되기를 바랍니다. – garzanti

0

, 뚜껑을 :) 사용하는 것입니다 전송 전과 전송 후 시스템 시간을 확인한 다음 계산하십시오. 전송 과정에서 변경되는보다 세분화 된 전송 속도를 계산하려면 전송 버퍼의 크기와 전송 사이의 시간 간격을 사용해야합니다.

+0

글쎄, 내가 파일을 전송할 때의 전송 속도를 알고 싶다 ... 평균 전송 속도가 아님 ... –

+0

LightBlue는 소켓 인터페이스를 사용하고있다. 맞습니까?각 송신 호출에 얼마나 많은 바이트가 있는지 알고 있고 각 송신 호출간에 경과 시간이 얼마나되는지를 알 수 있습니다. 이 정보를 사용하여 전송 속도를 파악할 수 있습니다. – pwc