コード例 #1
0
        private static void Main()
        {
            Console.WriteLine("PiXtend.Test");

            PiXtendSPI.UcReset();
            Console.WriteLine("UcReset ok");

            //Setup SPI using wiringPi
            PiXtendSPI.Setup(0); //use SPI device 0.0 (PiXtend V2 -S-)
            PiXtendSPI.Setup(1); //use SPI device 0.1 (PiXtend V2 -S- DAC)
            PiXtendSPI.SetGpioControl(0);
            PiXtendSPI.AutoMode(Outputs, Inputs);

            var poll = Task.Run((Action)Poll);

            while (_running)
            {
                var key = Console.ReadKey();
                if (key.KeyChar == 'x')
                {
                    break;
                }

                var mask = (byte)(1 << (key.KeyChar - '0'));
                Outputs.byRelayOut ^= mask;

                Console.WriteLine($"\r\nOutputs = {Outputs.byDigitalOut:X}");
            }

            _running = false;
            poll.Wait();
            Console.WriteLine("done.");
        }
コード例 #2
0
        private static void Poll()
        {
            var oldInputs = PiXtendSPI.GetDin();
            var oldGpio   = PiXtendSPI.GetGpio();

            while (_running)
            {
                Task.Delay(50).Wait();
                PiXtendSPI.AutoMode(Outputs, Inputs);

                if (Inputs.byGPIOIn != oldGpio)
                {
                    oldGpio = Inputs.byGPIOIn;
                    Console.WriteLine($"GPIO = {Inputs.byGPIOIn:X}");
                }

                if (Inputs.byDigitalIn != oldInputs)
                {
                    oldInputs = Inputs.byDigitalIn;
                    Console.WriteLine($"Inputs= {Inputs.byDigitalIn:X}");
                }
            }
        }