Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.02.2010, 02:03   #1
Gawwws
Заблокирован
 
Регистрация: 18.10.2008
Сообщений: 65
Восклицание Чтение данных

При опросе устройства через ком-порт, я получаю следующее:
22:52:23 06.02.2010 ПЕРЕДАЧА: 23 8 18 87 C0
22:52:23 06.02.2010 ОТВЕТ ПРИБОРА: 23 F9 0A 42 5D.
Ответ мне надо определить как правильный, но когда снимаю так:
Код:
Me.MSC.InputMode = comInputModeText
fd = Me.MSC.Input
Text1.Text = fd
получаю фигню из разных символов.
Помогите снять корректную информацию.
Gawwws вне форума Ответить с цитированием
Старый 07.02.2010, 02:07   #2
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Если не трудно ,выложите протокол обмена.
И полностью Ваши процедуры работы с компортом.
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 07.02.2010, 02:26   #3
Gawwws
Заблокирован
 
Регистрация: 18.10.2008
Сообщений: 65
По умолчанию

Протокола обмена нет, мре только необходимо выполнить 2 команды, которые я выяснил опытным путём и ответы я знаю, только не могу их проверить програмным путём. Пишу так:
Код:
MSC.CommPort = 6
MSC.Settings = "2400,N,8,1"
MSC.Handshaking = comNone
MSC.InputLen = 0
MSC.InBufferSize = 40
MSC.OutBufferSize = 40
MSC.RThreshold = 0
MSC.PortOpen = True
MSC.Output = Chr(35) & Chr(1) & Chr(2) & Chr(2) & Chr(2) & Chr(2) & Chr(2) & Chr(2) & Chr(2) & "=6"
Me.Timer1.Enabled = True
Private Sub Timer1_Timer()
i = i + 1
If i = 20 Then
    Timer1.Enabled = False
    MsgBox "Устройство не отвечает!", vbCritical, "Ошибка!"
    Exit Sub
End If
Me.MSC.InputMode = comInputModeText
fd = Me.MSC.Input
Text1.Text = fd
End Sub
Gawwws вне форума Ответить с цитированием
Старый 07.02.2010, 14:25   #4
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Попробуйте так.

Код:

Public MS As MSComm
Public Buffer As String
Public flag As Boolean

Sub htenie()
MSC.CommPort = 6
MSC.Settings = "2400,N,8,1"
MSC.Handshaking = comNone
MSC.InputLen = 0
MSC.InBufferSize = 40
MSC.OutBufferSize = 40
MSC.RThreshold = 0
On Error Resume Next
MSC.PortOpen = True
MSC.InBufferCount() = 0
MSC.Output = Chr(35) & Chr(1) & Chr(2) & Chr(2) & Chr(2) & Chr(2) & Chr(2) & Chr(2) & Chr(2) & "=6"

 Timer1.Enabled = True
Buffer = ""
Do
    Buffer = Buffer & MSC.Input
If flag = True Then MSС.PortOpen = False: Exit Sub
 Loop Until InStr(Buffer, vbCrLf)
 Timer1.Enabled = False
Text1.Text = Buffer
 MSC.PortOpen = False

End Sub


Private Sub Timer1_Timer()

i = i + 1
If i = 20 Then
flag = True

    Timer1.Enabled = False
    MsgBox "Устройство не отвечает!", vbCritical, "Ошибка!"
    Exit Sub
End If

End Sub
Анализ,обработка данных Недорого

Последний раз редактировалось doober; 07.02.2010 в 16:34.
doober вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
чтение данных (D2XX) fize Помощь студентам 14 12.01.2010 01:38
Чтение данных из программы по интернету Bil Работа с сетью в Delphi 3 21.04.2009 14:47
Чтение данных из файла в С++ Zaya007 Помощь студентам 9 17.03.2009 21:00
Чтение данных Satorin Общие вопросы Delphi 1 18.12.2008 22:10
Чтение данных с портов PS/2 и USB Hutch Win Api 10 02.06.2008 15:46