private bool PokeResponse(CardBuffer outBuffer)
        {
            CardBuffer RESP;
            CardBuffer CTRL;

            byte[] buffer = new byte[outBuffer.Length + 1];
            buffer[0] = 0x84;
            for (int i = 0; i < outBuffer.Length; i++)
            {
                buffer[i + 1] = outBuffer.GetByte(i);
            }

            CTRL = new CardBuffer(buffer);

            RESP = ReaderChannel.Control(CTRL);
            if ((RESP == null) || (RESP.Length < 1) || (RESP.GetByte(0) != 0x00))
            {
                Trace.WriteLine("Control(" + CTRL.AsString() + ") failed");

                if (RESP == null)
                {
                    Trace.WriteLine("\terr." + ReaderChannel.LastError + " : " + ReaderChannel.LastErrorAsString);
                }
                else
                {
                    Trace.WriteLine("\tResp= " + RESP.AsString());
                }

                return(false);
            }

            return(true);
        }
Exemple #2
0
        public string SerialNumber()
        {
            /* Serial number */
            CardBuffer r = Control(new CardBuffer("582003"));

            if ((r != null) && (r.Length >= 1) && (r.GetByte(0) == 0x00))
            {
                string s = new String(r.GetChars(1, -1));
                return(s);
            }
            return("");
        }