Можно ли как-то менять 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

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4.2 из 5
Похожие ответы