rs232 장치를 여러 개의 SerialPort.Write 명령을 서로 바로 보내려고합니다. 그러나, 나는 한번에 여러 개의 WRITE 명령을 처리 할 수 있다고 생각하지 않는다.쓰기에 적당한 순간을 기다리는 방법?
현재 WRITE 사이의 지연을 위해 Thread.Sleep (500)을 사용하고 있지만 보내려는 시간을 감지 할 수있는 방법이 있습니까? 아니면 완충제로?
예제 코드
인터페이스
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"); }
}
}
SerialPort.Handshake 속성이 장치가 흐름 제어에 사용하는 것과 일치하는지 확인하십시오. –