Можно ли как-то менять 9-ый бит передаваемых данных без изменения остальных параметров порта? - VB
Формулировка задачи:
Здравствуйте, уважаемые коллеги!
У меня следующий вопрос: есть устройство, которое связано с ПК по RS232. 9-ый бит передаваемых данных используется для детектирования адреса, т.е. программе на ПК нужно постоянно менять настройки СОМ-порта, касающиеся 9-го бита, с mark на space. Это очень сильно замедляет работу, т.к. заодно устанавливаются прочие настройки( компонент MSComm control, метод Settings). Можно ли как-то менять 9-ый бит передаваемых данных без изменения остальных параметров порта? Может быть лучше использовать какой-нибудь сторонний компонент, или API?
Решение задачи: «Можно ли как-то менять 9-ый бит передаваемых данных без изменения остальных параметров порта?»
textual
Листинг программы
Public Sub C8_Write(S As String) Dim Bytes() As Byte Dim BytesOk As Long Dim CS As COMSTAT Dim Errors As Long Dim Overlap As OVERLAPPED Dim Buffer As String Dim Temp As Long Dim T As Long Do ClearCommError cHandle, Errors, CS Temp = CS.cbOutQue Loop Until Temp = 0 WriteFile cHandle, S, Len(S), BytesOk, Overlap T = Timer Do ClearCommError cHandle, Errors, CS Temp = CS.cbInQue If Timer - TimeOut > T Then MsgBox "Timeout": Exit Sub Loop While Temp = 0 Buffer = String(255, vbNullChar) ReadFile cHandle, Buffer, Temp, BytesOk, Overlap End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д