Files
2026-03-08 22:58:56 +08:00

52 lines
1.4 KiB
PHP

<?php
namespace app\net;
/**
* 报文类型枚举
* 对应原hexType的数字值:0-未知,1-有线读卡器,2-无线读卡器,3-电流采集器,4-新版电流采集器
*/
enum PacketType: int
{
// 未知类型(默认)
case UNKNOWN = 0;
// 有线读卡器
case WIRED_READER = 1;
// 无线读卡器
case WIRELESS_READER = 2;
// 电流采集器
case CURRENT_COLLECTOR = 3;
// 新版电流采集器
case NEW_CURRENT_COLLECTOR = 4;
/**
* 从整数值获取枚举实例(兼容原有数字逻辑)
* @param int $value
* @return self
*/
public static function fromValue(int $value): self
{
return match ($value) {
1 => self::WIRED_READER,
2 => self::WIRELESS_READER,
3 => self::CURRENT_COLLECTOR,
4 => self::NEW_CURRENT_COLLECTOR,
default => self::UNKNOWN,
};
}
/**
* 获取友好的类型名称(用于日志/展示)
* @return string
*/
public function getName(): string
{
return match ($this) {
self::UNKNOWN => '未知报文',
self::WIRED_READER => '有线读卡器报文',
self::WIRELESS_READER => '无线读卡器报文',
self::CURRENT_COLLECTOR => '电流采集器报文',
self::NEW_CURRENT_COLLECTOR => '新版电流采集器报文',
};
}
}