package com.dayu.qihealonelibrary.card;
|
|
import com.dayu.baselibrary.tools.HexUtil;
|
import com.dayu.qihealonelibrary.dao.QHAloneAppDatabase;
|
import com.dayu.qihealonelibrary.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 ConfigurationPowerCard extends BaseCard 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 ConfigurationPowerCard toBean(byte[] data) {
|
try {
|
ConfigurationPowerCard powerCard = new ConfigurationPowerCard();
|
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(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[] 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;
|
}
|
|
}
|
}
|