Последовательная связь - PullRequest
       3

Последовательная связь

1 голос
/ 06 ноября 2010

Я разрабатываю приложение на C #, которое должно взаимодействовать с матричным коммутатором через последовательную связь.

string value = "abc";
serialPort1.Open();
serialPort1.WriteTimeout = 500;
serialPort1.WriteLine(value);
serialPort1.Close();

Предполагается, что состояние матрицы будет меняться при WriteLine(value).

Вот моя проблема. Когда я отправляю строковое значение, состояние поля матрицы не меняется. Однако, когда я отправляю ту же строку через Putty (через последовательное соединение), поле матрицы отвечает правильно. Все последовательные свойства идентичны (BaudRate, DataBits, PortName и т. Д.).

Какие возможные решения я должен попробовать?

Ответы [ 3 ]

3 голосов
/ 06 ноября 2010

Можете ли вы опубликовать свой код там, где вы установили SerialPort? Вы должны убедиться, что все свойства соответствуют требованиям вашего матричного переключателя. Например:

// Setup port
SerialPort serialPort = new SerialPort();
serialPort.PortName = portName; //eg. COM1
serialPort.BaudRate = 9600;
serialPort.StopBits = StopBits.One;
serialPort.Parity = Parity.None;
serialPort.DataBits = 8;
serialPort.Handshake = Handshake.None;
serialPort.NewLine = "\r\n";
serialPort.ReadTimeout = 2000;
serialPort.WriteTimeout = 1000;

После того, как вы позвонили Open() на свой порт, вы можете проверить состояние открытия или закрытия с помощью свойства serialPort.IsOpen.

2 голосов
/ 06 ноября 2010

Загрузите PortMon http://technet.microsoft.com/en-us/sysinternals/bb896644.aspx и запустите успешную последовательную связь, используя Putty, отслеживая весь обмен данными между ПК и устройством. Затем выполните свою программу и сравните журналы обмена. Это должно дать вам ответ, что сделано неправильно в вашей программе.

1 голос
/ 06 ноября 2010

Я бы проверил свойство Encoding на последовательном порту.Похоже, что по умолчанию ASCII.Может быть, ваше устройство ожидает Unicode?

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