| Автор |
Съобщение |
|
Nikola Kirov
Ранг: Форумен бог
Регистриран на: Нед Окт 31, 2004 9:19 pm Мнения: 4464 Местоположение: Stara Zagora
|
 Работа с COM портовете
Как под Windows се работи с Com портовете?
Намерих една 2 библиотеки за сериина комуникация но нещо много мъгляви описанията към тях. Препоръчаите откъде да захвана.
|
| Пон Юни 13, 2005 2:27 am |
|
 |
|
¶
Ранг: Форумен бог
Регистриран на: Пет Фев 25, 2005 1:58 pm Мнения: 4585 Местоположение: US
|
Предполагам, че искаш да използваш C++ за работа с COM портовете. Имаш различни варианти, в зависимост от компилатора, да използваш готови компоненти или да си направиш собствена реализация на комуникацията. Под Win32 серийната комуникация е доста по-сложна, за разлика от Win16. Преди време реших да си направя собствена клас на C++, изхождайки от стар примерен сорс на MicroSoft, който беше писан на C. Докарах я до някъде, предавам данни, но приемната част не е напълно изтествана, от време на време забива треда. Използвам Borland C++ 5.02 компилатор, с отделни тредове за приемане и предаване, с леки модификации, сорса може да се прехвърли лесно и за други компилатори. Иначе последователността на работа е следната: отваряш си манипулатор с CreateFile() към серийния порт, попълваш структура от тип DCB със твоите инициализации за порта, задаваш ги с SetCommState(), викаш SetupComm() за зададеш размера на входния и изходния буфер, попълваш една структира COMMTIMEOUTS с timeout времена, задаваш тези времена с SetCommTimeouts(), след което създаваш нишките на приемане и предаване, както и синхронизиращите елементи, които да ти осигурят синхронизация на нишките с главната нишка ( или друга нишка ). Моят клас не е завършен, ако го намериш за удобно начало в твоята работа и направиш подходящи промени, постни ги, да ги използваме всички.
Ц Сорса, от който тръгнах:
http://msdn.microsoft.com/library/en-us ... serial.asp
|
| Пон Юни 13, 2005 5:48 am |
|
 |
|
Cvetanov
Ранг: Новодошъл
Регистриран на: Пон Фев 21, 2005 2:14 pm Мнения: 191 Местоположение: Varna
|
ида готови компоненти за работа с ком. използването им спестява доста усилия, време и нерви. можеш да пробваш mscomm32.ocx(твърди се че е едно от малкото неща на Microsoft, които наистина работат както трябва). TMS Software също имат хубав компонент за ком комуникация.
_________________ Шанс едно на милион, обикновено се случва девет от десет пъти.
|
| Пон Юни 13, 2005 9:22 am |
|
 |
|
Predator_MF
Ранг: Форумен бог
Регистриран на: Чет Окт 07, 2004 1:22 pm Мнения: 1949 Местоположение: София
|
Това за кой по-точно език го искаш, мога да те зарина с работещи такива компоненти  Иначе и аз съм си писал по метода дето pirev го обяснява, но определено с готови компоненти става по-бързо и лесно.
|
| Пон Юни 13, 2005 10:12 am |
|
 |
|
¶
Ранг: Форумен бог
Регистриран на: Пет Фев 25, 2005 1:58 pm Мнения: 4585 Местоположение: US
|
Пусни някой линк, ама към безплатни наистина, иначе платени и shareware колкото искаш 
|
| Пон Юни 13, 2005 10:21 am |
|
 |
|
Predator_MF
Ранг: Форумен бог
Регистриран на: Чет Окт 07, 2004 1:22 pm Мнения: 1949 Местоположение: София
|
За линк няма как да пусна щото съм ги теглил преди време и са от различни сайтове. Пускам ги тук:
|
| Пон Юни 13, 2005 11:29 am |
|
 |
|
Predator_MF
Ранг: Форумен бог
Регистриран на: Чет Окт 07, 2004 1:22 pm Мнения: 1949 Местоположение: София
|
Продължение...
|
| Пон Юни 13, 2005 11:33 am |
|
 |
|
bateAz
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 4:11 pm Мнения: 3750 Местоположение: София
|
Бих препоръчал от www.torry.net Assync32, има компоненти за Delphi и C-Builder (Borland). Наистина са безплатни, само ако искаш изходния код, за него ще трябва да платиш. Оценката ми за него е 5.50 
|
| Пон Юни 13, 2005 11:36 am |
|
 |
|
Реконструктор
Ранг: Форумен бог
Регистриран на: Съб Сеп 25, 2004 12:32 pm Мнения: 8382 Местоположение: София
|
По принцип чистото API е напълно достатъчно е и лесно за научаване. Ако искаш програмата ти да не забива, когато се приемат данни, трябва да пуснеш отделна нишка за приемането им. Когато данните са приети, нишката трябва да прати съобщение на прозореца, в който се визуализират данните.
|
| Пон Юни 13, 2005 11:58 am |
|
 |
|
Nikola Kirov
Ранг: Форумен бог
Регистриран на: Нед Окт 31, 2004 9:19 pm Мнения: 4464 Местоположение: Stara Zagora
|
Реконструктор да имаш някакво примерче за работаta с API - to
За Visual Studio. Да захапя отнякъде.
|
| Пон Юни 13, 2005 12:18 pm |
|
 |
|
Реконструктор
Ранг: Форумен бог
Регистриран на: Съб Сеп 25, 2004 12:32 pm Мнения: 8382 Местоположение: София
|
Довечера ще се постарая да пусна 
|
| Пон Юни 13, 2005 12:21 pm |
|
 |
|
Cvetanov
Ранг: Новодошъл
Регистриран на: Пон Фев 21, 2005 2:14 pm Мнения: 191 Местоположение: Varna
|
виж дали това ще ти свърши работа като начало
В MSDN има още доста неща изписани за серийна комуникация
_________________ Шанс едно на милион, обикновено се случва девет от десет пъти.
|
| Пон Юни 13, 2005 12:51 pm |
|
 |
|
Nikola Kirov
Ранг: Форумен бог
Регистриран на: Нед Окт 31, 2004 9:19 pm Мнения: 4464 Местоположение: Stara Zagora
|
Това е от старите MSDN. Споменава се само WIN95 в него.
Дали ще работи под XP?
Доста е дълго да го изучавам и да тествам и да се окаже че не работи под XP  .
А в новия MSDN има описание и примери за сериина комуникация само за VB. Поне аз не успях да намеря за C.
|
| Пон Юни 13, 2005 2:07 pm |
|
 |
|
Cvetanov
Ранг: Новодошъл
Регистриран на: Пон Фев 21, 2005 2:14 pm Мнения: 191 Местоположение: Varna
|
http://www.ftdichip.com/Resources/Links.htm
http://msdn.microsoft.com/library/defau ... serial.asp
виж тези два линка
от първия отидох на втория
можеш да смъкнеш екзампъла и ако работи значи всичко в статията е ок
мисля че това са неща които не са се променили с развитието на windows
_________________ Шанс едно на милион, обикновено се случва девет от десет пъти.
|
| Пон Юни 13, 2005 2:24 pm |
|
 |
|
Nikola Kirov
Ранг: Форумен бог
Регистриран на: Нед Окт 31, 2004 9:19 pm Мнения: 4464 Местоположение: Stara Zagora
|
За съжаление и това е от 95 година и се отнася за
Windows NT and Windows 95
Даже не виждам как да го отворя това като проект и да го kомпилирам с Visual Studio-to. мамичката им маикрософтска нищо не са документирали в по нови времена за работата с COM-овете.
Последна промяна Nikola Kirov на Пон Юни 13, 2005 2:40 pm, променена общо 1 път
|
| Пон Юни 13, 2005 2:31 pm |
|
|