110,539
社区成员
发帖
与我相关
我的任务
分享
int ReadBaseInfos( char * Name, char * Gender, char * Folk,
char *BirthDay, char * Code, char * Address,char *Agency, char * ExpireStart,char* ExpireEnd)
[DllImport("Sdtapi.dll")]
private static extern int ReadBaseInfos(StringBuilder Name, StringBuilder Gender, StringBuilder Folk, StringBuilder BirthDay, StringBuilder Code, StringBuilder Address, StringBuilder Agency, StringBuilder ExpireStart, StringBuilder ExpireEnd);
Name = new StringBuilder(256);
Gender = new StringBuilder(256);
Folk = new StringBuilder(256);
BirthDay = new StringBuilder(256);
Code = new StringBuilder(256);
Address = new StringBuilder(256);
Agency = new StringBuilder(256);
ExpireStart = new StringBuilder(256);
ExpireEnd = new StringBuilder(256);
while (RunScan)
{
try
{
Name.Remove(0, Name.Length);
Gender.Remove(0, Gender.Length);
Folk.Remove(0, Folk.Length);
BirthDay.Remove(0, BirthDay.Length);
Code.Remove(0, Code.Length);
Address.Remove(0, Address.Length);
Agency.Remove(0, Agency.Length);
ExpireStart.Remove(0, ExpireStart.Length);
ExpireEnd.Remove(0, ExpireEnd.Length);
while (RunScan)
{
try
{
Name = new StringBuilder(31);
Gender = new StringBuilder(3);
Folk = new StringBuilder(10);
BirthDay = new StringBuilder(9);
Code = new StringBuilder(19);
Address = new StringBuilder(71);
Agency = new StringBuilder(31);
ExpireStart = new StringBuilder(9);
ExpireEnd = new StringBuilder(9);
//打开端口
int intOpenRet = InitComm(pN);
if (intOpenRet != 1)
{
if (setAlarm != null)
setAlarm("阅读机具未连接");
continue;
}
//卡认证
int intReadRet = Authenticate();
if (intReadRet != 1)
{
CloseComm();
if (setAlarm != null)
setAlarm("请重新放卡...");
continue;
}
else
{
if (setAlarm != null)
setAlarm("卡认证成功,正在获取...");
}
//读取数据(第一次调用的时候不出错误,再次读取提示错误)
int intReadBaseInfosRet = ReadBaseInfos(Name, Gender, Folk, BirthDay, Code, Address, Agency,ExpireStart, ExpireEnd);
if (intReadBaseInfosRet != 1)
{
if (setAlarm != null)
setAlarm("读卡失败");
CloseComm();
continue;
}
}
catch
{
CloseComm();
}
CloseComm();
Thread.Sleep(200);
}