Отправить запрос данных в виде строки в C # на порт связи - PullRequest
5 голосов
/ 04 марта 2010

Мне нужно отправить метод записи в виде строки в C # на COM-порт. Он должен быть заключен между stx и etx.

например. serialPort1.write ("02TY000D03") - где 02 и 03 - это stx и etx.

Может ли кто-нибудь привести краткий пример, пожалуйста, поскольку я не думаю, что приведенный выше код является правильным?

Большое спасибо

Даррен.

Ответы [ 2 ]

5 голосов
/ 04 марта 2010

Вам нужно использовать escape-коды;

serialPort1.Write("\x02TY000D\x03");
4 голосов
/ 04 марта 2010

Вот образец, который я взял с здесь :

// This is a new namespace in .NET 2.0
// that contains the SerialPort class 
using System.IO.Ports; 

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();
}

Поэтому вам может быть лучше использовать Write вместо write, обратите внимание на заглавную букву W. Если 02 и 03 являются байтовыми значениями, вам придется экранировать значения с помощью \x, т.е. \x03;

...