Sto tentando di creare una webapp su un Chromebook, ho bisogno di leggere i numeri seriali della scheda RFID con un NFC ACR122U. Sto usando chrome-nfc.Attiva un evento quando viene presentata una scheda NFC
Sto leggendo le carte allegramente, ma non so come sparare un evento quando viene presentata una carta.
Ci sono eventi in chrome-nfc che posso usare per sapere quando una carta è stata presentata al lettore?
EDIT: Ho cercato di utilizzare chrome.nfc.wait_for_tag, ma non si comporta come mi aspetterei.
// With a card on the reader
chrome.nfc.wait_for_tag(device, 10000, function(tag_type, tag_id){
var CSN = new Uint32Array(tag_id)[0];
console.log ("CSN: " + CSN);
});
[DEBUG] acr122_set_timeout(round up to 1275 secs)
DEBUG: InListPassiveTarget SENS_REQ(ATQA)=0x4, SEL_RES(SAK)=0x8
DEBUG: tag_id: B6CA9B6B
DEBUG: found Mifare Classic 1K (106k type A)
[DEBUG] nfc.wait_for_passive_target: mifare_classic with ID: B6CA9B6B
CSN: 1805372086
// with no card on the reader
chrome.nfc.wait_for_tag(device, 10000, function(tag_type, tag_id){
var CSN = new Uint32Array(tag_id)[0];
console.log ("CSN: " + CSN);
});
[DEBUG] acr122_set_timeout(round up to 1275 secs)
DEBUG: found 0 target, tg=144
Entrambi restituiscono i risultati come sopra immediatamente, non sembra importare che il numero che uso per un timeout ...
Se io chiamo la funzione con nessuna scheda sul lettore, e poi subito mettere la carta sul lettore dopo la chiamata di funzione, non ottengo alcun output nella console.
Grazie a @Grinn per il vostro suggerimento. Tuttavia sto avendo problemi, che in realtà non sta facendo nessuna attesa, sempre ritorna immediatamente. Ho aggiornato la domanda con un esempio di output. – Hank
@Hank qual è il valore di 'tag_id' quando non ci sono carte nel lettore? – Grinn
non è definito ...è come se la funzione fosse cancellata e non riuscisse mai a richiamarla – Hank