Example #1
0
 private void UpdateForm_Click(object sender, RoutedEventArgs e)
 {
     if (e.Source is ViewShield)
     {
         ViewShield selectedButton = (ViewShield)e.Source;
         cBoxSType.Text             = selectedButton.SType;
         cBoxSNum.Text              = selectedButton.SNum.ToString();
         btnAddDevice.IsEnabled     = true;
         btnDelDevice.IsEnabled     = true;
         btnEditDevice.IsEnabled    = false;
         btnEditDeviceAdr.IsEnabled = false;
         TempShieldNum              = selectedButton.SNum;
         btnEditShield.IsEnabled    = true;
         EditShielNum_Label.Content = $"Изм. номер шкафа {selectedButton.SType} {selectedButton.SNum}?";
     }
     else if (e.Source is ViewDevice)
     {
         this.SelectedDevice     = (ViewDevice)e.Source;
         cBoxDType.Text          = SelectedDevice.Header.DeviceType;
         cBoxDNum.Text           = SelectedDevice.Header.DeviceAddress.ToString();
         cBoxDBaud.Text          = SelectedDevice.Header.DeviceBaudRate.ToString();
         cBoxDParity.Text        = SelectedDevice.Header.DeviceParity;
         btnEditDevice.IsEnabled = true;
         StackPanel selectedPanel  = (StackPanel)SelectedDevice.Parent;
         ViewShield selectedShield = (ViewShield)selectedPanel.Parent;
         cBoxSType.Text              = selectedShield.SType;
         cBoxSNum.Text               = selectedShield.SNum.ToString();
         TempDeviceAdr               = SelectedDevice.Header.DeviceAddress;
         btnEditDeviceAdr.IsEnabled  = true;
         EditDeviceAdr_Label.Content = $"Изм. адрес {SelectedDevice.Header.DeviceAddress} ({SelectedDevice.Header.DeviceType})?";
     }
 }
Example #2
0
        public void Read(string path, WrapPanel config, RoutedEventHandler UpdateForm_Click)
        {
            FileStream    stream     = File.OpenRead(path);
            XmlSerializer serializer = new XmlSerializer(typeof(Shield[]));

            Shield[] tempShield = (Shield[])serializer.Deserialize(stream);
            config.Children.Clear();

            foreach (Shield s in tempShield)
            {
                ViewShield tempViewShield = new ViewShield(s.ShieldName, s.ShieldNumber, UpdateForm_Click);
                config.Children.Add(tempViewShield);
                foreach (Device d in s.Devices)
                {
                    Header tempHeader = new Header();
                    tempHeader.DeviceType     = d.Header.DeviceType;
                    tempHeader.DeviceAddress  = d.Header.DeviceAddress;
                    tempHeader.DeviceBaudRate = d.Header.DeviceBaudRate;
                    tempHeader.DeviceParity   = d.Header.DeviceParity;
                    tempHeader.ShieldName     = s.ShieldName;
                    tempHeader.ShieldNumber   = s.ShieldNumber;

                    tempViewShield.AddDevice(d.Header.DeviceType, d.Header.DeviceAddress, d.Header.DeviceBaudRate, d.Header.DeviceParity, UpdateForm_Click);
                    int countDevice = tempViewShield.ShieldPanel.Children.Count;
                    foreach (Signal sg in d.DeviceSignal)
                    {
                        Signal tempSignal = new Signal();
                        tempSignal.FunctionCode    = sg.FunctionCode;
                        tempSignal.SignalName      = sg.SignalName;
                        tempSignal.DataType        = sg.DataType;
                        tempSignal.RegisterAddress = sg.RegisterAddress;
                        tempSignal.BitNumber       = sg.BitNumber;
                        ((ViewDevice)tempViewShield.ShieldPanel.Children[countDevice - 1]).Signal.Add(tempSignal);
                    }
                    ((ViewDevice)tempViewShield.ShieldPanel.Children[countDevice - 1]).ChangeFace();
                }
            }
        }