From 71187d27029d4be7c558be013a454583ef3e5625 Mon Sep 17 00:00:00 2001 From: Dobrica Pavlinusic Date: Sat, 14 Oct 2023 14:57:32 +0200 Subject: [PATCH] SmartX 14 digit tag sid handle as error-borrower --- examples/selfcheck.html | 4 ++++ examples/selfcheck.js | 11 ++++++++++- lib/Biblio/RFID/Reader.pm | 12 ++++++++++-- scripts/RFID-JSONP-server.pl | 2 ++ 4 files changed, 26 insertions(+), 3 deletions(-) diff --git a/examples/selfcheck.html b/examples/selfcheck.html index 1c0b378..6a54b77 100644 --- a/examples/selfcheck.html +++ b/examples/selfcheck.html @@ -217,5 +217,9 @@ Greška. Odnesite knjige na pult. +
+ Studentska iskaznica nije povezana sa AAI@EduHr +
+ diff --git a/examples/selfcheck.js b/examples/selfcheck.js index 218bf3a..8b7b029 100644 --- a/examples/selfcheck.js +++ b/examples/selfcheck.js @@ -84,7 +84,7 @@ function change_page(new_state) { },end_timeout); } - if ( state == 'error' ) { + if ( state == 'error' || state == 'error-borrower' ) { beep( 'error page' ); window.setTimeout(function(){ //change_page('start'); @@ -106,6 +106,12 @@ function got_visible_tags(data,textStatus) { html = ''; diff --git a/lib/Biblio/RFID/Reader.pm b/lib/Biblio/RFID/Reader.pm index b3b6fd7..cb8a674 100644 --- a/lib/Biblio/RFID/Reader.pm +++ b/lib/Biblio/RFID/Reader.pm @@ -83,8 +83,16 @@ sub tags { }; if ( $@ ) { warn "ERROR reading $tag: $@\n"; - $self->_invalidate_tag( $tag ); - next; + if ( length $tag == 14 ) { + warn "XXX $tag probably new SmartX 2023+\n"; + $self->{_tags}->{$tag}->{blocks} = []; + $self->{_tags}->{$tag}->{afi} = 0; + $self->{_tags}->{$tag}->{type} = 'SmartX'; + $self->{_tags}->{$tag}->{reader} = ref $rfid; # save reader info + } else { + $self->_invalidate_tag( $tag ); + next; + } } $triggers->{enter}->( $tag ) if $triggers->{enter}; diff --git a/scripts/RFID-JSONP-server.pl b/scripts/RFID-JSONP-server.pl index 62ae9b1..5440763 100755 --- a/scripts/RFID-JSONP-server.pl +++ b/scripts/RFID-JSONP-server.pl @@ -216,6 +216,7 @@ sub http_server { } close($fh); } + $rfid_sid_cache = undef if $path eq 'examples/selfcheck.html'; # invalidate on reload } elsif ( $method =~ m{/scan(/only/(.+))?} ) { my $only = $2; my @tags = $rfid->tags( reader => sub { @@ -235,6 +236,7 @@ sub http_server { my $borrower = rfid_borrower $hash; if ( exists $borrower->{error} ) { warn "ERROR ", dump($borrower); + $hash->{error} = $borrower->{error}; } else { $hash->{borrower} = $borrower->{borrower}; $hash->{content} = $borrower->{borrower}->{cardnumber}; # compatibile with 3M tags -- 2.20.1