package com.dayu.qiheonlinelibrary.card;
|
|
import com.dayu.baselibrary.tools.HexUtil;
|
import com.dayu.qiheonlinelibrary.utils.CardCommon;
|
|
|
import java.io.Serializable;
|
import java.util.List;
|
|
/**
|
* author: zuo
|
* Date: 2024-02-29
|
* Time: 16:29
|
* 备注:区域表号卡
|
*/
|
public class RegionCard extends BaseCard implements Serializable {
|
|
public String cardType = CardCommon.REGION;//卡命令
|
|
public int arerNumber;//区域号(底位在前高位在后)
|
|
|
public int getArerNumber() {
|
return arerNumber;
|
}
|
|
public void setArerNumber(int arerNumber) {
|
this.arerNumber = arerNumber;
|
}
|
|
public byte[] toByte() {
|
Zero zero = new Zero();
|
return zero.toByte();
|
}
|
|
|
public static RegionCard getBean(List<byte[]> data) {
|
RegionCard regionCard = new RegionCard();
|
byte[] zero = data.get(0);
|
regionCard.cardType = HexUtil.byteToHex(zero[0]);
|
|
byte[] arerNumberByte = new byte[4];
|
System.arraycopy(zero, 1, arerNumberByte, 0, arerNumberByte.length);
|
regionCard.arerNumber = HexUtil.get16To10LowHightByBytes(arerNumberByte);
|
|
|
return regionCard;
|
}
|
|
|
/**
|
* 第1扇区0块 存储的数据
|
*/
|
public class Zero {
|
public byte[] toByte() {
|
byte[] data = new byte[16];
|
data[0] = HexUtil.hexToByte(cardType);
|
//区域号
|
byte[] arerNumberBytes = new byte[4];
|
byte[] arerNumberDatas = HexUtil.hexToByteArray(HexUtil.get10To16LowHigh(arerNumber));
|
System.arraycopy(arerNumberDatas, 0, arerNumberBytes, 0, arerNumberDatas.length);
|
if (arerNumberBytes != null) {
|
System.arraycopy(arerNumberBytes, 0, data, 1, arerNumberBytes.length);
|
}
|
data[15] = getByteSum(data);
|
return data;
|
}
|
|
}
|
|
|
}
|