左晓为主开发手持机充值管理机
zuoxiao
2025-04-08 99b11059aedf616df4ed3b74300fa59417568bc3
generallibrary/src/main/java/com/dayu/general/bean/card/BaseCard.kt
@@ -1,13 +1,22 @@
package com.dayu.general.bean.card
import com.dayu.baselibrary.dao.AppDatabase
import com.dayu.baselibrary.tools.HexUtil
import com.dayu.baselibrary.tools.BaseCard
import com.dayu.general.bean.db.CardData
import com.dayu.general.dao.AppDataBase
import com.dayu.general.tool.CardCommon
import com.tencent.bugly.crashreport.CrashReport
open class BaseCard {
open class BaseCard : BaseCard() {
    var cardData: String? = null //标识码
    companion object {
        const val IDENTIFY_CODE_A0 = 0xA0.toByte()  // 识别码A0
        const val IDENTIFY_CODE_B1 = 0xB1.toByte()  // 识别码B1
        const val IDENTIFY_CODE_C2 = 0xC2.toByte()  // 识别码C2
        const val IDENTIFY_CODE_89 = 0x89.toByte()  // 识别码89
    }
    fun setCardData(baseDao: AppDataBase, cardType: String?) {
        try {
@@ -24,25 +33,25 @@
    }
    /**
     * 前15个字节算术累加和 不含进位
     *
     * @param data 源数据
     * @return 16进制
     */
    fun getByteSum(data: ByteArray?): Byte {
        if (data != null) {
            var sum = 0
            for (b in data) {
                sum += b.toInt() and 0xFF // & 0xFF 可以将字节扩展为正整数,避免符号位的影响
            }
            var hex = HexUtil.get10to16CompleteHex(sum)
            hex = HexUtil.spaceHex(hex)
            val hexArr = hex.split(" ".toRegex()).dropLastWhile { it.isEmpty() }
                .toTypedArray()
            return HexUtil.hexToByte(hexArr[hexArr.size - 1])
        }
        return 0
    }
//    /**
//     * 前15个字节算术累加和 不含进位
//     *
//     * @param data 源数据
//     * @return 16进制
//     */
//    fun getByteSum(data: ByteArray?): Byte {
//        if (data != null) {
//            var sum = 0
//            for (b in data) {
//                sum += b.toInt() and 0xFF // & 0xFF 可以将字节扩展为正整数,避免符号位的影响
//            }
//            var hex = HexUtil.get10to16CompleteHex(sum)
//            hex = HexUtil.spaceHex(hex)
//            val hexArr = hex.split(" ".toRegex()).dropLastWhile { it.isEmpty() }
//                .toTypedArray()
//            return HexUtil.hexToByte(hexArr[hexArr.size - 1])
//        }
//        return 0
//    }
}