private void TXT_terminal_KeyPress(object sender, KeyPressEventArgs e) { if (e.KeyChar == '\r') { if (comPort.IsOpen) { try { var cmd = ""; lock (thisLock) { if (MainV2.MONO) { cmd = TXT_terminal.Text.Substring(inputStartPos, TXT_terminal.Text.Length - inputStartPos); } else { cmd = TXT_terminal.Text.Substring(inputStartPos, TXT_terminal.Text.Length - inputStartPos - 1); } TXT_terminal.Select(inputStartPos, TXT_terminal.Text.Length - inputStartPos); TXT_terminal.SelectedText = ""; if (cmd.Length > 0 && (cmdHistory.Count == 0 || cmdHistory.Last() != cmd)) { cmdHistory.Add(cmd); history = cmdHistory.Count; } } log.Info("Command: " + cmd); // do not change this \r is correct - no \n if (cmd == "+++") { comPort.Write(Encoding.ASCII.GetBytes(cmd), 0, cmd.Length); lastsend = DateTime.Now; } else { comPort.Write(Encoding.ASCII.GetBytes(cmd + "\r"), 0, cmd.Length + 1); lastsend = DateTime.Now; } } catch { CustomMessageBox.Show(Strings.ErrorCommunicating, Strings.ERROR); } } } /* * if (comPort.IsOpen) * { * try * { * comPort.Write(new byte[] { (byte)e.KeyChar }, 0, 1); * } * catch { MessageBox.Show("Error writing to com port"); } * } * e.Handled = true;*/ }
private void TXT_terminal_KeyPress(object sender, KeyPressEventArgs e) { if (e.KeyChar == '\r') { if (true) { try { var cmd = ""; lock (thisLock) { if (MainV2.MONO) { cmd = TXT_terminal.Text.Substring(inputStartPos, TXT_terminal.Text.Length - inputStartPos); } else { cmd = TXT_terminal.Text.Substring(inputStartPos, TXT_terminal.Text.Length - inputStartPos - 1); } TXT_terminal.Select(inputStartPos, TXT_terminal.Text.Length - inputStartPos); TXT_terminal.SelectedText = ""; if (cmd.Length > 0 && (cmdHistory.Count == 0 || cmdHistory.Last() != cmd)) { cmdHistory.Add(cmd); history = cmdHistory.Count; } } log.Info("Command: " + cmd); // do not change this \r is correct - no \n if (cmd == "+++") { AP_REPL.Write(Encoding.ASCII.GetBytes(cmd), 0, cmd.Length); lastsend = DateTime.Now; } else { if (Program.MONO) { AP_REPL.Write(Encoding.ASCII.GetBytes(cmd), 0, cmd.Length); } else { AP_REPL.Write(Encoding.ASCII.GetBytes(cmd + "\n"), 0, cmd.Length + 1); } lastsend = DateTime.Now; //local echo addText(cmd + "\n"); } } catch { CustomMessageBox.Show(Strings.ErrorCommunicating, Strings.ERROR); } } } }