Would you like to react to this message? Create an account in a few clicks or log in to continue.


 
AnasayfaAnasayfa  PortalliPortalli  AramaArama  Latest imagesLatest images  Kayıt OlKayıt Ol  Giriş yap  

 

 C++ ile seri port kontrolü

Aşağa gitmek 
YazarMesaj
YohAsakura
Seviyeli Üye
Seviyeli Üye
YohAsakura


Mesaj Sayısı : 194
Yaş : 31
Şehir : Dobbie Willage
Kayıt tarihi : 04/08/06

C++ ile seri port kontrolü Empty
MesajKonu: C++ ile seri port kontrolü   C++ ile seri port kontrolü Icon_minitimeÇarş. 9 Ağus. - 14:51

c++ ile seri port controlü bu kadar basitmi
elbette hayır gelin bunu şimdi birde bereber yapalım

c++ builder’ı çalıştırın ve formun (unit1.h public)
komut satırına aşağıdaki kodları yazın

DCB Bcomm;
peki bu nedir DCB burada bir sınıf ve
bu sınftan türetilen Bcomm nesnesi bu nesne DCB sınıfının
üyelerine erişebilir.

HANDLE Bhcomm;
bu komut pencere yöneticisi olarak görev yapar biz bununla
vindows apisi olan filecreate apisinden yararlanıcagız

bool B_commopen;
bu komut ile seriportun durumunu konrol edecegiz

Şimdi yeni bir form oluşturun ve bu formun unit başlığına
Unit1.h ifadesini koymayı unutmayın.
Form1’in üzerine 1 buton yerleştirin ve onclick olayına
Form2->Show();
komutunu yazın
Form2’ye geçin üzerine 3 Ade buton yerleştirin ve iki adet
ise ComboBox Yerleştirin;

ComboBox1’in Items olayına alt alta COM1
COM2
....
COM8’E KADAR YAZIN
ComboBox2’nin ıtems olayına alt alta
110
300
600
1200
2400
4800
9600
14400
19200
38400
56000
57600
115200
128000
256000 yazın;

Şimdi Button1’in Caption’a Connect yazın
Button2’nin captiona Disconnect yazın Button3’e ise cancel yazın;
umarım buraya kadar pureblem yoktur;
Şimdi Form2’nin unit2.h kısmını açın ve aşağıdaki fonksiyonu __published
kısmına yazın

void __fastcall opencomm(TObject *Sender);
ve unit2.cpp kısmına geçin ve aşağıdaki kodları yazın;
//-----------------------------------------------------
void __fastcall TForm2 :: opencomm(TObject *Sender) // iki noktanin oldugu yer birlesik olucak burda smile ciktigi icin ayirmak zorunda kaldim =)
{

if(Form1->B_commopen){
return;
}
Form1->Bcomm.DCBlength=sizeof(DCB);
Form1->Bcomm.BaudRate=(unsigned long)(ComboBox2->Text.c_str());
Form1->Bhcomm = CreateFile(ComboBox1->Text.c_str(),
GENERIC_READ | GENERIC_WRITE,
0, /* comm devices must be opened w/exclusive-access */
NULL, /* no security attrs */
OPEN_EXISTING, /* comm devices must use OPEN_EXISTING */
0, /* not overlapped I/O */
NULL /* hTemplate must be NULL for comm devices */
);
Form1->B_commopen=true;
if(!Form1->B_commopen){
ShowMessage("Port açılmadı");
return; }
}
şimdi button1’e basın ve Events onclick olayından opencomm’u seçin

Şimdi Form2’nin unit2.h kısmını açın ve aşağıdaki fonksiyonu __published
kısmına yazın
void __fastcall closecomm(TObject *Sender);
ve unit2.cpp kısmına geçin ve aşağıdaki kodları yazın;
//--------------------------------------------------------------------------
void __fastcall TForm2::closecomm(TObject *Sender)
{
int x;
if(!Form1->B_commopen)
return;
if(CloseHandle(Form1->Bhcomm)!= 0)
{
Form1->B_commopen = false;
clear_statusbar();
}
else{
try{
throw x;
}
catch(int x){ ShowMessage("Port not close");
}
}

}

//------------------------------------------------------------------------Şimdi programı çalıştırın ve Com2’yi seçin ve 9600 secip connect butonuna
basın eğer elinizde bir seri port conrolü ile çalışan program var ise
sonucu görebilirsiniz;
Sayfa başına dön Aşağa gitmek
http://wapistan.forumup.com
 
C++ ile seri port kontrolü
Sayfa başına dön 
1 sayfadaki 1 sayfası

Bu forumun müsaadesi var:Bu forumdaki mesajlara cevap veremezsiniz
 :: Diğer :: DownloaD-
Buraya geçin: