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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.01.2010, 17:36   #1
Gawwws
Пользователь
 
Регистрация: 18.10.2008
Сообщений: 65
По умолчанию Работа с ком-портом

Пытаюсь научиться работать с ком-портом. При этом хочу послать на модем команду отключения эхо - ate0. При отправке с HyperTerminal
это записывается как 61 74 65 30 0D, где 0D это точка (нажатие enter в HyperTerminal), а при таком коде:
Код:
Private Sub Command2_Click()
MSComm1.CommPort = 1
MSComm1.Settings = "9600,N,8,1"
MSComm1.Handshaking = comNone
MSComm1.InputLen = 0
MSComm1.InBufferSize = 40
MSComm1.OutBufferSize = 40
MSComm1.RThreshold = 0
MSComm1.PortOpen = True
MSComm1.Output = "ate0."
MSComm1.PortOpen = False
End Sub
я получаю 61 74 65 30 2E в отправке.

Что я делаю не так?
Gawwws вне форума Ответить с цитированием
Старый 17.01.2010, 17:42   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Замените строку MSComm1.Output = "ate0."
на строку MSComm1.Output = "ate0" & chr(13)
EducatedFool вне форума Ответить с цитированием
Старый 17.01.2010, 18:05   #3
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Вы все правильно получаете
0D это не точка,а возврат каретки
Код в Гипертерминале(точка у вас пропущена) должен быть таким

61 74 65 30 2Е 0D
А Ваш
Код:
MSComm1.Output = "ate0." & Chr(13)
Два способа считывания информации

Код:
MSComm1.InputMode() = InputModeConstants.comInputModeText
MSComm1.InputMode() = InputModeConstants.comInputModeBinary
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 17.01.2010, 18:07   #4
Gawwws
Пользователь
 
Регистрация: 18.10.2008
Сообщений: 65
По умолчанию

СПС!

Теперь получаю 61 74 65 30 0D, но модем не отвечает.

Почему?
Gawwws вне форума Ответить с цитированием
Старый 17.01.2010, 18:13   #5
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Чтобы получить вес с процессора я должен выдать ему команду R

Код:
MSComm1.Output = "R" & Chr(13)
Подгоните под свою команду,если должна присутствовать точка

Код:

MSComm1.Output = "ate0." & Chr(13)
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 17.01.2010, 18:24   #6
Gawwws
Пользователь
 
Регистрация: 18.10.2008
Сообщений: 65
По умолчанию

Нет. точки быть не должно и команда в бинарном коде прописывается правильно, но модем не отвечает. При отправке HyperTerminalом получаю:
COM1 << 61 74 65 30 0D ate0.
COM1 >> 0D 0A 4F 4B 0D 0A ..OK..
при отправке кодом запрос совпадает, а ответа нет!
Gawwws вне форума Ответить с цитированием
Старый 17.01.2010, 18:36   #7
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Выложите процедуру получения ответа
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 17.01.2010, 18:37   #8
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
при отправке кодом запрос совпадает, а ответа нет!
Какой код у Вас отвечает за получение ответа?
EducatedFool вне форума Ответить с цитированием
Старый 17.01.2010, 19:09   #9
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

вообще для модемов завершение строки #13 + #10, в смысле chr(13) + chr(10).
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 20.01.2010, 17:41   #10
Gawwws
Пользователь
 
Регистрация: 18.10.2008
Сообщений: 65
По умолчанию

Всем спасибо - работает!

Просто перед MSComm1.Input вставил паузу в 100 мс
Gawwws вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с com портом Валера777 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 4 05.12.2009 00:06
Работа с com портом albles Общие вопросы C/C++ 2 16.11.2009 15:15
Работа с COM-портом jovanny Помощь студентам 2 03.05.2009 18:06
Работа с COM портом hoba Общие вопросы Delphi 3 20.11.2008 03:39
работа с ком портом UROKSAN Общие вопросы Delphi 0 05.05.2008 06:28