001/*
002 * ===========================================================================================
003 * = COPYRIGHT
004 *          PAX Computer Technology (Shenzhen) Co., Ltd. PROPRIETARY INFORMATION
005 *   This software is supplied under the terms of a license agreement or nondisclosure
006 *   agreement with PAX Computer Technology (Shenzhen) Co., Ltd. and may not be copied or
007 *   disclosed except in accordance with the terms in that agreement.
008 *     Copyright (C) 2017-2023 PAX Computer Technology (Shenzhen) Co., Ltd. All rights reserved.
009 * Description: // Detail description about the function of this module,
010 *             // interfaces with the other modules, and dependencies.
011 * Revision History:
012 * Date                         Author                        Action
013 * 2017/04/01                   PAX                     Create/Add/Modify/Delete
014 * ===========================================================================================
015 */
016
017package com.pax.dal.exceptions;
018
019import com.pax.dal.utils.Utils;
020
021/**
022 * <div class="zh">TypeA异常枚举类。</div>
023 * <div class="en">Type exception enum.</div>
024 */
025public enum ETypeAException {
026    RECEIVE_CMD_ERROR(-1, "接收应答命令字错误", "receive cmd error"),
027    RECEIVE_LEN_ERROR(-2, "接收数据长度错误", "receive length error"),
028    RECEIVE_DATA_ERROR(-3, "接收响应数据错误", "receive response data error"),
029    RECEIVE_LRC_ERROR(-4, "接收校验值错误", "receive check value error"),
030    CMD_NOT_EQUAL_ERROR(-5, "应答命令字和请求命令字不一致错误", "cmd not equal error"),
031    LRC_NOT_EQUAL_ERROR(-6, "数据校验值不一致错误", "check value not equal error"),
032    INS_NOT_EQUAL_ERROR(-7, "扩展指令码不一致错误", "extend cmd not equal error"),
033    TYPEA_CONNECT_ERROR(-8, "连接错误", "connect error"),
034    TYPEA_DISCONNECT_ERROR(-9, "断开连接错误", "disconnect equal error"),
035    TYPEA_CANCEL_RECV_ERROR(-10, "取消接收错误", "cancel receive error"),
036    TYPEA_RECV_ERROR(-11, "接收数据包错误", "receive error"),
037    TYPEA_INCOMPLETE_DATA_ERROR(-12,"数据不完整异常", "incomplete data error"),
038    SUB_CMD_NOT_EQUAL_ERROR(-13, "子命令不一致错误", "sub cmd not equal error"),
039    PACKET_LENGTH_ERROR(1, "数据包长度错误", "packet length error"),
040    KEY_INDEX_ERROR(2, "密钥索引错误", "key index error"),
041    MODE_ERROR(3, "Mode错误","mode error"),
042    COORDINATE_VALUE_ERROR(4, "显示坐标值错误", "coordinate value error"),
043    INPUT_LENGTH_ERROR(5, "允许输入长度错误", "input length error"),
044    CANCEL_INPUT(6, "用户取消输入", "cancel input"),
045    INPUT_TIMEOUT_ERROR(7, "输入超时错误", "input timeout error"),
046    CANCEL_DUKPT_INPUT(8, "取消输入(PINPAD 上按 CANCEL 键)", "Cancel input (press CANCEL on PINPAD)"),
047    PIN_NOT_EQUAL_ERROR(9, "两次输入的密码不一致错误", "pin not equal error"),
048    ENTERED_EMPTY_ERROR(10, "输入了空串(仅按 ENTER 键)", "Empty string entered (press ENTER key only)"),
049    KEY_NOT_EXIST_ERROR(11, "指定的密钥不存在", "key not exist error"),
050    MEMORY_ERROR(12, "内存错误", "memory error"),
051    SEND_LRC_ERROR(13, "发送校验值错误", "send lrc error"),
052    TMK_ERROR(14, "TMK错误", "tmk error"),
053    MAC2_NOT_EQUAL_ERROR(15, "MAC2不相等错误", "mac2 not equal error"),
054    SEQUENCE_NO_OR_LINE_NO_ERROR(16,"开始序号或结束序号或行数错误", "The starting sequence number or ending sequence " +
055            "number or the number of rows is wrong"),
056    SHORT_INTERVAL_ERROR(26,     "连续两次输入的间隔时间未达到指定时长", "short interval error"),
057    INVALID_KEY_ERROR(80, "指定的密钥无效", "invalid key error"),
058    KSN_OVERFLOW_ERROR(81, "KSN溢出错误", "ksn overflow error"),
059    NO_DUKPT_KEY_SPACE_ERROR(82, "无空闲的 DUKPT 密钥存储空间", "no dukpt key space error"),
060    INVALID_APP_NO_ERROR(83, "无效的应用标志号", "invalid app no error"),
061    KEY_CHECK_VALUE_NOT_EXIST_ERROR(86, "指定密钥的校验字不存在", "key check value not exist error"),
062    BDK_LENGTH_ERROR(87, "无效的密钥(BDK)长度", "bdk length error"),
063    KSN_LENGTH_ERROR(88, "无效的密钥序号(KSN)长度", "ksn length error"),
064    KEY_CHECK_VALUE_NOT_EQUAL_ERROR(89, "指定密钥的校验字不符", "key check value not equal error"),
065    KEY_TO_BE_CLEARED_NOT_EXIST_ERROR(95, "欲清除的密钥已不存在" , "key to be cleared not exist error"),
066    PINPAD_CANCEL_ERROR(198, "PINPAD端取消", "pinpad cancel error"),
067    PINPAD_LOCKED_ERROR(206, "PINPAD被锁", "pinpad locked error"),
068    UNLOCK_ERRO(207, "解锁失败", "unlock error"),
069    INVALID_CMD_ERROR(238, "无效的命令请求字", "invalid cmd error"),
070    TXK_ACCESS_ERROR(209, "TXK 存取失败", "TXK access error"),
071    WORKING_KEY_LENGTH_ERROR(210, "工作密钥长度错" , "working key length error"),
072    CIPHER_FLAG_ERROR(211,"扩展 MAC CihperFlag 错误或者 INPUTMODE 错误" , "cipherflag or inputmode error"),
073    CLEAR_BUTTON_ERROR(212, "按clear键取消", "clear button error"),
074    OTHER_ERROR(255, "其他错误", "other error")
075    ;
076    private final int errCodeFromBasement;
077    private final String errMsgCn;
078    private final String errMsgEn;
079
080    ETypeAException(int errCodeFromBasement, String errMsgCn, String errMsgEn) {
081        this.errCodeFromBasement = errCodeFromBasement;
082        this.errMsgEn = errMsgEn;
083        this.errMsgCn = errMsgCn;
084    }
085
086    public int getErrCodeFromBasement() {
087        return errCodeFromBasement;
088    }
089
090    public String getErrMsg() {
091        if (Utils.isZh()) {
092            return errMsgCn;
093        } else {
094            return errMsgEn;
095        }
096
097    }
098}