Czytnik RFID USB (np. R20XC-USB) działa zazwyczaj jak zewnętrzna klawiatura, z której zamiast kodów klawiszy przychodzą 8 bajtowe kody
Liczby te należy wczytać z „klawiatury” zdarzeniem np. keydown – instrukcja switch wybiera widok (podstronę) na której działają kody RFID, trzeba dopisać funkcję obsługi kodu:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | function RFIDdecToString(rfid) //Funkcja zamiany odczytanej liczby na kod czterech liczby (0-255) z przecinkami (jak w czytnikach MFRC522 w Pythonie) //dla podanego w stringu rfid w systemie 10 zwraca string postaci 9,13,42,32 { var liczba = parseInt(rfid).toString(16); //zamienia go na liczbę dec a potem na 16 tkową var wynik=""; for (var i=6; i>=0; i-=2) { var cyfra = liczba.substring(i,i+2); wynik += parseInt(cyfra, 16) + (i!=0 ? "," : ""); } return wynik; } function playersPageProcessIncomingRFID(rfid) { //można zamienić na format RFC522 var rfidMFRC522= RFIDdecToString(rfid); //format z Pythona // ... obsługa przychodzącego RFID } $$(document).on('keydown', function(e) { switch(app.views.main.router.url) //w zależności od otwartej teraz strony { case '/players/': //dla strony PLAYERS if (e.keyCode==13) //ENTER - koniec RFID { console.log(RFIDdecCode + ' = ' + RFIDdecToString(RFIDdecCode)); var receivedRFID = RFIDdecToString(RFIDdecCode); playersPageProcessIncomingRFID(receivedRFID); RFIDdecCode = ''; //reset dla następnego RFID } else if (e.key>='0' && e.key<='9') //tylko cyfry, pozostałe znaki to z klawiatury a nie czytnika RFID RFIDdecCode += e.key; //console.log('RFID! Players page' + e.key); //13-enter break; default: console.log('RFID other page'); } }); |