Распределение данных с последовательного порта - VB

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

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

Имеется такой код в VB6
Листинг программы
  1. Private Sub Command1_Click()
  2. MSComm1.CommPort = 2
  3. MSComm1.Settings = "9600,n,8,1"
  4. MSComm1.InputLen = 0
  5. MSComm1.OutBufferSize = 0
  6. MSComm1.InBufferSize = 0
  7. MSComm1.PortOpen = True
  8. Timer1.Enabled = True
  9. End Sub
  10. Private Sub Timer1_Timer()
  11. Do
  12. DoEvents
  13. Buffer$ = Buffer$ & MSComm1.Input
  14. Loop Until InStr(Buffer$, vbCr)
  15. Label1.Caption = Buffer$
  16. End Sub
Всё работает, при клике на кнопку порт открывается , данные отображаются в Label1.Caption и обновляются каждую секунду. Символы с COM порта поступают в ASCII кодировке. Примерные символы отображаются в виде. 02M0#### и 03M0#### Где (#) - Случайное число которое постоянно меняется с самого порта. Все символы находятся в одном буфере и могут меняться местами, 02M0#### или 03M0####, один из них может запаздывать и дублироваться. Нужно сделать так, чтобы 02M0#### отображался именно в Label1.Caption , а 03M0#### отображался в Label2.Caption Пробовал обойтись операторами:
Листинг программы
  1. If Label1.Caption <= "02M02999" Then
  2. Label1.Caption = Label1.Caption
  3. Else
  4. Label1.Caption = "Error"
  5. End If
  6. If Label1.Caption >= "02M00000" Then
  7. Label1.Caption = Label1.Caption
  8. Else
  9. Label1.Caption = "Error"
  10. End If
  11. If Label2.Caption <= "03M02999" Then
  12. Label2.Caption = Label2.Caption
  13. Else
  14. Label1.Caption = "Error"
  15. End If
  16. If Label2.Caption >= "03M00000" Then
  17. Label2.Caption = Label2.Caption
  18. Else
  19. Label2.Caption = "Error"
  20. End If
Так же пробовал с Buffer$. Ничего не вышло, в обоих случаях буфер проигнорировал все условия и продолжает выводить что и без условий. Помогите пожалуйста решить проблему. Спасибо!

Решение задачи: «Распределение данных с последовательного порта»

textual
Листинг программы
  1. If Left(Buffer$, 4)="02M0" Then
  2.    Label1.Caption = Buffer$
  3.    Label2.Caption = "Error"
  4. ElseIf Left(Buffer$, 4)="03M0" Then
  5.    Label2.Caption = Buffer$
  6.    Label1.Caption = "Error"
  7. Else
  8.    Label1.Caption = "Error"
  9.    Label2.Caption = "Error"
  10. End If

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


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

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

15   голосов , оценка 4.267 из 5

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

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

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