protobuf에서는 부호있는 또는 부호없는 32 비트 또는 64 비트 정수를 사용하여 값 범위를 제한 할 수 있습니다.protobuf에서 최대 값을 설정할 수 있습니까?
그러나 정의하고 싶은 데이터 구조에는 8 비트, 16 비트 및 32 비트 정수가 혼합되어있어 임베디드 장치의 공간을 절약합니다. 또한 데이터 구조는 약간 다르게 구현되며 일부 필드에 예약 된 특수 값이 필요하므로 최대 값은 2의 제곱 수가 아닙니다.
이러한 임베디드 장치에서 protobuf 정의는 전송 전용으로 사용됩니다 실제 저장을위한 것이 아닙니다. 따라서 숫자를 제한 할 수는 있습니다.
그러나 모든 클라이언트 응용 프로그램이 이러한 제한 사항을 알고 있는지 확인하기 위해 .proto
또는 .options
파일에 이러한 최대 값을 정의하고 싶습니다.
이 방법이 있습니까?
필드 옵션이 있다는 것을 알고 있지만 열거 된 것은 here에 대한 옵션이 없습니다. 커스텀 옵션을 만드는 것은 가능하지만 컴파일러 확장을 작성해야하는 것 같습니다. 컴파일 할 모든 언어에 대해이 제한 검사를 수동으로 구현해야한다는 것입니다.
아는 것이 매우 유용합니다. 저는 실제로 arduino에서 nanopb를 사용하고 있습니다! 유감스럽게도 이것은 arduino와 직접 통신하지 않는 응용 프로그램간에 메시지가 전송되기 때문에 완벽하지는 않으므로 이러한 제한에 대해 알지 못합니다. – iFreilicht