(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プロトロルスタックタスクが同一のシリアルポートを共有
> している形態であり、オープン時にエラーが返ってきてしまう
> が、実質的な不都合はないと理解でよいのでしょうか。

-- 
松原豊