package com.dayu.qihealonelibrary.card;
|
|
import com.dayu.baselibrary.tools.HexUtil;
|
import com.dayu.qihealonelibrary.dao.QHAloneAppDatabase;
|
import com.dayu.qihealonelibrary.utils.CardCommon;
|
|
import java.io.Serializable;
|
import java.util.List;
|
|
/**
|
* Copyright (C), 2023,
|
* Author: zuo
|
* Date: 2023-11-08 10:19
|
* Description: 管理卡 第1扇区 0块
|
*/
|
public class ManageCard extends BaseCard implements Serializable {
|
public String cardType = CardCommon.MANAGE_CRAD;//卡类型
|
|
public String getCardData() {
|
return cardData;
|
}
|
|
/**
|
* M1卡的0扇区0块通常用于存储一些基本的卡片信息
|
* 0-4字节是卡号
|
*/
|
public String userCard; //用户卡号
|
|
public String getUserCard() {
|
return userCard;
|
}
|
|
public void setUserCard(String userCard) {
|
this.userCard = userCard;
|
}
|
|
|
public static ManageCard getBean(List<byte[]> data) {
|
|
if (data != null) {
|
ManageCard passWordCard = new ManageCard();
|
|
byte[] zero = data.get(0);
|
byte[] passWordByte = new byte[4];
|
System.arraycopy(zero, 5, passWordByte, 0, passWordByte.length);
|
passWordCard.setUserCard(HexUtil.bytesToHex(passWordByte));
|
return passWordCard;
|
}
|
return null;
|
}
|
|
|
public byte[] toByte(QHAloneAppDatabase QHAloneAppDatabase) {
|
setCardData(QHAloneAppDatabase, cardType);
|
Zero zero = new Zero();
|
return zero.toByte();
|
}
|
|
public class Zero {
|
public byte[] toByte() {
|
byte[] data = new byte[16];
|
data[0] = HexUtil.hexToByte(cardType);
|
|
byte[] cardDataByte = HexUtil.hexToByteArray(cardData);
|
System.arraycopy(cardDataByte, 0, data, 1, cardDataByte.length);
|
|
byte[] userCardByts = HexUtil.hexToByteArray(userCard);
|
if (userCard != null) {
|
System.arraycopy(userCardByts, 0, data, 5, userCardByts.length);
|
}
|
|
data[15] = getByteSum(data);
|
return data;
|
}
|
|
}
|
|
}
|