Как хранить любые данные размером 20 байт в 2 блоках MIFARE classic 1k с помощью C#
Всем привет,
Пожалуйста, дайте мне знать, что я использую карту MIFARE classic 1k, у меня есть поле "имя", которое составляет 20 байт, так как 1 блок в mifare=16 байт o для остальных 4 байта, как я могу восстановить во втором блоке.
Что я уже пробовал:
теперь я попробовал только с 16 байтами.
string tmpStr; int indx; string BlockNumber_Name = "36"; string BlockNumber_Id = "37"; string BlockNumber_Date = "38"; string DataLength = "16"; int tempInt; if (BlockNumber_Name == "" | !int.TryParse(BlockNumber_Name, out tempInt)) { // tBinBlk.Focus(); BlockNumber_Name = ""; return; } if (int.Parse(BlockNumber_Name) > 319) { BlockNumber_Name = "319"; return; } if (DataLength == "" | !int.TryParse(DataLength, out tempInt)) { // tBinLen.Focus(); DataLength = ""; return; } if (Name_txt.Text == "") { Name_txt.Focus(); return; } tmpStr = Name_txt.Text; ClearBuffers(); SendBuff[0] = 0xFF; // CLA SendBuff[1] = 0xD6; // INS SendBuff[2] = 0x00; // P1 SendBuff[3] = (byte)int.Parse(BlockNumber_Name); // P2 : Starting Block No. SendBuff[4] = (byte)int.Parse(DataLength); // P3 : Data length for (indx = 0; indx <= (tmpStr).Length - 1; indx++) { SendBuff[indx + 5] = (byte)tmpStr[indx]; } SendLen = SendBuff[4] + 5; RecvLen = 0x02;