imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Компьютеры > Программирование
Опции темы
Старый 07.12.2004, 02:00     # 1
Archie
Junior Member
 
Регистрация: 07.12.2004
Адрес: Минск
Сообщения: 83

Archie Путь к славе только начался
Работа с com-портом

Помогите написать программу работы с com-портом на Visual С++.
Надо связать два компа и научить их общаться посредством порта.
Проблема состоит в приеме данных.
Archie вне форума  
Старый 07.12.2004, 07:35     # 2
kay
Member
 
Регистрация: 23.03.2002
Сообщения: 206

kay Путь к славе только начался
тут без тредов не обойтись. иначе если чтение зациклить, то программа глючить будет.

поищи на http://www.delphikingdom.ru/, там хоть и дельфа, но функции winAPI используются
kay вне форума  
Старый 07.12.2004, 10:43     # 3
alexey_ma
Member
 
Регистрация: 10.03.2002
Адрес: Israel
Сообщения: 245

alexey_ma Нимб уже пробиваетсяalexey_ma Нимб уже пробивается
Смотри здесь:
http://sources.ru/cpp/cpp_com_port.shtml
__________________
Best Regards
alexey_ma вне форума  
Старый 07.12.2004, 14:25     # 4
crawler
Full Member
 
Регистрация: 11.12.2002
Сообщения: 864

crawler Имеются все основания чтобы гордиться собойcrawler Имеются все основания чтобы гордиться собойcrawler Имеются все основания чтобы гордиться собойcrawler Имеются все основания чтобы гордиться собойcrawler Имеются все основания чтобы гордиться собойcrawler Имеются все основания чтобы гордиться собойcrawler Имеются все основания чтобы гордиться собойcrawler Имеются все основания чтобы гордиться собойcrawler Имеются все основания чтобы гордиться собойcrawler Имеются все основания чтобы гордиться собой
http://msdn.microsoft.com/library/de...sdn_serial.asp

Лучшее об'яснение по работе с серийными портами в Вин32. Рабочий код внутри (аппликация MTTTY ).
Для нормальной работы таки нужны треды и Overlapped I/O.

Последний раз редактировалось crawler; 07.12.2004 в 14:27.
crawler вне форума  
Старый 07.12.2004, 23:37     # 5
Archie
Junior Member
 
Регистрация: 07.12.2004
Адрес: Минск
Сообщения: 83

Archie Путь к славе только начался
Цитата:
crawler:
Для нормальной работы таки нужны треды и Overlapped I/O.
Что за треды?
Archie вне форума  
Старый 08.12.2004, 09:13     # 6
kay
Member
 
Регистрация: 23.03.2002
Сообщения: 206

kay Путь к славе только начался
Цитата:
Сообщение от Archie
Что за треды?
об этом как раз неплохо написано на delphikingdom.ru
http://www.delphikingdom.ru/asp/view...723&mode=print
kay вне форума  
Старый 09.12.2004, 18:28     # 7
rkorchagin
Guest
 
Сообщения: n/a

ничего сложного!
просто открой для записи файл с именем "СОМ1"
с помощью ф-ции CreateFile
и пиши туда байты...
а чтение я непробовал - но вероятно просто опять же открыть файл с именем "СОМ1" для чтения...
 
Старый 09.12.2004, 22:10     # 8
Archie
Junior Member
 
Регистрация: 07.12.2004
Адрес: Минск
Сообщения: 83

Archie Путь к славе только начался
Не все так просто...
Записать данные в порт и передать их дальше я могу. А вот как прочесть их на другом компе?
Archie вне форума  
Старый 12.12.2004, 13:44     # 9
crawler
Full Member
 
Регистрация: 11.12.2002
Сообщения: 864

crawler Имеются все основания чтобы гордиться собойcrawler Имеются все основания чтобы гордиться собойcrawler Имеются все основания чтобы гордиться собойcrawler Имеются все основания чтобы гордиться собойcrawler Имеются все основания чтобы гордиться собойcrawler Имеются все основания чтобы гордиться собойcrawler Имеются все основания чтобы гордиться собойcrawler Имеются все основания чтобы гордиться собойcrawler Имеются все основания чтобы гордиться собойcrawler Имеются все основания чтобы гордиться собой
Гхы.. запускаешь прогу на другом компе и читаешь из порта. Можно спаять кабелек и слать с одного порта на другой. Все как rkorchagin сказал.
Треды - типа параллельных процессов в Винде. Если не запараллелить чтение,запись и интерфейс - то одно будет тормозить другое, и прога будет глючить. Не забудь определить буффера обмена побольше - особенно на высоких скоростях- ставь 10-50 мег.
crawler вне форума  
Старый 12.12.2004, 23:46     # 10
Archie
Junior Member
 
Регистрация: 07.12.2004
Адрес: Минск
Сообщения: 83

Archie Путь к славе только начался
Цитата:
crаwlеr:
Если не запараллелить чтение,запись и интерфейс - то одно будет тормозить другое, и прога будет глючить
Как это сделать?
Archie вне форума  
Старый 15.12.2004, 10:26     # 11
Felan
Junior Member
 
Аватар для Felan
 
Регистрация: 19.05.2003
Адрес: Самара
Сообщения: 52

Felan Путь к славе только начался
Ну блин ваще :(

Вот интересно, те, кто дает советы тут, хоть раз что-нибудь работающее и законченное делал с этим самым комом?

1 Лучше пользоваться компонентами специально сделанными.
1.1 Берите mscomm, которы родной микросовтовский активикс. С другими бывают некоторые непонятки и глюки (по крайней мере с теми с котрыми я пробовал).

2 Треды использовать желательно, но не обязательно, если правильно сделать (проверять есть ли в буфере столько, сколько собрались читать), то все работает замечательно и без тредов!!!

3 По поводу чтения из порта на другом компе... Я не знаю, ты из вообще перд этим кабелем соеденил? Точно соеденил? А кабель у тебя нуль-модемный??? (Кабель от модема не подойдет, т.к. о модемный). Если не знаешь, чем отличаются, см. в сети. Ифы навалом.
Если у тебя кабель правельный, то читаешь, так же как и пишешь, только наоборот. Рас разобрался как писать, то читать, также, только вместо "Write", пишешь "Read". Это все описано даже в хелпе.

ЗЫЖ Я писал на делфи, но разници в принципе все равно нет.
__________________
Когда у оппонента кончаются аргументы, он начинает уточнять национальность.
Felan вне форума  
Старый 15.12.2004, 15:09     # 12
alexey_ma
Member
 
Регистрация: 10.03.2002
Адрес: Israel
Сообщения: 245

alexey_ma Нимб уже пробиваетсяalexey_ma Нимб уже пробивается
Цитата:
Felan:
Вот интересно, те, кто дает советы тут, хоть раз что-нибудь работающее и законченное делал с этим самым комом?
Неоднократно. Делал программы для работы с GSM модемом и для работы с обычным модемом, правда довольно давно. На API, без всяких компонент.
Но если говорить про компоненты то советую обратить внимание на Greenleaf CommX - http://www.microway.com.au/catalog/list_comm.htm
Покруче чем mscomm, но к сожалению не бесплатен.
__________________
Best Regards
alexey_ma вне форума  
Старый 15.12.2004, 21:05     # 13
Felan
Junior Member
 
Аватар для Felan
 
Регистрация: 19.05.2003
Адрес: Самара
Сообщения: 52

Felan Путь к славе только начался
На API слишком геморройно. Смысла особого нет. Я первый раз делал прогу для работы с желзкой исключительно на API (просто не знал, и лень было искать что есть mscomm).
Я не утверждаю, что mscomm вер совершенства. Просто он простой и ПРАВИЛЬНО работающий. Я когда пробовал разные компаненты, заработал как положено только он. Работать надо было не с модемом (с ним все работали хорошо), а опять же с контроллером.
Кстати, никаких потоков не пользовал.
MsComm тоже не совсем бесплатен... но это все лечится, а если лечить по каким-то соображениям нельзя, то для рантайм он бесплатен.
__________________
Когда у оппонента кончаются аргументы, он начинает уточнять национальность.
Felan вне форума  
Старый 18.01.2006, 20:07     # 14
metrim
Full Member
 
Регистрация: 02.10.2003
Пол: Male
Сообщения: 869

metrim Популярный человек на этом форумеmetrim Популярный человек на этом форумеmetrim Популярный человек на этом форумеmetrim Популярный человек на этом форумеmetrim Популярный человек на этом форумеmetrim Популярный человек на этом форумеmetrim Популярный человек на этом форумеmetrim Популярный человек на этом форуме
Exclamation Вариации для VBA

Граждане, помогите, подскажите
Нужно сделать прожку (предположительно на ВБА, которая должна записывать/считывать инфу через сом-порт.
Опыт програмирования у меня не большой, но программа простенькая и как заставить ее работать я приблизительно представляю.
Проблема в том, что в документации по ВБА я не нашел способа обращения к ком-порту, т.е. я прочитал, что COM1, COM2, LPT и пр. это зарезервированные имена, но вот как к ним обращаться я понятия не имею.
Подскажите как это сделать в ВБА или подскажите альтернативный способ решения проблемы (считанные с устройства данные мне бы хотелось получать в Эксель)
Заранее спасибо
metrim вне форума  
Старый 18.01.2006, 20:23     # 15
dyr_farot
Advanced Member
 
Регистрация: 23.08.2003
Сообщения: 442

dyr_farot Нимб уже пробиваетсяdyr_farot Нимб уже пробивается
на VBA это вряд ли получится. на VB можно
dyr_farot вне форума  
Старый 18.01.2006, 20:38     # 16
Vellion
Junior Member
 
Регистрация: 16.04.2004
Сообщения: 53

Vellion Известность не заставит себя ждать
Я как то делал на VBA, в Exel считывал данные с микрометра, который был подключен через Com порт. Использовал IO ActiveX Communications module фирмы JSPayne (_http://www.jspayne.com/io/home.html), там все просто получаеться. Единственная проблема оно денег стоит. Хотя я тогда нашел где-то лекарство.
Vellion вне форума  
Старый 18.01.2006, 20:46     # 17
dyr_farot
Advanced Member
 
Регистрация: 23.08.2003
Сообщения: 442

dyr_farot Нимб уже пробиваетсяdyr_farot Нимб уже пробивается
проще ( IMHO ) самому наваять нужную функциональность ( на том же шарпе ) и вызвать этот модуль в екселе
dyr_farot вне форума  
Старый 18.01.2006, 21:11     # 18
metrim
Full Member
 
Регистрация: 02.10.2003
Пол: Male
Сообщения: 869

metrim Популярный человек на этом форумеmetrim Популярный человек на этом форумеmetrim Популярный человек на этом форумеmetrim Популярный человек на этом форумеmetrim Популярный человек на этом форумеmetrim Популярный человек на этом форумеmetrim Популярный человек на этом форумеmetrim Популярный человек на этом форуме
Цитата:
dyr_farot:
проще ( IMHO ) самому наваять нужную функциональность ( на том же шарпе ) и вызвать этот модуль в екселе
Ни слова не понял :-)
Как наваять? в каком шарпе?

Цитата:
Vellion:
Единственная проблема оно денег стоит. Хотя я тогда нашел где-то лекарство.
А поделиться не полчится?
metrim вне форума  
Старый 18.01.2006, 21:30     # 19
dyr_farot
Advanced Member
 
Регистрация: 23.08.2003
Сообщения: 442

dyr_farot Нимб уже пробиваетсяdyr_farot Нимб уже пробивается
написать на C#, можно и на любом другом нормальном языке программирования ( хоть на том же visual basic' е )
dyr_farot вне форума  
Старый 18.01.2006, 21:36     # 20
metrim
Full Member
 
Регистрация: 02.10.2003
Пол: Male
Сообщения: 869

metrim Популярный человек на этом форумеmetrim Популярный человек на этом форумеmetrim Популярный человек на этом форумеmetrim Популярный человек на этом форумеmetrim Популярный человек на этом форумеmetrim Популярный человек на этом форумеmetrim Популярный человек на этом форумеmetrim Популярный человек на этом форуме
Цитата:
dyr_farot:
( хоть на том же visual basic' е )
Ну а разве совсем нельзя в ВБА сделать как в си: открыть порт как файл и писать в него?
metrim вне форума  

Опции темы

Ваши права в разделе
Вы НЕ можете создавать новые темы
Вы не можете отвечать в темах.
Вы НЕ можете прикреплять вложения
Вы НЕ можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 14:09.




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.