package com.mortals.xhx.module.idCard.service;

import com.sun.jna.Library;
import com.sun.jna.Structure;

/**
 * 身份证解析
 *
 * @author: zxfei
 * @date: 2023/12/11 13:42
 */
public interface TMZParseSDK extends Library {

    public  static int  success=0x90; //操作成功


    int _SDT_OpenUsbByFD(int fd);//打开设备


    int _SDT_CloseDev();//关闭设备


    int _SDT_GetSAMID(byte[] pucSAMID);

    /**
     * @return 成功等于0x90，失败返回其他
     * @brief 对 SAM_A 复位。
     **/
    int _SDT_ResetSAM();

    /**
     * @return 成功等于0，失败返回其他
     * @brief 寻卡
     * @param[OUT] pucManaInfo: 返回4字节0x00
     **/
    int _SDT_StartFindIDCard(byte[] pucManaInfo);

    /**
     * @return 成功等于0，失败返回其他
     * @brief 选卡
     * @param[OUT] pucManaMsg: 返回8字节0x00
     **/
    int _SDT_SelectIDCard(byte[] pucManaInfo);

    /**
     * @return 成功等于0x90，失败返回其他
     * @brief 读取居民身份证机读文字信息和相片信息
     * @param[OUT] pucCHMsg:    身份证文字信息
     * @param[OUT] puiCHMsgLen: 身份证文字信息长度不少于256字节
     * @param[OUT] pucPHMsg:    身份照片信息
     * @param[OUT] puiPHMsgLen: 身份证照片信息长度不少于1024字节
     **/

    int _SDT_ReadBaseMsg(byte[] pucCHMsg, int puiCHMsgLen, byte[] pucPHMsg, int puiPHMsgLen);

    /**
     * @return 成功等于0x90，失败返回其他
     * @brief 读取居民身份证机读文字信息、相片信息和指纹信息
     * @param[OUT] pucCHMsg:    身份证文字信息
     * @param[OUT] puiCHMsgLen: 身份证文字信息长度不少于256字节
     * @param[OUT] pucPHMsg:    身份照片信息
     * @param[OUT] puiPHMsgLen: 身份证照片信息长度不少于1024字节
     * @param[OUT] pucFPMsg:    身份证指纹信息
     * @param[OUT] puiFPMsgLen: 身份证指纹信息长度不少于1024字节
     **/

    int _SDT_ReadBaseFPMsg(byte[] pucCHMsg, int puiCHMsgLen, byte[] pucPHMsg, int puiPHMsgLen, byte[] pucFPMsg, int puiFPMsgLen);

    /**
     *@brief 解析身份证信息
     **/
    int _SDT_ParseIDCardTextInfo(byte[] pTextInfo, int iTextInfoLen, int iType, byte[] pWordInfo);


  //  int _SDT_ParseIDCardTextInfo(String pucCHMsg,int puiCHMsgLen,int iType,String pSFZInfo);

    public static class BYTE_ARRAY extends Structure {
        public byte[] byValue;

        public BYTE_ARRAY(int iLen) {
            byValue = new byte[iLen];
        }
    }

}