Отговори на тема  [ 23 мнения ]  Отиди на страница 1, 2  Следваща
Работа с COM портовете 
Автор Съобщение
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Окт 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


Прикачени файлове:
rs232.zip [30.58 KiB]
342 пъти
Пон Юни 13, 2005 5:48 am
Профил WWW
Ранг: Новодошъл
Ранг: Новодошъл
Аватар

Регистриран на: Пон Фев 21, 2005 2:14 pm
Мнения: 191
Местоположение: Varna
Мнение 
ида готови компоненти за работа с ком. използването им спестява доста усилия, време и нерви. можеш да пробваш mscomm32.ocx(твърди се че е едно от малкото неща на Microsoft, които наистина работат както трябва). TMS Software също имат хубав компонент за ком комуникация.

_________________
Шанс едно на милион, обикновено се случва девет от десет пъти.


Пон Юни 13, 2005 9:22 am
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Чет Окт 07, 2004 1:22 pm
Мнения: 1949
Местоположение: София
Мнение 
Това за кой по-точно език го искаш, мога да те зарина с работещи такива компоненти :lol: Иначе и аз съм си писал по метода дето pirev го обяснява, но определено с готови компоненти става по-бързо и лесно.


Пон Юни 13, 2005 10:12 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пет Фев 25, 2005 1:58 pm
Мнения: 4585
Местоположение: US
Мнение 
Predator_MF написа:
Това за кой по-точно език го искаш, мога да те зарина с работещи такива компоненти :lol: Иначе и аз съм си писал по метода дето pirev го обяснява, но определено с готови компоненти става по-бързо и лесно.

Пусни някой линк, ама към безплатни наистина, иначе платени и shareware колкото искаш :)


Пон Юни 13, 2005 10:21 am
Профил WWW
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Чет Окт 07, 2004 1:22 pm
Мнения: 1949
Местоположение: София
Мнение 
За линк няма как да пусна щото съм ги теглил преди време и са от различни сайтове. Пускам ги тук:


Прикачени файлове:
Коментар на файл: Тоя компонент е доста добър, работи в background, почти изцяло Event-организиран. Също бих казал много добър
SERIALNG.ZIP [34.17 KiB]
315 пъти
Коментар на файл: Тая библиотека (не компонент) я ползвам аз. Страшно удобна и доста добре описана
SYNASER.ZIP [141.12 KiB]
312 пъти
Пон Юни 13, 2005 11:29 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Чет Окт 07, 2004 1:22 pm
Мнения: 1949
Местоположение: София
Мнение 
Продължение...


Прикачени файлове:
Коментар на файл: Това са останалите които съм нямал време да пробвам
Comport_components_and_libs.rar [351.4 KiB]
310 пъти
Коментар на файл: Още един много добре описан и добре работещ
DCCOMMS.ZIP [157.45 KiB]
305 пъти
Пон Юни 13, 2005 11:33 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Сеп 26, 2004 4:11 pm
Мнения: 3750
Местоположение: София
Мнение 
Бих препоръчал от www.torry.net Assync32, има компоненти за Delphi и C-Builder (Borland). Наистина са безплатни, само ако искаш изходния код, за него ще трябва да платиш. Оценката ми за него е 5.50 :lol:


Пон Юни 13, 2005 11:36 am
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Съб Сеп 25, 2004 12:32 pm
Мнения: 8382
Местоположение: София
Мнение 
По принцип чистото API е напълно достатъчно е и лесно за научаване. Ако искаш програмата ти да не забива, когато се приемат данни, трябва да пуснеш отделна нишка за приемането им. Когато данните са приети, нишката трябва да прати съобщение на прозореца, в който се визуализират данните.


Пон Юни 13, 2005 11:58 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Окт 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
Профил
Ранг: Новодошъл
Ранг: Новодошъл
Аватар

Регистриран на: Пон Фев 21, 2005 2:14 pm
Мнения: 191
Местоположение: Varna
Мнение 
виж дали това ще ти свърши работа като начало
В MSDN има още доста неща изписани за серийна комуникация


Прикачени файлове:
Коментар на файл: пример и описание за серийна комуникация от MSDN
comm.pdf [173.5 KiB]
398 пъти

_________________
Шанс едно на милион, обикновено се случва девет от десет пъти.
Пон Юни 13, 2005 12:51 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Окт 31, 2004 9:19 pm
Мнения: 4464
Местоположение: Stara Zagora
Мнение 
Това е от старите MSDN. Споменава се само WIN95 в него.
Дали ще работи под XP?
Доста е дълго да го изучавам и да тествам и да се окаже че не работи под XP :( .

А в новия MSDN има описание и примери за сериина комуникация само за VB. Поне аз не успях да намеря за C.


Пон Юни 13, 2005 2:07 pm
Профил
Ранг: Новодошъл
Ранг: Новодошъл
Аватар

Регистриран на: Пон Фев 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
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Окт 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
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 23 мнения ]  Отиди на страница 1, 2  Следваща

Кой е на линия

Потребители разглеждащи този форум: jordan-bg и 9 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни