Exemple #1
0
        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);
        }
Exemple #2
0
        /// <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;
        }
Exemple #3
0
        /// <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;
        }
Exemple #4
0
        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);
        }
Exemple #5
0
        /// <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);
        }
Exemple #6
0
        /// <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);
        }
Exemple #7
0
        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;
            }
        }
Exemple #9
0
        /// <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);
            }
        }