06-04-2015 04:09 AM
Merhaba;
C'de USB6211'i kontrol eden bir programım var. NI'nın ANSI C örnek programlarını inceleyerek yaptım. Programda sorun yok ama şöyle bir pürüz var.
DAQmxErrChk (DAQmxCreateDOChan(taskHandle,"Dev1/port1/line0:3","",DAQmx_Val_ChanForAllLines));//3 data pins, one async clk
Daq aleti Dev1 olarak görünüyor benim bilgisayarımda ama başka bilgisayarda Dev2-3 vs. gibi görünce program çalışmıyor; adı düzeltip yeniden compile etmek gerekiyor.
Matlab'ta bu tip enumaration built-in olarak mevcut idi, (daq.getDevices). Aynı enumaration Daq'ın C kütüphanesinde de mevcut mu? Değilse bir öneriniz var mı?
Daha da açık olarak psedocode şeklinde şu tip bir enumaration arıyorum:
while there is connected daq if get daq name == usb 6211 ID = get daq ID break; end end
Teşekkürler yardımınız için.
06-04-2015 05:54 AM
Çözüm1
Uygulamanın çalıştığı bilgisayarda Dev2-3 görünüyorsa MAX üzerinden aygıtı Dev1 olarak isimlendirmek.
Çözüm2
Bir döngü içerisinde Dev1,Dev2,.. şeklide ile aygıtları deneyerek doğru aygıtı bulmak. Bunu yaparken de Product Category/Product Type kullanabilirsiniz ve hata yakalayarak doğrulayabilirsiniz
Çözüm3
Arayüzde Device I/O kontrolü kullanmak. (Enumeratör özelliği olup ilgili tüm aygıtları listeleyecektir.)
06-04-2015 06:26 AM
Merhaba Zafer Bey teşekkürler cevabınız için.
Şu anda NI'nın C referans dosyasına bakıyorum, ikinci çözümle aletin simulated olup olmadığını da anlayabiliyorum, iyi birşey. Bunu uygulayacağım sanırım.
3. Çözümünüzü tam olarak anlayamadım. C Referanstan da i/o kontrol ilgili bölümü de bir türlü bulamadım. Biraz daha açmanız mümkün mü? Referans'a bir yönlendirme de çok yardımcı olur.
Teşekkürler tekrar
06-04-2015 06:47 AM
C kütüphanesini incelemedim ancak Labview'da aygıtlar için kullanılan kontroller var. Karma kutuya (Combobox) benzeyen ve ilgili aygıtları otomatik listeleyen kontroller. Aynısının C içerisinde de olduğunu tahmin ediyorum.