Отправка ctrl-E через MSComm1 - PullRequest
       20

Отправка ctrl-E через MSComm1

2 голосов
/ 17 марта 2009

Как мне отправить ctrl-E через последовательный порт MSComm1? он должен продолжать передавать Ctrl-E .... как для цикла или сделать, пока цикл .. Вот мой код:

MSComm1.CommPort = Convert.ToInt16 (Settings.Default.PortName); SendKeys.Send ( "^ (е)");
MSComm1.Settings = Settings.Default.BaudRate.ToString (). Trim () + "," + Settings.Default. .DataBits.ToString (). Trim () + "," + Settings.Default.StopBits.ToString (). Trim ();
MSComm1.PortOpen = true;
MSComm1.InputLen = 0;
MSComm1.InputMode = MSCommLib.InputModeConstants.comInputModeText;
if (Settings.Default.FlowControl == "Xon / Xoff")
{
MSComm1.Handshaking = MSCommLib.HandshakeConstants.comXOnXoff;
}
иначе если (Settings.Default.FlowControl == "Нет")
{
MSComm1.Handshaking = MSCommLib.HandshakeConstants.comNone;
}
еще если (Settings.Default.FlowControl == "RTS")
{
MSComm1.Handshaking = MSCommLib.HandshakeConstants.comRTS;
}
иначе если (Settings.Default.FlowControl == "RTSXon / Xoff")
{
MSComm1.Handshaking = MSCommLib.HandshakeConstants.comRTSXOnXOff; }

Ответы [ 2 ]

2 голосов
/ 17 марта 2009

Control-E - это сочетание клавиш для 5, поэтому:

serial.Write(new byte[]{ 5 }, 0, 1);

(Предполагается, что serial является экземпляром System.IO.Ports.SerialPort.)

1 голос
/ 17 марта 2009

Связь через последовательный порт с использованием C # от здесь :

private static void SendSampleData() {
  // Instantiate the communications
  // port with some basic settings
  SerialPort port = new SerialPort("COM1", 9600, Parity.None, 8, StopBits.One);

  // Open the port for communications
  port.Open();

  // Write a string
  port.Write("Hello World");

  // Write a set of bytes
  port.Write(new byte[] {0x0A, 0xE2, 0xFF}, 0, 3);

  // Close the port
  port.Close(); 
}

Теперь вам просто нужно как-то кодировать Ctrl + E.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...