package com.dayu.qihealonelibrary.card; 
 | 
  
 | 
import com.dayu.baselibrary.tools.HexUtil; 
 | 
import com.dayu.qihealonelibrary.utils.CardCommon; 
 | 
  
 | 
import java.io.Serializable; 
 | 
  
 | 
/** 
 | 
 * Created by Android Studio. 
 | 
 * author: zuo 
 | 
 * Date: 2024-07-13 
 | 
 * Time: 15:47 
 | 
 * 备注: 
 | 
 */ 
 | 
public class ManagerToUserCard extends BaseCard implements Serializable { 
 | 
  
 | 
    public String cardType = CardCommon.USER_CARD_TYPE_1;//写卡标志 A1刷卡开泵前 A8刷卡开泵后  A2叠加充值 
 | 
  
 | 
    public int arerNumber;//区域号(底位在前高位在后) 
 | 
  
 | 
    public int deviceNumberl;//设备编号(底位在前高位在后) 
 | 
    public short rechargeTimes;//充值次数 
 | 
  
 | 
    public int totalWater;//用户总用水量  底位在前,高位在后2位小数点  含两个小数点的整数 
 | 
  
 | 
    public int totalElectric;//总用电量位 底位在前,高位在后  1位小数点  含1位小数点的整数 
 | 
  
 | 
  
 | 
  
 | 
    /** 
 | 
     * 用户卡0块 
 | 
     */ 
 | 
    public class Zero extends BaseCard { 
 | 
        public byte[] toByte() { 
 | 
            try { 
 | 
                byte[] data = new byte[16]; 
 | 
                data[0] = HexUtil.hexToByte(cardType); 
 | 
                //区域号 
 | 
                byte[] arerNumberBytes = new byte[2]; 
 | 
                byte[] arerNumberDatas = HexUtil.hexToByteArray(HexUtil.get10To16LowHigh(arerNumber)); 
 | 
                System.arraycopy(arerNumberDatas, 0, arerNumberBytes, 0, arerNumberDatas.length); 
 | 
                if (arerNumberBytes != null) { 
 | 
                    System.arraycopy(arerNumberBytes, 0, data, 1, arerNumberBytes.length); 
 | 
                } 
 | 
                //设备编号 
 | 
                byte[] deviceNumberlBytes = new byte[2]; 
 | 
                byte[] deviceNumberlDatas = HexUtil.hexToByteArray(HexUtil.get10To16LowHigh(deviceNumberl)); 
 | 
                System.arraycopy(deviceNumberlDatas, 0, deviceNumberlBytes, 0, deviceNumberlDatas.length); 
 | 
                if (deviceNumberlBytes != null) { 
 | 
                    System.arraycopy(deviceNumberlBytes, 0, data, 3, deviceNumberlBytes.length); 
 | 
                } 
 | 
                //充值次数 
 | 
                byte rechargeTimesByte = HexUtil.hexToByte(HexUtil.get10to16(rechargeTimes)); 
 | 
                data[5] = rechargeTimesByte; 
 | 
  
 | 
                //用户总用水量 
 | 
                byte[] totalWaterBytes = new byte[4]; 
 | 
                byte[] totalWaterDatas = HexUtil.hexToByteArray(HexUtil.get10To16LowHigh(totalWater)); 
 | 
                System.arraycopy(totalWaterDatas, 0, totalWaterBytes, 0, totalWaterDatas.length); 
 | 
                if (totalWaterBytes != null) { 
 | 
                    System.arraycopy(totalWaterBytes, 0, data, 6, totalWaterBytes.length); 
 | 
                } 
 | 
                //总用电量位 
 | 
                byte[] totalElectricBytes = new byte[4]; 
 | 
                byte[] totalElectricDatas = HexUtil.hexToByteArray(HexUtil.get10To16LowHigh(totalElectric)); 
 | 
                System.arraycopy(totalElectricDatas, 0, totalElectricBytes, 0, totalElectricDatas.length); 
 | 
                if (totalElectricBytes != null) { 
 | 
                    System.arraycopy(totalElectricBytes, 0, data, 10, totalElectricBytes.length); 
 | 
                } 
 | 
                data[15] = getByteSum(data); 
 | 
                return data; 
 | 
            } catch (Exception e) { 
 | 
                e.printStackTrace(); 
 | 
            } 
 | 
  
 | 
            return null; 
 | 
        } 
 | 
  
 | 
    } 
 | 
  
 | 
    public void setArerNumber(int arerNumber) { 
 | 
        this.arerNumber = arerNumber; 
 | 
    } 
 | 
  
 | 
    public void setDeviceNumberl(int deviceNumberl) { 
 | 
        this.deviceNumberl = deviceNumberl; 
 | 
    } 
 | 
  
 | 
    public void setRechargeTimes(short rechargeTimes) { 
 | 
        this.rechargeTimes = rechargeTimes; 
 | 
    } 
 | 
  
 | 
    public void setTotalWater(int totalWater) { 
 | 
        this.totalWater = totalWater; 
 | 
    } 
 | 
  
 | 
    public void setTotalElectric(int totalElectric) { 
 | 
        this.totalElectric = totalElectric; 
 | 
    } 
 | 
    public byte[] getZeroBytes() { 
 | 
        ManagerToUserCard.Zero zero = new ManagerToUserCard.Zero(); 
 | 
        return zero.toByte(); 
 | 
    } 
 | 
} 
 |