/// <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; } } }
/// <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)); }