资源简介
完成了对明华URF-R330读卡器 M1卡的读写,官方提供的Demo并没有C#版本的,我四处收集资料改写代码写出这个C#版的Demo,希望对您有所帮助.
因为时间问题所以并没有优化代码,不过注释绝对够全的.

代码片段和文件信息
using System;
using System.Text;
using M1Card.Common;
using System.Windows.Forms;
using System.Runtime.InteropServices;
namespace M1Card
{
/*关于M1卡
* M1卡有15个扇区可读写
* 每个扇区的0-2块可读写第3块存放控制位所以不可写
* 每次写一个扇区里的块都要先验证该扇区的密码
* 写入一次为一块
* 不知为何写满一个块时读取的时候末尾会多两三个乱码猜测是把控制位给读出来了时间问题未深究
* 总共有5760位可读写即720字节
*/
public partial class MainWindow : Form
{
#region 变量
///
/// 设备ID
///
private int _icdev = -1;
///
/// 当前IC卡号
///
private int _cardId = 0;
#endregion
public MainWindow()
{
InitializeComponent();
}
#region 设备操作
///
/// 写入指定的字符串到M1卡
///
/// 要写入的字符串
private void Write(string str)
{
try
{
#region 过滤字符串
//如果字符串有非法字符
foreach (var c in str)
{
if (c > 127) throw new ArgumentException(“字符串内含有ASCII已外的字符“);
}
//不可大于720个字符
if (str.Length > 720) throw new ArgumentException(“字符串的长度已超过卡的最大容量720字节“);
#endregion
int result; //设备API函数返回的结果
#region 初始化设备
//连接设备并设置波特率
_icdev = URF.rf_init(0 9600);
if (_icdev < 0) throw new URFException(_icdev);
//寻卡
result = URF.rf_card((Int16)_icdev 1 ref _cardId);
if (result != 0) throw new URFException(result);
//加载密码
result = URF.rf_load_key_hex(_icdev 0 0 “FFFFFFFFFFFF“);
if (result != 0) throw new URFException(result);
#endregion
#region 写入卡内
int writedBlock = 0; //标示变量标识已写入的块数
string[] data; //要写入卡内的字符串数据
var block = str.Length / 16; //字符串所占的块
var mod = str.Length % 16;
if (mod != 0) block++; //如果有字符占不满一个块就多加一个
var sector = block / 3; //字符串所占的扇区
if (block % 3 != 0) sector++; //如果块占不满一个扇区多加一个扇区
data = new string[block];
#region 拆分字符串为16字节一块
for (int index = 0; index < block; index++)
{
string tempData;
if (index == block - 1 && mod != 0)
{
tempData = str;
str = null;
}
else
{
tempData = str.Substring(0 16);
str = str.Remove(index 16);
}
data[index] = tempD
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 167 2013-07-02 22:51 M1Card\App.config
文件 167 2013-07-02 22:51 M1Card\bin\64\WindowsFormsApplication1.exe.config
文件 22472 2013-07-02 23:02 M1Card\bin\64\WindowsFormsApplication1.vshost.exe
文件 167 2013-07-02 22:51 M1Card\bin\64\WindowsFormsApplication1.vshost.exe.config
文件 114688 2013-07-02 20:28 M1Card\bin\Debug\mwrf32.dll
文件 14336 2013-07-16 23:12 M1Card\bin\Debug\WindowsFormsApplication1.exe
文件 167 2013-07-02 22:51 M1Card\bin\Debug\WindowsFormsApplication1.exe.config
文件 30208 2013-07-16 23:12 M1Card\bin\Debug\WindowsFormsApplication1.pdb
文件 22984 2013-07-16 23:12 M1Card\bin\Debug\WindowsFormsApplication1.vshost.exe
文件 167 2013-07-02 22:51 M1Card\bin\Debug\WindowsFormsApplication1.vshost.exe.config
文件 114688 2013-07-02 20:28 M1Card\bin\Release\mwrf32.dll
文件 11776 2013-07-14 19:53 M1Card\bin\Release\WindowsFormsApplication1.exe
文件 167 2013-07-02 22:51 M1Card\bin\Release\WindowsFormsApplication1.exe.config
文件 30208 2013-07-14 19:53 M1Card\bin\Release\WindowsFormsApplication1.pdb
文件 22472 2013-07-14 19:55 M1Card\bin\Release\WindowsFormsApplication1.vshost.exe
文件 167 2013-07-02 22:51 M1Card\bin\Release\WindowsFormsApplication1.vshost.exe.config
文件 490 2012-06-06 02:06 M1Card\bin\Release\WindowsFormsApplication1.vshost.exe.manifest
文件 2580 2013-07-16 23:09 M1Card\Common\ErrorManager.cs
文件 3970 2013-07-16 23:09 M1Card\Common\URF.cs
文件 5904 2013-07-16 23:09 M1Card\M1Card.csproj
文件 522 2013-07-02 23:35 M1Card\M1Card.csproj.user
文件 9046 2013-07-16 23:12 M1Card\MainWindow.cs
文件 4842 2013-07-16 23:07 M1Card\MainWindow.Designer.cs
文件 5817 2013-07-16 13:59 M1Card\MainWindow.resx
文件 7000 2013-07-02 23:02 M1Card\obj\64\DesignTimeResolveAssemblyReferencesInput.cache
文件 4608 2013-07-02 23:02 M1Card\obj\64\TempPE\Properties.Resources.Designer.cs.dll
文件 120 2013-07-02 23:02 M1Card\obj\64\WindowsFormsApplication1.csproj.FileListAbsolute.txt
文件 1903 2013-07-02 23:29 M1Card\obj\Debug\DesignTimeResolveAssemblyReferences.cache
文件 6825 2013-07-16 23:08 M1Card\obj\Debug\DesignTimeResolveAssemblyReferencesInput.cache
文件 591 2013-07-16 23:12 M1Card\obj\Debug\M1Card.csproj.FileListAbsolute.txt
............此处省略52个文件信息
- 上一篇:C#透明窗体画图电子尺
- 下一篇:C#WEB上传控件多附件上传
相关资源
- C# OCR数字识别实例,采用TessnetOcr,对
- 考试管理系统 - C#源码
- asp.net C#购物车源代码
- C#实时网络流量监听源码
- C#百度地图源码
- Visual C#.2010从入门到精通配套源程序
- C# 软件版本更新
- C#屏幕软键盘源码,可以自己定制界面
- 智慧城市 智能家居 C# 源代码
- c#获取mobile手机的IMEI和IMSI
- C#实现简单QQ聊天程序
- 操作系统 模拟的 欢迎下载 C#版
- C#写的计算机性能监控程序
- 用C#实现邮件发送,有点类似于outlo
- MVC model层代码生成器 C#
- c#小型图书销售系统
- C# Socket Server Client 通讯应用 完整的服
- c# winform 自动登录 百度账户 源代码
- C#编写的16进制计算器
- C#TCP通信协议
- C# 数据表(Dataset)操作 合并 查询一
- C#语音识别系统speechsdk51,SpeechSDK51L
- 数据库备份还原工具1.0 C# 源码
-
[免费]xm
lDocument 节点遍历C# - EQ2008LEDc#开发实例
- DirectX.Capturec# winform 操作摄像头录像附
- c# 实现的最大最小距离方法对鸢尾花
- C#版保龄球记分代码
- C#自定义控件
- 基于c#的实验室设备管理系统621530
评论
共有 条评论