rs232 デバイスに複数の SerialPort.Write コマンドを次々に送信しようとしています。ただし、一度に複数の WRITE コマンドを処理できるとは思いません。
現在、Thread.Sleep(500) を使用して WRITE 間を遅延させているだけですが、送信するのに最適な時期を検出する方法はありますか? それともバッファで?
サンプルコード
インターフェース
private void btn_infuse_Click(object sender, RoutedEventArgs e) {
cmd.SetTargetInfusionVolume(spmanager, double.Parse(tbox_targetvolume.Text));
cmd.StartInfuse(spmanager);//cmd object of Command class
}
コマンドクラス
public void StartInfuse(SPManager spm){
spm.Write("RUN");//spm object of serialportmanager class
}
public void SetTargetInfusionVolume(SerialPortManager spm, double num) {
spm.Write("MLT " + num.ToString());
}
SerialPortManager クラス
public void Write(string sData) {
if (oSerialPort.IsOpen) {//oSerialPort object of SerialPort class
try {
oSerialPort.Write(sData + "\r");
}
catch { MessageBox.Show("error"); }
}
}