08-28-2014 08:15 AM
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.
Solved! Go to Solution.
08-28-2014 09:47 AM - edited 08-28-2014 09:49 AM
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,
08-29-2014 01:37 AM
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...
09-03-2014 11:19 AM
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.
09-03-2014 11:24 AM