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

Регистриран на: Пет Фев 25, 2005 1:58 pm
Мнения: 4585
Местоположение: US
Мнение 
Nikola Kirov написа:
За съжаление и това е от 95 година и се отнася за
Windows NT and Windows 95 :(


Ако имаш възможност погледни сорс кода, ако се използва CreateFile() за отваряне на COM порта, ще работи на всички Win32 базирани ОС ( Win95..WinXP ). Ако е 16-битов сорс код, то тогава COM порта се отваря с OpenComm().

П.П.
Колкото до API функциите, ако държиш да ги научиш, линка който ти сложих в първия пост точно това обяснява: http://msdn.microsoft.com/library/en-us ... serial.asp
Ако изтеглиш C сорса и го компилираш с Visual Stidio ти гарантирам, че ще работи, защото първо го прекарах през Visual Studio, след това го компилирах на Borland. И при двете компилации използвах WinXP SP1, но работи и под SP2.


Последна промяна на Пон Юни 13, 2005 2:42 pm, променена общо 2 пъти



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

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

ЕДИТ//
като гледам pirev ти е дал абсолютно същия линк още в началото :)

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


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

Регистриран на: Пет Фев 25, 2005 1:58 pm
Мнения: 4585
Местоположение: US
Мнение 
Това ли не можеш да отвориш ?


Прикачени файлове:
4918.ZIP [128.1 KiB]
204 пъти
Пон Юни 13, 2005 2:56 pm
Профил WWW
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Окт 31, 2004 9:19 pm
Мнения: 4464
Местоположение: Stara Zagora
Мнение 
Отворих го. .МАК трябвало да отворя ама къде да съм виждал такова нещо,и става само с старото студио.
.Net вече не поддържа такива древности.


Пон Юни 13, 2005 3:03 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Окт 31, 2004 9:19 pm
Мнения: 4464
Местоположение: Stara Zagora
Мнение 
Добре че са братята руснаци. Ето тук открих много по въпроса.
http://www.rs232.ru/doc002.html


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

Регистриран на: Чет Окт 07, 2004 1:22 pm
Мнения: 1949
Местоположение: София
Мнение 
Ей, някой път много ви се чудя 8O Давам ви библиотеки "Ready-to-go"...пишеш едно "use xxxxx" и оттам нататък работиш с по 1-2 реда - SendString/RecieveStr...хората за удобство са направили и функции като RecvStrEx(Lenght: integer; Timeout: Cardinal)...няма по-просто и лесно от това/ :wink:


Пон Юни 13, 2005 4:44 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Окт 31, 2004 9:19 pm
Мнения: 4464
Местоположение: Stara Zagora
Мнение 
Да но за Delphi.
А и е интересно и да си го направиш сам.


Пон Юни 13, 2005 4:59 pm
Профил
Ранг: Професионалист
Ранг: Професионалист
Аватар

Регистриран на: Сря Окт 13, 2004 11:24 pm
Мнения: 500
Местоположение: Стара Загора
Мнение 
Никола, ако ще правиш обмен със максимална натовареност, е добре да използваш /SetEvent, EnterCriticalSection и LeaveCriticalSection/ във трийда който ще ти обработва приемането,това са функции на API-то и предполагам че така ще се казват и на Ц++, ако не е необходим критичен обмен просто си постави тайм аути и си чети софтуерно RX буфера. Това дето ти го казвам го видях в един компонент за делфи, преди да го срещна имах много главоболия при максимална натовареност на кома, поради многозадачноста на вина ако времето м/у пристигането на 2 последователни байта е по малко в сравнение с времето за тяхното четене и обработка то рано или късно приемният буфер ще се напълни, със SetEvent си стартираш трийда непосредствено след пристигане на байт а със EnterCriticalSection указваш на вина да нети краде процесора докато не стигнеш до LeaveCriticalSection м/у тях си правиш четенето и обработката на байта от кома, това е най бързият начин за обработка на сигнал от кома , когато създаваш манипулатор към кома със CreateFile трябва да използваш флага FILE_FLAG_OVERLAPPED .


Чет Юни 16, 2005 9:58 pm
Профил YIM
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 23 мнения ]  Отиди на страница Предишна  1, 2

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 1 госта


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

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