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

cancel
Showing results for 
Search instead for 
Did you mean: 

USB Port Error Handling

Solved!
Go to solution

Merhaba,

 

 

USB Seri çevirici bir cihazım var. Cihaz ile bilgisayar bağlantısı koptuğunda programımın bu durumu telafi edebilir olmasını istiyorum.

Örneğin hatayı algılayıp beklemeye geçebilir, bir mesaj gösterebilir, cihaz tekrar bağlandığında da kaldığı yerden başlayabilir olması gerekiyor.

 

Önerilerinizi bekliyorum.

0 Kudos
Message 1 of 5
(5,424 Views)

Merhaba Azmi Bey,

 

Bence bunu başarmanın en kestirme yolu yine haberleşme kanalının kullanılmasıyla olabilir.

Eğer bilgisayara usb-seri kanalından bağlı olan cihazınız sürekli olarak (belirli aralıklarla, her saniye mesela) canli olduğuna dair bir bilgi gönderiyorsa (buna heartbeat - kalp atışı ya da alive mesajı da deniyor) bu bilgiyi kullanabilirsiniz.

 

Eğer böyle bir özelliği yoksa, periyodik olarak kimlik bilgisini sorgulayabilirsiniz. Ancak bunu ana programınız içinde farklı bir "thread" içinde asıl işinize (örneğin ölçüm alması için cihaza komut göndermek veya ölçüm sonuçlarını okumak gibi) paralel olarak yürütmeniz gerekir.

 

Ortak bir donanım kaynağını farklı kod parçalarından paralel olarak kullanabilmek için de kilitleme (thread-locking) mekanizmaları kullanmanızı öneririm. Böylece iki iş aynı anda erişmeye çalışarak birbirinin çalışmasına engel olmaz.

 

Cihaz kapatılır ya da kablo sökülürse bu iki yöntemle de haberiniz olur.

 

Eğer usb-seri kanalınıza bir cihaz bağlı değilken de söküldüğünden haberdar olmak istiyorsanız o zaman yine ana kodunuza paralel bir döngü halinde çalışmak üzere şu linkte olduğu gibi sisteminizdeki mevcut tüm arayüzleri sorgulayabilir, içinde aradığınız donanımın olup olmadığını anlayabilrsiniz.

 

Umarım yardımcı olur.

İyi çalışmalar,

S. Eren BALCI
IMESTEK
Message 2 of 5
(5,419 Views)
Solution
Accepted by Azmi_Nalbantoglu

Azmi Bey Merhabalar,

 

Eren Bey'in çözümüne katılmakla birlikte ayrıca farklı bir çözüm olarakta haberleşme loop'unuz içerisinde state machine bir yapı kurup herhangi bir zamanda ilgili haberleşme fonksiyonlarının error out'larını kontrol ederekte bir çözüm elde edebilirsiniz. Aşağıda basitçe bir yapı tasarladım umarım sizlere yardımcı olur.

 

Saygılarımla...

 

 

Himmet GENCER
Software Development Coordinator at TDG
himmetgencer@gmail.com

View Himmet Gencer's profile on LinkedIn

View on Instagram
Message 3 of 5
(5,401 Views)

Eren bey,

 

Öneriniz için teşekkür ederim. Himmet bey'in gönderdiği örnek ile ihtiyacımı giderdim.

 

Himmet bey tekrar teşekkür ediyorum.

 

 

Message 4 of 5
(5,367 Views)

Ne demek Azmi Bey kolay gelsin iyi çalışmalar sizlere...

 

Saygılarımla...

Himmet GENCER
Software Development Coordinator at TDG
himmetgencer@gmail.com

View Himmet Gencer's profile on LinkedIn

View on Instagram
0 Kudos
Message 5 of 5
(5,364 Views)