2009-03-03 4 views
2

0 Как есть RTSEnable и DtrEnable? Я нахожу, что некоторые балансы могут связываться с моим приложением, но другие не могут, даже если настройки совпадают. (скорость передачи, четность, бит данных, стоповые биты и рукопожатие)Serial port in Compact framework - RTSEnable and DtrEnable

Настройки последовательного порта сохраняются в файле конфигураций, и идея заключается в поддержке различных комбинаций возможных настроек, если это необходимо. Как правило, наши устройства запрограммированы иметь handshake = NONE, но в случае, если некоторое нечетное устройство не может иметь handshake=NONE, я должен вставить условие, такие как:

if (serialport.Handshake != NONE) { 
    serialport.RTSEnable = true; 
    serialport.DtrEnable = true; 
} 

Или, скорее, будут другие рукопожатия (кроме NONE) работать без RTSEnable и DtrEnable установлен на true?

ответ

0

Независимо от того, требуется ли аппаратное подтверждение, основано исключительно на последовательном устройстве, к которому вы подключаетесь. Вам нужно будет прочитать спецификации OEM для устройства и посмотреть, требуется ли устройству квитирование, и если ему нужна какая-либо специальная обработка RTS или DTR.

+0

Настройки последовательного порта (скорость передачи, четность и т. Д.) Хранятся в файле конфигурации, поэтому их можно изменить. В общем, все наши балансы настроены одинаково, но есть некоторые, которые не являются. Если устройство не поддерживает Hanshake = None, будет ли оно работать, если я не устанавливаю эти флаги в свой код? – sarsnake

+0

Думаю, лучший способ задать вопрос: если устройство настроено на использование рукопожатия = нет, и я делаю serialPort.Open() с Hanshake = None, мне нужно, чтобы этот набор был true? При условии, что фактическое устройство SUPPORTS hanshake = none, конечно – sarsnake