Isi bilenler bu kodu nasil yazardi?

Başlatan bunalmis, 11 Ocak 2010, 19:35:25

z

Delphi callback function için örnek programınız varmı?
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

orhanc

i'm doing nothing... Giddy Up  http://www.drorhan.com

z

Yaptın bir iyilik, oradaki linklerden basit anlaşılır bir callback örneğini cuttcopy yapabilirmisin? Ben bulamamıştım.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

orhanc

http://www.delphi-central.com/callback.aspx

http://delphi.about.com/od/windowsshellapi/a/callback_delphi.htm

Bunları bir incele istersen

delphi basic ve delphi about sitelerinde çoğu şeyin temelini bulabilirsin ayrıca delphi dökümanlarına da bakmanı tavsiye ederim bir sürü pdf dosyası var delphiye ait. eğer bulamazsan haber ver evdeki pc de hepsi var gönderirim sana
i'm doing nothing... Giddy Up  http://www.drorhan.com

z

Callback fonksiyon ne ise yariyor kisaca anlatacak varmi?

Bana e^st de diyebilirsiniz.   www.cncdesigner.com


z

Alıntı yapılan: controller - 13 Ocak 2010, 00:37:39
Aslında burada @bunalmis ın yaşadığı sorunlar, üzerinde işletim sistemi çalışan bir cihaza program
yazarken hala salt kod çalıştıran mikrodenetleyicilerde olduğu gibi;

main()
{

while(1)
{

}

}

mantığından kurtulamamış olmasından kaynaklanmaktadır.

Bu mesaj windows icin yazdigim programlarda bana mirengi noktasi oldu.

Ancak hala sikintilarim var.

Windows isletim sisteminde kullanilmak uzere tasarlayacagimiz  elektronik devrelerin windows mantigina uygun kullanilabilmesi icin
elektronik cihazlarimizin sorgulandiginda cevap veren tipte degil de, gerekli durumlarda windowsa sikayet yapan daha dogrusu
ispiyonculuk yapan tipte tasarlanmasi gerektigi sonucuna vardim.

Neden derseniz.

Sorgu mantigiyla PC ye bilgi gonderen cihazlar varsa, windows tarafinda ozellikle kritik durumlardan derhal haberdar olmak icin 
cihazi cok sik sorgulmak gerekiyor.

Bu da dongu tipi yapilar kurmamizi gerektiriyor.

Halbuki ispiyon yapan turde cihaz tasarlarak windows tarafinda dongu mantigindan kurtulacak ve event mantigiyla kod yazabilecegiz.

Bu konularin uzmanlari ne dusunuyor?


Bana e^st de diyebilirsiniz.   www.cncdesigner.com

orhanc

karşılıklı veri alışverişinde mesela ftp tarzı bir program yazdığınızda belli sürelerle veriyi yakalayan alıcılar olur bu şekilde döngü kurmaya gerek kalmaz. o kendi işini asekronize olarak ayrı bir işlemde ana işlemleri etkilemeden çalışır. gördüğüm kadarıyla PIC programcıları masaüstü programlarında aynı mantıkla işlem yapmaya çalışıyorlar ki çok yanlış. Ben mesela sonsüz döngüyü ilk defa PIC de gördüm hiçbir zaman da kullanmadık o tarz işleri. bir tane servis yada işleç olur belirli zaman aralığında işlem yapar ve ona göre de gerekli prosedürleri çalıştırır. Delphi için bu tarz işlemler genelde timer componenti ile veya yeterli gelmiyorsa ayrı bir thread yapılarak basitçe özülür. Biz daha çok olay bazlı programlama kullanıyoruz. Aşağıdaki linkten programlama çeşitlerini de görebilirsiniz;

http://en.wikipedia.org/wiki/Comparison_of_programming_paradigms
i'm doing nothing... Giddy Up  http://www.drorhan.com

z

Bugune kadar devrelerimi (islemci yazilimlarini) PC sorguladiginda sonuc gondercek mantigi ile tasarliyordum.

FT232 yi ureten firmanin hazir verdigi D2XX.DLL bildigim kadariyla event mantigi ile calismiyor.
Eger sorgulama mantigi ile calisiyorsa bir an once D2XX.DLL den kurtulmam gerekecek.

D2XX.DLL kullanarak  USB den veri geldiginde event uretecek sekilde program yazabiliyormusunuz?
Su ana kadar ben hep data gelmismi diye sorgulama durumunda kaldim.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

orhanc

i'm doing nothing... Giddy Up  http://www.drorhan.com

z

Thread içinde sanki ikinci bir işlemcim varmış gibi program yazdım. Bu işlemci kapalı döngü içinde sürekli dönüyor ve  usb porta bağlı harici donanımımı sorguluyor  delphi ana programının usb cihazla ilişkisine de aracılık ediyor.

Ana program cihazdan veri okumak istediğinde yada cihaza veri yollamak istediğinde derdini threde anlatıyor.

Thread yazılım cihazdan okuduğu verileri delphi ana yazılımına SendMessage ile yolluyor. Ancak ana yazılım bu mesajların bazılarından haberdar olamıyor. Ana program threde derdini SendThreadMesage ile yolluyor ve burda hiç kayıp olmuyor.

Böyle bir  problem yaşadınızmı? Bu yönteme alternatif öneriniz varmı?
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

orhanc

Ben thread için genelde jedinin thread componentini kullandım çok fazla thread işim olmadığından dolayı. Timer yapısında çalışıyor ama her iş için bir thread açıyor tüm işi de kendi üstleniyor.
i'm doing nothing... Giddy Up  http://www.drorhan.com

z

http://www.delphi-jedi.org/

Jedinin thread componenti için neyi indirmem lazım? Ana sayfaları bayağı kalabalık.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

orhanc

i'm doing nothing... Giddy Up  http://www.drorhan.com