гипертерминал против c # последовательный порт - PullRequest
1 голос
/ 09 декабря 2011

Так что я застрял, и мне нужно еще раз обратиться к вам, экспертам, чтобы вытащить меня из варенья.

У меня есть проект c # forms, который собирается перемещать камеру через последовательный порт (rs232). (VISUAL STUDIO 2010)

Когда я использую гипертерминал, камера реагирует как следует.

Устройство использует ASCII для связи. Я думаю, что класс serialPort преобразует строки в ASCII при отправке байтов. Если я ошибаюсь, поправьте меня. Когда я загружаю свой проект форм, устройство не реагирует. Я пытался построить форму двумя способами,

Я использовал

 SerialPort com = new SerialPort("COM1", 9600, Parity.None, 8, StopBits.One);  
com.Open();

private void button1_Click(object sender, EventArgs e)
{
com.Write("move left" + "/r/n")
}

Я также использовал инструмент serialport, поместив его в форму и вызвав функцию с помощью

serialPort1.Write("move left" + "/r/n");

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

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

Требуется ли для последовательной связи какое-либо согласование, прежде чем оно начнется (например, через соединение telnet)? ID, так что вы можете указать мне на это?

я тоже пробовал

serialPort1.write("move left"+serialPort1.newline)

//and

serialPort1. write("move left"+"/n")

Ответы [ 2 ]

1 голос
/ 14 декабря 2011

ОК, так что, я думаю, я был слишком перегорел.Отойдя от проекта на пару дней, я обнаружил проблему.Для свойства DiscardNull установлено значение false.Это должно быть установлено в истину.Спасибо всем за помощь.

1 голос
/ 09 декабря 2011

В гипертерминале вы нажимаете ввод после команды?Если это так, вам нужно отправить \r\n, который фактически совпадает с нажатием ввода в гипертерминале.

...