protobufでは、符号付きまたは符号なしの32ビットまたは64ビット整数を使用して値の範囲を制限することしかできません。protobufで最大値を設定できますか?
しかし、私が定義したいデータ構造には、8ビット、16ビット、および32ビットの整数が混在しており、組み込み機器のスペースを節約します。その上、データ構造もやや異なって実装されており、いくつかのフィールドには特別な値が予約されているため、最大数は2の累乗ではありません。
これらの組み込みデバイスでは、protobuf定義は実際の保管のためではありません。
しかし、これらの最大値を、すべてのクライアントアプリケーションがこれらの制限を認識していることを確認するために、.proto
または.options
ファイルに定義したいと思います。
これを行う方法はありますか?
フィールドオプションがあることは知っていますが、リストされたものはhereにはオプションが含まれていません。カスタムオプションを作成することは可能ですが、コンパイラ拡張を書く必要があります。つまり、コンパイルする言語ごとにこの制限チェックを手作業で実装しなければならず、時間がかかります。
私は実際にarduinoでnanopbを使用しています。残念ながら、arduinoと直接通信しないアプリケーション間でもメッセージが送信されるため、これは完璧ではないため、これらの制限については認識しません。 – iFreilicht