Чтение данных через COM порт - VB
Формулировка задачи:
Имеется устройство, панель кнопок, связанная с компом через RS-232 т.е. COM порт.
Хочу сделать прогу, которая отображала бы нажатие кнопок на этой панели кнопок, т.е. например, нажал Клавиша_1 - изменились бы данные в Label1
Устройство работает на определенной скорости - 115200 бод, 8 бит, 1стоп бит, без контроля четности.
Это устройство постоянно, с интервалом 100 мс, выдает 2 байта информации.
Первый байт (байт посылки)
B7 - 1b
B6 - Клавиша_1
B5 - Клавиша_2
B4 - Клавиша_3
B3 - Клавиша_4
B2 - Клавиша_5
B1 - Клавиша_6
B0 - Клавиша_7
второй байт
B7 - 0b
B6 - N/A
B5 - Количество неустановленных битов в первом байте(B6-B0)
B4 - Количество неустановленных битов в первом байте(B6-B0)
B3 - Количество неустановленных битов в первом байте(B6-B0)
B2 - Количество установленных битов в первом байте(B6-B0)
B1 - Количество установленных битов в первом байте(B6-B0)
B0 - Количество установленных битов в первом байте(B6-B0)
Установленный старший бит указывает, что это первый байт посылки. Остальные биты в первом байте принимают значения 0b - если соответствующая кнопка нажата, или 1b - если кнопка не нажата.
ТО что нужно юзать MScomm понятно, но как работать с 2 байтами, ведь MScomm работает со строковыми значениями.
У кого нить есть похожие наработки или идеи от чего оттолкнуться?
Решение задачи: «Чтение данных через COM порт»
textual
Листинг программы
- Declare Function CreateFile Lib "kernel32" Alias "CreateFileA" (ByVal lpFileName As String, ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, ByVal lpSecurityAttributes As Long, n byte.
- BaudRate As Long 'Speed of data exchangeб, bps
- fBitFields As Long 'Bit field for setting of port
- wReserved As Integer 'Reserved
- XonLim As Integer 'minimum number of bytes in the buffer to send Xon
- XoffLim = False Then
- MsgBox ("Error Setting port:" & GetLastError)
- End If
- MsgBox ("The port is opened")
- End If
- End Function
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д