/// <summary>
        /// 控制右灯
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void ControlRightLed(object sender, RoutedEventArgs e)
        {
            if (RightStatus == false)
            {
                RightStatus = true;
            }
            else
            {
                RightStatus = false;
            }
            DoTaskParameterItem doTaskParameter           = null;
            Dictionary <string, DoTaskParameterItem> keys = TaskInoke.GetInterfaces();

            foreach (var item in keys)
            {
                if (item.Key.Contains("controlrightled"))
                {
                    doTaskParameter = item.Value;
                    doTaskParameter.Paramters[0].Value = RightStatus.ToString();
                    TaskInoke.DoInterface(doTaskParameter.Url, doTaskParameter);

                    break;
                }
            }
        }
        /// <summary>
        /// 垂直轴向下移动
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void MoveDown(object sender, RoutedEventArgs e)
        {
            //判断键盘按下是否是Ctrl键
            if ((Keyboard.Modifiers & ModifierKeys.Control) == ModifierKeys.Control)
            {
                distance = 50;
            }
            else
            {
                distance = 10;
            }
            DoTaskParameterItem doTaskParameter           = null;
            Dictionary <string, DoTaskParameterItem> keys = TaskInoke.GetInterfaces();

            foreach (var item in keys)
            {
                if (item.Key.Contains("movevectrialdown"))
                {
                    doTaskParameter = item.Value;
                    doTaskParameter.Paramters[0].Value = distance.ToString();
                    TaskInoke.DoInterface(doTaskParameter.Url, doTaskParameter);
                    distanceZ.Text = TaskInoke.GetVertical().ToString();
                    break;
                }
            }
        }
        /// <summary>
        /// 左右平台B向右移动
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void MoveB(object sender, RoutedEventArgs e)
        {
            if ((Keyboard.Modifiers & ModifierKeys.Control) == ModifierKeys.Control)
            {
                distance = 50;
            }
            else
            {
                distance = 10;
            }
            DoTaskParameterItem doTaskParameter           = null;
            Dictionary <string, DoTaskParameterItem> keys = TaskInoke.GetInterfaces();

            foreach (var item in keys)
            {
                if (item.Key.Contains("movehorizontalrightB"))
                {
                    doTaskParameter = item.Value;
                    doTaskParameter.Paramters[0].Value = distance.ToString();
                    TaskInoke.DoInterface(doTaskParameter.Url, doTaskParameter);
                    distanceBX.Text = TaskInoke.GetMoveB().ToString();
                    break;
                }
            }
        }
 /// <summary>
 /// 执行接口按钮
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void DoInterfaceClick(object sender, RoutedEventArgs e)
 {
     try
     {
         if (interfaceList.SelectedItem == null)
         {
             return;
         }
         DoTaskParameterItem taskinfo = ((KeyValuePair <string, DoTaskParameterItem>)interfaceList.SelectedItem).Value;
         Task task = new Task(obj => {
             try
             {
                 DoTaskParameterItem info = obj as DoTaskParameterItem;
                 var result = TaskInoke.DoInterface(info.Url, info);
                 this.Dispatcher.BeginInvoke(new Action <string>(s =>
                 {
                     resultBox.Text = s;
                 }), JsonConvert.SerializeObject(result).ToString());
             }
             catch (Exception ex)
             {
                 Log.error(ex);
             }
         }, taskinfo);
     }
     catch (Exception ex)
     {
         Log.error(ex);
     }
 }
        /// <summary>
        /// 全部复位
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void AllReset(object sender, RoutedEventArgs e)
        {
            try
            {
                DoTaskParameterItem doTaskParameter           = null;
                Dictionary <string, DoTaskParameterItem> keys = TaskInoke.GetInterfaces();
                foreach (var item in keys)
                {
                    if (item.Key.Contains("horizontalClampBtozero"))
                    {
                        doTaskParameter = item.Value;

                        TaskInoke.DoInterface(doTaskParameter.Url, doTaskParameter);
                        ElectriclDisB.Text = TaskInoke.GetMoClampB().ToString();
                    }
                    else if (item.Key.Contains("horizontalClampAtozero"))
                    {
                        doTaskParameter = item.Value;

                        TaskInoke.DoInterface(doTaskParameter.Url, doTaskParameter);
                        ElectriclDisA.Text = TaskInoke.GetMoClampA().ToString();
                    }
                    else if (item.Key.Contains("vectrialtozero"))
                    {
                        doTaskParameter = item.Value;

                        TaskInoke.DoInterface(doTaskParameter.Url, doTaskParameter);
                        distanceZ.Text = TaskInoke.GetVertical().ToString();
                    }
                    else if (item.Key.Contains("horizontalAtozero"))
                    {
                        doTaskParameter = item.Value;
                        TaskInoke.DoInterface(doTaskParameter.Url, doTaskParameter);
                        distanceAX.Text = TaskInoke.GetMoveA().ToString();
                    }
                    else if (item.Key.Contains("horizontalBtozero"))
                    {
                        doTaskParameter = item.Value;
                        TaskInoke.DoInterface(doTaskParameter.Url, doTaskParameter);
                        distanceBX.Text = TaskInoke.GetMoveB().ToString();
                    }
                }
            }
            catch (Exception ex)
            {
                Log.error("全部归位问题" + ex.Message);
            }
        }
        /// <summary>
        /// 左右平台B归零
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void RefreshB(object sender, RoutedEventArgs e)
        {
            DoTaskParameterItem doTaskParameter           = null;
            Dictionary <string, DoTaskParameterItem> keys = TaskInoke.GetInterfaces();

            foreach (var item in keys)
            {
                if (item.Key.Contains("horizontalBtozero"))
                {
                    doTaskParameter = item.Value;
                    TaskInoke.DoInterface(doTaskParameter.Url, doTaskParameter);
                    distanceBX.Text = TaskInoke.GetMoveB().ToString();
                    break;
                }
            }
        }
Example #7
0
        /// <summary>
        /// 执行接口
        /// </summary>
        /// <param name="url"></param>
        /// <param name="parameterItem"></param>
        /// <returns></returns>
        public object DoInterface(string url, DoTaskParameterItem parameterItem)
        {
            var method = parameterItem.Method;

            ParameterInfo[] parameterInfos = method.GetParameters();
            object[]        paras          = new object[parameterInfos.Length];
            foreach (ParameterInfo info in parameterInfos)
            {
                string valueMsg = parameterItem.GetValue(info.Name);
                if (info.ParameterType.IsValueType || info.ParameterType.FullName.Equals(typeof(string).FullName))
                {
                    paras[info.Position] = Convert.ChangeType(valueMsg, info.ParameterType);
                }
                else
                {
                    paras[info.Position] = JsonConvert.DeserializeObject(valueMsg, info.ParameterType);
                }
            }
            return(method.Invoke(this, paras));
        }