BlackLib Kütüphanesi Son Kullanıcıya Açıldı

BlackLib

Beaglebone Black için benim tarafımdan, C++ ile yazılmış olan BlackLib kütüphanesi son kullanıcının kullanımına sunuldu.

 

İsterseniz soru cevap şeklinde gidelim. Ama başlamadan önce kütüphane bilgilerini huzurlarınıza sunmaktan mutluluk duyuyorum. İlginiz için teşekkür ederim. İyi çalışmalar.

Kütüphane Adı:  BlackLib
Web Sitesi:  blacklib.yigityuce.com
Yayın Tarihi:  23.04.2014
Yazar:  Yiğit Yüce – ygtyce@gmail.com
Kütüphane İle İlgili İletişim:  contact@blacklib.yigityuce.com

 

 

BlackLib

 

 

Nedir bu BlackLib?

BlackLib Beaglebone Black için yazılmış olan bir kütüphanedir.

 

BlackLib ile Beaglebone Black’in hangi özellikleri kullanılabiliyor?

Bu kütüphane ile Beaglebone Black’in GPIO, ADC ve PWM özellikleri kullanılabiliyor. Yakın zamanda diğer özelliklerin eklenmesini de planlıyorum.

 

Neden İngilizce?

Aslında her şey değil, kodlar ve kütüphanenin web sitesi İngilizce. Fakat dokümantasyon iki dilde hazırlandı, hem Türkçe hem İngilizce. Ayrıca gerçekten C++ kullanarak yazılmış ve Beaglebone Black’in bu özelliklerini kullanan bir kütüphane şu an için Dünya çapında başka bir yerde mevcut değil. Yani işin içinde biraz da ticari amaç var, ondan İngilizce.

 

Avantajları neler?

BlackLib sayesinde yalnızca birkaç fonksiyon ile Beaglebone Black’e ait özellikler rahatça kullanılabiliyor. Ayrıca hata bayrakları sayesinde debug(hata ayıklama) işlemleri de tek bir fonksiyon ile yapılabiliyor. Bunlara ek olarak kullanabileceğiniz özelliklerin hepsi özel değişkenler(enum) ile tanımlandı.

 

Debug nasıl yapılıyor?

Kütüphane sürekli olarak, kullanılan fonksiyonları takip ediyor ve eğer hata gerçekleşirse, oluşan bu hataları gerekli veri yapılarına kaydediyor. Son kullanıcı ile etkileşimde bulunan bütün sınıflarda, C++’ın aşırı yükleme özelliği kullanarak yazılmış fail() fonksiyonları vardır. Yani bu fonksiyonlar sayesinde o nesneye ait bütün hataları veya özel olarak istediğiniz bir hatayı kontrol edebiliyorsunuz.

 

Sınıf hiyerarşisi nasıl?

Kütüphanenin en iç kısmında ana çekirdek bulunuyor. Bu çekirdek üzerine yazılmış, Beaglebone Black’in özelliklerine ait alt seviye çekirdekler ve bunlardan türetilmiş son kullanıcıya hitap eden son sınıflar bulunuyor.

 

Kütüphane çekirdeği ne işe yarar?

BlackLib, çekirdek işlemlerini yapmak için BlackCore sınıfını içerir. Son kullanıcılar bu sınıfa erişemez. Çünkü bu sınıf soyut bir sınıftır ve bütün fonksiyonları private ya da protected tipindedir.

 

Alt seviye çekirdekler nedir?

BlackLib GPIO, ADC ve PWM için alt seviye çekirdekler içerir. Hazırlık aşamaları, device tree yükleme işlemleri, ilklendirme aşamaları burada, alt seviye çekirdeklerde gerçekleştirilir. Ayrıca son sınıfları beğenmezseniz veya kullanmak istemezseniz, bu alt seviye çekirdeklerden kendi sınıf(lar)ınızı türetebilirsiniz. Ancak son sınıflar sizin bütün ihtiyaçlarınızı karşılamak için tasarlanmıştır.

 

Son sınıflar ne demek?

Son sınıflar, son kullanıcı ile yani sizin ile etkileşime geçmesi için tasarlanmış sınıflardır. Bu sınıflar vasıtası ile Beaglebone Black’in GPIO, ADC veya PWM özelliklerini öğrenebilir, ayarlayabilir ya da kontrol edebilirsiniz. Bu sınıflar Beaglebone Black’in özelliklerine ait bilgileri öğrenmek veya değiştirmek için kullanabileceğiniz temel fonksiyonları ve ADC çözümleme, GPIO pin değerinin tersini ayarlama gibi hayatınızı kolaylaştıracak ek fonksiyonlar içerir.

 

Yukarıda özel değişkenler diye bir şey geçiyordu. Nedir bu özel değişkenler?

BlackLib sizin ve Beaglebone Black’in güvenliği için enum olarak tanımlanmış özel değişkenler içerir. GPIO, ADC, PWM isimleri; PWM ve GPIO değerleri; GPIO yönleri ve çok daha fazlası gibi özellikleri enumlar ile tanımlanmıştır. Bu şu anlama gelmektedir; bazı fonksiyonları bu tanımlanmış enumları kullanmadan çağıramayacaksınız. Bu sayede, GPIO export dosyasına 34 yerine 345 yazmak gibi kullanıcı hatalarının önüne geçilmiş oluyor.

 

Ben bunu beğenmedim değiştirmek istiyorum ne yapabilirim?

Kütüphane LGPL lisansı altında. Bu lisans, kütüphaneyi alıp istediğiniz gibi değiştirmeye olanak sağlıyor, ancak bir şartla. Kütüphanenin yaratıcısının adı sizin yazdığınız kodlarda kesin olarak geçecek ve sizin kodunuz da LGPL lisansı altında olacak. Ayrıca şöyle bir seçenek de var; kütüphanenin sitesindeki iletişim sayfasında yazdığı şekilde benimle iletişime geçerseniz gerekli düzenlemeleri beraber de yapabiliriz. Bence çok da güzel olur.

 

Nasıl indirebilirim?

Kütüphanenin sitesindeki indirme sayfasında yazdığı şekilde, kaynak kodları GitHub veya SourceForge üzerinden indirip kullanabilirsiniz.

 

Nasıl kullanacağım?

İndirdiğiniz dosyaların içinde DOCS klasöründe bulunan dokümanlar sizin için özel olarak hazırlandı. Sadece son kullanıcıya hitap ediyor ve hem Türkçe’si var, hem de İngilizce’si. Çok bir şey yok 20 küsür sayfa. Çok rahat bir şekilde okuyabilirsiniz, her şey orada detaylı olarak var. Ayrıca ben tümünü indirmek istemiyorum önce bir okuyacağım derseniz kütüphanenin sitesindeki kullanım kılavuzu sayfasında yer alan pdf’leri inceleyebilirsiniz.

 

Bizden özel bir rican var mı?

Bunu kullanacak arkadaşlardan isteğim, bu işi gönüllülük esasına dayalı yaptığımı, hatalarımın veya eksiklerin olabileceğini unutmamaları. İnanın kodları yazmaktan çok daha fazla vaktimi alan şey dokümantasyonunu hazırlamaktı. Eğer atladığım, yanlış olan bir yer varsa geri bildirimleriniz sayesinde bunları düzeltebilirim.

 

Herkese iyi çalışmalar.

 

Bir Cevap Yazın

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