private DynamicLayout GenAFNPanel() { var vm = this._vm; var layout = new DynamicLayout(); layout.Bind((t) => t.Enabled, vm, v => v.AFNCrack.IsPanelEnabled); //layout.Bind((t) => t.Visible, vm, v => v.AFNCrack.IsPanelEnabled); layout.DefaultSpacing = new Size(4, 4); layout.DefaultPadding = new Padding(4); var wPerArea = new DoubleText(); wPerArea.Width = 250; wPerArea.ReservedText = ReservedText.Varies; wPerArea.SetDefault(_vm.AFNCrack.Default.FlowCoefficient); wPerArea.TextBinding.Bind(vm, _ => _.AFNCrack.FlowCoefficient.NumberText); layout.AddRow("Flow Coefficient:", wPerArea); var radFraction = new DoubleText(); radFraction.ReservedText = ReservedText.Varies; radFraction.SetDefault(_vm.AFNCrack.Default.FlowExponent); radFraction.TextBinding.Bind(vm, _ => _.AFNCrack.FlowExponent.NumberText); layout.AddRow("Flow Exponent:", radFraction); layout.AddRow(null); return(layout); }
/// <summary> /// 畑のサイズ設定変更後イベント /// </summary> /// <param name="sender">sender</param> /// <param name="e">e</param> private void evFarmSizeSettingChanged(object sender, EventArgs e) { DoubleText doubleText = null; SettingData setting = SettingData.GetInstance(); // 畑の縦 doubleText = (DoubleText)pnlSetting.Controls[2]; setting.FarmSize.Vertical = doubleText.Value; // 畑の横 doubleText = (DoubleText)pnlSetting.Controls[3]; setting.FarmSize.Horizontal = doubleText.Value; }
/// <summary> /// ロボットサイズ設定変更後イベント /// </summary> /// <param name="sender">sender</param> /// <param name="e">e</param> private void evRobotSizeSettingChanged(object sender, EventArgs e) { DoubleText doubleText = null; SettingData setting = SettingData.GetInstance(); // ロボットの縦 doubleText = (DoubleText)pnlSetting.Controls[0]; setting.RobotSize.Vertical = doubleText.Value; // ロボットの横 doubleText = (DoubleText)pnlSetting.Controls[1]; setting.RobotSize.Horizontal = doubleText.Value; }
private DynamicLayout CreateOutdoorLayout() { var layout = new DynamicLayout(); layout.DefaultSpacing = new Size(4, 4); layout.Bind(_ => _.Enabled, _vm, _ => _.IsOutdoorBoundary); var sun_CB = new CheckBox() { Text = "Sun Exposure" }; sun_CB.CheckedBinding.Bind(_vm, _ => _.BCOutdoor.SunExposure.IsChecked); var wind_CB = new CheckBox() { Text = "Wind Exposure" }; wind_CB.CheckedBinding.Bind(_vm, _ => _.BCOutdoor.WindExposure.IsChecked); layout.AddRow(sun_CB); layout.AddRow(wind_CB); var vFactor = new DoubleText(); vFactor.ReservedText = ReservedText.Varies; vFactor.SetDefault(0); vFactor.TextBinding.Bind(_vm, _ => _.BCOutdoor.ViewFactor.NumberText); vFactor.Bind(_ => _.Enabled, _vm, _ => _.BCOutdoor.IsViewFactorInputEnabled); var autosize = new CheckBox() { Text = "Autocalculate" }; autosize.Bind(_ => _.Checked, _vm, _ => _.BCOutdoor.IsViewFactorAutocalculate); layout.AddRow(autosize); layout.AddRow(vFactor); layout.AddRow("View Factor:"); layout.AddRow(autosize); layout.AddRow(vFactor); return(layout); }
/// <summary> /// 設定更新 /// </summary> private void updateSettings() { SettingData setting = SettingData.GetInstance(); DoubleText doubleText = null; // ロボットの縦 doubleText = (DoubleText)pnlSetting.Controls[0]; doubleText.Value = setting.RobotSize.Vertical; // ロボットの横 doubleText = (DoubleText)pnlSetting.Controls[1]; doubleText.Value = setting.RobotSize.Horizontal; // 畑の縦 doubleText = (DoubleText)pnlSetting.Controls[2]; doubleText.Value = setting.FarmSize.Vertical; // 畑の横 doubleText = (DoubleText)pnlSetting.Controls[3]; doubleText.Value = setting.FarmSize.Horizontal; // 草刈り開始時刻 usrKusakariStart.DayOfWeek = (int)setting.KusakariStart.DayOfWeek; usrKusakariStart.Hour = setting.KusakariStart.Hour; usrKusakariStart.Minute = setting.KusakariStart.Minulte; // 夜警開始時刻 usrYakeiStart.DayOfWeek = (int)setting.YakeiStart.DayOfWeek; usrYakeiStart.Hour = setting.YakeiStart.Hour; usrYakeiStart.Minute = setting.YakeiStart.Minulte; // 動作完了判定閾値 FloatText floatText = (FloatText)pnlSetting.Controls[4]; floatText.Value = setting.MoveEndRate * 100; // エリアマップ生成 AreaMap areaMap = AreaMap.GetInstance(); areaMap.Allocate(setting.MapLength, setting.MapWidth); // 動作マップ生成 MoveMap moveMap = MoveMap.GetInstance(); moveMap.Allocate(setting.MapLength, setting.MapWidth); }
/// <summary> /// 設定タブ初期化 /// </summary> private void initSettingTab() { DoubleText doubleText = null; usrCommControl.OnConnected += onConnected; usrCommControl.OnDisconnection += onDisconnection; // ロボットの長さ doubleText = new DoubleText(0.1, 10000); doubleText.Title = "ロボットサイズ(縦)"; doubleText.Unit = "mm"; pnlSetting.Controls.Add(doubleText); pnlSetting.Controls.SetChildIndex(doubleText, 0); // ロボットの幅 doubleText = new DoubleText(0.1, 10000); doubleText.Title = "ロボットサイズ(横)"; doubleText.Unit = "mm"; pnlSetting.Controls.Add(doubleText); pnlSetting.Controls.SetChildIndex(doubleText, 1); // 畑の長さ doubleText = new DoubleText(0.1, 10000); doubleText.Title = "畑サイズ(縦)"; doubleText.Unit = "mm"; pnlSetting.Controls.Add(doubleText); pnlSetting.Controls.SetChildIndex(doubleText, 2); // 畑の幅 doubleText = new DoubleText(0.1, 10000); doubleText.Title = "畑サイズ(横)"; doubleText.Unit = "mm"; pnlSetting.Controls.Add(doubleText); pnlSetting.Controls.SetChildIndex(doubleText, 3); // 動作完了判定閾値 FloatText floatText = new FloatText(0.0F, 100.0F); floatText.Title = "動作完了判定割合"; floatText.Unit = "%"; pnlSetting.Controls.Add(floatText); pnlSetting.Controls.SetChildIndex(floatText, 4); }
private GroupBox GenVentPanel() { var vm = this._vm; var layout = new DynamicLayout(); layout.Bind((t) => t.Enabled, vm, v => v.VentilationOpening.IsPanelEnabled); //layout.Bind((t) => t.Visible, vm, v => v.VentilationOpening.IsPanelEnabled); // double fractionAreaOperable = 0.5, double fractionHeightOperable = 1, double dischargeCoefficient = 0.45, // bool windCrossVent = false, double flowCoefficientClosed = 0, double flowExponentClosed = 0.65, double twoWayThreshold = 0.0001 layout.DefaultSpacing = new Size(4, 4); layout.DefaultPadding = new Padding(4); var wPerArea = new DoubleText(); wPerArea.Width = 250; wPerArea.ReservedText = ReservedText.Varies; wPerArea.SetDefault(_vm.VentilationOpening.Default.FractionAreaOperable); wPerArea.TextBinding.Bind(vm, _ => _.VentilationOpening.FractionAreaOperable.NumberText); layout.AddRow("Fraction Area Operable:"); layout.AddRow(wPerArea); var radFraction = new DoubleText(); radFraction.ReservedText = ReservedText.Varies; radFraction.SetDefault(_vm.VentilationOpening.Default.FractionHeightOperable); radFraction.TextBinding.Bind(vm, _ => _.VentilationOpening.FractionHeightOperable.NumberText); layout.AddRow("Fraction Height Operable:"); layout.AddRow(radFraction); var visFraction = new DoubleText(); visFraction.ReservedText = ReservedText.Varies; visFraction.SetDefault(_vm.VentilationOpening.Default.DischargeCoefficient); visFraction.TextBinding.Bind(vm, _ => _.VentilationOpening.DischargeCoefficient.NumberText); layout.AddRow("Discharge Coefficient:"); layout.AddRow(visFraction); var autosize = new CheckBox() { Text = "WindCrossVent" }; autosize.CheckedBinding.Bind(_vm, _ => _.VentilationOpening.WindCrossVent.IsChecked); layout.AddRow(autosize); var airFraction = new DoubleText(); airFraction.ReservedText = ReservedText.Varies; airFraction.SetDefault(_vm.VentilationOpening.Default.FlowCoefficientClosed); airFraction.TextBinding.Bind(vm, _ => _.VentilationOpening.FlowCoefficientClosed.NumberText); layout.AddRow("Flow Coefficient Closed:"); layout.AddRow(airFraction); var delta = new DoubleText(); delta.ReservedText = ReservedText.Varies; delta.SetDefault(_vm.VentilationOpening.Default.FlowExponentClosed); delta.TextBinding.Bind(vm, _ => _.VentilationOpening.FlowExponentClosed.NumberText); layout.AddRow("Flow Exponent Closed:"); layout.AddRow(delta); var twoWay = new DoubleText(); twoWay.ReservedText = ReservedText.Varies; twoWay.SetDefault(_vm.VentilationOpening.Default.TwoWayThreshold); twoWay.TextBinding.Bind(vm, _ => _.VentilationOpening.TwoWayThreshold.NumberText); layout.AddRow("Two Way Threshold:"); layout.AddRow(twoWay); layout.AddRow(null); var ltnByProgram = new CheckBox() { Text = ReservedText.NoControl }; ltnByProgram.CheckedBinding.Bind(vm, _ => _.VentilationOpening.IsCheckboxChecked); var gp = new GroupBox() { Text = "Ventilation Opening", Height = 500 }; gp.Content = new StackLayout(ltnByProgram, layout) { Spacing = 4, Padding = new Padding(4) }; return(gp); }
private void OnSelectedChanged(object sender, GraphicController selected) { if (selected != null && (selected.Graphic is SingleText || selected.Graphic is DoubleText)) { Visibility = Visibility.Visible; if (selected.Graphic is SingleText) { SingleText singleText = (SingleText)selected.Graphic; lineOneText1.Text = singleText.TextStorage[0]; lineOneText2.Text = singleText.TextStorage[2]; lineOneText3.Text = singleText.TextStorage[4]; switch (singleText.SelectedIndex) { case 0: { radioButton1.IsChecked = true; break; } case 1: { radioButton2.IsChecked = true; break; } case 2: { radioButton3.IsChecked = true; break; } } lineTwoText1.Visibility = Visibility.Collapsed; lineTwoText2.Visibility = Visibility.Collapsed; lineTwoText3.Visibility = Visibility.Collapsed; } else { DoubleText doubleText = (DoubleText)selected.Graphic; lineOneText1.Text = doubleText.TextStorage[0]; lineOneText2.Text = doubleText.TextStorage[2]; lineOneText3.Text = doubleText.TextStorage[4]; lineTwoText1.Text = doubleText.TextStorage[1]; lineTwoText2.Text = doubleText.TextStorage[3]; lineTwoText3.Text = doubleText.TextStorage[5]; switch (doubleText.SelectedIndex) { case 0: { radioButton1.IsChecked = true; break; } case 1: { radioButton2.IsChecked = true; break; } case 2: { radioButton3.IsChecked = true; break; } } lineTwoText1.Visibility = Visibility.Visible; lineTwoText2.Visibility = Visibility.Visible; lineTwoText3.Visibility = Visibility.Visible; } } else { Visibility = Visibility.Collapsed; } }
/// <summary> /// 設定変更ボタンクリックイベント /// </summary> /// <param name="sender">sender</param> /// <param name="e">e</param> private void btnSettingChange_Click(object sender, EventArgs e) { SettingData setting = SettingData.GetInstance(); DoubleText verticalText = null; DoubleText horizontalText = null; verticalText = (DoubleText)pnlSetting.Controls[0]; horizontalText = (DoubleText)pnlSetting.Controls[1]; if ((verticalText.Value != setting.RobotSize.Vertical) || (horizontalText.Value != setting.RobotSize.Horizontal)) { SizeData size = new SizeData(); size.Vertical = verticalText.Value; size.Horizontal = horizontalText.Value; SetRobotSizeSettingCommand command = new SetRobotSizeSettingCommand(size); command.OnAnalyzed += evRobotSizeSettingChanged; usrCommControl.Send(command); } verticalText = (DoubleText)pnlSetting.Controls[2]; horizontalText = (DoubleText)pnlSetting.Controls[3]; if ((verticalText.Value != setting.FarmSize.Vertical) || (horizontalText.Value != setting.FarmSize.Horizontal)) { SizeData size = new SizeData(); size.Vertical = verticalText.Value; size.Horizontal = horizontalText.Value; SetFarmSizeSettingCommand command = new SetFarmSizeSettingCommand(size); command.OnAnalyzed += evFarmSizeSettingChanged; usrCommControl.Send(command); } if ((setting.KusakariStart.DayOfWeek != (DateTimeSetting.DayOfWeekEnum)usrKusakariStart.DayOfWeek) || (setting.KusakariStart.Hour != usrKusakariStart.Hour) || (setting.KusakariStart.Minulte != usrKusakariStart.Minute)) { DateTimeSetting dt = new DateTimeSetting(); dt.DayOfWeek = (DateTimeSetting.DayOfWeekEnum)usrKusakariStart.DayOfWeek; dt.Hour = usrKusakariStart.Hour; dt.Minulte = usrKusakariStart.Minute; SetStartTimeSettingCommand command = new SetStartTimeSettingCommand(SetStartTimeSettingCommand.ModeEnum.Kusakari, dt); command.OnAnalyzed += evKusakariStartSettingChanged; usrCommControl.Send(command); } if ((setting.YakeiStart.DayOfWeek != (DateTimeSetting.DayOfWeekEnum)usrYakeiStart.DayOfWeek) || (setting.YakeiStart.Hour != usrYakeiStart.Hour) || (setting.YakeiStart.Minulte != usrYakeiStart.Minute)) { DateTimeSetting dt = new DateTimeSetting(); dt.DayOfWeek = (DateTimeSetting.DayOfWeekEnum)usrYakeiStart.DayOfWeek; dt.Hour = usrYakeiStart.Hour; dt.Minulte = usrYakeiStart.Minute; SetStartTimeSettingCommand command = new SetStartTimeSettingCommand(SetStartTimeSettingCommand.ModeEnum.Yakei, dt); command.OnAnalyzed += evYakeiStartSettingChanged; usrCommControl.Send(command); } FloatText moveEndRateText = (FloatText)pnlSetting.Controls[4]; float rate = moveEndRateText.Value / 100.0F; if (setting.MoveEndRate != rate) { SetMoveEndRateCommand command = new SetMoveEndRateCommand(rate); command.OnAnalyzed += evMoveEndRateSettingChanged; usrCommControl.Send(command); } }