Author |
Message |
Yarik
Writer
Joined: 07 Jul 2005 22:58 Posts: 15 Location: Новосибирск
|
А не богат ли ктонить нормальной DLLкой для работы с COM портом.
CreateFile();ReadFile() что то не нравится.
Может есть анология inpout32.dll(LPT) для COMа?
|
19 Jan 2006 06:17 |
|
|
HardWareMan
Banned
Joined: 20 Mar 2005 13:41 Posts: 2141 Location: От туда
|
Ну, я всегда к своему проекту просто подключал модуль управления COM портом со своим потоком. Можешь один раз написать такой и скомпилить в DLL.
|
19 Jan 2006 10:09 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22422 Location: Silicon Valley
|
|
19 Jan 2006 14:23 |
|
|
fk0
Novelist
Joined: 10 Jan 2006 07:54 Posts: 49 Location: St.Petersburg, Russian
|
Дайте кампанент! Да мне вообще winapi не нравится. Но это -- достаточный, абсолютно и полностью, интерфейс.
Кто эту dll потом поддерживать будет? Всякую дрянь тащить -- чревато. Плюс копирайт.
|
10 Feb 2007 04:10 |
|
|
lvd
Maniac
Joined: 01 Mar 2005 21:42 Posts: 230
|
А я вот чё-то не вкурю: inpout32.dll она же не для ЛПТ там или КОМа, а именно чтобы в ЛЮБОЙ порт залезть. Так кто мешает ею лазить в порты КОМа?
_________________ Du bist ein Spektrumist!
|
10 Feb 2007 05:56 |
|
|
Yarik
Writer
Joined: 07 Jul 2005 22:58 Posts: 15 Location: Новосибирск
|
Ага!Но с LPT проще байт отправил - байт принял.А с COM гемора больше.Dll ку я нашел,очень удобная там все нужные функции отправка байта,прием байта,прием-отправка массива.Вроде еще чтото но мне только эти были нужны.
|
10 Feb 2007 07:09 |
|
|
Sonic
Senior
Joined: 09 Jun 2005 05:34 Posts: 112
|
Ты че, изверг, напрямую в железо лезешь из своей программы только с целью работать с последовательным портом?
Да тебя расшесть за такое надо! А ты в курсе, что в современных машинах нет уже ни LPT, ни COM? А скажи-ка мне дорогой товарисч, а что будет если я твою программу запущу на машине, где у меня железка через USB-конвертор подключена? На макинтоше например?
Это сейчас оно пока еще экзотика, а года через два оно будет повсеместно.
И ваще набор возможных базовых адресов в настоящее время не ограничен 0x3F8, 0x2F8, 0x3E8, 0x2E8? Ты в курсе что последовательных портов может быть хоть 20 штук? И кстати не все из них аппаратно совместимы с 16550.
|
20 Feb 2007 03:20 |
|
|
lvd
Maniac
Joined: 01 Mar 2005 21:42 Posts: 230
|
| | | | Sonic wrote: Ты че, изверг, напрямую в железо лезешь из своей программы только с целью работать с последовательным портом? Да тебя расшесть за такое надо! А ты в курсе, что в современных машинах нет уже ни LPT, ни COM? А скажи-ка мне дорогой товарисч, а что будет если я твою программу запущу на машине, где у меня железка через USB-конвертор подключена? На макинтоше например? Это сейчас оно пока еще экзотика, а года через два оно будет повсеместно. И ваще набор возможных базовых адресов в настоящее время не ограничен 0x3F8, 0x2F8, 0x3E8, 0x2E8? Ты в курсе что последовательных портов может быть хоть 20 штук? И кстати не все из них аппаратно совместимы с 16550. | | | | |
А мне - плевать!
У меня на ноуте и ком и лпт есть, и через лпт замечательно байтбластер работает. Равно как и другие колхозные девайсы (inpout32.dll). А что у кого-то чего-то нет или вообще мак - это его проблемы, нечего было шыт покупать.
_________________ Du bist ein Spektrumist!
|
20 Feb 2007 05:18 |
|
|
HardWareMan
Banned
Joined: 20 Mar 2005 13:41 Posts: 2141 Location: От туда
|
LVD, для прямого доступа к железу нужно делать мьютекс (сам не юзаю, слышал о них от программеров) или делать свой драйвер. По мне - проще поставить UserPort и оформить подпрограмму обращения к портам как StdCall (в Delphi). Все работает на ура. Далее, есть книга у меня, там описаны примеры работы с СОМ портами, может поможет (там все для Delphi, но вдруг по аналогии навеет тебе решение)?
http://rapidshare.com/files/17405381/Com.rar.html (5,1Мб)
|
20 Feb 2007 09:03 |
|
|
Romanich
Banned
Joined: 12 Oct 2006 16:44 Posts: 608
|
поставьте себе WinIO.dll и не парьтесь.
И шепчитесь с регистрами портов как хотите!
очень удобно и никакая ось не возбухает!
|
20 Feb 2007 19:55 |
|
|
fk0
Novelist
Joined: 10 Jan 2006 07:54 Posts: 49 Location: St.Petersburg, Russian
|
А догадайся:
1. Передерёшься с драйвером в системе;
2. Портов ты не знаешь;
3. Портов там вообще нет (USB) или порты не типовые... (MOXA какая -нибудь);
4. Отдельная проблема -- никакой реалтайм (а тебе нужно это в 50% подобных случаев) не обещается (лучшем случае квантами по 10мс).
Впрочем тебе никто не мешает... Но сказать, что это пер-анально -- ничего не сказать.
Меж тем использовать (для COM!) стандартные интерефейсы ОС, а сам COM-порт по назначению (т.е. для передачи БАЙТОВОГО потока -- чтоб работало если даже в разрыв пару модемов включить) -- никто не мешает...
_________________ --
[ZX]
|
22 Feb 2007 10:15 |
|
|
fk0
Novelist
Joined: 10 Jan 2006 07:54 Posts: 49 Location: St.Petersburg, Russian
|
Ага. Только порт ввода-вывода МИКРОПРОЦЕССОРА к коммуникационному порту никакого отношения не имеет. Не очевидно разве? Вон в маках небось (не те, что на x86) вообще портов нет. В них вообще смысла не много...
_________________ --
[ZX]
|
22 Feb 2007 10:16 |
|
|
lvd
Maniac
Joined: 01 Mar 2005 21:42 Posts: 230
|
А как? Вот в амигаос для того есть штатные средства, после которых руками в порты лазить можно. А в венде?
Зачем, если инпоут32.длл - работает?
_________________ Du bist ein Spektrumist!
|
22 Feb 2007 14:37 |
|
|
lvd
Maniac
Joined: 01 Mar 2005 21:42 Posts: 230
|
| | | | fk0 wrote: А догадайся: 1. Передерёшься с драйвером в системе; 2. Портов ты не знаешь; 3. Портов там вообще нет (USB) или порты не типовые... (MOXA какая -нибудь); 4. Отдельная проблема -- никакой реалтайм (а тебе нужно это в 50% подобных случаев) не обещается (лучшем случае квантами по 10мс). | | | | |
А не буду. Это вон аффтару "ReadFile чо-то не нравится", не мне. Мне вообще терминалок хватало, чтобы со всеми колхозными девайсами по кому общаться.
_________________ Du bist ein Spektrumist!
|
22 Feb 2007 14:38 |
|
|
lvd
Maniac
Joined: 01 Mar 2005 21:42 Posts: 230
|
Порты (как средства связи с миром, а не как нечто, куда байтики пихать аутами) есть. Но в адресном пространстве общем болтаются просто. А на пц - в не общем, в отдельном. Тяжёлое насление 8-битных 8086, что уж поделать. Неизлечимо...
_________________ Du bist ein Spektrumist!
|
22 Feb 2007 14:40 |
|
|