(toppers-etrobo 124) Re: (再送)DefalutPort=BTとしたときのserial_opn_porでのエラー
Yutaka MATSUBARA
yutaka @ ertl.jp
2018年 6月 14日 (木) 14:13:52 JST
小南様
名古屋大学の松原です。
この件,回答が遅くなってしまいまして申し訳ありません。
> つまり、rc.local.iniで、ログタスクがログの出力先に、UART/
> BT/LCDから選択できるが、現在の実装がログタスクと、
> BTプロトロルスタックタスクが同一のシリアルポートを共有
> している形態であり、オープン時にエラーが返ってきてしまう
> が、実質的な不都合はないと理解でよいのでしょうか。
はい,概ね上記のご理解で良いかと思います。
シリアルポートを使用するタスクの起動順序を固定化すれば,オープン処理を1箇所にできますが,固定化できない/しない場合には,複数箇所でオープン処理を書いて頂いても不都合はありません。
On 2018/05/10 14:35, yasuo kominami(nifty) wrote:
> 皆様
>
> TOPPERS個人会員の小南です。
>
> さきほど途中書きのままで送ってしましました。
> すみませんでした。
> 書き足して投稿します。
>
> SDカードの/ev3rt/etc/rc.local.iniにおいて、下記の設定をし、
> BluetoothのSPPで、TeraTermでシリアルポートを指定して
> EV3とPCの間でシリアル通信をしています。
>
> [Debug]
> DefaultPort=BT
>
> TerTermのウィンドウにおいて、EV3RTのバナーが出る直前ぐ
> らいに
> 「serial_opn_por(SIO_PORT_BT)がE_OBJ(-1)」
> と表示されます。
>
> エラーが返っていますが、これは無視して使い続けても構わない
> のでしょうか。
>
> ソースを見た限り、最もタスク優先度が高いLogTaskが先に
> シリアルポートをオープンし、下位のタスク優先度を持つ
> Bluetoothプロトコルスタックを実装したタスクが同じシリアル
> ポートをオープンしようとしてエラーになっているようです。
>
> ここでいうシリアルポートは、TOPPERS/HRP2カーネルの
> サービスコールより上のレイヤのライブラリに相当する部分
> でのフロー制御などにもちいるデータ構造であり、ここで
> 返されてきたエラーを無視しても、全体の処理としては不都合
> は生じないだろうとは思いました。
>
> つまり、rc.local.iniで、ログタスクがログの出力先に、UART/
> BT/LCDから選択できるが、現在の実装がログタスクと、
> BTプロトロルスタックタスクが同一のシリアルポートを共有
> している形態であり、オープン時にエラーが返ってきてしまう
> が、実質的な不都合はないと理解でよいのでしょうか。
--
松原豊