|
DELPHI |
|
|
|
Dec 20 2005, 21:28
|
Участник

Группа: Новичок
Сообщений: 43
Регистрация: 28-01-05
Пользователь №: 2 279

|
Может это не по теме, но другого места я тут не нашол. Такая ситуация: Написал я програмку на DELPHI которая общается по RS-232 с МК. Использовал стандартные API функции. В чем проблема? На моем компьюторе все нормально работает, но при переносе на другой компьютер ниче не работате - обмена нет. Я думаю, что это связано с опциями копиляции или с самим COM-портом. Если у кого была такая ситуация подскажите. Есть ли разница в уровнях в COM-портах на разных компьютерах?
|
|
|
|
|
Dec 21 2005, 06:26
|
Гуру
     
Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369

|
Цитата(ASV @ Dec 21 2005, 00:28)  На моем компьюторе все нормально работает, но при переносе на другой компьютер ниче не работате - обмена нет. Я думаю, что это связано с опциями копиляции или с самим COM-портом. Если у кого была такая ситуация подскажите. Есть ли разница в уровнях в COM-портах на разных компьютерах? Есть программка DEPENDS.EXE. Запускаете ее и ей "скармливаете" Ваше приложение. Она покажет, какие DLL, BPL и пр. используются для этой программы. Если на другой машине чего-то не хватит - то сразу увидете. Методика примерно такая: 1. Делаете заглушку Tx-Rx. Одеваете ее на порт, открываете штатную программу Монитор и передаете символы. Если есть прием - значит порт нормально работает. 2. В Вашей программе реализуете аналогичную функцию. Заодно тут выяснятся подробности с программной или аппаратной синхронизацией приема-передачи, те куда девать DTR-DSR. Добиваетесь, чтобы был прием. 3. На Вашем микроконтроллере делаете программную заглушку, которая выполняет то, что было описано в п.1. Передаете символы в мк, он должен отвечать ими-же. 4. Только после этих шагов переходите к проверке "родной" программы. А шаги 1-3 оставляете для проверки оборудования. Удачи!
Сообщение отредактировал iosifk - Dec 21 2005, 06:32
--------------------
www.iosifk.narod.ru
|
|
|
|
|
Dec 21 2005, 09:09
|

Знающий
   
Группа: Свой
Сообщений: 697
Регистрация: 26-07-05
Из: Могилев
Пользователь №: 7 095

|
Цитата(ASV @ Dec 21 2005, 01:28)  Может это не по теме, но другого места я тут не нашол. Такая ситуация: Написал я програмку на DELPHI которая общается по RS-232 с МК. Использовал стандартные API функции. В чем проблема? На моем компьюторе все нормально работает, но при переносе на другой компьютер ниче не работате - обмена нет. Я думаю, что это связано с опциями копиляции или с самим COM-портом. Если у кого была такая ситуация подскажите. Есть ли разница в уровнях в COM-портах на разных компьютерах? При разработке и отладке своего компонента KlientServComConnect пришел к выводу, что работа с COM-портом не особо зависит от системы (когда корректно все сделано) и конкректного компьютера. Больше вопросов было с модемами - разные модемы по разному работают. В вашем случае, предполагаю, вы не инициализируете порт, а используете настройки порта по умолчанию. Параметры, от которых в первую очередь зависит работа порта - скорость порта, таймауты порта (которые кстати в настройках системы не предусмотрены), причем они взаимосвязаны. Уровни логических сигналов на выходах портов разных машин естественно могут быть разными, но если они будут находиться в диапазоне -5...-12 В (для лог. единицы) и +5...+12 В(для лог. нуля) то все должно быть нормально, входы портов должны без проблем воспринимать сигналы -3...-12 В(лог.1) и +3..+12 В (лог.0), если есть сомнения, измерьте уровни осциллографом (или вольтметром)...
|
|
|
|
|
Dec 21 2005, 22:43
|
Участник

Группа: Новичок
Сообщений: 43
Регистрация: 28-01-05
Пользователь №: 2 279

|
Фух разобрался. Я просто не включил в проект юнит с классом для работы с ком портом. Все заработало покрайней мере на 15-ти машинах. Ужас как часто причины отказов кроются в мелочах.
|
|
|
|
|
Jan 25 2006, 09:46
|
Участник

Группа: Свой
Сообщений: 26
Регистрация: 21-12-05
Пользователь №: 12 486

|
Цитата(upc2 @ Dec 22 2005, 08:41)  <<Фух разобрался. Я просто не включил в проект юнит с классом для работы с ком портом. Все заработало покрайней мере на 15-ти машинах. Ужас как часто причины отказов кроются в мелочах.>>
Тогда расскажите, как все это работало на вашей машине? Что - то я начинаю разочаровываться в DELPHI Не совсем понятно, в чем именно разочарование  Если касательно работы с COM-портами под win32, то лучшее, что нашел в инете - статья Олега Титова (http://www.megalib.com/books/461/mastering/ports5.htm). Изложено толково и достаточно подробно, недостающую информацию по используемым API-функциям и структурам можно посмотреть в родном хелпе delphi.
|
|
|
|
|
Jan 25 2006, 11:09
|
Участник

Группа: Свой
Сообщений: 61
Регистрация: 24-01-06
Пользователь №: 13 541

|
Возможно, что вместе с дэлфой идут какие-то драйверы. попробуй на том компе установить дэлфу, и если всё заработает, то причина именно в этом
|
|
|
|
|
Jan 27 2006, 13:14
|
Участник

Группа: Свой
Сообщений: 26
Регистрация: 21-12-05
Пользователь №: 12 486

|
Цитата(michael34 @ Jan 25 2006, 14:09)  Возможно, что вместе с дэлфой идут какие-то драйверы. попробуй на том компе установить дэлфу, и если всё заработает, то причина именно в этом При работе с портами идет обращение к стандартному драйверу порта посредством вызова соответствующих функций API. Только в случае использования собственных нестандартных драйверов их придется переносить на каждую машину. Кстати, если кого интересует работа с LPT из delphi, могу найти ссылку на ресурс ( сейчас не вспомню). Там предлагается готовый шаблон и набор функций типа "если хотите установить эту ножку, сделайте то-то". Все на русском и с примерами использования.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|