Ejemplo n.º 1
0
        static void RunTests(Pn532 pn532)
        {
            Console.WriteLine($"{DiagnoseMode.CommunicationLineTest}: {pn532.RunSelfTest(DiagnoseMode.CommunicationLineTest)}");
            Console.WriteLine($"{DiagnoseMode.ROMTest}: {pn532.RunSelfTest(DiagnoseMode.ROMTest)}");
            Console.WriteLine($"{DiagnoseMode.RAMTest}: {pn532.RunSelfTest(DiagnoseMode.RAMTest)}");
            // Check couple of SFR registers
            SfrRegister[] regs    = new SfrRegister[] { SfrRegister.HSU_CNT, SfrRegister.HSU_CTR, SfrRegister.HSU_PRE, SfrRegister.HSU_STA };
            Span <byte>   redSfrs = stackalloc byte[regs.Length];
            var           ret     = pn532.ReadRegisterSfr(regs, redSfrs);

            for (int i = 0; i < regs.Length; i++)
            {
                Console.WriteLine($"Readregisters: {regs[i]}, value: {BitConverter.ToString(redSfrs.ToArray(), i, 1)} ");
            }
            // This should give the same result as
            ushort[]    regus    = new ushort[] { 0xFFAE, 0xFFAC, 0xFFAD, 0xFFAB };
            Span <byte> redSfrus = stackalloc byte[regus.Length];

            ret = pn532.ReadRegister(regus, redSfrus);
            for (int i = 0; i < regus.Length; i++)
            {
                Console.WriteLine($"Readregisters: {regus[i]}, value: {BitConverter.ToString(redSfrus.ToArray(), i, 1)} ");
            }
            Console.WriteLine($"Are results same: {redSfrus.SequenceEqual(redSfrs)}");
            // Access GPIO
            ret = pn532.ReadGpio(out Port7 p7, out Port3 p3, out OperatingMode l0L1);
            Console.WriteLine($"P7: {p7}");
            Console.WriteLine($"P3: {p3}");
            Console.WriteLine($"L0L1: {l0L1} ");
        }