Esempio n. 1
0
 private void Callback_Notify(object sender, WcfResultInfo e, int deviceNumber)
 {
     if (!_gameTimer.Enabled)
     {
         return;
     }
     if (!e.IsError)
     {
         var switchItem = e.Data.ToObject <SwitchItem>();
         if ((switchItem.SwitchNumber == _speedButtonItem.Number) && (deviceNumber == _speedButtonItem.DeviceNumber))
         {
             if (!_speedTimer.Enabled)
             {
                 _speedTimer.Start();
             }
         }
         else
         {
             var foodButtonItem = _foodButtonItems.FirstOrDefault(s => (s.Number == switchItem.SwitchNumber) && (s.DeviceNumber == deviceNumber));
             if (foodButtonItem != null)
             {
                 //Console.WriteLine(foodButtonItem.Number);
                 if (!_buttonTimer.Enabled)
                 {
                     _buttonTimer.Start();
                     var buttonIndex = _foodButtonItems.IndexOf(foodButtonItem);
                     var foodValue   = _foodValues[buttonIndex];
                     foodValue = foodValue == 10 ? 0 : foodValue + 1;
                     _foodValues[buttonIndex] = foodValue;
                     ArduinoHelper.ShowLed2(foodValue, buttonIndex);
                 }
             }
         }
     }
 }
Esempio n. 2
0
        private async void Callback_Notify(object sender, WcfResultInfo e)
        {
            if (!e.IsError)
            {
                var switchItem = e.Data.ToObject <SwitchItem>();
                if ((switchItem.SwitchNumber == 5) || (switchItem.SwitchNumber == 4))
                {
                    OnNotification(new NotificationEventArgs("开关编号:" + switchItem.SwitchNumber +
                                                             " 状态:" + (switchItem.SwitchStatus == SwitchStatus.NC ? "吸合" : "非吸合")));
                    if (_dicButtonItems.ContainsKey(switchItem.SwitchNumber))
                    {
                        CheckButtonItem buttonItem;
                        if (_dicButtonItems.TryGetValue(switchItem.SwitchNumber, out buttonItem))
                        {
                            buttonItem.IsPress = switchItem.SwitchStatus == SwitchStatus.NC;
                            if (_dicButtonItems.Values.All(s => s.IsPress))
                            {
                                PlayMusic0(SignKey, "line1.wav");
                            }
                        }

                        //if (!_dicButtonItems.TryAdd(switchItem.SwitchNumber, buttonItem))
                        //{
                        //    OnNotification(new NotificationEventArgs("开关编号:" + switchItem.SwitchNumber + "添加到集合失败,如果当前只需检测一个开关是否吸合,可以直接跳过。"));
                        //}
                        //else
                        //{
                        //    //var str = _dicButtonItems.Values.Aggregate(string.Empty, (current, checkButtonItem) => current + $"{checkButtonItem.ButtonItem.Number} {checkButtonItem.IsPressStatus} ");
                        //    //OnNotification(new NotificationEventArgs(str));
                        //}
                    }
                }
            }
        }
Esempio n. 3
0
 private void Callback_Notify(object sender, WcfResultInfo e)
 {
     if (!e.IsError)
     {
         var switchItem = e.Data.ToObject <SwitchItem>();
         if (_dicButtonItems.ContainsKey(switchItem.SwitchNumber))
         {
             CheckButtonItem buttonItem;
             _dicButtonItems.TryRemove(switchItem.SwitchNumber, out buttonItem);
             buttonItem.IsPress = switchItem.SwitchStatus == SwitchStatus.NC;
             if (!_dicButtonItems.TryAdd(switchItem.SwitchNumber, buttonItem))
             {
                 OnNotification(new NotificationEventArgs("开关编号:" + switchItem.SwitchNumber + "添加到集合失败,如果当前只需检测一个开关是否吸合,可以直接跳过。"));
             }
             else
             {
                 var str = _dicButtonItems.Values.Aggregate(string.Empty, (current, checkButtonItem) => current + $"{checkButtonItem.ButtonItem.Number} {checkButtonItem.IsPressStatus} ");
                 OnNotification(new NotificationEventArgs(str));
                 if (_dicButtonItems.Values.All(s => s.IsPress))
                 {
                     UnregButtonCheckNotification();
                     GameCompleted();
                     //return;
                 }
             }
         }
     }
 }
Esempio n. 4
0
 private void Callback_Notify(object sender, WcfResultInfo e)
 {
     lock (_lockObj)
     {
         if (e.IsError)
         {
             PostResult(false);
         }
         var switchItem = e.Data.ToObject <SwitchItem>();
         if (_raiseButtonItems.ContainsKey(switchItem.SwitchNumber))
         {
             _raiseButtonItems[switchItem.SwitchNumber] = true;
             var result = _raiseButtonItems.Values.All(s => s);
             if (result)
             {
                 PostResult(true);
             }
         }
         else
         {
             if (_allCheckButtonItems != null)
             {
                 var result = _allCheckButtonItems.Any(s => s.Number == switchItem.SwitchNumber);
                 if (result)
                 {
                     PostResult(false);
                 }
             }
         }
     }
 }
Esempio n. 5
0
        private void Callback_Notify(object sender, WcfResultInfo e)
        {
            if (e.IsError)
            {
                return;
            }
            var switchItem = e.Data.ToObject <SwitchItem>();

            OnNotifySwitchItem(switchItem);
        }
Esempio n. 6
0
 private void Callback_Notify(object sender, WcfResultInfo e)
 {
     lock (_lockObj)
     {
         if (_checkButtonItems != null)
         {
             if (e.IsError)
             {
                 PostResult(null);
             }
             var switchItem = e.Data.ToObject <SwitchItem>();
             var findItem   = _checkButtonItems.Find(s => s.Number == switchItem.SwitchNumber);
             if (findItem != null)
             {
                 PostResult(findItem);
             }
         }
     }
 }
Esempio n. 7
0
        private void Callback_Notify(object sender, WcfResultInfo e)
        {
            if (e.IsError)
            {
                return;
            }
            var switchItem = e.Data.ToObject <SwitchItem>();
            var stamp      = Guid.NewGuid();
            //Debug.WriteLine($"STAMP: {stamp.ToString().Remove(8)} SWITCHNUMBER: {switchItem.SwitchNumber} DEVICENUMBER: {_devicenumber} SWITCHSTATUS: {switchItem.SwitchStatus}");
            var switchItemWithDeviceNumber = new SwitchItemWithDeviceNumber
            {
                Stamp        = stamp,
                SwitchItem   = switchItem,
                DeviceNumber = _devicenumber
            };

            HitTaskCache.PushMessage(switchItemWithDeviceNumber);
            OnNotifySwitchItem();
        }
Esempio n. 8
0
        private async void Callback_Notify(object sender, WcfResultInfo e)
        {
            if (e.IsError)
            {
                return;
            }
            var switchItem = e.Data.ToObject <SwitchItem>();
            var buttonItem = ButtonItems.FirstOrDefault(s => s.Number == switchItem.SwitchNumber);

            if (buttonItem != null)
            {
                if (!_timer.Enabled)
                {
                    _timer.Start();
                }
                else
                {
                    return;
                }
                if (_isCompleted)
                {
                    return;
                }
                var findIndex  = ButtonItems.IndexOf(buttonItem) + 1;
                var sudokuData = _sudokuDatas.Find(s => s.ButtonIndex == findIndex);
                foreach (var relayIndex in sudokuData.RelayIndexs)
                {
                    await RelayItems[relayIndex - 1].Control();
                }
                await PlayMusic0(SignKey, "ding.wav");

                //await Task.Delay(1000);
                var result = RelayItems.All(s => s.IsNo);
                if (result)
                {
                    _isCompleted = true;
                    _manualResetEvent.Set();
                }
            }
        }
 protected virtual void OnNotify(WcfResultInfo e)
 {
     Notify?.Invoke(this, e);
 }
 public void NotifyMessage(WcfResultInfo wcfResutlInfo)
 {
     OnNotify(wcfResutlInfo);
 }