我正在尝试向我的 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"); }
}
}