private void Enable_ReadLine_Queue(int readline_timeout_time = 1000) { _readline_usage = UART_READLINE_USAGE.ENQUEUE_TILL_ACK; _serialPort.ReadTimeout = readline_timeout_time; }
public void ReadSerialPortThread() { while (_continue_serial_read_write) { if (_readline_usage == UART_READLINE_USAGE.ENQUEUE_TILL_ACK) { try { string message = _serialPort.ReadLine(); //this.AppendSerialMessageLog(message); // UART_MSG.Enqueue(message); if (message == "\x0dOK") { _readline_receive_OK = true; _readline_usage = UART_READLINE_USAGE.FREERUN; } else { UART_MSG.Enqueue(message); } } catch (TimeoutException) { Set_ReadLine_Timeout_Flag(); Disable_ReadLine_Queue(); } } else if (_readline_usage == UART_READLINE_USAGE.WAIT_SINGLE_LINE) { try { string message = _serialPort.ReadLine(); UART_MSG.Enqueue(message); _readline_read_oneline = true; _readline_usage = UART_READLINE_USAGE.FREERUN; } catch (TimeoutException) { Set_ReadLine_Timeout_Flag(); } } else if (_readline_usage == UART_READLINE_USAGE.WAIT_ACK) { try { string message = _serialPort.ReadLine(); //this.AppendSerialMessageLog(message); // UART_MSG.Enqueue(message); if (message == "\x0dOK") { _readline_receive_OK = true; _readline_usage = UART_READLINE_USAGE.FREERUN; } else { } this.AppendSerialMessageLog(message); } catch (TimeoutException) { Set_ReadLine_Timeout_Flag(); } } else if (_readline_usage == UART_READLINE_USAGE.FREERUN) { try { int DataLength = _serialPort.BytesToRead; if (DataLength > 0) { string message = _serialPort.ReadExisting(); this.AppendSerialMessageLog(message); } } catch (TimeoutException) { } } } }
private void Disable_ReadLine_Queue() { _readline_usage = UART_READLINE_USAGE.FREERUN; _serialPort.ReadTimeout = SerialPort.InfiniteTimeout; }
private void Start_Read_OneLine_Queue(int readline_timeout_time = 3000) { _readline_read_oneline = false; _readline_usage = UART_READLINE_USAGE.WAIT_SINGLE_LINE; _serialPort.ReadTimeout = readline_timeout_time; }