Чтение данных через 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
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д