2013-05-12 3 views
1

사용자 정의 프로토콜을 사용하여 내장 된 장치로 데이터를 보내고 받으려고합니다. struct.pack() 및 unpack()은 작업을 수행하는 것처럼 보이지만 fmt 인수는 가변 길이 데이터 배열을 처리 할만큼 유연하지는 않습니다.Python에서 복잡한 데이터 패킹/언팩

예 : 장치 보낸다 이벤트 리포트 [사건 번호] ([이벤트 유형 [이벤트 값], [이벤트 유형 [이벤트 값, ...)

여기서

  • 이벤트 보고서 (부호없는 8 비트) 이벤트
  • 번호 (부호없는 16 비트)
  • 이벤트 유형 (부호없는 8 비트)
  • 이벤트 값 (부호있는 16 비트)

이 데이터를 파이썬으로 디코딩하는 가장 좋은 방법은 무엇입니까? 또한 장치에 보낼 유사한 데이터 구조를 어떻게 인코딩합니까?

답변

3

python-bitstring을 사용하여 이진 프로토콜을 구현하는 것을 고려하십시오. 매우 유연하고 사용하기 쉽습니다.