Farklı Kart Standartlarında Numara Formatı Dönüştürme
Farklı Kart Standartlarında Numara Formatı Dönüştürme
Geçiş kontrol sistemi kurarken en sık karşılaştığım sorunlardan biri, kart okuyucudan gelen numaranın işletme sistemimde farklı görünmesidir. EM karttan okunan numara, Mifare karttan okunan numarayla eşleşmiyor. Desfire kartlarda ise tamamen başka bir format ortaya çıkıyor. Bu durum, sistemi test ederken kafa karışıklığına neden oluyor ve hatta yetkisiz erişim veya erişim engellenmesi gibi ciddi sorunlara yol açabiliyor.
Ben de sizin gibi başladığımda bu konuyu adım adım öğrendim. Bugün size kart numarası format dönüştürmesinin nasıl çalıştığını, neden gerekli olduğunu ve uygulamada nelere dikkat etmem gerektiğini paylaşmak istiyorum.
Kart Okuyucular Numarayı Nasıl İletir?
Kart okuyucusu, kartın içindeki verileri elektromanyetik ya da RFID sinyaliyle okuyor ve bunu kontrol paneline gönderiyor. Ancak her kart teknolojisinin veri yapısı farklıdır.
EM Kartlar (125 kHz): Genellikle 10 haneli bir ondalık (decimal) numara içerir. Okuyucu bunu olduğu gibi 10 basamak olarak iletir. Örneğin: 0001234567
Mifare Kartlar (13.56 MHz): Kartın hafızasında birden fazla sektör bulunur. Okuyucu UID (Unique Identifier) olarak bilinen 4 veya 7 baytlık bir kod okur ve bunu heksadesimal (16'lı sistem) formatında gönderir. Örneğin: 1A2B3C4D
Desfire Kartlar (13.56 MHz): Mifare'nin daha güvenli versiyonudur. Şifreli sektörler içerir ve UID yanında uygulama düzeyinde kimlikler de tutabilir. Heksadesimal formatında, Mifare'den daha uzun diziler gönderilebilir.
Neden Format Dönüştürme Yapılması Gerekiyor?
Sisteminize EM ve Mifare kartları aynı anda entegre etmek istediğinizi düşünün. Veri tabanında her çalışan için sabit bir kart numarası depolanmıştır. Ama okuyucular farklı formatlarda veri gönderiyorsa, sistem kimliklendirme yapamaz.
Burada iki seçeneğiniz vardır: Ya veri tabanını her kart türüne göre güncellersiniz, ya da okuyucudan gelen numaraları eşitlemeleri için bir standart formata dönüştürürsünüz. İkinci yöntem çok daha pratiktir.
Format Dönüştürme Adımları
1. Adım: Kartın Gerçek Numarasını Belirleyin
İlk olarak hangi format kullanacağınıza karar verin. En yaygın yaklaşım, kartın üzerinde basılı olan numarayı esas almaktır. EM kartlarda bu numarayı doğrudan okuyabilirsiniz. Mifare ve Desfire'da ise kartın UID'sini kullanmanız gerekir. Kart tarafında yazılı bu numarayı not edin.
2. Adım: Okuyucu Çıkışını İzleyin
Kontrol paneline bağlı olan okuyucu, kartı taraştığında hangi değeri gönderdiğini kaydetmelisiniz. Çoğu panel yazılımında bir test modu veya log sekmesi vardır. Kart numarası format dönüştürmesi için bu ham veriyi görmek kritiktir.
Mifare kartlarda dikkat edilmesi gereken nokta şudur: Okuyucu bazen UID'yi doğrudan (örneğin 1A2B3C4D), bazen de ek kontrol baytlarıyla (daha uzun bir dizi) gönderir. Panelin ayarlarında "Anti-collision bit" veya benzeri bir seçenek varsa, bunu kontrol edin.
3. Adım: Dönüştürme Kuralını Yazın
Panelin yazılımında veya kontrol biriminin mikrodenetleyicisinde bir dönüştürme algoritması tanımlanması gerekir. Sık kullanılan yöntemler:
- Doğrudan eşleştirme: Okuyucudan gelen veriyi aynen veri tabanında arayın.
- Heksadesimal'den ondalık'a çevirme: Mifare'nin heksadesimal çıkışını ondalık sayıya dönüştürüp ardından eşleştirme yapın.
- Kısmi eşleştirme: Okuyucudan gelen dizinin belirli karakterlerini alıp eşleştirme yapın.
- Bayt cinsinden işlem: Her bir baytı ayrı ayrı işleyerek kartın gerçek numarasına ulaşın.
4. Adım: Veri Tabanında Test Edin
Dönüştürme kuralını yazdıktan sonra, bir test kartıyla işlem yapın. Kartı okuyucu üzerinde turun, panelin gönderdiği değeri not edin ve dönüştürme kuralını manuel olarak uygulayarak sonucu kontrol edin. Sonuç, veri tabanında depolanmış olan numarayla eşleşmelidir.
Sık Yapılan Hatalar
Büyük-Küçük Harf Karışıklığı: Heksadesimal değerlerde A-F harfleri bazen küçük (a-f), bazen büyük yazılır. Veri tabanında tutarlı olun. Örneğin, tümünü küçük harf olarak depolayın.
Başlangıç Sıfırlarını Görmezden Gelmek: "0001234567" ile "1234567" farklı numaralardır. Okuyucunun gönderdiği format tam olarak kayıt edilmelidir.
Okuyucu Türünü Yanlış Tespit Etmek: Aynı türde iki okuyucu bile farklı ayarlarla farklı çıkışlar verebilir. Her okuyucuyu ayrı ayrı test edin.
Kartın Konumuna Göre Değişen Okumalar: Bazı kartlar okuyucuya farklı açılardan yaklaştırıldığında değişen veriler gönderebilir. Üç veya dört kez okuyup tutarlılığı kontrol edin.
Özet
Kart numarası format dönüştürmesi, geçiş kontrol sisteminin temel taşlarından biridir. EM, Mifare ve Desfire gibi farklı kart teknolojilerinin yanında çalışmak için, önce her kartın numarası nasıl aktarıldığını anlamalı, ardından bir eşleştirme sistemi kurmalısınız. Test ve kontrol aşamalarını ihmal etmeyin. Küçük bir format hatası, bütün sistemi işe yaramaz hale getirebilir. Deneyimim gösteriyor ki bu adımları sabırla izleyenler, sorunsuz bir sistem kurabiliyor.