package com.dayu.henanlibrary.card; 
 | 
  
 | 
import com.dayu.baselibrary.tools.HexUtil; 
 | 
import com.dayu.henanlibrary.dao.AppDatabase; 
 | 
import com.dayu.henanlibrary.utils.CardCommon; 
 | 
import com.tencent.bugly.crashreport.CrashReport; 
 | 
  
 | 
import java.io.Serializable; 
 | 
  
 | 
/** 
 | 
 * Copyright (C), 2023, 
 | 
 * Author: zuo 
 | 
 * Date: 2023-11-08 13:26 
 | 
 * Description: 配置水泵功率卡: 
 | 
 * <p> 
 | 
 * 为方便现场更换设备时重新注册的问题,配置设备信息卡,首先刷卡,把原设备的注册号和ID号读到卡内, 
 | 
 * 同时卡状态则00修改为FF,再新设备上刷此卡时,注册号和ID号自动写到控制器内,可以直接刷卡使用 
 | 
 */ 
 | 
public class ConfigurationPowerCardHN extends HNBaseCard implements Serializable { 
 | 
  
 | 
  
 | 
    public String cardType = CardCommon.CONFIGURATION_POWER_CARD_TYPE;//卡类型 
 | 
  
 | 
    public String getCardData() { 
 | 
        return cardData; 
 | 
    } 
 | 
  
 | 
    public String power;//功率 
 | 
  
 | 
    public String getPower() { 
 | 
        return power; 
 | 
    } 
 | 
  
 | 
    public void setPower(String power) { 
 | 
        this.power = power; 
 | 
    } 
 | 
  
 | 
  
 | 
    public static ConfigurationPowerCardHN toBean(byte[] data) { 
 | 
        try { 
 | 
            ConfigurationPowerCardHN powerCard = new ConfigurationPowerCardHN(); 
 | 
            int intPower = HexUtil.get16to10(HexUtil.byteToHex(data[5])); 
 | 
            powerCard.setPower(String.valueOf(intPower)); 
 | 
            return powerCard; 
 | 
        } catch (Exception e) { 
 | 
            e.printStackTrace(); 
 | 
            CrashReport.postCatchedException(e); 
 | 
            return null; 
 | 
        } 
 | 
    } 
 | 
  
 | 
    public byte[] toByte(AppDatabase appDatabase) { 
 | 
        setCardData(appDatabase,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[] cardDatas = HexUtil.hexToByteArray(cardData); 
 | 
                System.arraycopy(cardDatas, 0, data, 1, cardDatas.length); 
 | 
            if (power != null) { 
 | 
                float floatPower = Float.parseFloat(power); 
 | 
                int intPower = (int) Math.ceil(floatPower); // 将浮点数向上取整并转换为整数 
 | 
                String hexPower = HexUtil.get10to16(intPower); 
 | 
                byte bytePower = HexUtil.hexToByte(hexPower); 
 | 
                data[5] = bytePower; 
 | 
            } 
 | 
  
 | 
            data[15] = getByteSum(data); 
 | 
            return data; 
 | 
        } 
 | 
  
 | 
    } 
 | 
} 
 |