public bool CloseSerialPort() { try //尝试关闭串口 { CurrentSerialPort.DiscardOutBuffer(); //清发送缓存 CurrentSerialPort.DiscardInBuffer(); //清接收缓存 //WaitClose = true;//激活正在关闭状态字,用于在串口接收方法的invoke里判断是否正在关闭串口 CurrentSerialPort.Close(); //关闭串口 // WaitClose = false;//关闭正在关闭状态字,用于在串口接收方法的invoke里判断是否正在关闭串口 SetAfterClose(); //成功关闭串口或串口丢失后的设置 bComPortIsOpen = false; } catch //如果在未关闭串口前,串口就已丢失,这时关闭串口会出现异常 { if (CurrentSerialPort.IsOpen == false) //判断当前串口状态,如果ComPort.IsOpen==false,说明串口已丢失 { SetComLose(); } else//未知原因,无法关闭串口 { //throw new Exception("unable close serial port"); OnSerialPortMiss(new SerialPortMissingEventArgs("unable close serial port")); } } return(true); }
public void CleanBuffer() { CurrentSerialPort.DiscardOutBuffer(); //清发送缓存 CurrentSerialPort.DiscardInBuffer(); //清接收缓存 }