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