Нужно получать данные с СОМ порта по событию - VB

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

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

Здравствуйте. Я с VB недавно работаю так вот, мне нужно получать данные с СОМ порта по событию, а не периодически проверяя порт. Событие нашел, но onComm работает не совсем понятно мне, т.е. в тестовом примере происходит следующее - событие выполняет и отрабатывает, но данные не считываются до тех пор пока я не выведу сообщение о событии MsgBox MSComm2.CommEvent, после его вывода все работает. Но ведь вывод сообщения ни на что не влияет, почему так??? И вообще как сделать так чтобы работало все без этого? вот код:
Листинг программы
  1. Private Sub cmdSend_Click()
  2. MSComm1.CommPort = 1
  3. MSComm2.CommPort = 2
  4. MSComm1.Settings = '9600,N,8,1'
  5. MSComm2.Settings = '9600,N,8,1'
  6. 'Используем весь буфер
  7. MSComm1.InputLen = 0
  8. MSComm2.InputLen = 0
  9. 'MSComm2.InBufferSize = 15
  10. MSComm2.InBufferCount = 0
  11. 'Открываем порт
  12. MSComm2.PortOpen = True
  13. MSComm1.PortOpen = True
  14. 'Посылаем сообщение
  15. MSComm1.Output = txtSend.Text
  16. 'Закрываем порт
  17. MSComm1.PortOpen = False
  18. MSComm1.OutBufferCount = 0
  19. End Sub
  20. Private Sub MSComm2_OnComm()
  21. txtGet.Text = ''
  22. MsgBox MSComm2.CommEvent ' если этого не будет - то ничего
  23. 'не считается
  24. If MSComm2.CommEvent = 4 Then
  25. inString$ = MSComm2.Input
  26. txtGet.Text = inString$ 'MSComm2.Input
  27. MSComm2.PortOpen = False
  28. Else
  29. MsgBox MSComm2.CommEvent, vbCritical
  30. End If
  31. End Sub

Решение задачи: «Нужно получать данные с СОМ порта по событию»

textual
Листинг программы
  1. Private Sub Form_Load()
  2. MSComm1.PortOpen = True
  3. End Sub
  4. Private Sub Timer1_Timer()
  5. Dim data As String
  6. data = MSComm1.Input
  7. Dim a, b, c, d, e, f As String
  8. a = Mid(data, 1, 4)
  9. b = Mid(data, 6, 4)
  10. c = Mid(data, 11, 4)
  11. d = Mid(data, 16, 4)
  12. e = Mid(data, 21, 4)
  13. f = Mid(data, 26, 4)
  14. End Sub

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


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

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

8   голосов , оценка 3.5 из 5

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

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

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