public static ReadWithoutEncryptionResponse Read(NfcF nfcf) { var targetSystemCode = new byte[2] { (byte)0x00, (byte)0x03 }; // [1] var poolingCommand = new PollingCommand(targetSystemCode); var pooolingRequest = poolingCommand.RequestPacket(); var rawPoolingResponse = nfcf.Transceive(pooolingRequest); var poolingResponse = new PoolingResponse(rawPoolingResponse); var targetIdm = poolingResponse.IDm(); var serviceCode = new byte[2] { (byte)0x0f, (byte)0x09 }; // [2] var requestServiceCommand = new RequestServiceCommand(targetIdm, serviceCode); var requestServiceRequest = requestServiceCommand.RequestPacket(); var rawRequestServiceResponse = nfcf.Transceive(requestServiceRequest); var requestServiceResponcse = new RequestServiceResponse(rawRequestServiceResponse); // [3] var requestCommandRireki = new ReadWithoutEncryptionCommandRireki(); var requestCommandPacket = requestCommandRireki.RequestPacket(targetIdm, 10); var rawReadWithoutEncryptionCommandRireki = nfcf.Transceive(requestCommandPacket); var retData = new ReadWithoutEncryptionResponse(rawReadWithoutEncryptionCommandRireki); return(retData); }
public byte[] Access(byte[] command) { System.Diagnostics.Debug.WriteLine("SEND: " + BitConverter.ToString(command)); try { var response = nfc.Transceive(command); System.Diagnostics.Debug.WriteLine("RECV: " + BitConverter.ToString(response)); return(response); } catch (TagLostException) { System.Diagnostics.Debug.WriteLine("RECV: "); return(Array.Empty <byte>()); } }
public Task <byte[]> Send(byte[] data) { if (!this.IsConnected) { throw new InvalidOperationException("Not Connected"); } try { byte[] res = nfc.Transceive(data); return(Task.FromResult <byte[]>(res)); } catch (Java.Lang.Exception e) { System.Diagnostics.Debug.WriteLine(e.Message); throw e; } }