c# - 无法从存储卡 SLE5528 读取
问题描述
我在使用卡片和读卡器方面还是个新手;我正在使用C#
构建一个与 ACR38U 智能卡读卡器集成的应用程序,并且我有 SLE5528 存储卡。我正在使用以下示例为存储卡提供唯一 ID(22222
在本例中):
int indx;
tmpStr = "22222";
ClearBuffers();
SendBuff[0] = 0xFF;
SendBuff[1] = 0xD0;
SendBuff[2] = 0xA1;
SendBuff[3] = 0x00;
SendBuff[4] = 0x08;
for (indx = 0; indx <= tmpStr.Length - 1; indx++)
{
if ((Convert.ToByte(tmpStr[indx])) != 0x00)
SendBuff[indx + 5] = Convert.ToByte(tmpStr[indx]);
}
SendBuffLen = SendBuff[4] + 5;
RecvBuffLen = 2;
tmpStr = "";
for (indx = 0; indx <= SendBuffLen - 1; indx++)
{
tmpStr = tmpStr + string.Format("{0:x2}", SendBuff[indx]).ToUpper() + " ";
}
retcode = SendAPDUandDisplay(0, tmpStr);
if (retcode != ModWinsCard64.SCARD_S_SUCCESS)
{
return;
}
tData.Text = "";
从我得到90 00
回应的地方,这意味着成功。现在我用这个从存储卡中读取:
int indx;
tData.Text = "";
ClearBuffers();
SendBuff[0] = 0xFF;
SendBuff[1] = 0xB0;
SendBuff[2] = 0xA1;
SendBuff[3] = 0x00;
SendBuff[4] = 0x08;
SendBuffLen = 5;
RecvBuffLen = SendBuff[4] + 2;
tmpStr = "";
for (indx = 0; indx <= SendBuffLen - 1; indx++)
{
tmpStr = tmpStr + string.Format("{0:x2}", (SendBuff[indx])).ToUpper() + " ";
}
retcode = this.SendAPDUandDisplay(2, tmpStr);
if (retcode != ModWinsCard64.SCARD_S_SUCCESS)
{
return;
}
// 3. Display data read from card into Data textbox
tmpStr = "";
for (indx = 0; indx <= SendBuff[4] - 1; indx++)
{
tmpStr = tmpStr + Convert.ToChar(RecvBuff[indx]);
}
tData.Text = tmpStr;
byte[] buffer = new byte[RecvBuffLen];
for (int i = 0; i < RecvBuffLen; i++)
{
buffer[i] = RecvBuff[i];
}
byte[] buffer2 = new byte[8];
for (int i = 0; i < buffer2.Length; i++)
{
if (buffer.Length > i)
buffer2[i] = buffer[i];
}
int iCardID = BitConverter.ToInt32(buffer2, 0);
MessageBox.Show(iCardID.ToString());
但iCardID
总是-1
代替22222
。关于我在哪里做错的任何想法?也许我写错了。
解决方案
推荐阅读
- python - 没有名为“uff”的模块
- c++ - _mm256_movemask_epi8 到 uint64_t
- scala - 如何解决akka http测试和akka测试套件中的ActorSystem冲突
- grammar - 编写自己的 CFG 的提示
- google-cloud-platform - 无法使用 CDAP RESTAPI 上传数据融合插件 json 文件
- azure - 使用 VS 2019 将 .NET Core 3.1 Web 应用发布到 Azure App Service Linux,显示欢迎屏幕
- r - 将数据结构从长更改为宽,反之亦然
- csv - 处理数组并按 csv 中的一个字段对行进行分组
- angular - 部分匹配路由到同一组件
- python - 如何通过python将已知的一维数组转换为二维数组但不使用numpy?(只使用基本的python语言))