| package com.dayu.qiheonlinelibrary.card; | 
|   | 
| import com.dayu.baselibrary.tools.HexUtil; | 
| import com.dayu.qiheonlinelibrary.dao.QHOnLineAppDatabase; | 
| import com.dayu.qiheonlinelibrary.utils.CardCommon; | 
|   | 
| import java.io.Serializable; | 
| import java.util.List; | 
|   | 
| /** | 
|  * author: zuo | 
|  * Date: 2024-02-29 | 
|  * Time: 16:59 | 
|  * 备注:电量单价卡 | 
|  */ | 
| public class ElectricPriceCard extends BaseCard implements Serializable { | 
|     public String cardType = CardCommon.ELECTRIC_PRICE; | 
|     public Float electricPrice;// 电量单价(低)单位是元,3位小数点 | 
|   | 
|     public Float getElectricPrice() { | 
|         return electricPrice; | 
|     } | 
|   | 
|     public void setElectricPrice(Float electricPrice) { | 
|         this.electricPrice = electricPrice; | 
|     } | 
|   | 
|     public byte[] toByte(QHOnLineAppDatabase QHOnLineAppDatabase) { | 
|         setCardData(QHOnLineAppDatabase, cardType); | 
|         Zero zero = new Zero(); | 
|         return zero.toByte(); | 
|     } | 
|   | 
|   | 
|     public static ElectricPriceCard getBean(List<byte[]> data) { | 
|         ElectricPriceCard regionCard = new ElectricPriceCard(); | 
|         byte[] zero = data.get(0); | 
|         regionCard.cardType = HexUtil.byteToHex(zero[0]); | 
|   | 
|         byte[] cardDataByte = new byte[4]; | 
|         System.arraycopy(zero, 1, cardDataByte, 0, cardDataByte.length); | 
|         regionCard.cardData = HexUtil.bytesToHex(cardDataByte); | 
|   | 
|   | 
|         byte[] electricPriceByte = new byte[4]; | 
|         System.arraycopy(zero, 5, electricPriceByte, 0, electricPriceByte.length); | 
|         regionCard.electricPrice = HexUtil.hexToFloatLowHigh(electricPriceByte); | 
|   | 
|   | 
|         return regionCard; | 
|     } | 
|   | 
|   | 
|     /** | 
|      * 第1扇区0块 存储的数据 | 
|      */ | 
|     public class Zero { | 
|         public byte[] toByte() { | 
|             byte[] data = new byte[16]; | 
|             data[0] = HexUtil.hexToByte(cardType); | 
|   | 
|             byte[] regionBytes = new byte[4]; | 
|             byte[] regionDatas = HexUtil.hexToByteArray(cardData); | 
|             System.arraycopy(regionDatas, 0, regionBytes, 0, regionDatas.length); | 
|             if (regionBytes != null) { | 
|                 System.arraycopy(regionBytes, 0, data, 1, regionBytes.length); | 
|             } | 
|   | 
|             byte[] controllerCodelBytes = new byte[4]; | 
|             byte[] controllerCodelDatas = HexUtil.hexToByteArray(HexUtil.floatToHexLowHigh(electricPrice)); | 
|             System.arraycopy(controllerCodelDatas, 0, controllerCodelBytes, 0, controllerCodelDatas.length); | 
|             if (controllerCodelBytes != null) { | 
|                 System.arraycopy(controllerCodelBytes, 0, data, 5, controllerCodelBytes.length); | 
|             } | 
|   | 
|             data[15] = getByteSum(data); | 
|             return data; | 
|         } | 
|   | 
|     } | 
|   | 
|   | 
| } |