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;
            }
        }