JeezyWonder Ответов: 1

Использование доступных com-портов из списка


То, что я пытаюсь сделать, это после того, как я поместил доступные com-порты в listbox1, а затем, когда пользователь выбирает com-порт из него, сделайте назначение из выбранного значения в listbox в PortName
.PortName = ListBox1.SelectedItem.Value

но это, похоже, не работает. Что я делаю не так? спасибо

Что я уже пробовал:

Public Class Com
    Private Sub ListBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ListBox1.SelectedIndexChanged
        With Form1.SerialPort1
            .BaudRate = 9600    'for example, set the speed as you actually need it
            .Parity = System.IO.Ports.Parity.Space    'much more common would be .None
            .StopBits = 1          'or 2, though 2 should not normally be used (IMO)
            .PortName = ListBox1.SelectedItem.Value 'for example
            .Handshake = System.IO.Ports.Handshake.RequestToSend  'or .None
            .RtsEnable = True
            .Open()

        End With
    End Sub
End Class

F. Xaver

используйте отладчик, чтобы следить за тем, что устанавливается..
что вы использовали для заполнения списка? (listbox1 - это всегда ужасное имя, кстати)
Системы.ИО.Портах.SerialPort. GetPortNames, чтобы получить фактические существующие устройства?

с первого взгляда он должен работать нормально.. но если после этого вы не заблокируете список или не закроете и не освободите компорт для нового выбора, вы наверняка получите ошибки.
(и, как говорят ваши комментарии... некоторые из этих настроек довольно необычны. Я никогда не видел такого устройства .Четность = пространство до сих пор

1 Ответов

Рейтинг:
2

KarstenK

Для более чистого кода вам лучше создать новый объект порта при открытии. Поскольку это системный ресурс, вы должны обращаться с ним осторожно, поэтому закройте его после конец использования каждый раз. В противном случае порт может быть заблокирован до следующей перезагрузки. Отделите UI-код от коммуникационного кода, чтобы избежать беспорядочного кода.

Прочтите статью и Кодекс Образец SerialPort в VB.NET (с#).