| 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 byte type;//当前状态 00:充值管理机写 01:控制器反写的  当01时将1扇区0块原管理卡信息改成用户卡内容 | 
|   | 
|     public int totalElectric;//总用电量位 底位在前,高位在后  1位小数点  含1位小数点的整数 | 
|   | 
|     public int getTotalElectric() { | 
|         return totalElectric; | 
|     } | 
|   | 
|     public byte getType() { | 
|         return type; | 
|     } | 
|   | 
|     public void setType(byte type) { | 
|         this.type = type; | 
|     } | 
|   | 
|     public String getUserCard() { | 
|         return userCard; | 
|     } | 
|   | 
|     public void setUserCard(String userCard) { | 
|         this.userCard = userCard; | 
|     } | 
|   | 
|   | 
|     public static ManageCard getBean(List<byte[]> data) { | 
|   | 
|         if (data != null) { | 
|             ManageCard manageCard = new ManageCard(); | 
|   | 
|             byte[] zero = data.get(0); | 
|             byte[] passWordByte = new byte[4]; | 
|             System.arraycopy(zero, 5, passWordByte, 0, passWordByte.length); | 
|             manageCard.setUserCard(HexUtil.bytesToHex(passWordByte)); | 
|             manageCard.setType(zero[9]); | 
|             byte[] totalElectricByte = new byte[4]; | 
|             System.arraycopy(zero, 10, totalElectricByte, 0, totalElectricByte.length); | 
|             manageCard.totalElectric = HexUtil.get16To10LowHightByBytes(totalElectricByte); | 
|             return manageCard; | 
|         } | 
|         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; | 
|         } | 
|   | 
|     } | 
|   | 
| } |