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.memorycard; 018 019import com.pax.dal.exceptions.AT88SC102DevException; 020 021public interface ICardAT88SC102 extends IMemoryCard { 022 /** 023 * <div class="zh"> AT88SC102模块上电 </div> <div class="en"> Power the AT88SC102 module on. </div> 024 * 025 * @throws AT88SC102DevException 026 */ 027 public void powerOn() throws AT88SC102DevException; 028 029 /** 030 * <div class="zh"> AT88SC102模块地址计数器复位 </div> <div class="en"> Reset the AT88SC102 module address counter. </div> 031 * 032 * @throws AT88SC102DevException 033 */ 034 public void reset() throws AT88SC102DevException; 035 036 /** 037 * <div class="zh"> AT88SC102模块下电 </div> <div class="en"> Power the AT88SC102 module off. </div> 038 * 039 * @throws AT88SC102DevException 040 */ 041 public void powerOff() throws AT88SC102DevException; 042 043 /** 044 * <div class="zh"> 读取指定地址n字节的数据。 </div> <div class="en"> Read the specified address n bytes of data. </div> 045 * 046 * @param addr 047 * <div class="zh"> 读取起始位置 </div> <div class="en"> address where read starting at </div> 048 * @param num 049 * <div class="zh"> 读取多少字节数据 </div> <div class="en"> number of bytes data to read </div> 050 * @return 051 * @throws AT88SC102DevException 052 */ 053 public byte[] readString(int addr, int num) throws AT88SC102DevException; 054 055 /** 056 * <div class="zh"> 验证密码 </div> <div class="en"> Verify password. </div> 057 * 058 * @param psw 059 * <div class="zh"> 密码,2字节 </div> <div class="en"> password, 2 bytes </div> 060 * @throws AT88SC102DevException 061 */ 062 public void verifySC(byte[] psw) throws AT88SC102DevException; 063 064 /** 065 * <div class="zh"> 更新密码 </div> <div class="en"> Update password. </div> 066 * 067 * @param psw 068 * <div class="zh"> 新密码,2字节 </div> <div class="en"> new password, 2 bytes </div> 069 * @throws AT88SC102DevException 070 */ 071 public void updateSC(byte[] psw) throws AT88SC102DevException; 072 073 /** 074 * <div class="zh"> 判断卡当前安全级别并更新发行者代码区。 </div> <div class="en"> Judge the card current security level and update the 075 * code zone of issuers. </div> 076 * 077 * @param pBuf 078 * <div class="zh"> 发行代码区,8字节 </div> <div class="en"> issuers code zone, 8 bytes </div> 079 * @throws AT88SC102DevException 080 */ 081 public void writeIZ(byte[] pBuf) throws AT88SC102DevException; 082 083 /** 084 * <div class="zh"> 判断卡当前的安全级别并更新用户的代码区。 </div> <div class="en"> Judge the card current security level and update 085 * the code zone of users. </div> 086 * 087 * @param pBuf 088 * <div class="zh"> 用户的代码区,8字节 </div> <div class="en"> users code zone, 8 bytes </div> 089 * @throws AT88SC102DevException 090 */ 091 public void writeCPZ(byte[] pBuf) throws AT88SC102DevException; 092 093 /** 094 * <div class="zh"> 判断卡当前安全级别并更新应用程序1区的擦除密码。 </div> <div class="en"> Judge the card current security level and 095 * update the erasing password of application 1 zone. </div> 096 * 097 * @param pBuf 098 * <div class="zh"> 用户代码区,6字节 </div> <div class="en"> users code zone, 6 bytes </div> 099 * @throws AT88SC102DevException 100 */ 101 public void writeEZ1(byte[] pBuf) throws AT88SC102DevException; 102 103 /** 104 * <div class="zh"> 判断卡当前安全级别并更新应用程序2区的擦除密码。 </div> <div class="en"> Judge the card current security level and 105 * update the erasing password of application 2 zone. </div> 106 * 107 * @param pBuf 108 * <div class="zh"> 用户代码区,4字节 </div> <div class="en"> users code zone, 4 bytes </div> 109 * @throws AT88SC102DevException 110 */ 111 public void writeEZ2(byte[] pBuf) throws AT88SC102DevException; 112 113 /** 114 * <div class="zh"> 判断卡当前安全级别并更新应用程序2区的擦除计数器。 </div> <div class="en"> Judge the card current security level and 115 * update the erasing counter of application 2 zone. </div> 116 * 117 * @param pBuf 118 * <div class="zh"> 用户代码区,16字节 </div> <div class="en"> users code zone, 16 bytes </div> 119 * @throws AT88SC102DevException 120 */ 121 public void writeEC2(byte[] pBuf) throws AT88SC102DevException; 122 123 /** 124 * <div class="zh"> 写测试区 </div> <div class="en"> Write the test zone. </div> 125 * 126 * @param pBuf 127 * <div class="zh"> 数据字节数,2字节 </div> <div class="en"> number bytes of data, 2 bytes </div> 128 * @throws AT88SC102DevException 129 */ 130 public void writeMTZ(byte[] pBuf) throws AT88SC102DevException; 131 132 /** 133 * <div class="zh"> 仅使用安全级别1,擦除或写整个存储区(包括FZ,MTZ,MFZ)。 </div> <div class="en"> Only use in security level 1, to erase 134 * or write the whole storage zone(including FZ,MTZ,MFZ). </div> 135 * 136 * @param erOrWr 137 * <div class="zh"> 138 * <ul> 139 * <li>0 - 写</li> 140 * <li>1 - 擦除</li> 141 * </ul> 142 * </div> <div class="en"> 143 * <ul> 144 * <li>0 - write</li> 145 * <li>1 - erase</li> 146 * </ul> 147 * </div> 148 * @throws AT88SC102DevException 149 */ 150 public void blockErWrite(int erOrWr) throws AT88SC102DevException; 151 152 /** 153 * <div class="zh"> 烧写三种熔断器。 </div> <div class="en"> Burn and write the three type of fuse. </div> 154 * 155 * @param fuseType 156 * <div class="zh"> 157 * <ul> 158 * <li>0 - 厂家熔断器</li> 159 * <li>1 - EC2使能熔断器</li> 160 * <li>2 - 发行熔断器</li> 161 * </ul> 162 * </div> <div class="en"> 163 * <ul> 164 * <li>0 - Manufacturers fuse</li> 165 * <li>1 - EC2 enable fuse</li> 166 * <li>2 - Issuers fuse</li> 167 * </ul> 168 * </div> 169 * @throws AT88SC102DevException 170 */ 171 public void fusePGM(int fuseType) throws AT88SC102DevException; 172 173 /** 174 * <div class="zh"> 在安全级别1中擦除和写入应用程序区。 </div> <div class="en"> Erase and write in application zone in security level 175 * 1. </div> 176 * 177 * @param az 178 * <div class="zh"> 0 - 应用第一区 1 - 应用第二区 </div> <div class="en"> 0 - application 1st zone 1 - application 179 * 2nd zone </div> 180 * @param offset 181 * <div class="zh"> 按字节偏移地址 </div> <div class="en"> offset address by byte </div> 182 * @param pBuf 183 * <div class="zh"> 数据字节数 </div> <div class="en"> number bytes of data </div> 184 * @throws AT88SC102DevException 185 */ 186 public void writeAZSL1(int az, int offset, byte[] pBuf) throws AT88SC102DevException; 187 188 /** 189 * <div class="zh"> 擦除应用程序区。 </div> <div class="en"> Erase the application zone. </div> 190 * 191 * @param az 192 * <div class="zh"> 0 - 应用第一区 1 - 应用第二区 </div> <div class="en"> 0 - application 1st zone 1 - application 193 * 2nd zone </div> 194 * @param pEZ 195 * <div class="zh"> 密码,6字节在应用程序第一区,和4字节的应用程序第二区。 </div> <div class="en"> password, 6 bytes in application 196 * 1st zone, and 4 bytes in application 2nd zone. </div> 197 * @throws AT88SC102DevException 198 */ 199 public void eraseAZSL2(int az, byte[] pEZ) throws AT88SC102DevException; 200 201 /** 202 * <div class="zh"> 在安全级别2中写入应用程序区。 </div> <div class="en"> Write in application zone in security level 2. </div> 203 * 204 * @param az 205 * <div class="zh"> 0 - 应用第一区 1 - 应用第二区 </div> <div class="en"> 0 - application 1st zone 1 - application 206 * 2nd zone </div> 207 * @param offset 208 * <div class="zh"> 按字节偏移地址 </div> <div class="en"> offset address by byte </div> 209 * @param pBuf 210 * <div class="zh"> 数据字节数 </div> <div class="en"> number bytes of data </div> 211 * @throws AT88SC102DevException 212 */ 213 public void writeAZSL2(int az, int offset, byte[] pBuf) throws AT88SC102DevException; 214 215}