Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Работа с com портами [D5]


red_imp ©   (2006-10-12 17:47:00) 

Возникла проблема - нужно принимать данные с устройства которое подключено к сом порту и определенным образом обрабатывать эту информацию, с помощю демки которая шла с оборудованием принимает все нормально но при просмотре лога приема данные передавались в виде какойто абракадабры типа - "S.~~..#u" и т.д. Подскажите пожалуйста как организовать прием данных в читаемой форме.


medved_68   (2006-10-18 11:57:00) [1]

ГерманнДа нет здесь явно не тот случай!!! Большинство такой байды работает даже без аппаратного управления потоком, ожидая тупого подтверждения приема набором ASCII кода + контрольная сумма и маркер конца. :))) А пока не пришло шлют как обалделые одно и то же. :))) Хотя может и ошибаюсь но в любом случае:

> Пусть автор пробует. Результаты его проб можно будет обсуждать
> более конкретно.

полностью одобрям и поддержам!!!! Ж)))


Германн   (2006-10-17 02:08:00) [2]


> medved_68 ©   (15.10.06 18:46) [12]
>
>Как средство, при
> отсутствии описания, можно предложить схему по которой задействованы
> 3 порта на 1 устройство, на 2 программа - демка, а третий
> связывает порт демки с твоей программой, которая выкидывает
> то что пришло от демки на порт устройства и наоборот, при
> этом выводя данные например в Мемо в НЕХ виде. При помощи
> такой "прослойки" можно попытаться расколоть прикладной
> протокол, я не думаю что он очень сложный для понимания

Иногда этого мало, имхо. Иногда нужно знать "In/Out" с точностью до одного байта. А ещё, иногда, нужно и работать напрямую с выводами микросхемы UART!
Пусть автор пробует. Результаты его проб можно будет обсуждать более конкретно.


red_imp   (2006-10-16 15:42:00) [3]

Всем спасибо за ответы, буду пробовать


red_imp   (2006-10-16 15:42:00) [4]

Всем спасибо за ответы, буду пробовать


medved_68   (2006-10-15 18:46:00) [5]


> в описании устройства написано что работает через протокол
> rs 485.

Это не то...Необходимо описание прикладного протокола, который используется устройством + знание управляющих сигналов, при которых принимаемые данные верны... Как средство, при отсутствии описания, можно предложить схему по которой задействованы 3 порта на 1 устройство, на 2 программа - демка, а третий связывает порт демки с твоей программой, которая выкидывает то что пришло от демки на порт устройства и наоборот, при этом выводя данные например в Мемо в НЕХ виде. При помощи такой "прослойки" можно попытаться расколоть прикладной протокол, я не думаю что он очень сложный для понимания :))))


Германн   (2006-10-15 02:10:00) [6]


> Подавать на изделия различные команды, смотреть portmon-
> м что там ходит, анализировать, самому пробовать понять
> что там за протокол обмена. Вряд ли он очень сложный.
>

Имхо, для автора любой протокол сложный! Он пока умеет только читать текст.


YurikGL   (2006-10-14 23:59:00) [7]


> А если его нет тогда можно чтото сделать? Просто дали задние
> написать прогу которая будет снимать данные с контроллера,
>  в описании устройства написано что работает через протокол
> rs 485. К производителю обратится довольно таки проблематично

Подавать на изделия различные команды, смотреть portmon-м что там ходит, анализировать, самому пробовать понять что там за протокол обмена. Вряд ли он очень сложный.


Kolan   (2006-10-13 19:18:00) [8]

Возьми шпион LGComSpy++ - супер вешь для таких дел...


Германн   (2006-10-13 17:04:00) [9]


> Подскажите пожалуйста как организовать прием данных в читаемой
> форме.

Принимать байты и выводить их с помощью IntToHex


red_imp   (2006-10-13 16:27:00) [10]

atruhin ©  

А если его нет тогда можно чтото сделать? Просто дали задние написать прогу которая будет снимать данные с контроллера, в описании устройства написано что работает через протокол rs 485. К производителю обратится довольно таки проблематично


atruhin   (2006-10-13 16:12:00) [11]

Это описание работы порта. Тебе нужно описание прикладного протокола, узнать у производителя оборудования.


red_imp   (2006-10-13 16:08:00) [12]

ANB ©

Да протокол там стандартный rs 485 в описании его нашел что:


1). Часто встречаются протоколы на основе ASCII-кода. Управляющие символы и данные передаются в виде обыкновенных ASCII символов. Посылка может выглядеть так:
В HEX виде:    3Ah 31h 32h 52h 53h 34h 38h 35h 0Dh
В ASCII виде:  ":" "1" "2" "R" "S" "4" "8" "5" /ПС/....
2). Можно организовать протокол с непосредственной передачей двоичных данных
3) Протокол может быть "чисто" двоичным, то есть без выделения специальных управляющих символов


Никогда с этим не работал, может ктото подскажет в каком направлении стоит дальше искать


ANB   (2006-10-12 18:12:00) [13]


> Скорее всего только вот не знаю как перевести эти данные
> в форму которую я мог бы использовать

Может сначала почитать описание протокола обмена ?


red_imp   (2006-10-12 18:06:00) [14]

Ketmar ©

Да вроде да.

guav ©  

> Это наверное значит, что "S.~~..#u" - не какая-то абракадабра
> а правильные данные, с точки зрения протокола обмена ?


Скорее всего только вот не знаю как перевести эти данные в форму которую я мог бы использовать, может какаято кодировка своя? или еще чтото никак не могу разобратся.


guav   (2006-10-12 17:58:00) [15]

> с помощю демки которая шла с оборудованием принимает все
> нормально но при просмотре лога приема данные передавались
> в виде какойто абракадабры типа - "S.~~..#u" и т.д

Это наверное значит, что "S.~~..#u" - не какая-то абракадабра а правильные данные, с точки зрения протокола обмена ?


Ketmar   (2006-10-12 17:50:00) [16]

настройки порта правильные?


Наверх

Титульная страница Поиск, карта сайта Написать письмо