We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
C++ API では、ポート番号を表すために ePortS, ePortM を定義しています。 C API にも、ポート番号を表すために motor_port_t, sensor_port_t があります。
ePortS
ePortM
motor_port_t
sensor_port_t
そして、make app=hoge (β6-2) でビルドすると、この2つの列挙体の間で暗黙的な型変換ができません。
make app=hoge
../workspace/example/src/robot.cpp:90:72: error: cannot convert 'const ePortM' to 'motor_port_t' for argument '1' to 'ER ev3_motor_rotate(motor_port_t, int, uint32_t, bool_t)' ev3_motor_rotate(PORT_TAIL_MOTOR, -TAIL_DEGREES, 100, false); ^
ePortS, ePortM と motor_port_t, sensor_port_t は、仕様上、相互に型変換を行っても安全でしょうか? (C++ には ev3_motor_rotate に相当する API が無いので...) また、ePortS, ePortM はなぜ定義されているのでしょうか?
ev3_motor_rotate
The text was updated successfully, but these errors were encountered:
同じ返答を繰り返すようで恐縮ですが、ePortSおよびePortMは、nxtOSEK C++ APIとの互換性を考慮してそのまま利用しています。 一方、C APIにあるmotor_port_tおよびsensor_port_tはTOPPERSによる実装でnxtOSEKとの互換性を考慮してはおりません(これらには最後の列挙子に実質的な列挙子の総数を記述するスタイルで定義されており、C++ APIのそれらと同じ定義ではありません)。
ただし、各ポートを表す列挙子の整数表現は、仕様上、両列挙型で同一の値とすることとしています。
現在C++ APIはEV3RT配布パッケージに同梱されていますので、ここで提供しているソースはどちらかというと、みなさんからのAPI変更要求を集約するためにあります。ev3_motor_rotate()の件も含め、ぜひプルリクエストをお寄せいただければと思います。こちらで変更したAPI修正は即時にETロボコン参加者全員が利用可能であり、次期EV3RTのリリース時に配布パッケージでも反映してもらいます。
Sorry, something went wrong.
これはTOPPERSへリクエストしたものに含まれていましたでしょうか。
これも、ET ロボコン側の課題なんですね。 提案には賛成だし、変えた方がいいと思うのですが、 誰が変えるのかしら?
変えたら教材直さないとならないんだよなぁ…。
「nxtOSEK compatibility issue」3本まとめてですが、正直言うと個人的にはwontfixでhelp wantedでプルリクエストお待ちしています、です。
No branches or pull requests
C++ API では、ポート番号を表すために
ePortS
,ePortM
を定義しています。C API にも、ポート番号を表すために
motor_port_t
,sensor_port_t
があります。そして、
make app=hoge
(β6-2) でビルドすると、この2つの列挙体の間で暗黙的な型変換ができません。ePortS
,ePortM
とmotor_port_t
,sensor_port_t
は、仕様上、相互に型変換を行っても安全でしょうか? (C++ にはev3_motor_rotate
に相当する API が無いので...)また、
ePortS
,ePortM
はなぜ定義されているのでしょうか?The text was updated successfully, but these errors were encountered: