Beispiel #1
0
        /// <summary>
        /// Initializes a new instance of the <see cref="CaduhdApp"/> class.
        /// </summary>
        /// <param name="handsAnalyzer">A hands analyzer.</param>
        /// <param name="skinColorHandsDetector">A skin color based hands detector.</param>
        /// <param name="drone">A drone.</param>
        /// <param name="droneControllerKeyInputEvaluator">A drone controller key input evaluator.</param>
        /// <param name="droneControllerHandsInputEvaluator">A drone controller hands input evaluator.</param>
        public CaduhdApp(
            IHandsAnalyzer handsAnalyzer,
            ISkinColorHandsDetector skinColorHandsDetector,
            AbstractDrone drone,
            IDroneControllerKeyInputEvaluator droneControllerKeyInputEvaluator,
            IDroneControllerHandsInputEvaluator droneControllerHandsInputEvaluator)
        {
            this.isWebCameraFrameProcessorBusy = 0;

            this.handsAnalyzer          = handsAnalyzer;
            this.skinColorHandsDetector = skinColorHandsDetector;

            if (drone is IStreamer streamer)
            {
                streamer.NewCameraFrame += this.StreamerNewCameraFrame;
            }

            if (drone is IStateful stateful)
            {
                stateful.StateChanged += this.StatefulStateChanged;
            }

            this.handsDroneController = new HandsDroneController(drone, droneControllerHandsInputEvaluator, droneControllerKeyInputEvaluator);
        }
Beispiel #2
0
 /// <summary>
 /// Initializes a new instance of the <see cref="KeyboardDroneController"/> class.
 /// </summary>
 /// <param name="drone">The <see cref="AbstractDrone"/> drone that we would like to control with this controller.</param>
 /// <param name="keyInputEvaluator">The desired implementation of the <see cref="IDroneControllerKeyInputEvaluator"/> interface.</param>
 public KeyboardDroneController(AbstractDrone drone, IDroneControllerKeyInputEvaluator keyInputEvaluator)
     : base(drone)
 {
     this.keyInputEvaluator = keyInputEvaluator;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="HandsDroneController"/> class.
 /// </summary>
 /// <param name="drone">The <see cref="AbstractDrone"/> drone that we would like to control with this controller.</param>
 /// <param name="handsInputEvaluator">The desired implementation of the <see cref="IDroneControllerHandsInputEvaluator"/> interface.</param>
 /// <param name="keyInputEvaluator">The desired implementation of the <see cref="IDroneControllerKeyInputEvaluator"/> interface.</param>
 public HandsDroneController(AbstractDrone drone, IDroneControllerHandsInputEvaluator handsInputEvaluator, IDroneControllerKeyInputEvaluator keyInputEvaluator)
     : base(drone, keyInputEvaluator)
 {
     this.handsInputEvaluator = handsInputEvaluator;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="AbstractDroneController"/> class.
 /// </summary>
 /// <param name="drone">The <see cref="AbstractDrone"/> that we would like to control with this controller.</param>
 public AbstractDroneController(AbstractDrone drone)
 {
     this.drone = drone;
     this.lastCommandSentToDrone = null;
 }