Чтение данных через 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