BlackLib Kütüphanesine v3.0 İle Gelen Yenilikler

BlackLib

BlackLib kütüphanesinin ikinci güncellemesi olan BlackLib v3.0 bugün yayınlandı.

Bu güncelleme ile kütüphaneye şu özellikler eklendi:

  1. Thread (paralel programlama) altyapısı: Bu altyapı ya da arayüz(interface) ile kullanıcılar bu sınıftan türettikleri alt sınıflar ile kendi uygulamalarına paralel çalışma(multitasking) özelliği getirebileceklerdir.Bir örnekle anlatmak gerekirse; yazdığınız uygulama bir yandan GPIO’lardaki veriyi okurken diğer yandan bu verileri değerlendirerek işlem yaparken diğer bir yandan da bambaşka bir işlem yapabilecek durumda olacaktır.
  2. Mutex (Mutual exclusions) sınıfı: Bu sınıf sayesinde yazdığınız threadleri senkronlayabilecek ve aynı kod parçasına, değişkene ya da bellek gözüne farklı threadlerden erişilmeye çalışılırken ilgili bellek alanını koruyabilecek ve uygulamanızda ölümcül hatalar meydana gelmesini önleyebileceksiniz.
  3. Directory sınıfı: Bu sınıf ile komut satırından gerçekleştirdiğiniz dosya işlemlerini C++ kodunuzun içinden gerçekleştirebileceksiniz. Bu komutlardan bazıları şunlardır: “pwd”, “ls”, “ls -a”, “cd”, “username”, “mkdir”, “rmdir”, “rm -r”, “mv oldname newname” vb.
  4. Time sınıfı: Bu sınıf ile saat ile ilgili işlemleriniz oldukça kolaylaşacaktır. Örneğin şuan ki saat bilgisini alabilir, herhangi bir saat bilgisi ile bu sınıfı oluşturup bu saat bilgisine saat,dakika, saniye ekleyip çıkarabilir, zaman bilgisini formatlanmış ve okunabilir metin haline dönüştürebilir, iki farklı saat arasında karşılaştırma işlemleri yapabilir ve bir işlemi yaparken geçen süreyi ölçebilirsiniz.
  5. Makefile dosyası: Bu dosya uzun süredir gelen maillerde benden istenen bir şeydi. Sonunda makefile dosyasını oluşturup projeye ekleyebildim. Umarım herkese faydalı olur. Bu dosya sayesinde örnek kodları, BlackLib dosyasının olduğu dizine (makefile dosyasının olduğu dizin) gelip “make all” komutunu çalıştırarak derleyip Beaglebone Black’de sorunsuz çalışabilecek hale getirebilirsiniz.
  6. Eksik header dosyasının eklenmesi: Yine uzun süredir düzeltmem gerektiğinin farkında olduğum ufak bir bug. Haberleşme protokollerinin yazıldığı sınıflar olan BlackI2C, BlackSPI ve BlackUART sınıflarında kullanılan open, close vb fonksiyonların bulunduğu header dosyası olan “unistd.h” dosyasının eklenmemesinden oluşan hata bu versiyonda düzeltildi.
  7. Sınıfların ayrı dizinlere taşınması: İlk iki versiyonda yazdığım bütün sınıflar tek bir dizindeydi(BlackLib). Proje büyüdükçe bu durum biraz karmaşıklık yarattığı için BlackADC, BlackGPIO, BlackPWM, BlackI2C, BlackSPI ve BlackUART sınıfları BlackLib dizini altında alt dizinler olacak şekilde düzenlendi. Yeni haliyle bu sınıfları header dosyasına eklerken biraz daha dikkat etmeniz gerekebilir. Bu işlemin nasıl yapılacağı kütüphanenin internet sitesindeki kod dokümantasyonunda yer almaktadır.

 

 

İlgili Linkler:

Kütüphane Resmi Websitesi: blacklib.yigityuce.com

Kütüphane SSS Sayfası: blacklib.yigityuce.com/faq.html

Kütüphane İletişim Sayfası: blacklib.yigityuce.com/contact.html

GitHub Sayfası: github.com/yigityuce/BlackLib

SourceForge Sayfası: sourceforge.net/projects/blacklib/

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir