bharath 2
'Последовательный порт сопряжения с VB.net Экспресс-издание 2010 года
'Copyright (C) 2010 Richard Myrick T. Ареллага
'
"Эта программа является свободным программным обеспечением: вы можете распространять его и/или изменять
"это в соответствии с условиями GNU General Public License, опубликованной компанией
-Фонд свободного программного обеспечения, либо версия 3 лицензии, либо
-(по вашему выбору) любая более поздняя версия.
'
"Эта программа распространяется в надежде, что она будет полезна,
- но без какой-либо гарантии, даже без подразумеваемой гарантии ...
- Товарность или пригодность для определенной цели. См.
"GNU General Public License для получения более подробной информации.
'
- Вы должны были получить копию лицензии GNU General Public License.
- вместе с этой программой. Если нет, то смотрите .
Система Импорта
Система Импорта.ComponentModel
Система Импорта.Нарезание резьбы
Система Импорта.ИО.Порты
Публичный класс frmMain
Dim myPort As Array 'COM-порты, обнаруженные в системе, будут сохранены здесь
Делегат Sub SetTextCallback(ByVal [text] As String) 'добавлен для предотвращения ошибок потоковой передачи при получении данных
Private Sub frmMain_Load(ByVal sender As System.Объект, бывал е как система.EventArgs) Обрабатывает MyBase.Load
- Когда наша форма загрузится, автоматически определите все последовательные порты в системе и заполните поле со списком cmbPort.
myPort = IO.Ports.SerialPort.GetPortNames() 'получить все доступные com-порты
смбо.Предметы.Добавить(9600) 'заполнение поля со списком cmbBaud к общей скорости передачи данных используется
смбо.Предметы.Добавить(19200)
смбо.Items.Add(38400)
смбо.Items.Add(57600)
смбо.Предметы.Добавить(115200)
Для i = 0 до UBound(myPort)
cmbPort.Предметы.Добавить(myPort(i))
Следующий
cmbPort.Текст = cmbPort.Предметы.Item(0) 'Set cmbPort text to the first COM port detected
смбо.Текст = cmbBaud.Предметы.Item(0) 'Set cmbBaud text to the first Baud rate on the list
btnDisconnect.Enabled = False 'изначально кнопка отключения отключена
Конец Подводной Лодки
Private Sub btnConnect_Click(ByVal sender As System.Объект, бывал е как система.EventArgs) обрабатывает btnConnect.Щелчок
SerialPort1.PortName = cmbPort.Текст 'установить SerialPort1 на выбранный COM-порт при запуске
SerialPort1.BaudRate = cmbBaud.Текст 'установить скорость передачи данных в бодах на выбранное значение ВКЛ.
'Другое Свойство Последовательного Порта
SerialPort1.Четность = IO.Ports.Паритет.Нет
SerialPort1.StopBits = IO.Ports.Стопбиты.Один
SerialPort1.DataBits = 8 'Откройте наш последовательный порт
SerialPort1.Открыть()
btnConnect.Enabled = False 'отключить кнопку подключения
btnDisconnect.Enabled = True 'и кнопка Enable Disconnect
Конец Подводной Лодки
Private Sub btnDisconnect_Click(ByVal sender As System.Объект, бывал е как система.EventArgs) обрабатывает btnDisconnect.Щелчок
SerialPort1.Close() 'закрыть наш последовательный порт
btnConnect.Включен = Истина
btnDisconnect.Включено = Ложь
Конец Подводной Лодки
Private Sub btnSend_Click(ByVal sender As System.Объект, бывал е как система.EventArgs) обрабатывает btnSend.Щелчок
SerialPort1.Write(txtTransmit.Текст & vbCr)
- Текст, содержащийся в txtText, будет отправлен в последовательный порт в формате ascii
'плюс возврат каретки (клавиша Enter) возврат каретки может быть оммитирован, если другой конец не нуждается в этом
Конец Подводной Лодки
Частная суб SerialPort1_DataReceived(как byval отправителя как объект, как byval E Как системы.ИО.Портах.SerialDataReceivedEventArgs) Обрабатывает SerialPort1.DataReceived
ReceivedText(SerialPort1.ReadExisting()) 'автоматически вызывается каждый раз, когда данные поступают в serialPort
Конец Подводной Лодки
Private Sub ReceivedText(ByVal [text] As String)
'сравнивает идентификатор создающего потока с идентификатором вызывающего потока
Если я.rtbReceived.Свойство Invokerequired Тогда
Dim x As New SetTextCallback(AddressOf ReceivedText)
Me.Invoke(x, New Object() {(text)})
Еще
Я.rtbReceived.Text &= [текст]
Конец, Если
Конец Подводной Лодки
Private Sub cmbPort_SelectedIndexChanged(ByVal sender As System.Объект, бывал е как система.EventArgs) обрабатывает cmbPort.SelectedIndexChanged
Если SerialPort1.Тогда IsOpen = False
SerialPort1.PortName = cmbPort.Текст поп-окно с сообщением для пользователя, если он меняет порты
Else 'без предварительного отключения.
MsgBox("действителен только в том случае, если порт закрыт", vbCritical)
Конец, Если
Конец Подводной Лодки
Private Sub cmbBaud_SelectedIndexChanged(ByVal sender As System.Объект, бывал е как система.EventArgs) обрабатывает cmbBaud.Разделе мы рассмотрим
Если SerialPort1.Тогда IsOpen = False
SerialPort1.BaudRate = cmbBaud.Текст поп-окно с сообщением для пользователя, если он меняется скорость передачи информации в бодах
Else 'без предварительного отключения.
MsgBox("действителен только в том случае, если порт закрыт", vbCritical)
Конец, Если
Конец Подводной Лодки
Private Sub rtbReceived_TextChanged(ByVal sender As System.Объект, бывал е как система.EventArgs) обрабатывает rtbReceived.Очередь textchanged
Конец Подводной Лодки
Private Sub Button1_Click(бывал отправитель как система.Объект, бывал е как система.EventArgs) Обрабатывает Button1.Щелчок
rtbReceived.Текст = " "
Конец Подводной Лодки
Private Sub txtTransmit_TextChanged(ByVal sender As System.Объект, бывал е как система.EventArgs) обрабатывает txtTransmit.Очередь textchanged
Конец Подводной Лодки
Private Sub Timer1_Tick(бывал отправитель как система.Объект, бывал е как система.EventArgs) Обрабатывает Timer1.Tick
SerialPort1.Write(txtTransmit.Текст & vbCr)
Конец Подводной Лодки
End Класса