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}