Команды CHAR порта связи - PullRequest
       2

Команды CHAR порта связи

0 голосов
/ 11 августа 2011

Я пытаюсь использовать следующее для отправки через подключенный к RS232 проектор, чтобы включить его:

commProj.Parity = "None";
commProj.StopBits = "One";
commProj.DataBits = "8";
commProj.BaudRate = "19200";
commProj.PortName = "COM6";
commProj.CurrentTransmissionType = PCComm.CommunicationManager.TransmissionType.Text; //.Hex
commProj.OpenPort();
commProj.WriteData((char)33 + (char)137 + (char)1 + (char)80 + (char)87 + (char)49 + "\n"); //turn on proj

Проблема в том, что он не работает.

Я сделал это спорт VB6, и он отлично работает:

 public static PCComm.CommunicationManager commProj = new PCComm.CommunicationManager();

 MSCommProj.CommPort = 6
 MSCommProj.Settings = "19200,N,8,1"
 MSCommProj.PortOpen = True 
 MSCommProj.Output = Chr(33) & Chr(137) & Chr(1) & Chr(80) & Chr(87) & Chr(49) & Chr(10)

Что мне не хватает?

Дэвид

CommunicationManager.cs: http://snipt.org/xmklh

enter image description here enter image description here enter image description here

Ответы [ 3 ]

2 голосов
/ 11 августа 2011

Хорошо, руководство очень помогает.Попробуйте изменить CurrentTransmissionType на TransmissionType.Hex и отправить строку 21890100000a

commProj.CurrentTransmissionType = TransmissionType.Hex;
commProj.WriteData("21890100000a");

РЕДАКТИРОВАТЬ

Извините, это была "проверка соединения".Используйте 2189015057310a для on и 2189015057300a для off.

1 голос
/ 11 августа 2011

Оператор плюс (+) для символов не объединяет значения, которые он добавляет. Таким образом, вы в конечном итоге передаете «387 \ n» для записи данных.

Вам нужно создать массив символов, а затем преобразовать его в строку:

commProj.WriteData(new string(new char[] { (char)33, (char)37, (char)1, (char)80, (char)87, (char)49, '\n' }));
0 голосов
/ 11 августа 2011

Я не знаю, что это за объект commProj (конкретно), но я предполагаю, что проблема заключается в приведении каждого числового значения к символу.Размер символа составляет 2 байта.Я рекомендую либо пытаться записать массив байтов с вашими данными, либо объединить строку с этими символами, а затем преобразовать строку в текст ascii.

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