public RegistersActionWindow(IModbusRegistersAction action, ValueTypeMode mode) { InitializeComponent(); actionView.RefreshWith(action, mode); actionView.OkPressed += (a) => { this.DialogResult = true; }; actionView.CancelPressed += () => { this.DialogResult = false; }; }
public void RefreshWith(NModbusWrapper.ValueType valueType, ushort length, ValueTypeMode mode) { lblDescription.Content = Enum.GetName(typeof(NModbusWrapper.ValueType), valueType); if (valueType == NModbusWrapper.ValueType.String) { lblDescription.Content = lblDescription.Content.ToString() + ", " + length.ToString() + " символов"; } ValueType = valueType; Length = length; _mode = mode; }
public void RefreshWith(IModbusRegistersAction action, ValueTypeMode mode) { _mode = mode; _action = action; transportView.RefreshWith(action.Manager.Transport); if (mode == ValueTypeMode.All) { valueTypeView.RefreshWith(action.ModbusValueType, action.WriteReadLength, mode); } else if (mode == ValueTypeMode.String && action.ModbusValueType != NModbusWrapper.ValueType.String) { valueTypeView.RefreshWith(NModbusWrapper.ValueType.String, action.WriteReadLength, mode); } else if (mode == ValueTypeMode.Numeric && action.ModbusValueType == NModbusWrapper.ValueType.String) { valueTypeView.RefreshWith(NModbusWrapper.ValueType.Double, action.WriteReadLength, mode); } else { valueTypeView.RefreshWith(action.ModbusValueType, action.WriteReadLength, mode); } tbAddress.Text = action.SlaveAddress.ToString(); tbCoil.Text = action.RegisterAddress.ToString(); _selectedRegistersMode = action.RegistersMode; if (_selectedRegistersMode == RegistersMode.Holding) { btRegistersModeHolding.Selected = true; } else { btRegistersModeInput.Selected = true; } ReInitializeMaxAndMin(); if (valueTypeView.ValueType != NModbusWrapper.ValueType.String && _mode != ValueTypeMode.String && action.ValueType is FloatValueType floatValueType) { tbMax.Text = floatValueType.Max.ToString(); tbMin.Text = floatValueType.Min.ToString(); } }
public static void Show(Grid parent, NModbusWrapper.ValueType valueType, ushort length, Action <NModbusWrapper.ValueType, ushort> callback, ValueTypeMode mode) { var control = new ModbusValueTypeSelectionView(length, valueType, mode); var dialog = new DialogView(control); control.OkPressed += () => { callback?.Invoke(control.GetValueType(), control.GetValueLength()); dialog.Close(); }; control.SetValueType(valueType); control.SetValueLength(length); control.CancelPressed += () => dialog.Close(); dialog.Show(parent); }
public ModbusValueTypeSelectionView(ushort length, NModbusWrapper.ValueType valueType, ValueTypeMode mode) { InitializeComponent(); lvItems.SelectionChanged += (o, e) => { btOk.IsEnabled = lvItems.SelectedItem != null; if (lvItems.SelectedItem != null && ((ItemView)lvItems.SelectedItem).Tag.ToString().Equals("String")) { spStringLength.Visibility = Visibility.Visible; } else { spStringLength.Visibility = Visibility.Collapsed; } }; if (mode == ValueTypeMode.String) { lvItems.GetItems().Where(x => ((ItemView)x).Tag.ToString() != "String").ToList() .ForEach(x => ((ItemView)x).IsEnabled = false); } else if (mode == ValueTypeMode.Numeric) { lvItems.GetItems().Where(x => ((ItemView)x).Tag.ToString() == "String").ToList() .ForEach(x => ((ItemView)x).IsEnabled = false); } tbLength.Validation = EntryViewValidation.UShortValidation(min: 1); btCancel.Click += (o, e) => CancelPressed?.Invoke(); btOk.Click += (o, e) => OkPressed?.Invoke(); }