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

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

COM-порт. Вывод информации на него. [D7, WinXP]


Страницы:   1 2 3

MASTAFA ©   (2007-06-20 10:01:00) 

Собственно, хочу узнать у знатоков, как можно выводить информацию на COM-порт? И в частности было бы неплохо если  бы вы подкинули какой-нибудь примерчик с выводом числовой информации на него.


tesseract   (2007-06-25 17:14:00) [1]


> очитав учебник по-русскому, почитай любую книжку по аппаратным
> средствам и узнай насчет байт-ориентрованности асинхронного
> режима и бит-ориентированности синхронного режима.


По ОЦС было 4. Кое-что ещё не забыл, за "байт-ориентированность" сразу послали бы на пересдачу.

"Режим" вообще странен, устройство оно или использует строб или не использует.


> Спасибо уже ответили.


Я по последнему посту отвечал.


> Это открытие заслуживает шнобелевской премии :)


Ага причём тут 8-ми разрядный счётчик подключённый к генератору импульсов и синхронность?


>  Нездоровое самолюбие одним словом.


Нездоровое желание не учиться четырьмя словами.


MASTAFA   (2007-06-25 17:09:00) [2]

ок


Anatoly Podgoretsky   (2007-06-25 17:08:00) [3]

Не путай круглое с красным.
Синхронный режим работы с синронным режимом передачи.


MASTAFA   (2007-06-25 17:02:00) [4]

Сам почитай...
Для начала учебник по русскому. Согласуй предложения так, чтобы их можно было понять без телепатии.

> RS232 - последовательный интерфейс, он не параллельный,
> но частоты передачи у него строго определённая из доступных,
>  синхронный он или нет?

Что ты имел ввиду? Думаешь прочитав про стандарт RS-232 и  найдя там слово "последовательный" ты что-то понял? Причем здесь то, что COM-порт -порт последовательный?


> Синхронная функция не возвращаеться до окончания операции,
>  асинхронная возвращаеться сразу. GetLastError вернёт ERROR_IO_PENDING.
>  дальше сам думай, как ждать результата.


Спасибо уже ответили.


> Не путай тёплого с мягким, причём тут старт стоп/бит и синхронность/
> асинхронность?


Почитав учебник по-русскому, почитай любую книжку по аппаратным средствам и узнай насчет байт-ориентрованности асинхронного режима и бит-ориентированности синхронного режима. Я же ничего не говорил про мою аппаратную задачу, может мне надо передать на ЦАП 11 бит информации подряд? А как мне это сделать в асинхронном режиме минимальная единица передаваемой информации которого 1 байт? То есть у меня еще влезут левые старт- и стоп-биты.


> ЗЫ:  И вообще почитай хоть что нибудь, а не гони на умных
> людей.


Какими качествами, по-твоему мнению, обладают умные люди? По-моему на форуме - это реальная оценка своих знаний и ответы только по теме. А если уж невтерпеж написать что-нибудь, то хотя бы писали без фраз типа : "ты заблуждаешься". Написал бы: "... по-моему субъективному мнению",- было гораздо лучше. :D. Нездоровое самолюбие одним словом.

Все спасибо за ответы на вопросы (реально помогли), тема закрыта.


Германн   (2007-06-25 17:00:00) [5]


> Асинхронный режим в аппаратном смысле сильно отличается
> от синхронного. В синхронном режиме нет ни старт-бита, ни
> стоп-бита, ни ошибок передачи, по типу ошибк паритета и
> пр. Короче говоря синхронный режим - это в принципе реализация
> работы простейшего 8-разрядного генератора.

Это открытие заслуживает шнобелевской премии :)


tesseract   (2007-06-25 16:19:00) [6]


> И вообще если я написал, что мне надо знать отличие синхронного
> от несинхронного, то если у вас есть время и желание ответьте
> на него максимально точно и корректно.


Синхронная функция не возвращаеться до окончания операции, асинхронная возвращаеться сразу. GetLastError вернёт ERROR_IO_PENDING. дальше сам думай, как ждать результата.


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


Не путай тёплого с мягким, причём тут старт стоп/бит и синхронность/ асинхронность?  А ошибки паритета вообще не в тему.

RS232 - последовательный интерфейс, он не параллельный, но частоты передачи у него строго определённая из доступных, синхронный он или нет?  

ЗЫ:  И вообще почитай хоть что нибудь, а не гони на умных людей.


mastafa   (2007-06-25 15:57:00) [7]


> С проблемами связанными с использованием доппотоков недозрелыми
> желтыми земляными червяками

!!! откровенная грубость


> Как то: программа начинает через несколько часовработы
> заявлять, что не может открыть порт, потому что он занят

О каких часах идет речь? Я же написал, что прога передает всего лишь несколько импульсов. На это уйдет ровно столько времени сколько я захочу.


> Согласен с Германн. Микросхема ничегошеньки не знает, про
> то, как Windows реализует запись/чтение. Блокирует ли она
> нить или не блокирует, а операцию производит в фоновом потоке.
>  Ей все-равно. У нее есть только транзисторы внутри и ножки
> снаружи :) Согласен?


Согласен с вашей точкой зрения.  А язык Делфи это набор begin'ов и end'ов с большим количеством символов между ними... . И ему все равно в каком порядке они расположились. Согласны?


> И работа драйвера СОМ-порта, ну никак не зависит от того
> используется синхронный или асинхронный метод работы с СОМ-
> портом.

Асинхронный режим в аппаратном смысле сильно отличается от синхронного. В синхронном режиме нет ни старт-бита, ни стоп-бита, ни ошибок передачи, по типу ошибк паритета и пр. Короче говоря синхронный режим - это в принципе реализация работы простейшего 8-разрядного генератора. Так что такого писать точно не стоит:

> P.S. Ещё раз повторю - синхронная работа с устройством,
> которое поддерживает асинхронность - полная чушь!


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


Anatoly Podgoretsky   (2007-06-23 12:19:00) [8]

> Германн  (23.06.2007 02:24:31)  [31]

> P.S. Ещё раз повторю - синхронная работа с устройством, которое поддерживает асинхронность - полная чушь! И часто приводит к трудноуловимым граблям для пользователей таких программ.

Пока наблюдается другое. Ассинхронный режим работы большинству не по зубам.


Инс   (2007-06-23 12:08:00) [9]


> С проблемами связанными с использованием доппотоков недозрелыми
> желтыми земляными червяками.


Ну дык, синхронный режим тут ни причем, это руки кривые. Ну да ладно, пожалуй, действительно, при работе с потоками нужно четко представлять как это работает, иначе - грабли, грабли, грабли. Хотя при работе в асинхронном режиме последнее утверждение тоже действует.


Германн   (2007-06-23 11:44:00) [10]


> Вы так категорично это заявляете! Я в принципе согласен,
>  что асинхронный режим работы предпочтительнее, но раз вы
> говорите, что синхронный - полная чушь, то хотелось бы услышать
> более конкретные аргументы. С чем именно можно столкнуться
> при работе в синхронном режиме?
>

С проблемами связанными с использованием доппотоков недозрелыми желтыми земляными червяками. Как то: программа начинает через несколько часов работы заявлять, что не может открыть порт, потому что он занят (хотя именно она сама его заняла). Или, например, при выдергивании из компа переходника USB-COM программа "наглухо" вешает систему, даже на CAD нет реакции. И т.д. и т.п.


Инс   (2007-06-23 09:43:00) [11]


> Тут вообще несколько другое. Что получит микросхема зависит
> от драйвера СОМ-порта. И от того, что система aka Windows
> сочтёт для себя главной задачей в тот или иной момент. И
> работа драйвера СОМ-порта, ну никак не зависит от того используется
> синхронный или асинхронный метод работы с СОМ-портом.


Драйвер COM-порта будет работать одинаково в обоих режимах, но надо учитывать, что Windows не является системой реального времени, так что время начала отправки данных будет зависеть от того, синхронный режим используется или асинхронный. Это связано с планированием потоков. А вот после того, как отправка данных начата - разницы уже не будет никакой.


> P.S. Ещё раз повторю - синхронная работа с устройством,
> которое поддерживает асинхронность - полная чушь! И часто
> приводит к трудноуловимым граблям для пользователей таких
> программ.


Вы так категорично это заявляете! Я в принципе согласен, что асинхронный режим работы предпочтительнее, но раз вы говорите, что синхронный - полная чушь, то хотелось бы услышать более конкретные аргументы. С чем именно можно столкнуться при работе в синхронном режиме?


Германн   (2007-06-23 02:24:00) [12]


> MASTAFA ©   (22.06.07 15:57) [28]
>
> Да нет, я понимаю почему не надо работать в синхронном режиме.
>


> Инс   (22.06.07 17:59) [30]
>
> Согласен с Германн. Микросхема ничегошеньки не знает, про
> то, как Windows реализует запись/чтение. Блокирует ли она
> нить или не блокирует, а операцию производит в фоновом потоке.
>

Тут вообще несколько другое. Что получит микросхема зависит от драйвера СОМ-порта. И от того, что система aka Windows сочтёт для себя главной задачей в тот или иной момент. И работа драйвера СОМ-порта, ну никак не зависит от того используется синхронный или асинхронный метод работы с СОМ-портом.

P.S. Ещё раз повторю - синхронная работа с устройством, которое поддерживает асинхронность - полная чушь! И часто приводит к трудноуловимым граблям для пользователей таких программ.


Инс   (2007-06-22 17:59:00) [13]

Согласен с Германн. Микросхема ничегошеньки не знает, про то, как Windows реализует запись/чтение. Блокирует ли она нить или не блокирует, а операцию производит в фоновом потоке. Ей все-равно. У нее есть только транзисторы внутри и ножки снаружи :) Согласен?


Германн   (2007-06-22 17:53:00) [14]


> Просто, во-первых, мне нужен вывод на микросхемку именно
> в таком режиме

Ты заблуждаешься. Синхронность/асинхронность тут ни при чем.


MASTAFA   (2007-06-22 15:57:00) [15]

Да нет, я понимаю почему не надо работать в синхронном режиме. Просто, во-первых, мне нужен вывод на микросхемку именно в таком режиме, а, во-вторых, мне абосолютно не важна производительность (или вообще его способность производить что-нибудь :D) компьютера в данный момент. Просто программка сгенерирует несколько импульсов и по счетчику отключится.


Германн   (2007-06-22 15:53:00) [16]


> Но можно, например, создать дополнительный поток, и в нем
> работать в синхронном режиме.

Всё равно не надо. Сплошные грабли!


Инс   (2007-06-22 15:51:00) [17]


> Не надо работать в синхронном режиме.


В основном потоке действительно не надо. Но можно, например, создать дополнительный поток, и в нем работать в синхронном режиме. Главный поток при этом сможет беспрепятственно заниматься обработкой сообщений.


Германн   (2007-06-22 15:45:00) [18]


> MASTAFA ©   (22.06.07 15:43) [24]

Не надо работать в синхронном режиме. Пусть это и проще для тебя, но всё равно не надо.


MASTAFA   (2007-06-22 15:43:00) [19]

эх-х-х, издеваться еще успеваете )))


Инс   (2007-06-22 15:36:00) [20]


> Если его не указывать компилятор ругается


Конечно ругается :)))


Страницы:   1 2 3

Наверх

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