![]() |
|
#1
|
|||
|
|||
![]() Доброго времени суток уважаемые!
Есть родная программа для сбора данных с Com1 Я пишу программу, которая должна конектиться к Com1 и послать команду 'MEAS80'. Команда прибором отрабатывается. procedure TForm1.Button6Click(Sender: TObject); Цитата:
Пробовал через HyperTerminal: HyperTerminal -> команда "MEAS" -> Результат ОК -> Disconnect Далее в родной программе данные грузятся без проблем! В чем может быть проблема??? Последний раз редактировалось Barsdg, 29.08.2012 в 12:37. |
#2
|
||||
|
||||
![]() может после отправки команды стоит попробоать принять что-то с порта (ответ)? хотя бы в течении какого-нибудь таймаута.
Пишу программы за еду. __________________ |
#3
|
|||
|
|||
![]() Дело в том, что прибор соединенный к СОМ1 уже получил себе в память данные, теперь требуется в РОДНОЙ программе - вытащить данные, но (я так понимаю) она не может соединиться с СОМ1, после пользования портом моей программы. ИЛИ я что-то не до понимаю!
Есть ли у кого нибудь листинг программы похожий на HyperTerminal виндовый??? Последний раз редактировалось Barsdg, 29.08.2012 в 13:29. |
#4
|
||||
|
||||
![]() родная программа читает данные только после отправки из себя или постоянно их ждет? какой Share Mode используется?
Пишу программы за еду. __________________ |
#5
|
|||
|
|||
![]() На приборе есть кнопка при нажатии которой приходит процесс сканирования шероховатости и сохранения данных к себе (в прибор) в память прибора. Далее в родной проге есть кнопка при нажатии которой, данные с прибора загружаются в нее.
Так вот мой выше описанный код имитирует нажатие кнопки на самом ПРИБОРЕ, но если я проделываю это не физически, а через мой код, то Родная прога не грузит данные, и выдает сообщение: http://www.delphisources.ru/forum/at...d=134623615 1 Такое же сообщение появляется когда Родная программа пытается загрузить данные, а прибор Выключен. Share Mode - не понял вопроса...? |
#6
|
||||
|
||||
![]() а при использовании HyperTerminal, после отправки команды из него, в родной программе кнопку нажимаешь чтобы получить данные из прибора? или программа сразу же получает данные?
Пишу программы за еду. __________________ |
#7
|
|||
|
|||
![]() Цитата:
HyperTerminal только посылает команду прибору о старте сканирования, как и мой код. |
#8
|
||||
|
||||
![]() а если запустить свою программу, отправить команду для сканирования и закрыть ее. и только потом в родной программе нажать кнопку получить данные?
Пишу программы за еду. __________________ |
#9
|
|||
|
|||
![]() Цитата:
Настройки установлены в самом компоненте. |
#10
|
||||
|
||||
![]() еще попробовать:
Код:
Str := Str + #13#10; Пишу программы за еду. __________________ |
#11
|
|||
|
|||
![]() Цитата:
Чтобы команда сработала, нужно в Родной проге попытаться загрузить данные, конечно результат будет таким же, и только тогда команда 'MEAS80' снова срабатывает. |
#12
|
||||
|
||||
![]() ну так один раз и посылай ее. только вместо одного \r шли \r\n после слова MEAS80. описания же протокола устройства не выложил...
Пишу программы за еду. __________________ |
Этот пользователь сказал Спасибо NumLock за это полезное сообщение: | ||
Barsdg (05.09.2012)
|
#13
|
|||
|
|||
![]() Цитата:
|
#14
|
||||
|
||||
![]() -флушируй порт
-убрать закрытие порта из процедуры отправки и перенести в закрытие формы -проснифири что передает родная программа и твоя при этом действии -после закрытия твоей программы что выдаст новый CreateFile? -что в диспетчере устройств после этого? Пишу программы за еду. __________________ |
Этот пользователь сказал Спасибо NumLock за это полезное сообщение: | ||
Barsdg (05.09.2012)
|
#15
|
||||
|
||||
![]() прибор висит на СОМ1, вы со своей программы открываете порт и шлете туда команду (при этом порт СОМ1 штатная программа открыть не может - он занят), закрываете порт - теперь его НИКТО не открыл (в том числе и штатная программа)
после посылки из терминала штатная программа сама по себе открывает СОМ1? лучше будет воспользоваться Free Com Port Monitor и посмотреть, что шлет штатная программа и что шлется в вашем случае, сравнить и сделать какие-то выводы, а заодно и протокол можно будет как-то понять Понять, что хочет заказчик - бесценно, ведь он платит MasterCard ![]() |
Этот пользователь сказал Спасибо cotseec за это полезное сообщение: | ||
Barsdg (05.09.2012)
|