Ejemplo n.º 1
0
 /// <summary>
 /// Called when [sensor impact].
 /// </summary>
 /// <param name="sensorImpactData">The sensor impact data.</param>
 private void OnSensorHit(ReceiverEvents.SensorHit e)
 {
     if (_config.SpeakImpactLevelEnabled)
     {
         lock (_speechSynthesizer)
         {
             _speechSynthesizer.SpeakAsyncCancelAll();
             _speechSynthesizer.SpeakAsync(e.ImpactLevel.ToString());
         }
     }
 }
Ejemplo n.º 2
0
 public KickAndPunch(
     ReceiverEvents.DeviceRegistered deviceRegisteredEvent,
     ReceiverEvents.ButtonPressed buttonPressedEvent,
     ReceiverEvents.RegisterDevice registerDeviceRequest,
     ReceiverEvents.SensorHit deviceSensorHit,
     ReceiverEvents.DeviceStatusUpdate deviceStatusNotify,
     ApplicationEvents.ApplicationClosing appClosingEvent)
 {
     this.deviceRegisteredEvent = deviceRegisteredEvent;
     this.buttonPressedEvent = buttonPressedEvent;
     this.registerDeviceRequest = registerDeviceRequest;
     this.deviceSensorHit = deviceSensorHit;
     this.deviceStatusNotify = deviceStatusNotify;
     this.appClosingEvent = appClosingEvent;
 }
Ejemplo n.º 3
0
 public KickAndPunch(
     ReceiverEvents.DeviceRegistered deviceRegisteredEvent,
     ReceiverEvents.ButtonPressed buttonPressedEvent,
     ReceiverEvents.RegisterDevice registerDeviceRequest,
     ReceiverEvents.SensorHit deviceSensorHit,
     ReceiverEvents.DeviceStatusUpdate deviceStatusNotify,
     ApplicationEvents.ApplicationClosing appClosingEvent)
 {
     this.deviceRegisteredEvent = deviceRegisteredEvent;
     this.buttonPressedEvent    = buttonPressedEvent;
     this.registerDeviceRequest = registerDeviceRequest;
     this.deviceSensorHit       = deviceSensorHit;
     this.deviceStatusNotify    = deviceStatusNotify;
     this.appClosingEvent       = appClosingEvent;
 }
Ejemplo n.º 4
0
 /// <summary>
 /// Called when [sensor impact].
 /// </summary>
 /// <param name="sensorImpactData">The sensor impact data.</param>
 private void OnSensorHit(ReceiverEvents.SensorHit e)
 {
     if (_clockState == CountDownClockEvents.StateChangedArgs.Running)
     {
         if (e.ImpactLevel >= _config.RequiredImpactLevel)
         {
             ScoreModel scoreModel = _container.Resolve <ScoreModel>(e.SensorId);
             uint       oldScore   = scoreModel.Value;
             scoreModel.Value++;
             _logger.Log(string.Format("Meter Id {0} score now {1}", e.SensorId, scoreModel.Value), Category.Info, Priority.None);
             _eventAggregator.GetEvent <GameEngineEvents.ScoreChanged>().Publish(
                 new GameEngineEvents.ScoreChanged()
             {
                 SensorId = e.SensorId, ImpactLevel = e.ImpactLevel, OldScore = oldScore, NewScore = scoreModel.Value
             });
         }
     }
 }
Ejemplo n.º 5
0
        /// <summary>
        /// Called when sensor impact is received.
        /// </summary>
        /// <param name="sensorImpactData">The sensor impact data.</param>
        private void OnSensorHit(ReceiverEvents.SensorHit e)
        {
            if (e.SensorId == this.Id)
            {
                this.ImpactLevel = e.ImpactLevel;
                this.HitPanelNum = (int)e.Panel;

                if (e.ImpactLevel > this.HighestImpactLevel)
                {
                    this.HighestImpactLevel = e.ImpactLevel;
                }

                // Update history
                while (_graphDataItems.Count >= 10)
                {
                    _graphDataItems.RemoveAt(0);
                }
                _graphDataItems.Add(e.ImpactLevel);
            }
        }
Ejemplo n.º 6
0
 /// <summary>
 /// Called when [sensor impact].
 /// </summary>
 /// <param name="sensorImpactData">The sensor impact data.</param>
 private void OnSensorHit(ReceiverEvents.SensorHit e)
 {
     if (_clockRunning)
     {
         using (ReaderWriterLockMgr lockMgr = new ReaderWriterLockMgr(_dataLog.Impacts.Lock))
         {
             lockMgr.EnterWriteLock();
             _dataLog.Impacts.AddImpactsRow(
                 DateTime.Now,                                                                   // Current datetime stamp
                 e.SensorId,                                                                     // Sensor ID
                 _game.GameNumber,                                                               // Game number
                 _game.RoundNumber,                                                              // Round number
                 DateTime.Now - _countdownStartedTime,                                           // Elapsed time
                 (_meterNames.ContainsKey(e.SensorId) ? _meterNames[e.SensorId] : string.Empty), // Meter Name
                 e.OpCode,                                                                       // Data Source Type
                 _config.RequiredImpactLevel,                                                    // required impact level
                 e.ImpactLevel,                                                                  // Actual impact level
                 e.Panel.ToString()                                                              // Sensor panel
                 );
         }
     }
 }
 /// <summary>
 /// Called when [sensor impact].
 /// </summary>
 /// <param name="sensorImpactData">The sensor impact data.</param>
 private void OnSensorHit(ReceiverEvents.SensorHit e)
 {
     if (StopWatchService.IsRunning)
     {
         using (ReaderWriterLockMgr lockMgr = new ReaderWriterLockMgr(GameDataLog.Impacts.Lock))
         {
             lockMgr.EnterWriteLock();
             GameDataLog.Impacts.AddImpactsRow(
                 DateTime.Now,                                       // Current datetime stamp
                 e.SensorId,                                         // Sensor ID
                 ScoreKeeperService.GameNumber,                      // Game number
                 ScoreKeeperService.RoundNumber,                     // Round number
                 StopWatchService.DisplayTime,                       // Elapsed time
                 ScoreKeeperService[e.SensorId].DisplayName,         // Competitor Name
                 e.OperationCode,                                    // Data Source Type
                 ScoreKeeperService[e.SensorId].RequiredImpactLevel, // Required impact level
                 e.ImpactLevel,                                      // Actual impact level
                 e.Panel.ToString()                                  // Sensor panel
                 );
         }
         this.DataWriterTimer.Start();
     }
 }