![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Работа с TApdComPort(Async Professional) и с RS485... [D7]
Kolan © (2006-07-25 17:45:00)Здравствуйте,
Проделал эксперимент.
1. Создал новый проект в D7.
2. КинулTApdComPort.
3. Поставил RS485 mode = True.
4. И кнопку. При нажатии кнопки открывается порт.
FPort.Open := True;
5. Слежу за всем шпионом.
Ситуация такая при нажатии на кнопку, те при открытии порта начинается чтение(Rx), те компонент пытается читать из порта...
Хотелось бы понять как заставить его не делать этого....
Только как?
Исходники компонента есть...
Германн (2006-07-29 01:03:00) [1]
> Ну работать с множеством устройств не получится,
> проводов 2 раза больше,
> на счет длинны линии не уверен, кажется длинная не получится.
> .
>
> ... А главное ТЗ.
Ну хоть ты скажи между чем и чем происходит сравнение! А то я уже ничего не понимаю!
Работаю с "множеством устройств" и по RS232 и по RS485-422. Проводов, да разное количество (в некоторых случаях). Длина линии, ну тут свои особенности. Стандарты - это одно, реализация - это другое.
Kolan (2006-07-29 00:19:00) [2]
>
> А чем он так сильно отличается? Вроде только уровнем синала.
>
Ну работать с множеством устройств не получится,
проводов 2 раза больше,
на счет длинны линии не уверен, кажется длинная не получится..
... А главное ТЗ.
А для программиста как раз ничем :)
tesseract (2006-07-28 10:11:00) [3]
> Германн © (27.07.06 23:58) [26]
Да это я перерабтал. Тыкаем их как удлиннители на Rs-232, дешевле чем rs-485 выходит.
Германн (2006-07-27 23:58:00) [4]Блин опять промахнулся. Нажал "Добавить" вместо ">". :-(
> tesseract © (27.07.06 21:13) [24]
В дополнение к [25] - Но уж точно не
> уровнем синала
, имхо.
Германн (2006-07-27 23:55:00) [5]
> tesseract © (27.07.06 21:13) [24]
Одно из двух. То ли кто-то что-то не так сказал, то ли кто-то кого-то не понял. :-)
tesseract (2006-07-27 21:13:00) [6]> [23] Kolan © (27.07.06 19:18)
А чем он так сильно отличается? Вроде только уровнем синала.
Kolan (2006-07-27 19:18:00) [7]
> Германн © (27.07.06 00:20) [22]
>
>
Да точно копать буду тк уже 2 проект пришлось на RS422 переделать(аппаратную часть). Благо это тестовые образцы.....
Германн (2006-07-27 00:20:00) [8]
> Эээхх узнать бы как в Async сделана поддержка 485 и сделать
> сомому......
Ты сам писАл, что 5. Слежу за всем шпионом.
Ну так если это PortMon от Руссиновича или что-то подобное, то в его логе ты увидишь, что именно "Async" опрашивает и какими функциями для разных ОС, чтобы вовремя отловить "момент переключения" направления передачи. Ну так вперед! Проанализируй лог, пойми что для чего и зачем, и сделай сам такое же. Если займешься этим "основательно", то рано или поздно сможешь "сделать сомому", или даже лучше! Чем Ч. не шутит пока Б. спит. :-)
tesseract (2006-07-26 23:34:00) [9]> [20] GanibalLector © (26.07.06 23:32)
да вроде хватает.
GanibalLector (2006-07-26 23:32:00) [10]2 tesseract © (26.07.06 22:12) [19]
>Павел Агуров "Последовательные интерфейсы ПК. Практика программирования
Там очень скудно. Буквально 3 страницы :(
tesseract (2006-07-26 22:12:00) [11]> [18] Kolan © (26.07.06 20:27)
> Эээхх узнать бы как в Async сделана поддержка 485 и сделать
> сомому......
Павел Агуров "Последовательные интерфейсы ПК. Практика программирования
Kolan (2006-07-26 20:27:00) [12]Вроде получилось. Завтра с устройством проверю.
Эээхх узнать бы как в Async сделана поддержка 485 и сделать сомому......
Kolan (2006-07-26 19:48:00) [13]
> Германн © (26.07.06 13:03) [16]
Все благодарю разабрался.. Шас буду делать.. :)
> Ей богу
Ну ладно уж... Когда не знаещшь что искать, то трудно найти..
Благодарю.
Германн (2006-07-26 13:03:00) [14]
> Что мне надо: Как тольто пришли данные в порт отдать их
> все мне.. и все.
Как только придут данные в порт, так вызывется обработчик ApdComPort1TriggerAvail(CP: TObject; Count: Word), где Count как раз количество байт считанных из порта. Вот в этом обработчике и вызывай GetChar или GetBlock.
Ей богу, по-моему в справке всё это хорошо описано и примеров навалом!
Kolan (2006-07-26 12:29:00) [15]
> А в контексте сабжа скажу, что эта активность по чтению
> "статусов" COM-порта просто необходима, если нужно обеспечить
> правильное переключение RTS в режиме RS485 для любой ОС
Кстати если режим 485 не включать, все равно читает...
Kolan (2006-07-26 11:43:00) [16]
> Может объясните здесь
Что мне надо:
Как тольто пришли данные в порт отдать их все мне.. и все.
Kolan (2006-07-26 11:11:00) [17]Прочел про
OnTrigeerAvailне понял когда оно вызывается...
Мне бы хотелось как только хоть что-то пришло в порт прочитать это все.
А там вроде:
Defines an event handler that is called whenever a certainamount of serial input data is available for processing
А где пройти краткий лик без по компоненту... Может объясните здесь...
Kolan (2006-07-26 11:01:00) [18]
> И пользуешь ли вообще?
Не не использую вообще. С самим компонентом не очень разобрался...
Пользуюсь так
Length := FPort.InBufferUsed;
for I := 1 to Length do
C := FPort.GetChar;
end;
Ну и ли без цикла сGetBlock.
Германн (2006-07-26 01:51:00) [19]
> Проблемма кста только с чтение с записью в порт все ок..
> ..может я не так пользуюсь компонентом?
OnTrigeerAvail правильно пользуешь? И пользуешь ли вообще?
Kolan (2006-07-26 01:15:00) [20]
> Delphi 485 CreateFile"
Чет ниче не нашел.... ткни, а :)