void Start()
    {
        AStarScript = AStarRef.GetComponent <Pathfinding>();
        animator    = GetComponent <Animator>();

        //closestNode = FindClosestNode(transform.position);
        //currentCluster = closestNode.GetComponent<Node>().cluster;

        if (NPCType + "" == "Chaser")
        {
            CBehavior = GetComponent <ChaserBehavior>();
        }
        else if (NPCType + "" == "Runner")
        {
            RBehavior = GetComponent <RunnerBehavior>();
        }
    }
Пример #2
0
        static void Main(string[] args)
        {
            const ConnectorPin led1Pin   = ConnectorPin.P1Pin26;
            const ConnectorPin led2Pin   = ConnectorPin.P1Pin24;
            const ConnectorPin led3Pin   = ConnectorPin.P1Pin22;
            const ConnectorPin led4Pin   = ConnectorPin.P1Pin15;
            const ConnectorPin led5Pin   = ConnectorPin.P1Pin13;
            const ConnectorPin led6Pin   = ConnectorPin.P1Pin11;
            const ConnectorPin buttonPin = ConnectorPin.P1Pin03;

            Console.WriteLine("Chaser Sample: Sample a LED chaser with a switch to change behavior");
            Console.WriteLine();
            Console.WriteLine("\tLed 1: {0}", led1Pin);
            Console.WriteLine("\tLed 2: {0}", led2Pin);
            Console.WriteLine("\tLed 3: {0}", led3Pin);
            Console.WriteLine("\tLed 4: {0}", led4Pin);
            Console.WriteLine("\tLed 5: {0}", led5Pin);
            Console.WriteLine("\tLed 6: {0}", led6Pin);
            Console.WriteLine("\tSwitch: {0}", buttonPin);
            Console.WriteLine();

            var driver = args.GetDriver();

            // Declare outputs (leds)
            var leds = new PinConfiguration[]
            {
                led1Pin.Output().Name("Led1").Enable(),
                led2Pin.Output().Name("Led2"),
                led3Pin.Output().Name("Led3").Enable(),
                led4Pin.Output().Name("Led4"),
                led5Pin.Output().Name("Led5").Enable(),
                led6Pin.Output().Name("Led6")
            };

            // Assign a behavior to the leds
            var behavior = new ChaserBehavior(leds)
            {
                Loop      = args.GetLoop(),
                RoundTrip = args.GetRoundTrip(),
                Width     = args.GetWidth(),
                Interval  = TimeSpan.FromMilliseconds(args.GetSpeed())
            };

            // Alternate behaviors...

            /*
             * var random = new Random();
             * var behavior = new PatternBehavior(leds, Enumerable.Range(0, 5).Select(i => random.Next(511)))
             *                 {
             *                     Loop = Helpers.GetLoop(args),
             *                     RoundTrip = Helpers.GetRoundTrip(args),
             *                     Interval = Helpers.GetSpeed(args)
             *                 };*/

            /*
             * var behavior = new BlinkBehavior(leds)
             *                 {
             *                     Count = args.GetWidth(),
             *                     Interval = args.GetSpeed()
             *                 };*/

            // Declare input (switchButton) interacting with the leds behavior
            var switchButton = buttonPin.Input()
                               .Name("Switch")
                               .Revert()
                               .Switch()
                               .Enable()
                               .OnStatusChanged(b =>
            {
                behavior.RoundTrip = !behavior.RoundTrip;
                Console.WriteLine("Button switched {0}", b ? "on" : "off");
            });

            // Create connection
            var settings = new GpioConnectionSettings {
                Driver = driver
            };

            using (var connection = new GpioConnection(settings, leds))
            {
                Console.WriteLine("Using {0}, frequency {1:0.##}hz", settings.Driver.GetType().Name, 1000.0 / args.GetSpeed());

                Thread.Sleep(1000);

                connection.Add(switchButton);
                connection.Start(behavior); // Starting the behavior automatically registers the pins to the connection, if needed.

                Console.ReadKey(true);

                connection.Stop(behavior);
            }
        }
Пример #3
0
        //const ConnectorPin Station12OutputPin = ConnectorPin.P1Pin36;

        static void Main(string[] args)
        {
            // Declare outputs (leds)
            var leds = new PinConfiguration[]
            {
                Station1OutputPin.Output().Name("Led1").Enable(),
                Station2OutputPin.Output().Name("Led2"),
                Station3OutputPin.Output().Name("Led3").Enable(),
                Station4OutputPin.Output().Name("Led4"),
                Station5OutputPin.Output().Name("Led5").Enable(),
                Station6OutputPin.Output().Name("Led6"),
                Station7OutputPin.Output().Name("Led7").Enable(),
                Station8OutputPin.Output().Name("Led8"),
                Station9OutputPin.Output().Name("Led9").Enable(),
                Station10OutputPin.Output().Name("Led10"),
                Station11OutputPin.Output().Name("Led11").Enable(),
                //Station12OutputPin.Output().Name("Led12")
            };

            Console.WriteLine("Chaser Sample: Sample a LED chaser with a switch to change behavior");
            Console.WriteLine();
            Console.WriteLine("\tLed 1: {0}", Station1OutputPin);
            Console.WriteLine("\tLed 2: {0}", Station2OutputPin);
            Console.WriteLine("\tLed 3: {0}", Station3OutputPin);
            Console.WriteLine("\tLed 4: {0}", Station4OutputPin);
            Console.WriteLine("\tLed 5: {0}", Station5OutputPin);
            Console.WriteLine("\tLed 6: {0}", Station6OutputPin);
            Console.WriteLine("\tSwitch: {0}", PushButtonInputPin);
            Console.WriteLine();

            // Assign a behavior to the leds
            int period   = 250;
            var behavior = new ChaserBehavior(leds)
            {
                Loop      = true,                             // args.GetLoop(),
                RoundTrip = true,                             // args.GetRoundTrip(),
                Width     = 12,                               // args.GetWidth(),
                Interval  = TimeSpan.FromMilliseconds(period) //TimeSpan.FromMilliseconds(args.GetSpeed())
            };
            var switchButton = LowPressureFaultInputPin.Input()
                               //.Name("Switch")
                               //.Revert()
                               //.Switch()
                               //.Enable()
                               .OnStatusChanged(b =>
            {
                behavior.RoundTrip = !behavior.RoundTrip;
                Console.WriteLine("Button switched {0}", b ? "on" : "off");
            });

            // Create connection
            var settings = new GpioConnectionSettings();// { Driver = driver };

            using (var connection = new GpioConnection(settings, leds))
            {
                Console.WriteLine("Using {0}, frequency {1:0.##}hz", settings.Driver.GetType().Name, 1000.0 / period);

                Thread.Sleep(1000);

                connection.Add(switchButton);
                connection.Start(behavior); // Starting the behavior automatically registers the pins to the connection, if needed.

                Console.ReadKey(true);

                connection.Stop(behavior);
            }
        }
Пример #4
0
        static void Main(string[] args)
        {
            try
            {
                var driver    = args.GetDriver();
                var mainboard = Board.Current;

                if (!mainboard.IsRaspberryPi)
                {
                    Console.WriteLine("'{0}' is not a valid processor for a Raspberry Pi.", mainboard.Processor);
                    return;
                }

                // Declare outputs (leds)
                var leds = new PinConfiguration[]
                {
                    ConnectorPin.P1Pin26.Output().Name("Led1").Enable(),
                    ConnectorPin.P1Pin24.Output().Name("Led2"),
                    ConnectorPin.P1Pin22.Output().Name("Led3").Enable(),
                    ConnectorPin.P1Pin15.Output().Name("Led4"),
                    ConnectorPin.P1Pin13.Output().Name("Led5").Enable(),
                    ConnectorPin.P1Pin11.Output().Name("Led6")
                };

                // Assign a behavior to the leds
                var behavior = new ChaserBehavior(leds)
                {
                    Loop      = args.GetLoop(),
                    RoundTrip = args.GetRoundTrip(),
                    Width     = args.GetWidth(),
                    Interval  = args.GetSpeed()
                };

                // Alternate behaviors...

                /*
                 * var random = new Random();
                 * var behavior = new PatternBehavior(leds, Enumerable.Range(0, 5).Select(i => random.Next(511)))
                 *                 {
                 *                     Loop = Helpers.GetLoop(args),
                 *                     RoundTrip = Helpers.GetRoundTrip(args),
                 *                     Interval = Helpers.GetSpeed(args)
                 *                 };*/

                /*
                 * var behavior = new BlinkBehavior(leds)
                 *                 {
                 *                     Count = args.GetWidth(),
                 *                     Interval = args.GetSpeed()
                 *                 };*/

                // Declare input (switchButton) interacting with the leds behavior
                var switchButton = ConnectorPin.P1Pin03.Input()
                                   .Name("Switch")
                                   .Revert()
                                   .Switch()
                                   .Enable()
                                   .OnStatusChanged(b =>
                {
                    behavior.RoundTrip = !behavior.RoundTrip;
                    Console.WriteLine("Button switched {0}", b ? "on" : "off");
                });

                // Create connection
                Console.WriteLine("Running on Raspberry firmware rev{0}, board rev{1}, processor {2}", mainboard.Firmware, mainboard.Revision, mainboard.Processor);

                var settings = new GpioConnectionSettings {
                    Driver = driver
                };

                using (var connection = new GpioConnection(settings, leds))
                {
                    Console.WriteLine("Using {0}, frequency {1:0.##}hz", settings.Driver.GetType().Name, 1000.0 / args.GetSpeed());

                    Thread.Sleep(1000);

                    connection.Add(switchButton);
                    connection.Start(behavior); // Starting the behavior automatically registers the pins to the connection, if needed.

                    Console.ReadKey(true);

                    connection.Stop(behavior);
                }
            }
            catch (Exception ex)
            {
                var currentException = ex;
                while (currentException != null)
                {
                    Console.WriteLine("{0}: {1}", currentException.GetType().Name, currentException.Message);
                    currentException = currentException.InnerException;
                }
            }
        }