![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 17.04.2010
Сообщений: 29
|
![]()
использую компонент TComport Library от Dejan Crnila.
я шлю дивайсу с компьютера некоторые данные, дивайс тихоходный, при заполнении буфера, дивайс выдает сигнал, я этот сигнал перехватываю и использую коды 17 19, xon xoff для сообщения компорту. после этого компорт перестает передавать данные, но моя программа не видит, что компорт не передает, продолжает в цикле передавать. Как мне определить и потом возобновить передачу ? |
![]() |
![]() |
![]() |
#2 |
ПШП
Участник клуба
Регистрация: 15.07.2013
Сообщений: 1,926
|
![]() |
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 17.04.2010
Сообщений: 29
|
![]()
я вижу по реакции моей программы , предположим в цикле моя программа шлет через компорт 100 байтов в секунду, после получения от дивайса кода 19 , программа начинает тормозить раз в 10 при этом через компорт на дивайс ничего не уходит, осцилографом наблюдаю..
порт при этом открыт, и никакие ошибки не появляются ...мне нужно , чтобы моя программа видела и приостановила передачу , иначе данные пропадают... Последний раз редактировалось aha; 05.09.2021 в 01:01. |
![]() |
![]() |
![]() |
#4 |
ПШП
Участник клуба
Регистрация: 15.07.2013
Сообщений: 1,926
|
![]()
Ага. Значит код 19 шлет таки дивайс. Так что тогда такое "моя программа"?
Может код этой "вашей" программы приведете? |
![]() |
![]() |
![]() |
#5 |
ПШП
Участник клуба
Регистрация: 15.07.2013
Сообщений: 1,926
|
![]()
удалено
|
![]() |
![]() |
![]() |
#6 |
ПШП
Участник клуба
Регистрация: 15.07.2013
Сообщений: 1,926
|
![]()
Добавлю. Если дивайс умеет управлять потоком приема/передачи с помощью команд xon/xoff, значит как минимум "ваша" программа на компьютере должна работать в дуплексном режиме. Т.е. уметь одновременно писать в порт и читать из него.
Ну а все остальные замечания только после показа кода программы. Ну и ещё одно. Команды xon/xoff посылаются не компорту. Компорт это безмозглая железяка. Эти команды посылаются собеседнику, общающемуся по этому порту. Т.е. "вашей" программе. Последний раз редактировалось northener; 05.09.2021 в 02:20. |
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 17.04.2010
Сообщений: 29
|
![]()
в программе ничего такого нет, программа может работать в дуплексе, простой цикл передачи данных без контроля, примерно так передает
FOR J:=1 TO LENGTH(SL) DO begin SB:=COPY(SL,J,1); CP1.WriteStr(SB); end; так то можно контролировать прием кода #19 в цикле и приостановить передачу. А нет ли возможности программно узнать что произошло с компортом ? Вот этот цикл, приведенный выше начинает тормозить, но на выходе компорта при этом передачи нет.... |
![]() |
![]() |
![]() |
#8 |
Пользователь
Регистрация: 28.02.2009
Сообщений: 42
|
![]()
Граблей много.
1 линия связи - синхронная или асинхронная(трех проводная - NullModem) 2 На чем реализован comport. аппаратно. с осцилоскопом знаком - поймеш о чем говорю если через плату расширения - хорошо. если через переходник - 1 если на мелкосхеме CP2XXX - выкинь. больше чем телефон свяать не годится. 2 если на FTDI(FTXXXX) Хорошо. но есть гемор с дровами на китайскую копию чипа. теперь о протоколе - в каком фйормате идет передача данных. Бинарный или симольный(ANSI). 1 Бинарный - без управляющих кодов. 2 ANSI - значения до #23(не помню уже точно) управляющие коды передачи. пакетная или посимвольная передача? ну и всетаки ModBus почитать не мешает. Организация и структура кадра. сам пользовался BCPort он сделан на основе ComPort Library от Dejan Crnila. Нареканий нет. в связке с FTDI стабильно жило в течении 5 месяцев без перезагрузки. правда под ХР. Последний раз редактировалось stalkernet; 05.09.2021 в 12:42. |
![]() |
![]() |
![]() |
#9 |
Пользователь
Регистрация: 17.04.2010
Сообщений: 29
|
![]()
com порт со стороны дивайса советский специализированный чип приема передатчика. Линия связи трехпроводная, для передачи своя, приема своя линия. Протокол символьный, и передача посимвольно.
|
![]() |
![]() |
![]() |
#10 |
Пользователь
Регистрация: 28.02.2009
Сообщений: 42
|
![]()
Сурово...
давненьуо про ИРППС не вспоминал. но помню - знатные грабли были. что за девайс - можно? Если справочник по советским протоколам не выкинул - попытаюсь вспомнить. попробуй BCPort. Почему ComPort не пользовал уже не помню. BCPort.7z если можно - кусок схемы с этим чипом. |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
работа с Com-портом | Teror4uks | Общие вопросы Delphi | 5 | 10.10.2014 12:48 |
Работа c COM-портом | doniyor | Общие вопросы Delphi | 12 | 27.07.2009 11:16 |
Работа с COM портом | hoba | Общие вопросы Delphi | 3 | 20.11.2008 03:39 |
работа с COM портом | ShAzat | Общие вопросы Delphi | 8 | 28.05.2008 20:08 |