Files
tcpserver-flow/app/net/parsers/WirelessReaderParser.php
T
2026-03-08 22:58:56 +08:00

31 lines
789 B
PHP

<?php
namespace app\net\parsers;
/**
* 无线读卡器报文解析器(长度56)
*/
class WirelessReaderParser implements PacketParserInterface
{
public function supports(string $hexString): bool
{
return strlen($hexString) === 56;
}
public function parse(string $hexString): array
{
$pattern = '/^5A(.{12})(.{26})(.{12})(.{2})A5$/';
if (preg_match($pattern, $hexString, $matches)) {
return [
'hexType' => 2,
'isMatched' => true,
'gateway' => $matches[1],
'card' => $matches[2],
'reader' => $matches[3],
'batteryLevel' => (hexdec($matches[4]) + 200) / 100,
];
}
return ['isMatched' => false];
}
}