私は最近、Protobufメッセージを利用してMOOS &の仕事で大きなコードベースを継承しました。Protobufを同様の機能を持つROSメッセージに変換する
私のプロジェクトリーダーの要請で、私はROSをprotobufの代わりに使用するROSのみを使うように移植しています。コードベースは、列挙子の最小/最大などのprotobuf機能の利用、変数フィールドからの文字列の抽出、 - > has_variable()関数、 - > isValid()などに依存します。
これまでのところ、非常に基本的なROSメッセージ機能をwikiから見つけることができます。
このタイプの可撓性を持つ「ハック」などはありますか?
例:Protbufsサポート列挙子が、ROSのメッセージがないので、私は持っている:
uint8 TYPE_FAILED = 0
uint8 TYPE_OPERATIONAL = 1
uint8 TYPE_INITIALIZING = 2
uint8 health_state_type
私health_state_type
は私の「列挙」ですが、私は1をハードコードしない限り、私はminまたはmaxを持っていません、私はTYPE_FAILED
を文字列として抽出できません。私はゆっくりと
my_message::custom_msg health;
health.health_state_type = health.TYPE_FAILED
を使用して、このための回避策を見つけてきた。しかし、私は、文字列ではなく整数としてそれを使用する多くの異なる領域を変更することです。