Farklı Kart Standartlarında Numara Formatı Dönüştürme
Farklı Kart Standartlarında Numara Formatı Dönüştürme
Geçiş kontrol sistemini kurarken en çok karşılaştığım sorunlardan biri, farklı kart standartları arasında uyumluluk sağlamaktır. İşin başında bu konuyu ihmal ettim ve sonradan veri aktarımında ciddi problemler yaşadım. Bugün size bu deneyimlerimi paylaşıyor ve pratik bir rehber hazırlıyorum.
Geçiş kontrol sistemlerinde yaygın olarak ISO 14443, Wiegand ve RFID formatlarında kartlar kullanılır. Her birinin kendi numara yapısı, kontrol mekanizması ve veri saklama yöntemi vardır. Sisteminizde karmaşıklığa neden olmamak için, bu formatlar arasında doğru dönüşüm yapmanız gerekir.
Kart Standartlarını Tanıyalım
ISO 14443A/B Standartı en yaygın olanıdır. İçinde saklanan numara genellikle 10 haneli bir sayıdır. Kartın fiziksel numarası ile elektronik numarası farklı olabilir. Örneğin, kartın üzerinde basılı gördüğünüz "123456789" ile sistemde saklı olan numara aynı olmayabilir.
Wiegand formatı daha eski ve endüstriyel uygulamalarda kullanılan bir standarttır. Genellikle 26 bit veya 34 bit olarak kodlanır. Burada veriler ikili sisteme dönüştürülür ve parity bitleri ile kontrol edilir. Bu format, iki kablolu haberleşme üzerinden verileri iletir.
RFID ve NFC kartlar ise değişken uzunlukta veri barındırabilir. Bazı RFID kartlar 64 bit, bazıları 96 bit veya daha fazla veri tutabilir. Güvenli kartlarda şifreleme ve belki de multi-sektörlü yapılar vardır.
Adım Adım Dönüştürme Süreci
1. Adım: Kaynak Kartın Numarasını Okuyun
İlk olarak mevcut kartınızdan veri okumanız gerekir. Bir RFID okuyucu cihazı ile kartı tararsınız ve dönen sonucu not edersiniz. Örneğin: "0x04A1B2C3D4E5F6" gibi heksadesimal bir değer alabilirsiniz. Bu değeri daha kullanışlı bir forma dönüştürmek için ondalık sisteme çevirmeniz gerekir.
2. Adım: Format Tanımlayın
Kartın hangi standartta olduğunu belirleyin. Bunu kontrol etmek için kartın bit sayısını ve yapısını inceleyebilirsiniz. Wiegand ise genellikle okuyucu cihazının ayarlarında görülür. Çoğu zaman kartın üzerinde veya dokümantasyonunda yazılı olur.
3. Adım: Heksadesimal'den Ondalık'a Çevirin
Okuyucu tarafından alınan heksadesimal değeri ondalık sisteme dönüştürün. Örneğin: "04A1B2C3" değeri ondalık'ta "76,549,827" olur. Bunu basit bir hesap makinesi veya yazılımda yapabilirsiniz.
4. Adım: Sistem Gereksinimlerine Göre Formatı Ayarlayın
Geçiş kontrol yazılımınızın hangi format kabul ettiğini kontrol edin. Eğer 10 haneli numara bekliyorsa, 76.549.827 değerini "0076549827" şeklinde formatlamanız gerekir. Bazı sistemler soldan sıfır ekler, bazıları sağdan ekler.
5. Adım: Kontrol Rakamını Hesaplayın
Özellikle Wiegand formatında kontrol rakamları önemlidir. Çevrim sırasında bu rakamları yeniden hesaplamanız gerekebilir. Luhn algoritması veya sistem tarafından belirtilen kontrol metodu kullanılır. Yanlış kontrol rakamı ile kart sistem tarafından reddedilir.
6. Adım: Test Edin
Dönüştürülen numarayı yazılıma giriniz ve kartı test ediniz. Eğer çalışmıyor ise, önce formatı kontrol edin. Sonra byte sırası (endianness) sorununu kontrol edin. Bazı sistemler farklı byte sırası kullanabilir.
Sık Yapılan Hatalar
Byte Sırası Karışıklığı: Heksadesimal sayıları çevirirken bayt sırasını ters yapmak çok yaygın bir hatadır. "04A1B2C3" ile "C3B2A104" aynı verinin farklı representasyonudur. Sisteminize göre doğru sırayı kullanın.
Kontrol Rakamlarını Ihmal Etme: Numarayı çevirdikten sonra kontrol rakamı hesaplamayı unutmak, geçiş kontrolü çalışmadığında uzun saatler harcamanıza neden olabilir.
Format Belirtimini Yanlış Anlamak: 26 bit Wiegand formatının ilk 8 biti facility kodu, sonraki 16 biti numara, son 2 biti parity içereceğini bilmek önemlidir. Bunu göz ardı etmek hatalı sonuçlar verir.
Farklı Kartları Karıştırmak: Klasik manyetik şeritli kartlar ile RFID kartlar tamamen farklı veri taşır. Karışırsa sistem tanımaz.
Özet ve Uygulamadaki İpuçları
Kart standartları uyumluluk sorunu ciddi bir konudur, ancak sistematik yaklaşım ile kolayca çözülebilir. Her dönüştürme yapmadan önce kaynak ve hedef sistemlerin gereksinimlerini yazarak başlayın. Haksız yere saatlerce hata ayıklama yapmaktan kurtulursunuz.
Eğer büyük ölçekli bir sistem kuruyorsanız, tüm kartları tek tek test etmek yerine küçük bir batch ile başlayın. İlk 10-20 kartı dönüştürüp sistem üzerinde test edin. Sonra tüm kartlara genelleyin.
Geçiş kontrol sisteminin temelini attığınız aşamada bu detaylara dikkat etmek, ilerde çok daha fazla zaman kazandıracak.