X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=scripts%2FRFID-JSONP-server.pl;h=a904515b0bc30f649058252453d14917da4c79f2;hb=eb861cf5a0d043cafd5cc79b848317c4d1594904;hp=34dfaa96e4c6ed64f8504f60c96cba56ff2ea36c;hpb=1d2d499ebebdf3d44da4831568a4b512e1c5e8e0;p=Biblio-RFID.git diff --git a/scripts/RFID-JSONP-server.pl b/scripts/RFID-JSONP-server.pl index 34dfaa9..a904515 100755 --- a/scripts/RFID-JSONP-server.pl +++ b/scripts/RFID-JSONP-server.pl @@ -15,7 +15,7 @@ use warnings; use Data::Dump qw/dump/; -use JSON; +use JSON::XS; use IO::Socket::INET; my $debug = 1; @@ -25,6 +25,7 @@ my $server_url = "http://localhost:$listen_port"; use lib 'lib'; +use RFID::Serial::Decode::RFID501; use RFID::Serial::3M810; my $rfid = RFID::Serial::3M810->new; @@ -70,12 +71,16 @@ sub http_server { print $client "HTTP/1.0 200 OK\r\nContent-Type: text/html\r\n\r\n$index_html"; } elsif ( $method =~ m{/scan} ) { my $tags = $rfid->scan; - my $json = { - time => time(), - tags => $tags, + my $json = { time => time() }; + foreach my $tag ( keys %$tags ) { + my $hash = RFID::Serial::Decode::RFID501->to_hash( $tags->{$tag} ); + $hash->{sid} = $tag; + $hash->{security} = $rfid->read_afi( $tag ); + push @{ $json->{tags} }, $hash; }; + warn "#### ", encode_json($json); print $client "HTTP/1.0 200 OK\r\nContent-Type: application/json\r\n\r\n", - $param->{callback}, "(", to_json($json), ")\r\n"; + $param->{callback}, "(", encode_json($json), ")\r\n"; } elsif ( $method =~ m{/program} ) { my $status = 501; # Not implementd @@ -204,7 +209,7 @@ function got_visible_tags(data,textStatus) { function scan_tags() { console.info('scan_tags'); if ( $('input#pull-reader').attr('checked') ) - $.getJSON("http://localhost:9000/scan?callback=?", got_visible_tags); + $.getJSON("/scan?callback=?", got_visible_tags); } $(document).ready(function() {