110,535
社区成员
发帖
与我相关
我的任务
分享
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using BLL;
using System.Runtime.InteropServices;
using DevComponents.DotNetBar;
namespace PlatForm
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
//c++函数强制声明
[DllImport("mi.dll", EntryPoint = "API_OpenComm")]
public static extern IntPtr API_OpenComm(int nCom, int nBaudrate);
[DllImport("mi.dll", EntryPoint = "API_CloseComm")]
public static extern bool API_CloseComm(IntPtr commHandle);
[DllImport("mi.dll", EntryPoint = "API_ControlBuzzer")]
public static extern int API_ControlBuzzer(IntPtr commHandle, int DeviceAddress, byte freq, byte duration, ref byte buffer);
[DllImport("mi.dll", EntryPoint = "API_MF_Read")]
public static extern int API_MF_Read(IntPtr commHandle, int DeviceAddress, byte mode, byte blk_add, byte num_blk, ref byte snr, ref byte buffer);
private void Form1_Load(object sender, EventArgs e)
{
Program.Port = API_OpenComm(4, 9600);
if (Program.Port.ToInt32() == 0)
{
labelControl2.Visible = false;
labelControl3.Visible = true;
buttonX1.Visible = true;
return;
}
byte pBuf = new byte();
Program.G_start = API_ControlBuzzer(Program.Port, 0, 3, 1, ref pBuf);
if (Program.G_start == 0)
{
labelControl2.Visible = true;
labelControl3.Visible = false;
buttonX1.Visible = false;
}
//启动时间轴
timer1.Interval = 1000;
timer1.Start();
}
private void timer1_Tick(object sender, EventArgs e)
{
byte[] hex = new byte[16];
long ret = long.Parse("281474976710655");
hex = BitConverter.GetBytes(ret);
byte[] hex1 = new byte[16];
byte[] hex2 = new byte[16];
//Array.Clear(hex1, 0, 16);
byte[] data = new byte[16];
int idata = API_MF_Read(Program.Port, 0, 0, 10, 1, ref hex[0], ref data[0]);
//无卡接触时,循环等待
if (idata != 0)
{
return;
}
//取卡号
string s = BitConverter.ToInt64(data, 0).ToString();
member mem = new member();
//卡有效性验证
timer1.Stop();
if (mem.Exists(Convert.ToInt32(s)))
{
DialogResult result;
result = MessageBoxEx.Show("此卡存在数据,是否重写", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
if (result == DialogResult.No)
{
timer1.Start();
return;
}
}
Form3 form3 = new Form3();
if ((form3.ShowDialog() == DialogResult.OK))
{
timer1.Start();
return;
}
timer1.Start();
return;
}
private void buttonX1_Click(object sender, EventArgs e)
{
Form1_Load(sender, e);
}
}
}