状況のレポートありがとうございます。
たしかに連続入力モードでは、
入力コマンドの中に、出力完了のコマンドが埋もれてしまって、
通信エラーになってしまうようですね。
peekAnalogInput()でもフレームレートを上げたり、
同時に複雑な処理をさせると、負荷が大きくなって、
タイムアウトエラーが発生する可能性があるかもしれません。
一応、ライブラリ側での改善策としては、
ご推察の通り、"onFailed"を発生させなければ処理は終わらないので、
SynchronizedGC.as内の
private function onTimeout():void {
//replace _gainer.removeEventListener("onReceived", this);
_gainer.eventDispatcher.removeEventListener("onReceived", onReceived);
//replace dispatchEvent({type:"onFailed"});
eventDispatcher.dispatchEvent(new Event("onFailed"));
}
の部分を
private function onTimeout():void {
//replace _gainer.removeEventListener("onReceived", this);
_gainer.eventDispatcher.removeEventListener("onReceived", onReceived);
//command transmits again.
trace("Reception failed");
this.sendMsg();
}
のように修正することで、PCが返事を受け取れるまで何度でも
コマンドを送るというようになります。