Jump to content

    
Sign in to follow this  
ASV

DELPHI

Recommended Posts

Может это не по теме, но другого места я тут не нашол.

Такая ситуация: Написал я програмку на DELPHI которая общается по RS-232 с МК. Использовал стандартные API функции. В чем проблема? На моем компьюторе все нормально работает, но при переносе на другой компьютер ниче не работате - обмена нет.

Я думаю, что это связано с опциями копиляции или с самим COM-портом. Если у кого была такая ситуация подскажите.

Есть ли разница в уровнях в COM-портах на разных компьютерах?

Share this post


Link to post
Share on other sites

Во-первых, хотелось бы узнать разные операционки на этих компах или нет.

 

По поводу опций компиляции. Прогу можно компилировать с включением библиотек и без. Выбирается это в опциях проекта, закладка "Packages", галочка "Build with runtime packages". Проверьте ее.

Share this post


Link to post
Share on other sites
На моем компьюторе все нормально работает, но при переносе на другой компьютер ниче не работате - обмена нет.

Я думаю, что это связано с опциями копиляции или с самим COM-портом. Если у кого была такая ситуация подскажите.

Есть ли разница в уровнях в COM-портах на разных компьютерах?

 

Есть программка DEPENDS.EXE. Запускаете ее и ей "скармливаете" Ваше приложение. Она покажет, какие DLL, BPL и пр. используются для этой программы. Если на другой машине чего-то не хватит - то сразу увидете.

 

Методика примерно такая:

1. Делаете заглушку Tx-Rx. Одеваете ее на порт, открываете штатную программу Монитор и передаете символы. Если есть прием - значит порт нормально работает.

2. В Вашей программе реализуете аналогичную функцию. Заодно тут выяснятся подробности с программной или аппаратной синхронизацией приема-передачи, те куда девать DTR-DSR. Добиваетесь, чтобы был прием.

3. На Вашем микроконтроллере делаете программную заглушку, которая выполняет то, что было описано в п.1. Передаете символы в мк, он должен отвечать ими-же.

4. Только после этих шагов переходите к проверке "родной" программы. А шаги 1-3 оставляете для проверки оборудования.

Удачи!

Edited by iosifk

Share this post


Link to post
Share on other sites
Может это не по теме, но другого места я тут не нашол.

Такая ситуация: Написал я програмку на DELPHI которая общается по RS-232 с МК. Использовал стандартные API функции. В чем проблема? На моем компьюторе все нормально работает, но при переносе на другой компьютер ниче не работате - обмена нет.

Я думаю, что это связано с опциями копиляции или с самим COM-портом. Если у кого была такая ситуация подскажите.

Есть ли разница в уровнях в COM-портах на разных компьютерах?

 

Было такое давно, но до конца не победили :blush: (не нашли все причины, шаманством обходились).

 

:excl: Проверьте свойства COM-портов в драйвере Windows (лучше не использовать автоматическую настройку), Ваша программа должна сама инициализировать порты. И вообще советую еще раз сравнить компьютеры по этой вкладке и найти отличия. Результаты сообщите, пожалуйста :blush: .

Share this post


Link to post
Share on other sites
Может это не по теме, но другого места я тут не нашол.

Такая ситуация: Написал я програмку на DELPHI которая общается по RS-232 с МК. Использовал стандартные API функции. В чем проблема? На моем компьюторе все нормально работает, но при переносе на другой компьютер ниче не работате - обмена нет.

Я думаю, что это связано с опциями копиляции или с самим COM-портом. Если у кого была такая ситуация подскажите.

Есть ли разница в уровнях в COM-портах на разных компьютерах?

При разработке и отладке своего компонента

KlientServComConnect пришел к выводу, что работа с COM-портом не особо зависит от системы (когда корректно все сделано) и конкректного компьютера. Больше вопросов было с модемами - разные модемы по разному работают. В вашем случае, предполагаю, вы не инициализируете порт, а используете настройки порта по умолчанию. Параметры, от которых в первую очередь зависит работа порта - скорость порта, таймауты порта (которые кстати в настройках системы не предусмотрены), причем они взаимосвязаны.

Уровни логических сигналов на выходах портов разных машин естественно могут быть разными, но если они будут находиться в диапазоне -5...-12 В (для лог. единицы) и +5...+12 В(для лог. нуля) то все должно быть нормально, входы портов должны без проблем воспринимать сигналы -3...-12 В(лог.1) и +3..+12 В (лог.0), если есть сомнения, измерьте уровни осциллографом (или вольтметром)...

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

<<Фух разобрался. Я просто не включил в проект юнит с классом для работы с ком портом. Все заработало покрайней мере на 15-ти машинах. Ужас как часто причины отказов кроются в мелочах.>>

 

Тогда расскажите, как все это работало на вашей машине? Что - то я начинаю разочаровываться в

DELPHI

Share this post


Link to post
Share on other sites
Я просто не включил в проект юнит с классом для работы с ком портом. Все заработало ...

Так вы к порту обращались непосредственно через API, или использовали какой-то класс (или компонент)? Если через класс, то непонятно как проект удалось скомпилировать, когда юнит с классом не включен в проект :( ...

Share this post


Link to post
Share on other sites
<<Фух разобрался. Я просто не включил в проект юнит с классом для работы с ком портом. Все заработало покрайней мере на 15-ти машинах. Ужас как часто причины отказов кроются в мелочах.>>

 

Тогда расскажите, как все это работало на вашей машине? Что - то я начинаю разочаровываться в

DELPHI

 

Не совсем понятно, в чем именно разочарование :) Если касательно работы с COM-портами под win32, то лучшее, что нашел в инете - статья Олега Титова (http://www.megalib.com/books/461/mastering/ports5.htm). Изложено толково и достаточно подробно, недостающую информацию по используемым API-функциям и структурам можно посмотреть в родном хелпе delphi.

Share this post


Link to post
Share on other sites

В DELPHI, как и в Borland Builder и VC для генерации исполнительного кода есть настройки, что бы проект собирался и содержал в одном файле все необходимые библиотеки которые используются, если конечно они не системные. Exe-шник правда становиться большим, но будет работать на всех компах имеющих требуемую Windows среду.

Share this post


Link to post
Share on other sites

Возможно, что вместе с дэлфой идут какие-то драйверы. попробуй на том компе установить дэлфу, и если всё заработает, то причина именно в этом

Share this post


Link to post
Share on other sites
Возможно, что вместе с дэлфой идут какие-то драйверы. попробуй на том компе установить дэлфу, и если всё заработает, то причина именно в этом

 

При работе с портами идет обращение к стандартному драйверу порта посредством вызова соответствующих функций API. Только в случае использования собственных нестандартных драйверов их придется переносить на каждую машину. Кстати, если кого интересует работа с LPT из delphi, могу найти ссылку на ресурс ( сейчас не вспомню). Там предлагается готовый шаблон и набор функций типа "если хотите установить эту ножку, сделайте то-то". Все на русском и с примерами использования.

Share this post


Link to post
Share on other sites

Подняли старую тему.Вероятно у меня плохая копия Delphi.Без подключенных компонентов или

юнитов у меня не получается управлять СОМ-портами.

Share this post


Link to post
Share on other sites
Кстати, если кого интересует работа с LPT из delphi, могу найти ссылку на ресурс ( сейчас не вспомню). Там предлагается готовый шаблон и набор функций типа "если хотите установить эту ножку, сделайте то-то". Все на русском и с примерами использования.

Интересно было бы взглянуть...

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this