public I2CError readSessionRegisters(byte I2Caddress, TagType type, out byte[] readRegisters, out String log) { log = ""; this.error = I2CError.Undefined; int numRegs = Enum.GetNames(typeof(SessionReg)).Length; var read = api.readAllSessionRegister(I2Caddress, type); //TODO:Refactor and check tag type readRegisters = new byte[numRegs]; if (read != null && read.Count == numRegs) { this.error = I2CError.Success; } for (var i = 0; i < numRegs; i++) { readRegisters[i] = read[i].data[0]; setFlag(read[i]); log += Environment.NewLine + read[i].log; if (read[i].error == I2CError.Undefined || read[i].error != I2CError.Success) { error = read[i].error; } i++; } return(error); }
String GetTextError(I2CError error) { String sError; switch (error) { case I2CError.Success: sError = "I²C Success"; break; case I2CError.Unknown: sError = "Unknown error condition"; break; case I2CError.Nak: sError = "No acknowledge (NAK)"; break; case I2CError.BusError: sError = "I²C bus error"; break; case I2CError.NakAfterSla: sError = "NAK received after SLA+W or SLA+R"; break; case I2CError.ArbitrationLost: sError = "Arbitration lost"; break; case I2CError.TimeOut: sError = "Transaction timed out"; break; case I2CError.InvalidRequest: sError = "Invalid HID_I2C Request"; break; case I2CError.InvalidParameters: sError = "Invalid parameters"; break; case I2CError.PartialCompleted: sError = "Partial transfer completed"; break; case I2CError.NoHw: sError = "No hardware connected"; break; default: sError = "Undefined result"; break; } return(sError); }
// Writes the session registers public I2CError writeSessionRegisters(byte I2Caddress, byte[] writeRegisters, out String log) { log = ""; this.error = I2CError.Undefined; var write = api.writeAllSessionRegister(I2Caddress, writeRegisters, TagType.NTAG1K); this.error = write.error; setFlag(write); return(error); }
public I2CError writeSessionRegister(byte I2Caddress, byte subAddress, byte writeRegister, out String log) { log = ""; this.error = I2CError.Undefined; var write = api.writeSessionRegister(I2Caddress, TagType.NTAG1K, subAddress, writeRegister); log = write.log; setFlag(write); return(this.error); }
public void testReadAllMemory_2kTag() { //arrange I2CError expectedError = I2CError.Success; //act List <I2CData> actualOutputs = ntag.readAllMemory(TagType.NTAG2K, i2cAdress); //assert foreach (var actualRead in actualOutputs) { Assert.Equal(expectedError, actualRead.error); Assert.True(actualRead.data.Length > 0); } }
public void readAllConfigRegisters_1KTag() { //arrange I2CError expectedError = I2CError.Success; //act var actualRegister = ntag.readAllConfigRegister(i2cAdress, TagType.NTAG1K); //assert foreach (var data in actualRegister.data) { Debug.Write(" 0x" + data.ToString("X2")); } Assert.Equal(expectedError, actualRegister.error); }
public void writeAllSessionRegisters_2KTag() { //arrange int sessionRegCount = Enum.GetNames(typeof(SessionReg)).Length; I2CError expectedError = I2CError.Success; int blockSize = 16; byte[] mockUpRegisters = new byte[16]; int i = 0; mockUpRegisters[(int)ConfigReg.NC_REG] = Utils.HexToByte("03"); mockUpRegisters[(int)ConfigReg.LAST_NDEF_BLOCK] = Utils.HexToByte("00"); mockUpRegisters[(int)ConfigReg.SRAM_MIRROR_BLOCK] = Utils.HexToByte("f8"); mockUpRegisters[(int)ConfigReg.WDT_LS] = Utils.HexToByte("48"); mockUpRegisters[(int)ConfigReg.WDT_MS] = Utils.HexToByte("08"); mockUpRegisters[(int)ConfigReg.I2C_CLOCK_STR] = Utils.HexToByte("01"); mockUpRegisters[(int)ConfigReg.REG_LOCK] = Utils.HexToByte("00"); for (int j = 7; j < blockSize; j++) { mockUpRegisters[j] = (byte)0; } //act var actualWritten = ntag.writeAllSessionRegister(i2cAdress, mockUpRegisters, TagType.NTAG2K); var readOutput = ntag.readAllSessionRegister(i2cAdress, TagType.NTAG2K); byte[] actualRegisters = new byte[sessionRegCount]; for (i = 0; i < sessionRegCount; i++) { actualRegisters[i] = readOutput[i].data[0]; } //assert Assert.Equal(expectedError, actualWritten.error); for (i = 0; i < sessionRegCount; i++) { Assert.Equal(expectedError, readOutput[i].error); Assert.True(readOutput[i].data.Length == 1); Assert.Equal(mockUpRegisters[i], readOutput[i].data[0]); } }
public void testReadAllMemory_1kTag() { //arrange I2CError expectedError = I2CError.Success; //act List <I2CData> actualOutputs = ntag.readAllMemory(TagType.NTAG1K, i2cAdress); //assert foreach (var actualRead in actualOutputs) { foreach (var data in actualRead.data) { Debug.Write(" 0x" + data.ToString("X2")); } Debug.WriteLine(""); Assert.Equal(expectedError, actualRead.error); Assert.True(actualRead.data.Length > 0); } }
public void writeAllConfigRegisters_1KTag() { //arrange int configRegCount = Enum.GetNames(typeof(SessionReg)).Length; I2CError expectedError = I2CError.Success; int blockSize = 16; byte[] mockUpRegisters = new byte[16]; int i = 0; mockUpRegisters[(int)ConfigReg.NC_REG] = Utils.HexToByte("41"); mockUpRegisters[(int)ConfigReg.LAST_NDEF_BLOCK] = Utils.HexToByte("00"); mockUpRegisters[(int)ConfigReg.SRAM_MIRROR_BLOCK] = Utils.HexToByte("f8"); mockUpRegisters[(int)ConfigReg.WDT_LS] = Utils.HexToByte("48"); mockUpRegisters[(int)ConfigReg.WDT_MS] = Utils.HexToByte("08"); mockUpRegisters[(int)ConfigReg.I2C_CLOCK_STR] = Utils.HexToByte("01"); mockUpRegisters[(int)ConfigReg.REG_LOCK] = Utils.HexToByte("00"); for (int j = 7; j < blockSize; j++) { mockUpRegisters[j] = (byte)0; } //act var actualWritten = ntag.writeAllConfigRegister(i2cAdress, mockUpRegisters, TagType.NTAG1K); var readOutput = ntag.readAllConfigRegister(i2cAdress, TagType.NTAG1K); //assert Assert.Equal(expectedError, actualWritten.error); Assert.Equal(expectedError, readOutput.error); for (i = 0; i < configRegCount; i++) { Debug.Write(" 0x" + readOutput.data[i].ToString("X2")); Assert.Equal(mockUpRegisters[i], readOutput.data[i]); } }
public void testWriteAllMemory_2KTag() { //arrange I2CError expectedError = I2CError.Success; List <I2CData> read = ntag.readAllMemory(TagType.NTAG2K, i2cAdress); byte[][] writeBytes = new byte[read.Count][]; int idx = 0; foreach (var o in read) { writeBytes[idx] = o.data; idx++; } //act List <I2CData> actualOutputs = ntag.writeAllMemory(TagType.NTAG1K, i2cAdress, writeBytes); //assert foreach (var write in actualOutputs) { Assert.Equal(expectedError, write.error); } }