X



Konu Bilgileri
Konu Başlığı
"C++ iLe Seri Port ControL...."
Konudaki Cevap Sayısı
0
Konuyu Açan Kişi
jettlii
Görüntülenme Sayısı
175





Mesaj Önizleme  Konuyu Gönder 
"C++ iLe Seri Port ControL...."
Yazar Mesaj
jettlii
KaRaTeCi
Moderators

Üye No: 11260
Katılım: Dec 2006
Yer: Salondan....
Mesajlar: 2,120
Grup: Moderators
Durum Uzakta

Rep Ver :
Rep Puanı : 50
Ruh Hali
mesgul

MSN araciligi ile mesaj yolla Yahoo araciligi ile mesaj yolla ICQ araciligi ile mesaj yolla AIM araciligi ile mesaj yolla




Mesaj: #1
"C++ iLe Seri Port ControL...."

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)
{

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;




’Cahilin KArşısında Kitap Gibi Sessiz Ol..


TÜRK’e düşman olanlar
Ben diyorumki TÜRK’e düşman olmayın
Dost olunki canınız sağolsun
Aksi halde Fırtına olur
Üzerinize eserim
Yok eder geçer giderim..
24-09-2007 09:35:46 AM
Kullanıcının websitesini ziyaret et Bu kullanıcının gönderdiği mesajları bul Bu mesajı bir cevapta alıntı yap
Mesaj Önizleme  Konuyu Gönder 

Yazdırılabilir Bir Versiyona Bak
Bu Konuyu Bir Arkadaşına Gönder
Bu Konuya Abone Ol | Konuyu Favorilerine Ekle

Foruma Git: