精伦安全模块-身份证读卡器对接-Qt调用SDK

简介: 精伦安全模块-身份证读卡器对接-Qt调用SDK

精伦身份证读卡器



SDK


使用的是通用二次开发包V3.2的sdk

Dewlt.dll
JpgDll.dll
SavePhoto.dll
sdtapi.dll
sdtapi.h
Sdtapi.lib
二次开发接口说明V3.2.doc


sdk挺简单,库文件和头文件;


开发文档也挺详细,文档里带了一个c语言的例子,在这个例子基础上,稍作修改就可以拿到身份证信息。


qt调用测试读取身份证


库文件添加


在qtcreater中打开项目文件(.pro),然后右键选择“添加库”:


选择外部库:


点击“浏览”添加库文件,我这边是用window平台,就把linux和mac都去掉了。


然后点下一步、完成即可。


添加后的内容如下:

win32: LIBS += -L$$PWD/card/ -lSdtapi

INCLUDEPATH += $$PWD/card
DEPENDPATH += $$PWD/card


编译器


这些dll库一般是用VS的编译的,所以项目需要使用vs的便器:


测试代码

#include <QCoreApplication>
#include "sdtapi.h"
#include <QDebug>
#include <QTextEncoder>
#include <iostream>
#include <stdio.h>

int readCard()
{
    int ret;
    int iPort=1;

    //初始化
    ret=InitComm(iPort);
    if ( ret )
    {
        //认证
        ret= Authenticate ();
        if (ret)
        {
//            ReadBaseMsg接口调用测试;

            char Msg[200];
            ret= ReadBaseMsg ((unsigned char*)Msg, 0 );
            qDebug()<<"readBaseMsg: "<<ret<<", data: "<<QByteArray(Msg, 200).toHex();

            if (ret > 0 ){
            //显示文字及图片信息
                char buf[64] = {0};
                QByteArray data = QByteArray(Msg, 200);
//                QString strUnicode;
//                QByteArray strUtf8;
//                QTextCodec* gbk = QTextCodec::codecForName("gbk"); //读卡器读出来的中文都是国标编码,如果需要UTF-8的编码,这里可以通过一下步骤转换为UTF-8编码
//                QTextCodec *utf8 = QTextCodec::codecForName("UTF-8");

                //姓名
                memcpy(buf, data.left(31).data(), 31);
//                strUnicode = gbk->toUnicode(buf);
//                strUtf8 = utf8->fromUnicode(strUnicode);
                std::cout<<"name: "<<buf<<std::endl;
                std::cout<<"sex : "<<data.mid(31, 3).data()<<std::endl;


            }


            //ReadBaseInfos接口调用测试
            char name[32] = {0};
            char sex[8] = {0};
            char folk[8] = {0};
            char birth[16] = {0};
            char code[32]  = {0};
            char addr[128] = {0};
            char agency[32]= {0};
            char start[16]  = {0};
            char end[16]  = {0};

            ret= ReadBaseInfos (name, sex,folk,birth,code,addr,agency,start,end );
            if (ret > 0 )
            {
                printf("%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n",name, sex,folk,birth,code,addr,agency,start,end);
            }

        }
    }

    ret= CloseComm();
    return ret;


}
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    readCard();

    return a.exec();
}


编译运行


上面是原始数据,下面是ReadBaseInfos接口返回的分段解析好的数据。


代码上传至git:https://gitee.com/fensnote/demo_code/tree/master/qtCode/readCard

目录
相关文章
|
3月前
|
编解码 Linux 开发工具
大牛直播SDK跨平台RTMP直播推送模块技术设计和功能列表
大牛直播SDK是一款跨平台RTMP直播推送模块,支持Windows、Linux(x64_64与aarch64架构)、Android及iOS平台。该SDK功能全面,包括摄像头、屏幕、麦克风等数据采集与推送,并支持编码前后数据对接。其架构设计优秀,确保低延迟与高效率,结合SmartPlayer播放器实现毫秒级延迟体验。具备全自研框架,易于扩展且支持多种数据源接入,如外部YUV/RGB/H.264等格式。此外,各平台支持特性丰富,如Windows平台支持多摄像头合成,Android与iOS平台支持前后摄像头实时切换等。大牛直播SDK还提供了多个示例项目以帮助开发者快速上手。
|
3月前
|
编解码 开发工具 C#
[大牛直播SDK]Windows平台RTMP直播推送模块功能设计
大牛直播SDK采用全自研框架,具备高度可扩展性与自适应算法,显著降低延迟并提高采集编码效率。SDK以模块化设计,支持RTMP推流及多种音视频编码格式(如AAC、SPEEX、H.264、H.265),并能与播放器SDK组合实现丰富功能,包括流媒体转发、内置RTSP服务等。提供了详尽的参数配置选项,支持多摄像头、屏幕采集与水印叠加,并兼容Windows 7及以上操作系统。该SDK以C++/C#双接口形式提供,集成简便,同时包含调试与发布版本库,便于开发者快速上手。此外,支持断网重连、实时预览及多种编码前后的数据对接需求。
|
6月前
|
API 开发工具 计算机视觉
华视 CVR-100UC 身份证读取 Python 二次开发(包含SDK下载地址)
华视 CVR-100UC 身份证读取 Python 二次开发(包含SDK下载地址)
|
6月前
|
安全 Go 开发工具
对象存储OSS产品常见问题之go语言SDK client 和 bucket 并发安全如何解决
对象存储OSS是基于互联网的数据存储服务模式,让用户可以安全、可靠地存储大量非结构化数据,如图片、音频、视频、文档等任意类型文件,并通过简单的基于HTTP/HTTPS协议的RESTful API接口进行访问和管理。本帖梳理了用户在实际使用中可能遇到的各种常见问题,涵盖了基础操作、性能优化、安全设置、费用管理、数据备份与恢复、跨区域同步、API接口调用等多个方面。
130 9
|
11月前
|
供应链 安全 开发工具
供应链安全情报 | 恶意py包伪装代理SDK进行后门攻击,目标锁定python开发者
2023年11月28号,悬镜供应链安全实验室在Pypi官方仓库(https://pypi.org)监测到两起伪装成http和socks5代理SDK的开源组件投毒事件。python开发者一旦下载安装这些投毒Py包(libproxy、libsocks5),会触发执行Py包中的恶意代码,最终将导致开发者系统被投毒者植入恶意后门。
73 0
|
物联网 Linux 开发工具
QT移植腾讯云C-SDK结合实现OTA更新
QT移植腾讯云C-SDK结合实现OTA更新
177 0
|
3月前
|
JavaScript 前端开发 Java
[Android][Framework]系统jar包,sdk的制作及引用
[Android][Framework]系统jar包,sdk的制作及引用
75 0
|
9天前
|
程序员 开发工具 Android开发
Android|使用阿里云推流 SDK 实现双路推流不同画面
本文记录了一种使用没有原生支持多路推流的阿里云推流 Android SDK,实现同时推送两路不同画面的流的方法。
32 7
|
3月前
|
开发工具 Android开发
解决Android运行出现NDK at /Library/Android/sdk/ndk-bundle did not have a source.properties file
解决Android运行出现NDK at /Library/Android/sdk/ndk-bundle did not have a source.properties file
161 4
解决Android运行出现NDK at /Library/Android/sdk/ndk-bundle did not have a source.properties file
|
3月前
|
Dart 开发工具 Android开发
Android Studio导入Flutter项目提示Dart SDK is not configured
Android Studio导入Flutter项目提示Dart SDK is not configured
252 4