nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 29 Mar 2024 06:35



Reply to topic  [ 23 posts ]  Go to page 1, 2  Next
Работа с COM портом в Visual C++ 
Author Message
Writer
User avatar

Joined: 07 Jul 2005 22:58
Posts: 15
Location: Новосибирск
Reply with quote
А не богат ли ктонить нормальной DLLкой для работы с COM портом.
CreateFile();ReadFile() что то не нравится.
Может есть анология inpout32.dll(LPT) для COMа?


19 Jan 2006 06:17
Profile ICQ
Banned
User avatar

Joined: 20 Mar 2005 13:41
Posts: 2141
Location: От туда
Reply with quote
Post 
Ну, я всегда к своему проекту просто подключал модуль управления COM портом со своим потоком. Можешь один раз написать такой и скомпилить в DLL. :)


19 Jan 2006 10:09
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22422
Location: Silicon Valley
Reply with quote
Post 
А вот это не пойдет?

http://www.codeguru.com/Cpp/I-N/network ... .php/c5425

_________________
:dj: https://mastodon.social/@Shaos


19 Jan 2006 14:23
Profile WWW
Novelist
User avatar

Joined: 10 Jan 2006 07:54
Posts: 49
Location: St.Petersburg, Russian
Reply with quote
Yarik wrote:
А не богат ли ктонить нормальной DLLкой для работы с COM портом.


Дайте кампанент!

Quote:
CreateFile();ReadFile() что то не нравится.


Да мне вообще winapi не нравится. Но это -- достаточный, абсолютно и полностью, интерфейс.

Quote:
Может есть анология inpout32.dll(LPT) для COMа?


Кто эту dll потом поддерживать будет? Всякую дрянь тащить -- чревато. Плюс копирайт.


10 Feb 2007 04:10
Profile ICQ YIM WWW
Maniac

Joined: 01 Mar 2005 21:42
Posts: 230
Reply with quote
Yarik wrote:
Может есть анология inpout32.dll(LPT) для COMа?


А я вот чё-то не вкурю: inpout32.dll она же не для ЛПТ там или КОМа, а именно чтобы в ЛЮБОЙ порт залезть. Так кто мешает ею лазить в порты КОМа?

_________________
Du bist ein Spektrumist!


10 Feb 2007 05:56
Profile
Writer
User avatar

Joined: 07 Jul 2005 22:58
Posts: 15
Location: Новосибирск
Reply with quote
Post 
Quote:
А я вот чё-то не вкурю: inpout32.dll она же не для ЛПТ там или КОМа, а именно чтобы в ЛЮБОЙ порт залезть. Так кто мешает ею лазить в порты КОМа?

Ага!Но с LPT проще байт отправил - байт принял.А с COM гемора больше.Dll ку я нашел,очень удобная там все нужные функции отправка байта,прием байта,прием-отправка массива.Вроде еще чтото но мне только эти были нужны.


10 Feb 2007 07:09
Profile ICQ
Senior

Joined: 09 Jun 2005 05:34
Posts: 112
Reply with quote
Post 
Ты че, изверг, напрямую в железо лезешь из своей программы только с целью работать с последовательным портом?
Да тебя расшесть за такое надо! :) А ты в курсе, что в современных машинах нет уже ни LPT, ни COM? А скажи-ка мне дорогой товарисч, а что будет если я твою программу запущу на машине, где у меня железка через USB-конвертор подключена? На макинтоше например?
Это сейчас оно пока еще экзотика, а года через два оно будет повсеместно.
И ваще набор возможных базовых адресов в настоящее время не ограничен 0x3F8, 0x2F8, 0x3E8, 0x2E8? Ты в курсе что последовательных портов может быть хоть 20 штук? И кстати не все из них аппаратно совместимы с 16550.


20 Feb 2007 03:20
Profile
Maniac

Joined: 01 Mar 2005 21:42
Posts: 230
Reply with quote
Post 
Sonic wrote:
Ты че, изверг, напрямую в железо лезешь из своей программы только с целью работать с последовательным портом?
Да тебя расшесть за такое надо! :) А ты в курсе, что в современных машинах нет уже ни LPT, ни COM? А скажи-ка мне дорогой товарисч, а что будет если я твою программу запущу на машине, где у меня железка через USB-конвертор подключена? На макинтоше например?
Это сейчас оно пока еще экзотика, а года через два оно будет повсеместно.
И ваще набор возможных базовых адресов в настоящее время не ограничен 0x3F8, 0x2F8, 0x3E8, 0x2E8? Ты в курсе что последовательных портов может быть хоть 20 штук? И кстати не все из них аппаратно совместимы с 16550.


А мне - плевать!
У меня на ноуте и ком и лпт есть, и через лпт замечательно байтбластер работает. Равно как и другие колхозные девайсы (inpout32.dll). А что у кого-то чего-то нет или вообще мак - это его проблемы, нечего было шыт покупать.

_________________
Du bist ein Spektrumist!


20 Feb 2007 05:18
Profile
Banned
User avatar

Joined: 20 Mar 2005 13:41
Posts: 2141
Location: От туда
Reply with quote
Post 
LVD, для прямого доступа к железу нужно делать мьютекс (сам не юзаю, слышал о них от программеров) или делать свой драйвер. По мне - проще поставить UserPort и оформить подпрограмму обращения к портам как StdCall (в Delphi). Все работает на ура. Далее, есть книга у меня, там описаны примеры работы с СОМ портами, может поможет (там все для Delphi, но вдруг по аналогии навеет тебе решение)?
http://rapidshare.com/files/17405381/Com.rar.html (5,1Мб)


20 Feb 2007 09:03
Profile
Banned

Joined: 12 Oct 2006 16:44
Posts: 608
Reply with quote
Post 
поставьте себе WinIO.dll и не парьтесь.
И шепчитесь с регистрами портов как хотите!
очень удобно и никакая ось не возбухает! :wink:


20 Feb 2007 19:55
Profile
Novelist
User avatar

Joined: 10 Jan 2006 07:54
Posts: 49
Location: St.Petersburg, Russian
Reply with quote
lvd wrote:
Yarik wrote:
Может есть анология inpout32.dll(LPT) для COMа?


А я вот чё-то не вкурю: inpout32.dll она же не для ЛПТ там или КОМа, а именно чтобы в ЛЮБОЙ порт залезть. Так кто мешает ею лазить в порты КОМа?


А догадайся:

1. Передерёшься с драйвером в системе;

2. Портов ты не знаешь;

3. Портов там вообще нет (USB) или порты не типовые... (MOXA какая -нибудь);

4. Отдельная проблема -- никакой реалтайм (а тебе нужно это в 50% подобных случаев) не обещается (лучшем случае квантами по 10мс).

Впрочем тебе никто не мешает... Но сказать, что это пер-анально -- ничего не сказать.
Меж тем использовать (для COM!) стандартные интерефейсы ОС, а сам COM-порт по назначению (т.е. для передачи БАЙТОВОГО потока -- чтоб работало если даже в разрыв пару модемов включить) -- никто не мешает...

_________________
--
[ZX]


22 Feb 2007 10:15
Profile ICQ YIM WWW
Novelist
User avatar

Joined: 10 Jan 2006 07:54
Posts: 49
Location: St.Petersburg, Russian
Reply with quote
Post 
Romanich wrote:
поставьте себе WinIO.dll и не парьтесь.
И шепчитесь с регистрами портов как хотите!
очень удобно и никакая ось не возбухает! :wink:


Ага. Только порт ввода-вывода МИКРОПРОЦЕССОРА к коммуникационному порту никакого отношения не имеет. Не очевидно разве? Вон в маках небось (не те, что на x86) вообще портов нет. В них вообще смысла не много...

_________________
--
[ZX]


22 Feb 2007 10:16
Profile ICQ YIM WWW
Maniac

Joined: 01 Mar 2005 21:42
Posts: 230
Reply with quote
Post 
HardWareMan wrote:
LVD, для прямого доступа к железу нужно делать мьютекс (сам не юзаю, слышал о них от программеров)

А как? Вот в амигаос для того есть штатные средства, после которых руками в порты лазить можно. А в венде?
Quote:
или делать свой драйвер.

Зачем, если инпоут32.длл - работает?

_________________
Du bist ein Spektrumist!


22 Feb 2007 14:37
Profile
Maniac

Joined: 01 Mar 2005 21:42
Posts: 230
Reply with quote
fk0 wrote:
lvd wrote:
А я вот чё-то не вкурю: inpout32.dll она же не для ЛПТ там или КОМа, а именно чтобы в ЛЮБОЙ порт залезть. Так кто мешает ею лазить в порты КОМа?


А догадайся:

1. Передерёшься с драйвером в системе;
2. Портов ты не знаешь;
3. Портов там вообще нет (USB) или порты не типовые... (MOXA какая -нибудь);
4. Отдельная проблема -- никакой реалтайм (а тебе нужно это в 50% подобных случаев) не обещается (лучшем случае квантами по 10мс).

А не буду. Это вон аффтару "ReadFile чо-то не нравится", не мне. Мне вообще терминалок хватало, чтобы со всеми колхозными девайсами по кому общаться.

_________________
Du bist ein Spektrumist!


22 Feb 2007 14:38
Profile
Maniac

Joined: 01 Mar 2005 21:42
Posts: 230
Reply with quote
Post 
fk0 wrote:
Ага. Только порт ввода-вывода МИКРОПРОЦЕССОРА к коммуникационному порту никакого отношения не имеет. Не очевидно разве? Вон в маках небось (не те, что на x86) вообще портов нет. В них вообще смысла не много...


Порты (как средства связи с миром, а не как нечто, куда байтики пихать аутами) есть. Но в адресном пространстве общем болтаются просто. А на пц - в не общем, в отдельном. Тяжёлое насление 8-битных 8086, что уж поделать. Неизлечимо...

_________________
Du bist ein Spektrumist!


22 Feb 2007 14:40
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 23 posts ]  Go to page 1, 2  Next

Who is online

Users browsing this forum: No registered users and 19 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.