NXTway-GSを倒立動作させながら、Bluetooth経由でログを取得するのですが、上記のようにデータが化けます。
サンプルプログラムの datalogging を使った場合でも、ログ周期を50ミリ秒から4ミリ秒に短縮するとパソコン側で保存するログデータが化けるため、倒立制御プログラムやモータ動作の影響ではないようです。
パソコン側のソフト(NXTGamePad)がシリアルデータを取りこぼしているのかとも疑ったのですが、ログデータが規則正しい?化けかたをしているので、送信側(=NXTプログラム)で送信バッファを書き壊しているのかな?と調査を始めています。
どなたかすでに原因を解決していたら教えてください! ^_^;
検証、いただきありがとうございます。
こちらでは、LEGOが販売しているBluetoothドングルでのみ検証していますが、報告いただいたような現象は起きていません。もしかすると、ドングルの相性かもしれません。
後、Bluetoothの接続方法ですが、
http://www.chihayafuru.jp/etrobo/?p=398#more-398
に記されている中では、拡張NXTファームウェア上でBluetooth接続ウィザード起動およびパスキー交換をおこなっていますが、nxtOSEKのメイン画面上で上記の設定もふくめておこなっていただけますか。Bluetoothの接続は専用のBluecoreチップがおこなっており、ARM7は直接的にはおこなっていませんが、nxtOSEKのBluetooth初期化関数も同様の処理をおこなっているので、同様のことができます。(これが原因から不明ですが、こちらではいつもそのようにしています)
nxtOSEKのBluetooth通信は標準のプロトコルより簡略化されているので、通信負荷は低いですが、どこまで通信周期を上げられるかは、よくわかっていません。
今後もよろしくお願いします。
takashicさん、早速のコメントありがとうございます。
パソコン側で(仮想)COMポートをシンプルにモニタするソフトを使ってみたところデータ化けは確認できませんでした。
独自にCOMポートをキャプチャするアプリを作り始めましたので、その結果が判明しましたら報告させていただきます。
ちなみにログモニタリングに使っているパソコンはCPU 1GHz、RAM 1.5GBytesと、それほど非力なマシンではないはずなのですが・・・ ^_^;