Jak otworzyć port COM w C++ na Windows XP i wymienić dane z mikrokontrolerem?
Com w C++ na XP
From: "Poison64" <poison64_at_nospam_poczta.onet.DEL.pl>
Subject: Com w C++ na XP
Date: Fri, 11 Apr 2003 11:36:21 +0200
Czesc,
podlaczylem sobie 89c2051 do PC'ta przez COM'a i wszystko smiga,
tyle ze na HyperTerminalu. No wiec chcialbym sie pobawic na C++.
Nie bardzo wiem jak zaczac bo dzialam na XP i wiem ze sa tam
problemy z zabezpieczeniami i np. _outp() nie zadziala.
Znalazlem cos ze trzeba najpierw otworzyc port przy pomocy
CreateFile. Pomyslalem ze moze ktos tutaj bedzie wiedzial.
Chodzi mi o krotki przykladowy programik ktory by otworzyl port
odebral 1 znak i wyslal inny.
z gory dzieki,
--
Poison64
poison64(aT)poczta.onet.pl || poison64(aT)op.pl
=> http://www.poison64.prv.pl/
=> ICQ# 125215364 => GG# 4817051
========
Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!lublin.pl!news.lublin.pl!not-for-mai
From: "Piotrek" <piotrd_at_nospam_sim.com.pl>
Subject: Re: Com w C++ na XP
Date: Fri, 11 Apr 2003 11:47:30 +0200
posukaj na www.codeguru.com
z resztą aby dobrac sie do poru użyj klasy CSerial jesli masz VC++ ; np.
.....{
CSerial Serial;
if(Serial.Open(2,9600))
AfxMessageBox("Port otworzony poprawnie .");
else ....................
//do wysłania sluzą funkcje SendData np.
static char *szMes[] = "To jest teksy";
Serial.SendData(szMes,strlen(szMes));
Serial.Close(0;
}....
Użytkownik "Poison64" <poison64_at_nospam_poczta.onet.DEL.pl> napisał w wiadomości
news:b762ap$flv$1_at_nospam_news.onet.pl...
Czesc,
podlaczylem sobie 89c2051 do PC'ta przez COM'a i wszystko smiga,
tyle ze na HyperTerminalu. No wiec chcialbym sie pobawic na C++.
Nie bardzo wiem jak zaczac bo dzialam na XP i wiem ze sa tam
problemy z zabezpieczeniami i np. _outp() nie zadziala.
Znalazlem cos ze trzeba najpierw otworzyc port przy pomocy
CreateFile. Pomyslalem ze moze ktos tutaj bedzie wiedzial.
Chodzi mi o krotki przykladowy programik ktory by otworzyl port
odebral 1 znak i wyslal inny.
z gory dzieki,
--
> Poison64
> poison64(aT)poczta.onet.pl || poison64(aT)op.pl
> => http://www.poison64.prv.pl/
> => ICQ# 125215364 => GG# 4817051
>
>
========
Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!not-for-mai
From: "Poison64" <poison64_at_nospam_poczta.onet.DEL.pl>
Subject: Re: Com w C++ na XP
Date: Fri, 11 Apr 2003 12:30:54 +0200
posukaj na www.codeguru.com
z resztą aby dobrac sie do poru użyj klasy CSerial jesli masz VC++ ; np.
chodzi mi o wykorzystanie czystego winapi, bez afx'a.
--
Poison64
poison64(aT)poczta.onet.pl || poison64(aT)op.pl
=> http://www.poison64.prv.pl/
=> ICQ# 125215364 => GG# 4817051
========
Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.cyf-kr.edu.pl!news.nask.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mai
From: Marcin E. Hamerla <mehamerla_at_nospam_pro.onet.pl>
Subject: Re: Com w C++ na XP
Date: Fri, 11 Apr 2003 12:44:20 +0200
Poison64 napisal(a):
posukaj na www.codeguru.com
z resztą aby dobrac sie do poru użyj klasy CSerial jesli masz VC++ ; np.
chodzi mi o wykorzystanie czystego winapi, bez afx'a.
Do wysylania i odbioru znakow z COM uzywalem WriteFile i ReadFile....
--
Pozdrowienia, Marcin E. Hamerla
"Every day I make the world a little bit worse."
========
Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!not-for-mai
From: "Poison64" <poison64_at_nospam_poczta.onet.DEL.pl>
Subject: Re: Com w C++ na XP
Date: Fri, 11 Apr 2003 13:35:19 +0200
Do wysylania i odbioru znakow z COM uzywalem WriteFile i ReadFile....
dzieki, juz sobie poradzilem :)
--
Poison64
poison64(aT)poczta.onet.pl || poison64(aT)op.pl
=> http://www.poison64.prv.pl/
=> ICQ# 125215364 => GG# 4817051
========
Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed.silweb.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mai
From: "SneeR" <sneer_at_nospam_student.uci.agh.edu.pl>
Subject: Re: Com w C++ na XP
Date: Fri, 11 Apr 2003 19:02:27 +0200
Użytkownik "Poison64" <poison64_at_nospam_poczta.onet.DEL.pl> napisał w wiadomości
news:b7699r$3de$1_at_nospam_news.onet.pl...
Do wysylania i odbioru znakow z COM uzywalem WriteFile i ReadFile....
dzieki, juz sobie poradzilem :)
hehmm, to pochwal sie jak :)
Lukasz
========
Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!not-for-mai
From: "Poison64" <poison64_at_nospam_poczta.onet.DEL.pl>
Subject: Re: Com w C++ na XP
Date: Sat, 12 Apr 2003 10:00:15 +0200
Do wysylania i odbioru znakow z COM uzywalem WriteFile i ReadFile....
dzieki, juz sobie poradzilem :)
hehmm, to pochwal sie jak :)
HANDLE hPort;
DCB scb;
hPort = CreateFile("COM2",GENERIC_READ | GENERIC_WRITE,
0,NULL,OPEN_EXISTING,0,NULL);
if (hPort == INVALID_HANDLE_VALUE)
return;
scb.BaudRate = 2400;
scb.ByteSize = DATABITS_8;
scb.StopBits = ONESTOPBIT;
scb.Parity = NOPARITY;
SetCommState(hPort, &scb);
ReadFile(hPort,data,datasize,&read,NULL);
data <-- tu dajesz wskaznik gdzie wrzucic dane
datasize <-- ile bajtow odebrac
read <-- wskaznik do zmiennej gdzie zapisac ile bitow odebrano
WriteFile(hPort,data,datasize,&written,NULL);
data <-- tu dajesz wskaznik do danych do wyslania
datasize <-- ile bajtow wyslac
written <-- wskaznik do zmiennej gdzie zapisac ile bitow zapisano
i to tyle
--
Poison64
poison64(aT)poczta.onet.pl || poison64(aT)op.pl
=> http://www.poison64.prv.pl/
=> ICQ# 125215364 => GG# 4817051
========
Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!not-for-mai
From: "Poison64" <poison64_at_nospam_poczta.onet.DEL.pl>
Subject: Re: Com w C++ na XP
Date: Sat, 12 Apr 2003 10:02:32 +0200
Do wysylania i odbioru znakow z COM uzywalem WriteFile i
ReadFile....
dzieki, juz sobie poradzilem :)
hehmm, to pochwal sie jak :)
HANDLE hPort;
DCB scb;
(...)
data <-- tu dajesz wskaznik do danych do wyslania
datasize <-- ile bajtow wyslac
written <-- wskaznik do zmiennej gdzie zapisac ile bitow zapisano
zapomnialem jeszcze o CloseHandle(hPort);
jak tego nie zrobisz to moze sie zdarzyc ze po wyjsciu
z programu port bedzie otwarty i drugi raz program nie bedzie
dzialal dobrze bo nie bedzie mogl otworzyc portu (blad #5)
--
Poison64
poison64(aT)poczta.onet.pl || poison64(aT)op.pl
=> http://www.poison64.prv.pl/
=> ICQ# 125215364 => GG# 4817051
========
Path: news-archive.icm.edu.pl!news.icm.edu.pl!not-for-mai
From: Ireneusz Niemczyk <nie.ma_at_nospam_takiego.adresu>
Subject: Re: Com w C++ na XP
Date: Sat, 12 Apr 2003 10:13:31 +0200
No niezupełnie, jak przerwiesz transmisję po RS-ie to ReadFile ślicznie potrafi
uwalić wštek. Spróbuj też odebrać w taki sposób paczkę powiedzmy 5k danych.
--
PZD, Irek.N.
ps. uwaga też na W2K i XP, małomiękki poszalał tam z RS-em :-(
========
Path: news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.gazeta.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mai
From: "jerry1111" <No_this_fucking_spam_jerry1111_at_nospam_wp.pl>
Subject: Re: Com w C++ na XP
Date: Sat, 12 Apr 2003 10:40:02 +0200
Ireneusz Niemczyk wrote:
No niezupełnie, jak przerwiesz transmisję po RS-ie to ReadFile
ślicznie potrafi uwalić wštek.
??
Mi bardzo ladnie wychodzi po okreslonych timeoutach (ale najpierw
trza je ustawic :-)
Bardziej trza uwazac na fAtError czy podobnie - jak go nie ustawisz, to
bo zgubieniu bajtu Rx przestaje dzialac i recznie skasowac blad, albo
zamknac i otworzyc coma.
ps. uwaga też na W2K i XP, małomiękki poszalał tam z RS-em :-(
Mam w2k i wedle obserwacji RS dziala - wlasnie pisze sofcik
do 'sondy'...
--
jerry
"The day Microsoft makes something that doesn't suck is probably
the day they start making vacuum cleaners." - Ernst Jan Plugge
========
Path: news-archive.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!news.icm.edu.pl!not-for-mai
From: Ireneusz Niemczyk <nie.ma_at_nospam_takiego.adresu>
Subject: Re: Com w C++ na XP
Date: Sat, 12 Apr 2003 11:16:26 +0200
?? Mi bardzo ladnie wychodzi po okreslonych timeoutach (ale najpierw
trza je ustawic :-)
Bardziej trza uwazac na fAtError czy podobnie - jak go nie ustawisz, to
bo zgubieniu bajtu Rx przestaje dzialac i recznie skasowac blad, albo
zamknac i otworzyc coma.
-)))
Mam w2k i wedle obserwacji RS dziala - wlasnie pisze sofcik
do 'sondy'...
Niech zgadne, wyprowadzone masz tylko 2,3 i 5? (DB9). Jajca się zacznš jak
weźmiesz i podłaczysz toto przez pełny przedłuzacz. Przynajmniej u mnie i
u (3 frezarkowy) dokładnie tak się toto zachowywało. Jedynie _tydzień do
późnej nocy_ zabawy w debugowanie...kurna :-(
--
PZD, Irek.N.
========
Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!newsfeed.gazeta.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mai
From: "jerry1111" <No_this_fucking_spam_jerry1111_at_nospam_wp.pl>
Subject: Re: Com w C++ na XP
Date: Sat, 12 Apr 2003 12:50:17 +0200
Niech zgadne, wyprowadzone masz tylko 2,3 i 5? (DB9). Jajca się
zacznš jak weźmiesz i podłaczysz toto przez pełny przedłuzacz.
Po co?
Niech sie protokoly martwia zajetosciami buforow itp - po co
sobie zycie komplikowac? I tak obsluga 'reszty' (poza 2,3) jest
softwarowa - no i jak uzyjesz 'reszte' to nici z RS485...
--
jerry
"The day Microsoft makes something that doesn't suck is probably
the day they start making vacuum cleaners." - Ernst Jan Plugge
========
Path: news-archive.icm.edu.pl!news.icm.edu.pl!not-for-mai
From: Ireneusz Niemczyk <nie.ma_at_nospam_takiego.adresu>
Subject: Re: Com w C++ na XP
Date: Sat, 12 Apr 2003 14:43:58 +0200
Po co?
Niech sie protokoly martwia zajetosciami buforow itp - po co
sobie zycie komplikowac? I tak obsluga 'reszty' (poza 2,3) jest
softwarowa - no i jak uzyjesz 'reszte' to nici z RS485...
Nie, to nie to chodzilo, po prostu latwo w tych systemach zakloceniami
wywrocic port (a moze driver nim zarzadzajacy - nie sprawdzalem).
--
PZD, Irek.N.
========
Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mai
From: "jerry1111" <No_this_fucking_spam_jerry1111_at_nospam_wp.pl>
Subject: Re: Com w C++ na XP
Date: Sat, 12 Apr 2003 16:06:23 +0200
Nie, to nie to chodzilo, po prostu latwo w tych systemach
zakloceniami wywrocic port (a moze driver nim zarzadzajacy - nie
sprawdzalem).
Aha.
Ale to i tak mnie nie dotyczy - ja tylko 2 linie uzywam :-)
Swoja droga ciekawe... oni chyba nigdy nic bez bledow nie napisza.
--
jerry
"The day Microsoft makes something that doesn't suck is probably
the day they start making vacuum cleaners." - Ernst Jan Plugge
========
Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.cyf-kr.edu.pl!news.nask.pl!news.internetia.pl!skynet.be!skynet.be!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mai
From: "Majkii" <mmroz11_at_nospam_wp.pl>
Subject: Re: Com w C++ na XP
Date: Fri, 11 Apr 2003 12:14:07 +0200
Witam
podlaczylem sobie 89c2051 do PC'ta przez COM'a i wszystko smiga,
tyle ze na HyperTerminalu. No wiec chcialbym sie pobawic na C++.
Nie bardzo wiem jak zaczac bo dzialam na XP i wiem ze sa tam
problemy z zabezpieczeniami i np. _outp() nie zadziala.
Znalazlem cos ze trzeba najpierw otworzyc port przy pomocy
CreateFile. Pomyslalem ze moze ktos tutaj bedzie wiedzial.
Chodzi mi o krotki przykladowy programik ktory by otworzyl port
odebral 1 znak i wyslal inny.
Jezeli chodzi o Buildera to mozesz sciagnac dodatkowy komponet obsługujacy
COM_a. (..)
Strona z komponentami http://www.winsoft.sk/comport.htm (platny) ,
http://homepages.borland.com/efg2lab/Library/Delphi/IO/PortIO.htm ,
http://diagnostyka.win.pl/delphi/d_lib.htm .
Pozdrawiam
========
Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!newsfeed.gazeta.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mai