/// <summary> /// 安全写 /// </summary> public void SECWrite(MemBank memType, string password, MemAddress startAddress, MemLength dataLength, string content) { string TempStr = ""; string TempStrEnglish = ""; int status = 0; int SMembank = 0; string PWstr = ""; string WDataStr = ""; int WSAddr = 0; int WCnt = 0; byte[] PassWord = new byte[4]; byte[] WData = new byte[100]; SMembank = (int)memType; PWstr = password; WSAddr = (int)startAddress; WCnt = (int)dataLength; WDataStr = content; if (WDataStr.Length == WCnt * 4) { HexStrToByte(PassWord, PWstr); HexStrToByte(WData, WDataStr); status = Reader.GEN2_SecWrite(CS, SMembank, PassWord, WSAddr, WCnt, WData, 0xFF); if (0 == status) { TempStr = "标签写入成功"; TempStrEnglish = "tag write success"; } else { TempStr = "标签写入失败"; TempStrEnglish = "tag write failed"; } Console.WriteLine(TempStr); } else { Console.WriteLine("写入标签的数据与写入的长度不匹配!请检查后重试"); } }
/// <summary> /// 安全读 /// </summary> public void SECRead(MemBank memType, string password, MemAddress startAddress, MemLength dataLength) { string TempStr = ""; string TempStrEnglish = ""; int status = 0; int SMembank = 0; string PWstr = ""; int RSAddr = 0; int RCnt = 0; byte[] PassWord = new byte[4]; byte[] RData = new byte[100]; SMembank = (int)memType; PWstr = password; RSAddr = (int)startAddress; // 0-35 RCnt = (int)dataLength; HexStrToByte(PassWord, PWstr); status = Reader.GEN2_SecRead(CS, SMembank, PassWord, RSAddr, RCnt, RData, 0xFF); if (0 == status) { TempStr = "标签读取成功"; TempStrEnglish = "Tag read success"; string TStr = ""; TStr = ByteToHexStr(RData, RCnt * 2); // 读取结果 Console.WriteLine(TStr); } else { TempStr = "标签读取失败"; TempStrEnglish = "Tag read failed"; Console.WriteLine(TempStr); } }