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; 
 | 
  
 | 
/** 
 | 
 * 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(QHAloneAppDatabase QHAloneAppDatabase) { 
 | 
        setCardData(QHAloneAppDatabase, 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; 
 | 
        } 
 | 
  
 | 
    } 
 | 
  
 | 
  
 | 
} 
 |