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