통신 프로토콜을 맞추기 위한 수정/보완 작업
- IMU 추가에 따른 프로토콜 재설계 ( 기존 ASCII 전송 => Binary 통신으로 수정 )
- BLE 전송 특징에 부합하도록 설계: 어플리케이션에서 사용하는 데이터에 해당하는 ATT Payload의 데이터량을 고려 (반드시 244Bytes 이하로)
통신 환경
- Binary 통신 (Little-Endian)
- 데이터 수집 예제 프로그램 : Insole(STM32, Little-Endian) <---> PC(x86-64, Little-Endian)
- 실시간 센서데이터 처리 프로그램 : Insole(STM32, Little-Endian) <---> Jetson Nano(ARM32, Little-Endian)



기존 read_data() 는 ASCII 전송으로, 패킷 손실 사항이 고려되지 않아 데이터 손실이 발생하는 경우
무선 네트워크 전송 시, 프로그램이 멈추는 현상이 발생한다.
프로그램이 멈추는 문제를 해결하기 위해 ASCII 전송에서 binary 전송으로 함수를 수정/보완한다.
마지막 end point 가 '0xFB' 가 아니라면 정상적인 패킷이 아니므로 시작점을 다시 찾는다.
더보기
def find_SOP(pSerial_obj):
pSOP_code = [0xFF, 0xFA]
check_code = [0x00, 0x00]
while not(np.array_equal(pSOP_code, check_code)) :
check_code = np.roll(check_code,-1) # Left shift
try:
read_data = pSerial_obj.read(1)
check_code[1] = read_data[0]
except:
print('next signal does not exist')
return False
return True
'👩💻 도비는 공부중 > 💼 하계연구연수생(2023)' 카테고리의 다른 글
[SetUp] Window | Unreal Engine | 조작 방법 (0) | 2023.07.25 |
---|---|
[Unreal] Real-time motion capture (IMU) data retarget to Unreal (0) | 2023.07.24 |
[NVIDIA GPU 활용 발표] CUDA | TensorRT (0) | 2023.07.14 |
[PyQt5] Python을 위한 GUI 라이브러리 (0) | 2023.07.14 |
[Binary Protocol] (0) | 2023.07.13 |