Можно ли как-то менять 9-ый бит передаваемых данных без изменения остальных параметров порта? - VB

Узнай цену своей работы

Формулировка задачи:

Здравствуйте, уважаемые коллеги! У меня следующий вопрос: есть устройство, которое связано с ПК по RS232. 9-ый бит передаваемых данных используется для детектирования адреса, т.е. программе на ПК нужно постоянно менять настройки СОМ-порта, касающиеся 9-го бита, с mark на space. Это очень сильно замедляет работу, т.к. заодно устанавливаются прочие настройки( компонент MSComm control, метод Settings). Можно ли как-то менять 9-ый бит передаваемых данных без изменения остальных параметров порта? Может быть лучше использовать какой-нибудь сторонний компонент, или API?

Решение задачи: «Можно ли как-то менять 9-ый бит передаваемых данных без изменения остальных параметров порта?»

textual
Листинг программы
  1. Public Sub C8_Write(S As String)
  2.  
  3.   Dim Bytes() As Byte
  4.   Dim BytesOk As Long
  5.   Dim CS As COMSTAT
  6.   Dim Errors As Long
  7.   Dim Overlap As OVERLAPPED
  8.   Dim Buffer As String
  9.   Dim Temp As Long
  10.   Dim T As Long
  11.   Do
  12.     ClearCommError cHandle, Errors, CS
  13.     Temp = CS.cbOutQue
  14.   Loop Until Temp = 0
  15.  
  16.   WriteFile cHandle, S, Len(S), BytesOk, Overlap
  17.   T = Timer
  18.   Do
  19.     ClearCommError cHandle, Errors, CS
  20.     Temp = CS.cbInQue
  21.     If Timer - TimeOut > T Then MsgBox "Timeout": Exit Sub
  22.   Loop While Temp = 0
  23.  
  24.   Buffer = String(255, vbNullChar)
  25.   ReadFile cHandle, Buffer, Temp, BytesOk, Overlap
  26. End Sub

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


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

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

10   голосов , оценка 4.2 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы