Пример #1
0
 public void Update()
 {
     if (_fitnessRatingControlConsumer.isActive == false)
     {
         _fitnessRatingControlConsumer.Start();
     }
     else
     {
         _fitnessRatingControlConsumer.Stop();
     }
 }
Пример #2
0
        static void Main(string[] args)
        {
            BlockingCollection <VO2DataContainer> _vo2DataCollection = new BlockingCollection <VO2DataContainer>();
            ISensor randomSensor = new RandomSensor();
            IFitnessRatingCalculatorStrategy fitnessRatingCalculatorStrategy = new MaxFitnessRatingStrategy();

            //Read configuration from file
            Configuration systemConfiguration = ConfigurationSerialization.Load(@"..\..\..\fitnessRatingConfig.xml");
            var           vO2Sensor           = VO2SensorFactory.CreateVO2Sensor(systemConfiguration.VO2SensorType);


            //Initialize system
            //Producer
            VO2SensorProducer vO2SensorProducer = new VO2SensorProducer(_vo2DataCollection, randomSensor);

            //Consumer
            FitnessRatingControlConsumer fitnessRatingControlConsumer = new FitnessRatingControlConsumer(_vo2DataCollection, fitnessRatingCalculatorStrategy);

            var rapport =
                new RapportConcreteObserver(new MaxFitnessRatingStrategy(), fitnessRatingControlConsumer);


            //Run System
            Thread vO2SensorProducerThread            = new Thread(vO2SensorProducer.Run);
            Thread fitnessRatingControlConsumerThread = new Thread(fitnessRatingControlConsumer.Run);

            //Start threads
            vO2SensorProducerThread.Start();
            fitnessRatingControlConsumerThread.Start();


            //fitnessRatingControlConsumer.Detach(rapport);

            var cont = true;

            Console.WriteLine("Control Menu:");
            Console.WriteLine("-------------------");
            Console.WriteLine("[S]    Start");
            Console.WriteLine("[E]    Stop");
            Console.WriteLine("[A]    AverageFitnessRating");
            Console.WriteLine("[M]    MaxFitnessRating");


            while (cont)
            {
                var key = Console.ReadKey(true);
                switch (key.KeyChar)
                {
                case 's':
                case 'S':
                    fitnessRatingControlConsumer.Start();
                    break;

                case 'e':
                case 'E':
                    fitnessRatingControlConsumer.Stop();
                    break;

                case 'a':
                case 'A':
                    fitnessRatingControlConsumer._fitnessRatingCalculatorStrategy = new AverageFitnessRatingStrategy();
                    break;

                case 'm':
                case 'M':
                    fitnessRatingControlConsumer._fitnessRatingCalculatorStrategy = new MaxFitnessRatingStrategy();
                    break;
                }
            }

            Console.ReadKey();
        }