参考地址:https://so.csdn.net/so/search?q=%E7%A4%BE%E4%BF%9D%E5%8D%A1&t=blog&u=weixin_30485799

引用的SDK方法

        [DllImport("dcrf32.dll")]public static extern short dc_beep(int icdev, ushort _Msec);//设备蜂鸣[DllImport("dcrf32.dll")]public static extern short dc_setcpu(int icdev, [In]byte _Byte); //设置当前接触式卡座[DllImport("dcrf32.dll")]public static extern short dc_cpureset(int icdev, ref byte rlen, [Out]byte[] databuffer);//接触式CPU卡复位[DllImport("dcrf32.dll")]public static extern short hex_a([In] byte[] hex, [Out] byte[] a, short length);//普通数据转换16进制字符串(短转长)[DllImport("dcrf32.dll")]public static extern short dc_cpuapduInt(int icdev, uint slen, [In]byte[] sendbuffer, ref uint rlen, [Out]byte[] databuffer);//指令交互     

社保卡信息类

 public class MedicareCard{  /// <summary>/// 发卡地区行政区划代码(卡识别码前6位)/// </summary>public string IssuingAreaCode { get; set; }/// <summary>/// 社会保障号码(身份证号码)/// </summary>public string SocialNo{ get; set; }/// <summary>/// 卡号/// </summary>public string HealthCareCardNo{ get; set; }/// <summary>/// 卡识别码/// </summary>public string IdentificationCode{ get; set; }/// <summary>/// 姓名/// </summary>public string Name{ get; set; }/// <summary>/// 出生地/// </summary>public string Address{ get; set; }/// <summary>/// 性别/// </summary>public string Sex{ get; set; }/// <summary>/// 民族/// </summary>public string Nation{ get; set; }/// <summary>/// 出生日期/// </summary>public string Birthdate{ get; set; }/// <summary>/// 社保卡余额/// </summary>public string Balance{ get; set; }/// <summary>/// 卡复位信息(仅取历史字节)/// </summary>public string CardResetInformation{ get; set; }/// <summary>/// 规范版本/// </summary>public string CanonicalVersion{ get; set; }/// <summary>/// 发卡日期/// </summary>public string StartDate{ get; set; }/// <summary>/// 卡有效期/// </summary>public string EndDate{ get; set; }/// <summary>/// 终端机编号/// </summary>public string TerminalNO{ get; set; }/// <summary>/// 终端设备号/// </summary>public string TerminalEquipmentNo{ get; set; }}

调用代码

 public MedicareCard IC_ReadMedicare(){MedicareCard CraeCard = new MedicareCard();string str;int st;dc_beep(Handle, 10);//射频复位dc_setcpu(Handle, (byte)ContactClamp.NO1); //设置接触式卡座byte rcardlen = 0;uint rlen = 0;byte[] databuffer = new byte[100];byte[] databufferhex = new byte[100];dc_cpureset(Handle, ref rcardlen, databuffer);//接触式CPU卡复位hex_a(databuffer, databufferhex, (short)rlen);/*选择应用环境  00 A4 04 00 0F 73 78 31 2E 73 68 2E C9 E7 BB E1 B1 A3 D5 CF 00选择EF05文件    00 A4 02 00 02 EF 05 00    选择EF06文件  00A4020002EF0600读卡号    00 B2 07 00 0B 读取社会保障卡号码 00 B2 08 00 14读姓名  00 B2 09 00 20读性别   00 B2 0A 00 03读民族   00 B2 0B 00 03读出生日期 00 B2 0D 00 06*/byte[] sendbuffer = new byte[22];sendbuffer[0] = 0x00;sendbuffer[1] = 0xA4;sendbuffer[2] = 0x04;sendbuffer[3] = 0x00;sendbuffer[4] = 0x0F;sendbuffer[5] = 0x73;sendbuffer[6] = 0x78;sendbuffer[7] = 0x31;sendbuffer[8] = 0x2E;sendbuffer[9] = 0x073;sendbuffer[10] = 0x68;sendbuffer[11] = 0x2E;sendbuffer[12] = 0xC9;sendbuffer[13] = 0xE7;sendbuffer[14] = 0xBB;sendbuffer[15] = 0xE1;sendbuffer[16] = 0xB1;sendbuffer[17] = 0xA3;sendbuffer[18] = 0xD5;sendbuffer[19] = 0xCF;sendbuffer[20] = 0x00;st = dc_cpuapduInt(Handle, 21, sendbuffer, ref rlen, databuffer);//  选择应用环境  00 A4 04 00 0F 73 78 31 2E 73 68 2E C9 E7 BB E1 B1 A3 D5 CF 00byte[] sendbuffer1 = new byte[9];sendbuffer1[0] = 0x00;sendbuffer1[1] = 0xA4;sendbuffer1[2] = 0x02;sendbuffer1[3] = 0x00;sendbuffer1[4] = 0x02;sendbuffer1[5] = 0xEF;sendbuffer1[6] = 0x05;sendbuffer1[7] = 0x00;st = dc_cpuapduInt(Handle, 8, sendbuffer1, ref rlen, databuffer);//  选择EF05文件    00 A4 02 00 02 EF 05 00 byte[] sendbuffer2 = new byte[6];sendbuffer2[0] = 0x00;sendbuffer2[1] = 0xB2;sendbuffer2[2] = 0x07;sendbuffer2[3] = 0x00;sendbuffer2[4] = 0x0B;st = dc_cpuapduInt(Handle, 5, sendbuffer2, ref rlen, databuffer);//读社保卡号if (st != 0){return null;}else{hex_a(databuffer, databufferhex, (short)rlen);str = Encoding.Default.GetString(databufferhex);string DealDate = str.Substring(4, 18);string tempbuffer = Encoding.Default.GetString(Common.Hex2ByteArr(DealDate));CraeCard.HealthCareCardNo = tempbuffer;}byte[] sendbuffer1_2 = new byte[6];sendbuffer1_2[0] = 0x00;sendbuffer1_2[1] = 0xB2;sendbuffer1_2[2] = 0x05;sendbuffer1_2[3] = 0x00;sendbuffer1_2[4] = 0x06;st = dc_cpuapduInt(Handle, 5, sendbuffer1_2, ref rlen, databuffer);  //发卡日期if (st != 0){return null;}else{hex_a(databuffer, databufferhex, (short)rlen);str = Encoding.Default.GetString(databufferhex);string DealDate = str.Substring(4, 8);CraeCard.StartDate = DealDate;}byte[] sendbuffer1_3 = new byte[6];sendbuffer1_3[0] = 0x00;sendbuffer1_3[1] = 0xB2;sendbuffer1_3[2] = 0x06;sendbuffer1_3[3] = 0x00;sendbuffer1_3[4] = 0x06;st = dc_cpuapduInt(Handle, 5, sendbuffer1_3, ref rlen, databuffer);  //卡有效期if (st != 0){return null;}else{hex_a(databuffer, databufferhex, (short)rlen);str = Encoding.Default.GetString(databufferhex);string DealDate = str.Substring(4, 8);CraeCard.EndDate = DealDate;}byte[] sendbuffer1_4 = new byte[6];sendbuffer1_4[0] = 0x00;sendbuffer1_4[1] = 0xB2;sendbuffer1_4[2] = 0x01;sendbuffer1_4[3] = 0x00;sendbuffer1_4[4] = 0x12;st = dc_cpuapduInt(Handle, 5, sendbuffer1_4, ref rlen, databuffer);  //卡识别码if (st != 0){return null;}else{    hex_a(databuffer, databufferhex, (short)rlen);str = Encoding.Default.GetString(databufferhex);string DealDate = str.Substring(4, 32);CraeCard.IdentificationCode = DealDate;CraeCard.IssuingAreaCode = DealDate.Substring(0, 6);}//byte[] sendbuffer2_1 = new byte[9];sendbuffer2_1[0] = 0x00;sendbuffer2_1[1] = 0xA4;sendbuffer2_1[2] = 0x02;sendbuffer2_1[3] = 0x00;sendbuffer2_1[4] = 0x02;sendbuffer2_1[5] = 0xEF;sendbuffer2_1[6] = 0x06;sendbuffer2_1[7] = 0x00;st = dc_cpuapduInt(Handle, 8, sendbuffer2_1, ref rlen, databuffer);//  选择EF06文件  00A4020002EF0600byte[] sendbuffer3 = new byte[6];sendbuffer3[0] = 0x00;sendbuffer3[1] = 0xB2;sendbuffer3[2] = 0x08;sendbuffer3[3] = 0x00;sendbuffer3[4] = 0x14;st = dc_cpuapduInt(Handle, 5, sendbuffer3, ref rlen, databuffer);//读社会保障卡号码00 B2 08 00 14   if (st != 0){return null;}else{hex_a(databuffer, databufferhex, (short)rlen);str = Encoding.Default.GetString(databufferhex);string DealDate = str.Substring(4, 36);string tempbuffer = Encoding.Default.GetString(Common.Hex2ByteArr(DealDate));CraeCard.SocialNo = tempbuffer;}byte[] sendbuffer4 = new byte[6];sendbuffer4[0] = 0x00;sendbuffer4[1] = 0xB2;sendbuffer4[2] = 0x09;sendbuffer4[3] = 0x00;sendbuffer4[4] = 0x20;st = dc_cpuapduInt(Handle, 5, sendbuffer4, ref rlen, databuffer);//姓名00 B2 09 00 20   //091ED3DAD1F3D1F30000000000000000000000000000000000000000000000009000if (st != 0){return null;}else{hex_a(databuffer, databufferhex, (short)rlen);str = Encoding.Default.GetString(databufferhex);string DealDate = str.Substring(4, 12);string tempbuffer = Encoding.Default.GetString(Common.Hex2ByteArr(DealDate));CraeCard.Name = tempbuffer.TrimEnd('\0');//去除\0 避免序列化出错}//byte[] sendbuffer5 = new byte[6];sendbuffer5[0] = 0x00;sendbuffer5[1] = 0xB2;sendbuffer5[2] = 0x0A;sendbuffer5[3] = 0x00;sendbuffer5[4] = 0x03;st = dc_cpuapduInt(Handle, 5, sendbuffer5, ref rlen, databuffer);//性别00 B2 0A 00 03if (st != 0){return null;}else{hex_a(databuffer, databufferhex, (short)rlen);str = Encoding.Default.GetString(databufferhex);//0A01329000string DealDate = str.Substring(4, 2);string tempbuffer = Encoding.Default.GetString(Common.Hex2ByteArr(DealDate)) == "1" ? "男" : "女";CraeCard.Sex = tempbuffer;}byte[] sendbuffer6 = new byte[6];sendbuffer6[0] = 0x00;sendbuffer6[1] = 0xB2;sendbuffer6[2] = 0x0B;sendbuffer6[3] = 0x00;sendbuffer6[4] = 0x03;st = dc_cpuapduInt(Handle, 5, sendbuffer6, ref rlen, databuffer);//民族00 B2 0B 00 03if (st != 0){return null;}else{hex_a(databuffer, databufferhex, (short)rlen);str = Encoding.Default.GetString(databufferhex);string DealDate = Common.getNational(str.Substring(4, 2));CraeCard.Nation = DealDate;}byte[] sendbuffer7 = new byte[6];sendbuffer7[0] = 0x00;sendbuffer7[1] = 0xB2;sendbuffer7[2] = 0x0D;sendbuffer7[3] = 0x00;sendbuffer7[4] = 0x06;st = dc_cpuapduInt(Handle, 5, sendbuffer7, ref rlen, databuffer);//出生日期00 B2 0D 00 06if (st != 0){return null;}else{hex_a(databuffer, databufferhex, (short)rlen);str = Encoding.Default.GetString(databufferhex);string DealDate = str.Substring(4, 8);CraeCard.Birthdate = DealDate;}           return CraeCard;}      

C#使用德卡T10读取社报告卡基本信息相关推荐

  1. SD卡数据读取Altium Designer下载

    目录 一.SD卡数据读取 1.SD卡简介 2.代码实现 1.所用软件及硬件 2.SD卡实物连线 3.运行 二.Altium Designer下载及原理图绘制 1.Altium Designer软件安装 ...

  2. 德卡T10读卡器 读取身份证号码和身份证UID

    这个简单的测试项目,界面上有个timer控件,设计的是3秒执行一下读取身份证的动作,目前想到的是这种循环方式,德卡T10这个机子,身份证放上去,不会自动去执行读取的操作. 1.界面 2.界面的代码 F ...

  3. 使用C#调用德卡 T10读卡器获取医保卡信息

    文章目录 前言 一.引用部分 1.引入 2.C#方法 前言 C#调用德卡 T10读卡器获取医保卡信息 一.引用部分 1.引入 代码如下 需要一个dll(DC_Reader.dll),一个ini文件(D ...

  4. 浏览器集成德卡T10读卡器

    本文章介绍浏IE,火狐览器通过npapi技术集成德卡T10读卡器的过程 一.下载德卡T0 sdk 可以在我上传的资源里下载,里面已经写好了浏览器读卡身份证基本信息的demo 下载地址 https:// ...

  5. [原创][连载].基于SOPC的简易数码相框 - Nios II SBTE部分(软件部分) - 从SD卡内读取图片文件,然后显示在TFT-LCD上...

    实在很抱歉,时间紧张,我只讲怎样从SD卡内读取bin文件(二进制文件),然后现在TFT-LCD上. 准备工具 1. Image2Lcd.zip 操作步骤 步骤1 寻找或制作240x320的图片 简单起 ...

  6. ZYNQ-使用HDMI显示器进行SD卡图片读取显示

    学习内容 本文使用带有HDMI接口的显示器,构建图像视频显示的测试工程,利用VDMA进行传输图像视频数据,通过文件系统将SD卡中的照片读取出来然后在显示器显示. 开发环境 vivado 18.3&am ...

  7. STM32系列(HAL库)——F103C8T6通过MFRC522、RFID射频卡、门禁卡模块读取卡片ID(二)

    本文继上一篇:STM32系列(HAL库)--F103C8T6通过MFRC522.RFID射频卡.门禁卡模块读取卡片ID 本文介绍在运用RC522模块时,运用链表结构存储数据的操作 Let's go! ...

  8. STM32系列(HAL库)——F103C8T6通过MFRC522、RFID射频卡、门禁卡模块读取卡片ID

    1.软件准备 (1)编程平台:Keil5 (2)CubeMX (3)XCOM(串口调试助手) 2.硬件准备 (1)MFRC-522模块 (2)F1的板子,本例使用经典F103C8T6 (3)ST-li ...

  9. ESP8266 对接RFID RC522 设备读取门禁卡

    文章目录 前言 一.所需材料 二.电路接线图和实物图 三 RC522 基础知识普及 四. RFID库安装 五. Arduino代码解析 六. 解析过程实物展示 七.总结 前言 在本篇文章中,您将 使用 ...

最新文章

  1. Leetcode 391.完美矩形
  2. js 排列 组合 的一个简单例子
  3. 2021年春季学期-信号与系统-第十三次作业参考答案-第二小题
  4. 都说AIOps是必然趋势,那实践AIOps之前需要做些什么准备?\n
  5. 爬虫+python3(网页图片)
  6. 移动通信例题整理_第3章_无线信号的衰落
  7. 【转】String.format详解
  8. 会员体系架构的设计思路
  9. Java备份Oracle数据库
  10. 自由读写配置文件的艺术[java c++ node](二)
  11. 【汇编语言与计算机系统结构笔记07】条件码,比较、测试、条件跳转与条件转移指令,结合微体系结构与流水的说明
  12. 大学四年规划英语计算机专业课,大学四年考证规划你get了吗?
  13. spring之初识IocAop
  14. 基于jquery,bootstrap数据验证插件bootstrapValidator 教程
  15. 如何把滑动条变好看一点
  16. Java基础教程2022
  17. SQL Server 软件环境安装与配置
  18. 小熊派BearPi-IoT(GD)之IoT Studio开发环境搭建
  19. Intel NUC10 i7FNH寒霜峡谷购机安装winesxi
  20. [book]《巅峰表现》

热门文章

  1. 美光科技任命高云松担任大中华区政府事务副总裁
  2. Django项目之美多商城遇到的问题记录与解决(一)
  3. html类选择器和id选择器,类和ID选择器的区别
  4. 李开复给中国大学生的第三封信——成功、自信、快乐
  5. git 基本命令总结
  6. springcloud+fastdfs在docker中设置防盗链
  7. 利用jQuery UI为CMS网站实现拖拽布局效果,秒杀table布局
  8. 正则表达式验证包含0的正正整数
  9. UMLChina建模答题赛第二赛季最终排行榜-刘京城、第五元素、龙龙
  10. Verilog -- 改进的Booth乘法(基4)