Files
Emoney-Info---IOS/Emoney Info/Classes/smartCard/TapCashData.swift

179 lines
3.9 KiB
Swift
Executable File

//
// TapCashData.swift
// Emoney Info
//
// Created by Wira Irawan on 26/07/24.
//
import Foundation
class TapCashData {
var purseData: [UInt8]?
var purseStatus: [UInt8]?
var purseBalance: [UInt8]?
var CAN: [UInt8]?
var CSN: [UInt8]?
var purseExpiry: [UInt8]?
var lastCredirTRP: [UInt8]?
var lastCreditHeader: [UInt8]?
var lastTxnTRP: [UInt8]?
var lastTxnRecord: [UInt8]?
var BDC: [UInt8]?
var keySet: [UInt8]?
var maxCardBalance: [UInt8]?
var eData: [UInt8]?
var crcb: [UInt8]?
var lastTransactionSignCert: [UInt8]?
var lastCounterData: [UInt8]?
var version: [UInt8]?
var lastDebitOption: [UInt8]?
var totalRecords: [UInt8]?
func getPurseData() -> [UInt8]? {
return purseData
}
func setPurseData(_ purseData: [UInt8]) {
self.purseData = purseData
unpackPurseData(data: purseData)
}
func getPurseStatus() -> [UInt8]? {
return purseStatus
}
func setPurseStatus(_ purseStatus: [UInt8]) {
self.purseStatus = purseStatus
}
func getPurseBalance() -> [UInt8]? {
return purseBalance
}
func setPurseBalance(_ purseBalance: [UInt8]) {
self.purseBalance = purseBalance
}
func getCAN() -> [UInt8]? {
return CAN
}
func setCAN(_ CAN: [UInt8]) {
self.CAN = CAN
}
func getCSN() -> [UInt8]? {
return CSN
}
func setCSN(_ CSN: [UInt8]) {
self.CSN = CSN
}
func getPurseExpiry() -> [UInt8]? {
return purseExpiry
}
func setPurseExpiry(_ purseExpiry: [UInt8]) {
self.purseExpiry = purseExpiry
}
func getLastCredirTRP() -> [UInt8]? {
return lastCredirTRP
}
func setLastCredirTRP(_ lastCredirTRP: [UInt8]) {
self.lastCredirTRP = lastCredirTRP
}
func getLastCreditHeader() -> [UInt8]? {
return lastCreditHeader
}
func setLastCreditHeader(_ lastCreditHeader: [UInt8]) {
self.lastCreditHeader = lastCreditHeader
}
func getLastTxnTRP() -> [UInt8]? {
return lastTxnTRP
}
func setLastTxnTRP(_ lastTxnTRP: [UInt8]) {
self.lastTxnTRP = lastTxnTRP
}
func getLastTxnRecord() -> [UInt8]? {
return lastTxnRecord
}
func setLastTxnRecord(_ lastTxnRecord: [UInt8]) {
self.lastTxnRecord = lastTxnRecord
}
func getBDC() -> [UInt8]? {
return BDC
}
func setBDC(_ BDC: [UInt8]) {
self.BDC = BDC
}
func getKeySet() -> [UInt8]? {
return keySet
}
func setKeySet(_ keySet: [UInt8]) {
self.keySet = keySet
}
func getMaxCardBalance() -> [UInt8]? {
return maxCardBalance
}
func setMaxCardBalance(_ maxCardBalance: [UInt8]) {
self.maxCardBalance = maxCardBalance
}
func geteData() -> [UInt8]? {
return eData
}
func seteData(_ eData: [UInt8]) {
self.eData = eData
}
func getCrcb() -> [UInt8]? {
return crcb
}
func setCrcb(_ crcb: [UInt8]) {
self.crcb = crcb
}
func getTotalRecords() -> [UInt8]? {
return totalRecords
}
private func unpackPurseData(data: [UInt8]) {
guard data.count >= 95 else {
debugLog("TapCash purse data too short: \(data.count)")
return
}
version = Array(data[0..<1])
purseStatus = Array(data[1..<2])
purseBalance = Array(data[2..<5])
CAN = Array(data[8..<16])
CSN = Array(data[16..<24])
purseExpiry = Array(data[24..<26])
lastCredirTRP = Array(data[28..<32])
lastCreditHeader = Array(data[32..<40])
totalRecords = Array(data[40..<41])
lastTxnTRP = Array(data[42..<46])
lastTxnRecord = Array(data[46..<62])
BDC = Array(data[63..<64])
keySet = Array(data[71..<72])
maxCardBalance = Array(data[78..<81])
lastDebitOption = Array(data[94..<95])
}
}