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; 
 | 
        } 
 | 
  
 | 
    } 
 | 
  
 | 
  
 | 
} 
 |