Skip to content
New issue

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

質問: ePortS, ePortM について #4

Open
mysticatea opened this issue Apr 26, 2016 · 4 comments
Open

質問: ePortS, ePortM について #4

mysticatea opened this issue Apr 26, 2016 · 4 comments

Comments

@mysticatea
Copy link
Contributor

mysticatea commented Apr 26, 2016

C++ API では、ポート番号を表すために ePortS, ePortM を定義しています。
C API にも、ポート番号を表すために motor_port_t, sensor_port_t があります。

そして、make app=hoge (β6-2) でビルドすると、この2つの列挙体の間で暗黙的な型変換ができません。

../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, ePortMmotor_port_t, sensor_port_t は、仕様上、相互に型変換を行っても安全でしょうか? (C++ には ev3_motor_rotate に相当する API が無いので...)
また、ePortS, ePortM はなぜ定義されているのでしょうか?

@jtFuruhata
Copy link
Member

同じ返答を繰り返すようで恐縮ですが、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のリリース時に配布パッケージでも反映してもらいます。

@kuboaki
Copy link
Member

kuboaki commented Mar 22, 2017

これはTOPPERSへリクエストしたものに含まれていましたでしょうか。

@kuboaki
Copy link
Member

kuboaki commented Mar 23, 2017

これも、ET ロボコン側の課題なんですね。
提案には賛成だし、変えた方がいいと思うのですが、
誰が変えるのかしら?

変えたら教材直さないとならないんだよなぁ…。

@jtFuruhata
Copy link
Member

「nxtOSEK compatibility issue」3本まとめてですが、正直言うと個人的にはwontfixでhelp wantedでプルリクエストお待ちしています、です。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants