직렬 통신 채널을 통해 전송 및 수신되는 메시지 집합을 정의하는 문서가 전달되었습니다. 들어오는 메시지를 가져 와서 개체로 deserialize하고 아웃 바운드 메시지를 serialize하는 것이 좋습니다. 와이어를 통해 인코딩은 설립 변경할 수없는, 그리고 예를 들어, 헤더에 다양한 비트 필드와 다양한 페이로드로 구성, 비트 필드 직렬화 및 비 직렬화
class Message{
int msg_num : 7
int dest_addr : 4
bool SRR : 1
bool IDE : 1
int source_addr : 6
//... and so on...
}
내가
protobufs를 사용하여 살펴했다,하지만 인코딩 자신의 varint 방법이라고 나타납니다 설립. 나는 또한
boost-serialization을 보았습니다. 그러나 지금까지 읽은 내용을 토대로 인코딩이 어떻게 이루어 졌는지 완전히 명확하지 않습니다. 그래서
, 몇 가지 질문이 :
- 나는 객체에 내 바이트 스트림으로 변환하는 부스트 직렬화를 사용할 수 있습니까?
- 목표는 이 아니고은 자신의 루틴을 직렬화 (유지 관리 엉망)로 돌리는 작업이 필요합니다. 내 작업을 수행하는 데 선호되는 메커니즘이 있습니다 (예 : 사용자 정의 부스트 - 순차 화 아카이브, 발견하지 못한 다른 방법).)
는 "INT의 msg_num : 7"합니까하지
primitive
, 내가 직렬화 문서의 깊이에 잃었어요의 필드가 7 비트 정수 의미 ? – grieve예. ": num"은 비트 필드의 길이를 나타냅니다. – jdt141
이 질문은 답변이 어렵습니다. 포장 된 표현 만 표시되지만 직렬화 및 비 직렬화하려는 압축 해제 메시지 객체는 표시되지 않습니다. –