NI Ürünleri İle İlgili Tartışmalar

cancel
Showing results for 
Search instead for 
Did you mean: 

file oluşturma!!

Solved!
Go to solution

Bir örnek ekledim ama kodlama ile ilgili temel bir yapı içeriyor bilmiyorum siz yazdığınız kodu buna göre düzenler misiniz? Benzetim için rastgele sayı üretecini kullandım, çalıştırıp gözlemleyebilirsiniz. Dosya kayıt için bir pencere var ve her bir tur da bu pencere bir kere etkin oluyor (şarj et, bekle, deşarj et, bekle, kaydet şeklinde).

 

undefined

0 Kudos
Message 21 of 25
(3,375 Views)

Bir süredir bu konuyu ben de takip ediyorum ve çok seslilik olmasın diye beklemedeydim ancak Zafer Bey'in de önermiş olduğu State Machine uygulamasının en doğru seçim olacağını ben de düşünüyorum. LabVIEW'de (ve belki diğer tüm programlama dilleri/ortamlarında) algoritma akış diagramlarının yazılımsal olarak gerçekleştirilmesinde State Machine'ler bolca kullanılır. Hatta bir adım daha ileri giderek diyebilirim ki, görmüş olduğum (belki tüm uygulamalarda olmasa da) çoğunluk test uygulamasında çeşitli State Machine uyarlamaları yapılmaktadır. Keza eğitimlerimizde de ağırlıklı olarak bu konu üzerinde durulmaktadır.

 

Konuya dair daha detaylı bilgi sahibi olabilmek adına Application Design Patterns: State Machines (http://zone.ni.com/devzone/cda/tut/p/id/3024) web adresindeki dökümanı incelemenizi şiddetle tavsiye ederim. 

 

Uygulamanız için de belki iç içe geçen State Machine uyarlamasına da ihtiyaç duyabilirsiniz. Ancak ulusumuzun bolca kullandığı sihirli kelime olan "acil" ya da "kısıtlı zaman" durumunuz işleri biraz zorlayacakmış gibime geliyor 🙂

 

 

Kolaylıklar dilerim.

 

 

Candan

(Bay) Candan CANER
National Instruments Türkiye
0 Kudos
Message 22 of 25
(3,367 Views)

Candan, dediklerine katılıyorum ve maalesef bu acı tecrübelerden kendim de geçtiğim için işlerin nasıl yürüdüğünü de gayet iyi biliyorum. Şu an çalıştığım firma ilk çalıştığım firma. işe tecrübesiz başladım, elimde olan varsa mantık yürütebilme, sorun çözebilme kabiliyetim ve fazlaca fedakarlık yapıp öğrenme isteği ile dolu olmamdı. Yazılım konusunda bir çok farklı dilde amatör çalışmalar yapmış olmama rağmen tecrübem yoktu ve yazılım mantığını başlangıç seviyede biliyordum. Neticesinde olduk proje mühendisi. Üniversitedeyken yazılım mühendisliği ile ilgili anlatılan ne varsa bana zaman kaybı ve hikayeden ibaret gelmişti. İlk projemi yazdığım kodu hatırlıyorum da bugün tekrar yazsam nerdeyse hiç bir benzerlik olmayacağı kanaatindeyim. Daha sonra küçük bir kaç projede temel seviye olacak kadar bir LV yazılımcısı oldum. Büyük bir yapay görme projesinin yazdığım ilk kodlarını dahi bugün baktığımda çöpe atarım diyorum. Üzerine 2.nesil 3.nesil aynı yapay görme projelerinin sürümlerini yazdım ve yine hiçbiri birbiri ile aynı temeli kullanmıyorlardı.

 

Bugün baktığımda özellikle yazılım geliştirme ile ilgili üniversitede bana anlatılan ne varsa nerdeyse hiç değişmeden uyulması gereken standart kurallar olarak hala karşımda durduklarını anladım ama aradan 10 yıl geçti.

 

Forumları hikaye ile doldurmayayım, işin özü şu. Bugün bu standartların kesinlikle uyulması gereken kurallar olduğunu gördüğüm halde yine de temel olanlar dışında tümüne uyamıyorum. Sebep işler acele, kodu yaz bitir çalışsın tekrar geri dönüp bakma bile. Yeni bir projemi alacaksın eski kod işine yarasa bile gerek yok baştan yaz. Çünkü nerdeyse tek kişi iş yapıyorsun standart kod yazmak için belki iki üç kat süre gerekli fakat zaman önemli. Yol gösteren zaten yok. Yaz dene olmadı sil tekrar yaz tekrar dene...

 

Burada kısıtlı bildiklerimizle arkadaşlara yardım etmeye çalışıyoruz ama paylaşılan kodun çoğunun temelinde sorun var. Zaten bu sorunlar sebebiyle kodu yazmaya çalışan arkadaşlar kodun akışında takılmış ve çözüm üretememişler.

 

Konuya kısa tavsiyem şu olacak. Yazılacak algoritmayı kesinlikle geliştirme ortamında geliştirmeyin! Algoritma temel tabirle kağıt üzerinde çözülür. Bunu şöyle açabiliriz. Yazılım mantığı gelişmiş yazılımcı sorunu kafasında çözebilir (yine de kağıt üzerinde), hakim değilseniz sorunu mümkün olduğunca küçük parçalara bölüp kağıt üzerinde akış diyagramları oluşturmak şarttır. Bu iş için uygulamalar da var ama herkes kendi geliştirdiği yazılıma değer biçemezken başkasının geliştirdiğine beş para etmez deyip korsan kullandığı ya da ne gerek var dediği için önemsemez. Her ne olursa olsun ileri ya da başlangıç seviye de olsanız algoritma kağıt üzerinde çözülür ve geliştirme ortamı bu algoritmayı uygulamaya dökmekten başka bir araç olmaktan öte kullanılmaz.

 

Bu kadar konuştum kusura bakmayın. Neticede birşey değişmeyecek onu da biliyorum 🙂 Herkes acı tecrübe yaşayıp olması gerekeni kendisi öğrenmek gayretindedir. Sizin için sorun olur mu bilmem ama siz de 10 yıl kaybetmiş olacaksınız. Bu arada aşağıdaki bağlantıyı açıp okumanızı tavsiye ederim.

 

On yılda programlama öğrenin

Message 23 of 25
(3,363 Views)

iyi günler zafer bey ve candan bey emekleriniz için tekrar tekrar teşekkür ederim..zafer bey öncelikle yaptığınız proje için çok sağolun proje mantık olarak tam benim istediğim gibi olmuş yalnız file dosyasında sıkıntı var bişeyler eklemem mi gerekiyor anlamadım.sıkıntı şu sizin verdiğiniz zip dosyasındaki 2 vi programını çıkartıp programı çalıştırdığımda normal olarak çalışıyor ve her bır adımda dosya kaydı yapıyor gıbı gozukuyor ama dosyanın adresine gittiğimde orda bir şey gozukmuyor.ayrıca şunuda sorabilirmiyim bu .ctl uzantılı dosyayı nasıl oluşturdunuz..ben yaklaşık 2 haftadır labview kullanıyorum ve önceden benim programım için bu .ctl programları oluşturulduğu için bu konuda pek bi bilgim yok

 

 

 

 

undefined

 

 

birde bu write to measurement fonksiyonun içinde ararken bu alttaki şeyleri buldum 🙂 burda her kayıt yaparken 1 mb yapıyor sonra yeni bir dosya açıyor.saatini dakikasını ve dosyanın sayısını yeni dosya açarken değiştiriyor. şimdilik bunu kullansam en azından sizin verdiğiniz state machine sistemini kurduktan sonra sizin sisteme geçmek istiyorum kendi programım içersinde biraz çırpınarak bişeyler elde etmem gerekiyor ne yazıkki hoca devamlı bu aralar birşeyler istiyor proje yaklaşık 1 yıllık bi proje yani programı stabilize etmek için vakit var o yüzden herhangi bir sıkıntı yok

 

undefined 

 

candan bey sizin önerdiğiniz sayfayıda inceledim inşallah zafer beyinde yardımıyla beraber state machine sistemini kurmaya çalışacağım 🙂

zafer beyin yazdıklarına ayrı bir paragraf açmak gerekirse şöyle söyliyeyim ben elektrik elektronik müh bölümünü bitirdim ve şu anda elektronikte yüksek lisans yapıyorum bahsettiğim daha doğrusu yapmak istediğim programda elektrikli araç bataryalarıyla ilgili bir proje..açıkçası programlamayı hiç sevmem 🙂 en azından şimdilik diyim!!lisanstada devamlı elektrik derslerine yoğunlaşıp elektronikten uzaklaşmıştım.öğrendiğim programlamalarda sadece dersleri geçecek seviyede kalmış ve bu bana yeter diyerekten fazla kasmamıştım şimdi yüksek lisansta mecburi olarak programlama dillerini öğrenmem gerekecek bunu nasıl gerçekleştirecem programlama mantığımı nasıl geliştirecem bilemiyorum..

zafer bey şöle söyliyim benim programlamayla ilgili algoritma kısmında sanki bi sıkıntı yok gibi ben öyle de zannediyorumdur bilmiyorumda 🙂 dediğiniz gibi geliştirme için uygulamaya dökmek şart..mesela vermiş olduğunuz bağlantıda en az yarım düzine programlama öğrenin kısmına gelince tüylerim diken diken oldu açıkçası 🙂 

 

 

0 Kudos
Message 24 of 25
(3,356 Views)

Her şeyden önce yeterli bilginiz olmadığını söylediğiniz bir konuda bu kadar sabırla dinleyip işin üzerine gitmenizi tebrik ediyorum. Daha önce hiç yazılım tecrübeniz olmadığı halde dahi yazmış olduğunuz kod ( temel yazılımcılık kuralları dışında olsa da 🙂 ) başarılı diyebilirim. Kısmete bakın yazılımla uğraşma zorunluluğunuz doğmuş ve LV ile tanışmışsınız. Bu yönde adım atacaksanız bence en iyi fırsatlarınızdan biri.

 

Şimdi gelelim örneğe,

Verdiğim "state machine" örneğinde bir yere kayıt yapmıyorum zaten 🙂 Kayıt yapılacak pencereyi oluşturdum otomatik dosya indeksini ekledim size hangi bilgiyi kaydetmek istiyorsanız onu ekleyip "write file" demek kalıyor 😉

 

.ctl uzantılı dosya özgün denetim (custom control) oluyor. Bu denetimi (type def - tip tanımı) döngüdeki bir sonraki adımı ayarlayabilmek için oluşturdum. Nasıl yapılacağı ile ilgili bilgiyi ilerde başka bir başlık çarsanız vermeye çalışırız.

 

On yılda programlama öğrenin başlıklı yazıya gelince, bu yazıyı çok önceleri okumuştum ve şimdi görüyorum ne kadar haklı bir yazı olduğunu. Maalesef 3 günde şunu öğrenin 5 günde şu kadar kilo verin gibi emeksiz yemek alışkanlığımız var bundan vaz geçmemiz gerek. O yazıda belirtilen en az yarım düzine geliştirme dili öğrenin (hakim olun) kısmına da katılıyorum ama ülkemizde yazılımcılık nedir yazılım ne işe yarar sorusuna toplumun belki %5'i cevap verebilirken bizde ne o kadar dil öğrenecek imkan ne de kurum var. Ben en azından bir dile hakim olun diyorum.

 

Bu arada benim kanaatim her insan genel matematik ve mantık bilmeli. Her mühendis bunlara ilave olarak analitik düşünme kabiliyetine sahip ve bir yazılım dili kullanabiliyor durumda olmalı 😉

0 Kudos
Message 25 of 25
(3,354 Views)