Etiket Yazıcısı DPI Konusunda Yalan Söylüyor
Açık kaynaklı bir Web Bluetooth sürücüsü, 300 dpi bir cihaz olarak reklamı yapılan Niimbot N1 etiket yazıcısının aslında yaklaşık 203 dpi ile yazdırdığını gösteriyor.
Geliştirici, sürücüyü Niimbot'un mobil uygulamasını kullanmak yerine doğrudan bir web sayfasından yazdırmak için geliştirdi. Tescilli protokolü tersine mühendislik ile inceledi ve Web Bluetooth API'si aracılığıyla tarayıcılara açtı. Bunu yaparken sadece eksik bir özellik değil, aynı zamanda hassasiyetin önemli olduğu küçük ölçekli paketleme, envanter etiketleri veya hobi projelerini mahvedebilecek temel bir yanlış teknik özellik keşfetti.
Yanlış teknik özelliğin ortaya çıkışı
Niimbot, N1'i inç başına 300 nokta anlamına gelen 300 dpi bir yazıcı olarak pazarlıyor. Geliştirici, bir cetvel ölçekli görsel ve numaralandırılmış bir test deseni yazdırdı, ardından işaretleri fiziksel bir cetvelle ölçtü. Hesaplamalar tutarlı bir şekilde iddia edilen 300 dpi'yi değil, yaklaşık 203 dpi'yi işaret ediyordu.
Bir donanım sürücüsü yazmaktan çıkarılan dört zorlu ders
“Başarılı” bir işlem hiçbir şey üretmeyebilir. Yazıcı verileri paketler halinde (bursts) aktarır. Bazı platformlarda Bluetooth yığını, hata bildirmeden bir yazma işlemini düşürebilir. Sürücü işlemin tamamlandığını varsayar, ancak etiket boş veya kesik çıkar. Yazar, artık bir kağıdın gerçekten beslendiğini doğrulamak için her işlemden sonra yazıcının fiziksel sayfa sayacını okuyor.
Dokümantasyon gerçeklik değildir. 300 dpi iddiası buna net bir örnektir. Teknik özellikler iyimser, güncelliğini yitirmiş veya sadece yanlış olabilir. Görsel sadakat önemli olduğunda, geliştiriciler kritik parametreleri kendileri ölçmelidir.
Fiziksel işaretler “uygunluk” testlerinden daha iyidir. Bir görselin etiket alanına sığıp sığmadığını görmek için yazdırmak; çözünürlüğü, baskı kafası genişliğini veya kayma hatalarını gizler. Bilinen geometrik bir işareti yazdırmak ve tam konumunu ölçmek, cihazın gerçek davranışını ortaya çıkarır.
Bir protokol donanım karakterini değil, grameri tanımlar. İki yazıcı aynı komut setini paylaşabilir ancak farklı davranabilir; biri hızlı sayfa tekrarlarını yönetebilir, diğeri ise duraksayabilir. Sürücü, yalnızca protokol dokümanlarına dayanarak aynı performansı varsayamaz; her modelin gerçek dünya testine ihtiyacı vardır.
Sürücü neden önemli
Sürücü asla her şeyi biliyormuş gibi davranmaz. Değeri yazıcıdan okumak yerine ne zaman bir çıkarım yaparsa, o alanı bir tahmin olarak işaretler. Bu şeffaflık, aksi takdirde saatlerce hata ayıklama süreci gerektirecek sessiz hataları engeller.
Sürücüyü edinme
Sürücü Chrome veya Edge'de çalışır; yalnızca Bluetooth özellikli bir cihaza ve desteklenen bir Niimbot yazıcısına ihtiyaç duyar. Canlı demoyu şuradan deneyebilirsiniz:
https://iscarelli.github.io/niimbot-web-bluetooth/demo/
Kaynak kodu GitHub'da bulunur; burada topluluk model verileri ekleyebilir, hataları düzeltebilir veya sürücüyü diğer tarayıcılara uyarlayabilir:
https://github.com/iscarelli/niimbot-web-bluetooth
Niimbot sahipleri model veritabanını doldurmaya yardımcı olabilir; bu işlem yaklaşık on dakika ve iki etiket sürer.
Karşı görüş
Şirket bu tutarsızlığı açıklığa kavuşturana kadar, geliştiriciler ölçülen değerle çalışmalıdır.
Çıkarılması gereken ders basittir: Bir web sayfasından çağırdığınız donanım, teknik özellik belgesinin vaat ettiklerini yapmayabilir. Kritik parametreleri doğrulayın, sessiz hatalara karşı hazırlıklı olun ve belirsizliği gizlemek yerine açığa çıkaran sürücüleri seçin.
