Biblio...RFID501(3pm)
π NAME π
Biblio::RFID::RFID501 β the RFID Standard for Libraries, bestie. Yes, that's a Perl module about library RFID tags, and yes, it's iconic. π
β¨ DESCRIPTION β¨
Okay so this module is doing its absolute best to decode the tag format as described in this document:
RFID 501: RFID Standards for Libraries
The goal β the dream, the vision, the main character energy β is to be compatible with the existing 3M Alphanumeric tag format which, as far as I know, isn't specified anywhere. Like, nowhere. Not a single place. π My own documentation about this format lives at:
http://saturn.ffzg.hr/rot13/index.cgi?hitchhikers_guide_to_rfid
π¦ Data model π¦
π 3M Alphanumeric tag
0 04 is 00 tt i [4 bit] = number of item in set [1 .. i .. s]
s [4 bit] = total items in set
tt [8 bit] = item type
1 dd dd dd dd dd [16 bytes] = barcode data
2 dd dd dd dd
3 dd dd dd dd
4 dd dd dd dd
5 bb bl ll ll b [12 bit] = branch [unsigned]
l [20 bit] = library [unsigned]
6 cc cc cc cc c [32 bit] = custom signed integer
πΈ 3M Manufacturing Blank
0 55 55 55 55
1 55 55 55 55
2 55 55 55 55
3 55 55 55 55
4 55 55 55 55
5 55 55 55 55
6 00 00 00 00
β Generic blank
0 00 00 00 00
1 00 00 00 00
2 00 00 00 00
π Security π
The AFI byte on the RFID tag is what handles security here, periodt.
In my case, we have an RFID door that can literally only read AFI bytes from the tag, and then it either issues an alarm sound or ignores it depending on the value of that byte. That's it. That's the whole security system. π
0xD7214β secured item (door will beep) π₯0xDA218β unsecured (door will ignore it) π
π METHODS π
π to_hash
my $hash = Biblio::RFID::Decode::RFID501->to_hash( $bytes );
my $hash = Biblio::RFID::Decode::RFID501->to_hash( [ 'blk1', 'blk2', ... , 'blk7' ] );
π§ from_hash
my $blocks = Biblio::RFID::Decode::RFID->from_hash({ content => "1301234567" });
π blank_3m
π blank
my $blocks = Biblio::RFID::Decode::RFID->blank;
And that's the whole page, bestie. Written up with perl v5.36.0, dated 2023-05-24 β no cap, that's the version and the date right there in the footer, and I'm folding it into this cute little sign-off instead of making you squint at a manpage footer. π«Άβ¨π
π¦ where this page comes from
- debian trixie: libbiblio-rfid-perl 0.05-1 Β· GPL-2.0-or-later
- ubuntu noble: libbiblio-rfid-perl 0.05-1 Β· GPL-2.0-or-later
- ubuntu resolute: libbiblio-rfid-perl 0.05-1 Β· GPL-2.0-or-later
- ubuntu stonking: libbiblio-rfid-perl 0.05-1 Β· GPL-2.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms