Вот фрагмент кода моего читателя RFID wiegand на моем малине Pi, который я использую уже.Python reading Wiegand dropping Zeros
def main():
set_procname("Wiegand Reader")
global bits
global timeout
GPIO.add_event_detect(D0, GPIO.FALLING, callback=one)
GPIO.add_event_detect(D1, GPIO.FALLING, callback=zero)
GPIO.add_event_detect(S1, GPIO.FALLING, callback=unlockDoor)
while 1:
if bits:
timeout = timeout -1
time.sleep(0.001)
if len(bits) > 1 and timeout == 0:
#print "Binary:", int(str(bits),2)
c1 = int(str(bits),2)
result = ((~c1) >> 1) & 0x0FFFFFF;
checkAccess(result, doorID)
else:
time.sleep(0.001)
if __name__ == '__main__':
main()
На обычном USB-считывателе RFID я получаю 0000119994, и это то, что напечатано на карте. Но с этим кодом он читает 119994. Я пробовал несколько карт. Он всегда бросает нули спереди.
Я даже попробовал карту с нулем в ней. 0000120368 и он показывает 120368 Я думал, что он снимает первые 4 персонажа, но затем я попробовал брелок, который имел только 3 нуля впереди. 0004876298 и он читает 4876298. Только опускание передних нулей.