Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: DELPHI
Форум разработчиков электроники ELECTRONIX.ru > Цифровая обработка сигналов - ЦОС (DSP) > Алгоритмы ЦОС (DSP)
ASV
Может это не по теме, но другого места я тут не нашол.
Такая ситуация: Написал я програмку на DELPHI которая общается по RS-232 с МК. Использовал стандартные API функции. В чем проблема? На моем компьюторе все нормально работает, но при переносе на другой компьютер ниче не работате - обмена нет.
Я думаю, что это связано с опциями копиляции или с самим COM-портом. Если у кого была такая ситуация подскажите.
Есть ли разница в уровнях в COM-портах на разных компьютерах?
Dr.NoA
Во-первых, хотелось бы узнать разные операционки на этих компах или нет.

По поводу опций компиляции. Прогу можно компилировать с включением библиотек и без. Выбирается это в опциях проекта, закладка "Packages", галочка "Build with runtime packages". Проверьте ее.
iosifk
Цитата(ASV @ Dec 21 2005, 00:28) *
На моем компьюторе все нормально работает, но при переносе на другой компьютер ниче не работате - обмена нет.
Я думаю, что это связано с опциями копиляции или с самим COM-портом. Если у кого была такая ситуация подскажите.
Есть ли разница в уровнях в COM-портах на разных компьютерах?


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

Методика примерно такая:
1. Делаете заглушку Tx-Rx. Одеваете ее на порт, открываете штатную программу Монитор и передаете символы. Если есть прием - значит порт нормально работает.
2. В Вашей программе реализуете аналогичную функцию. Заодно тут выяснятся подробности с программной или аппаратной синхронизацией приема-передачи, те куда девать DTR-DSR. Добиваетесь, чтобы был прием.
3. На Вашем микроконтроллере делаете программную заглушку, которая выполняет то, что было описано в п.1. Передаете символы в мк, он должен отвечать ими-же.
4. Только после этих шагов переходите к проверке "родной" программы. А шаги 1-3 оставляете для проверки оборудования.
Удачи!
Виктория
Цитата(ASV @ Dec 21 2005, 01:28) *
Может это не по теме, но другого места я тут не нашол.
Такая ситуация: Написал я програмку на DELPHI которая общается по RS-232 с МК. Использовал стандартные API функции. В чем проблема? На моем компьюторе все нормально работает, но при переносе на другой компьютер ниче не работате - обмена нет.
Я думаю, что это связано с опциями копиляции или с самим COM-портом. Если у кого была такая ситуация подскажите.
Есть ли разница в уровнях в COM-портах на разных компьютерах?


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

excl.gif Проверьте свойства COM-портов в драйвере Windows (лучше не использовать автоматическую настройку), Ваша программа должна сама инициализировать порты. И вообще советую еще раз сравнить компьютеры по этой вкладке и найти отличия. Результаты сообщите, пожалуйста blush.gif .
Old1
Цитата(ASV @ Dec 21 2005, 01:28) *
Может это не по теме, но другого места я тут не нашол.
Такая ситуация: Написал я програмку на DELPHI которая общается по RS-232 с МК. Использовал стандартные API функции. В чем проблема? На моем компьюторе все нормально работает, но при переносе на другой компьютер ниче не работате - обмена нет.
Я думаю, что это связано с опциями копиляции или с самим COM-портом. Если у кого была такая ситуация подскажите.
Есть ли разница в уровнях в COM-портах на разных компьютерах?

При разработке и отладке своего компонента
KlientServComConnect пришел к выводу, что работа с COM-портом не особо зависит от системы (когда корректно все сделано) и конкректного компьютера. Больше вопросов было с модемами - разные модемы по разному работают. В вашем случае, предполагаю, вы не инициализируете порт, а используете настройки порта по умолчанию. Параметры, от которых в первую очередь зависит работа порта - скорость порта, таймауты порта (которые кстати в настройках системы не предусмотрены), причем они взаимосвязаны.
Уровни логических сигналов на выходах портов разных машин естественно могут быть разными, но если они будут находиться в диапазоне -5...-12 В (для лог. единицы) и +5...+12 В(для лог. нуля) то все должно быть нормально, входы портов должны без проблем воспринимать сигналы -3...-12 В(лог.1) и +3..+12 В (лог.0), если есть сомнения, измерьте уровни осциллографом (или вольтметром)...
ASV
Фух разобрался. Я просто не включил в проект юнит с классом для работы с ком портом. Все заработало покрайней мере на 15-ти машинах. Ужас как часто причины отказов кроются в мелочах.
upc2
<<Фух разобрался. Я просто не включил в проект юнит с классом для работы с ком портом. Все заработало покрайней мере на 15-ти машинах. Ужас как часто причины отказов кроются в мелочах.>>

Тогда расскажите, как все это работало на вашей машине? Что - то я начинаю разочаровываться в
DELPHI
Old1
Цитата(ASV @ Dec 22 2005, 02:43) *
Я просто не включил в проект юнит с классом для работы с ком портом. Все заработало ...

Так вы к порту обращались непосредственно через API, или использовали какой-то класс (или компонент)? Если через класс, то непонятно как проект удалось скомпилировать, когда юнит с классом не включен в проект sad.gif ...
shans
Цитата(upc2 @ Dec 22 2005, 08:41) *
<<Фух разобрался. Я просто не включил в проект юнит с классом для работы с ком портом. Все заработало покрайней мере на 15-ти машинах. Ужас как часто причины отказов кроются в мелочах.>>

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


Не совсем понятно, в чем именно разочарование smile.gif Если касательно работы с COM-портами под win32, то лучшее, что нашел в инете - статья Олега Титова (http://www.megalib.com/books/461/mastering/ports5.htm). Изложено толково и достаточно подробно, недостающую информацию по используемым API-функциям и структурам можно посмотреть в родном хелпе delphi.
BVU
В DELPHI, как и в Borland Builder и VC для генерации исполнительного кода есть настройки, что бы проект собирался и содержал в одном файле все необходимые библиотеки которые используются, если конечно они не системные. Exe-шник правда становиться большим, но будет работать на всех компах имеющих требуемую Windows среду.
michael34
Возможно, что вместе с дэлфой идут какие-то драйверы. попробуй на том компе установить дэлфу, и если всё заработает, то причина именно в этом
DSIoffe
Цитата
Возможно, что вместе с дэлфой идут какие-то драйверы

Драйверы для общения с периферией - не идут.
shans
Цитата(michael34 @ Jan 25 2006, 14:09) *
Возможно, что вместе с дэлфой идут какие-то драйверы. попробуй на том компе установить дэлфу, и если всё заработает, то причина именно в этом


При работе с портами идет обращение к стандартному драйверу порта посредством вызова соответствующих функций API. Только в случае использования собственных нестандартных драйверов их придется переносить на каждую машину. Кстати, если кого интересует работа с LPT из delphi, могу найти ссылку на ресурс ( сейчас не вспомню). Там предлагается готовый шаблон и набор функций типа "если хотите установить эту ножку, сделайте то-то". Все на русском и с примерами использования.
upc2
Подняли старую тему.Вероятно у меня плохая копия Delphi.Без подключенных компонентов или
юнитов у меня не получается управлять СОМ-портами.
Old1
Цитата(shans @ Jan 27 2006, 17:14) *
Кстати, если кого интересует работа с LPT из delphi, могу найти ссылку на ресурс ( сейчас не вспомню). Там предлагается готовый шаблон и набор функций типа "если хотите установить эту ножку, сделайте то-то". Все на русском и с примерами использования.

Интересно было бы взглянуть...
shans
Цитата(Old1 @ Feb 1 2006, 11:51) *
Цитата(shans @ Jan 27 2006, 17:14) *

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

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


Взгляните smile.gif http://valery-us4leh.narod.ru/main.html
shans
Цитата(upc2 @ Feb 1 2006, 11:30) *
Подняли старую тему.Вероятно у меня плохая копия Delphi.Без подключенных компонентов или
юнитов у меня не получается управлять СОМ-портами.


Не знаю насчет плохой копии... Собственно, единственное, что требуется - вызов нужных API- функций, по-моему должно работать в любом случае. А вызовом расширенных команд с помощью функции EscapeCommFunction можно произвольно управлять ногами TxD, RTS, DTR, реализуя протоколы, отличные от стандартного. Повторюсь насчет ссылки на статью Олега Титова - неплохо расписано. Если что - пишите smile.gif
upc2
Спасибо Shans.Я хорошо разбираюсь в портах и API функциях. Я просто хотел
обратить внимание на то , что ASV вешает всем лапшу на уши.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.