Пример #1
0
 void Grid7LEDsCellValueChanged(object sender, DataGridViewCellEventArgs e)
 {
     if (e.RowIndex > -1)
     {
         LEDDisplayGroup ledDisplay = (LEDDisplayGroup)grid7LEDs.Rows[e.RowIndex].Tag;
         if (e.ColumnIndex == 0)
         {
             ledDisplay.ID = grid7LEDs.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString();
         }
         if (e.ColumnIndex == 1)
         {
             ledDisplay.Description = grid7LEDs.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString();
         }
     }
 }
        void Button1Click(object sender, EventArgs e)
        {
            string id = textBox2.Text;

            if (id == null || id.Trim().Length == 0)
            {
                MessageBox.Show(this, "Podany identyfikator jest niepoprawny.", "Uwaga", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                textBox2.Focus();
                return;
            }

            string description = textBox1.Text;

            if (comboBox1.SelectedIndex == -1)
            {
                MessageBox.Show(this, "Nie wybrano rodzaju wyrównania.", "Uwaga", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                comboBox1.Focus();
                return;
            }
            Align align = (Align)comboBox1.SelectedItem;

            if (comboBox2.SelectedIndex == -1)
            {
                MessageBox.Show(this, "Nie wybrano rodzaju przycięcia.", "Uwaga", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                comboBox2.Focus();
                return;
            }
            Trim trim = (Trim)comboBox2.SelectedItem;

            if (comboBox3.SelectedIndex == -1)
            {
                MessageBox.Show(this, "Nie wybrano rodzaju dołączenia.", "Uwaga", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                comboBox3.Focus();
                return;
            }
            Append append       = (Append)comboBox3.SelectedItem;
            string appendString = textBox3.Text;

            if (append != Append.None && appendString.Length == 0)
            {
                MessageBox.Show(this, "Nie wpisano ciągu dołączanego.", "Uwaga", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                textBox3.Focus();
                return;
            }
            if (listBox2.Items.Count == 0)
            {
                MessageBox.Show(this, "Nie wybrano wyświetlaczy.", "Uwaga", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }
            List <LEDDisplayInGroup> displays = new List <LEDDisplayInGroup>();

            for (int i = 0; i < listBox2.Items.Count; i++)
            {
                Output o = (Output)listBox2.Items[i];
                displays.Add(new LEDDisplayInGroup(o.DO, (byte)i));
            }

            if (LED7DisplayOutputSet == null)
            {
                LED7DisplayOutputSet = new LEDDisplayGroup();

                List <LEDDisplayGroup> groups = new List <LEDDisplayGroup>(_configuration.LEDDisplayGroups);
                groups.Add(LED7DisplayOutputSet);
                _configuration.LEDDisplayGroups = groups.ToArray();
            }

            LED7DisplayOutputSet.ID                 = id;
            LED7DisplayOutputSet.Description        = description;
            LED7DisplayOutputSet.Align              = align;
            LED7DisplayOutputSet.Trim               = trim;
            LED7DisplayOutputSet.Append             = append;
            LED7DisplayOutputSet.AppendString       = appendString;
            LED7DisplayOutputSet.LEDDisplaysInGroup = displays.ToArray();
            DialogResult = DialogResult.OK;
            Close();
        }
        public AddEdit7LEDDisplayGroupDialog(XMLConfiguration configuration, LEDDisplayGroup led7DisplayOutputSet)
        {
            //
            // The InitializeComponent() call is required for Windows Forms designer support.
            //
            InitializeComponent();

            _configuration       = configuration;
            LED7DisplayOutputSet = led7DisplayOutputSet;

            comboBox1.Items.Add(Align.Left);
            comboBox1.Items.Add(Align.Center);
            comboBox1.Items.Add(Align.Right);
            comboBox1.SelectedItem = Align.Left;
            comboBox2.Items.Add(Trim.Left);
            comboBox2.Items.Add(Trim.Right);
            comboBox2.SelectedItem = Trim.Right;
            comboBox3.Items.Add(Append.None);
            comboBox3.Items.Add(Append.Left);
            comboBox3.Items.Add(Append.Right);
            comboBox3.SelectedItem = Append.None;

            foreach (LEDDisplay dos in _configuration.LEDDisplays)
            {
                //if (!(dos is LED7DisplayOutputSet))
                {
                    listBox1.Items.Add(new Output()
                    {
                        DO = dos
                    });
                }
            }

            if (LED7DisplayOutputSet == null)
            {
                Text = "Dodaj nową grupę wyświetlaczy 7-LED";
            }
            else
            {
                Text = "Edytuj grupę wyświetlaczy 7-LED";
                Array.Sort(LED7DisplayOutputSet.LEDDisplaysInGroup);
                for (int i = 0; i < LED7DisplayOutputSet.LEDDisplays.Length; i++)
                {
                    for (int j = 0; j < listBox1.Items.Count; j++)
                    {
                        if (LED7DisplayOutputSet.LEDDisplays[i] == ((Output)listBox1.Items[j]).DO)
                        {
                            Output o = (Output)listBox1.Items[j];
                            listBox1.Items.Remove(o);
                            listBox2.Items.Add(o);
                            break;
                        }
                    }
                }
                textBox2.Text          = LED7DisplayOutputSet.ID;
                textBox1.Text          = LED7DisplayOutputSet.Description;
                comboBox1.SelectedItem = LED7DisplayOutputSet.Align;
                comboBox2.SelectedItem = LED7DisplayOutputSet.Trim;
                comboBox3.SelectedItem = LED7DisplayOutputSet.Append;
                textBox3.Text          = LED7DisplayOutputSet.AppendString;
            }
        }
        public static XMLConfiguration Load()
        {
            if (__instance != null)
            {
                return(__instance);
            }

            if (!File.Exists(ConfigurationFilePath))
            {
                throw new FileNotFoundException(ConfigurationFilePath);
            }
            XMLConfiguration c   = new XMLConfiguration();
            XmlDocument      xml = new XmlDocument();

            xml.Load(ConfigurationFilePath);

            // wczytanie interfejsów
            List <RS232Configuration> interfaces = new List <RS232Configuration>();
            XmlNodeList nodes = xml.SelectNodes("/configuration/interfaces/interface");

            if (nodes != null && nodes.Count > 0)
            {
                foreach (XmlNode node in nodes)
                {
                    RS232Configuration interf = RS232Configuration.Load(node);
                    interfaces.Add(interf);
                }
            }
            c.Interfaces = interfaces.ToArray();

            // wczytanie urządzeń z LCD
            List <LCDDevice> lcdDevices = new List <LCDDevice>();

            nodes = xml.SelectNodes("/configuration/lcdDevices/lcdDevice");
            if (nodes != null && nodes.Count > 0)
            {
                foreach (XmlNode node in nodes)
                {
                    LCDDevice lcdDevice = LCDDevice.Load(node, interfaces);
                    if (lcdDevice != null)
                    {
                        lcdDevices.Add(lcdDevice);
                    }
                }
            }
            c.LCDDevices = lcdDevices.ToArray();

            // wczytanie LCD
            List <RS232LCD> lcds = new List <RS232LCD>();

            nodes = xml.SelectNodes("/configuration/lcds/lcd");
            if (nodes != null && nodes.Count > 0)
            {
                foreach (XmlNode node in nodes)
                {
                    RS232LCD lcd = RS232LCD.Load(lcdDevices, node);
                    if (lcd != null)
                    {
                        lcds.Add(lcd);
                    }
                }
            }
            c.LCDs = lcds.ToArray();

            // wczytanie obszarów LCD
            List <LCDArea> areas = new List <LCDArea>();

            nodes = xml.SelectNodes("/configuration/lcdAreas/area");
            if (nodes != null && nodes.Count > 0)
            {
                foreach (XmlNode node in nodes)
                {
                    LCDArea area = new LCDArea(node, new LCDSet(lcds));
                    areas.Add(area);
                }
            }
            c.Areas = areas.ToArray();

            // wczytanie urządzeń z LED
            List <LEDDevice> ledDevices = new List <LEDDevice>();

            nodes = xml.SelectNodes("/configuration/ledDevices/ledDevice");
            if (nodes != null && nodes.Count > 0)
            {
                foreach (XmlNode node in nodes)
                {
                    LEDDevice ledDevice = LEDDevice.Load(node, interfaces);
                    if (ledDevice != null)
                    {
                        ledDevices.Add(ledDevice);
                    }
                }
            }
            c.LEDDevices = ledDevices.ToArray();

            // wczytanie LED
            List <LED> leds = new List <LED>();

            nodes = xml.SelectNodes("/configuration/leds/led");
            if (nodes != null && nodes.Count > 0)
            {
                foreach (XmlNode node in nodes)
                {
                    LED led = LED.Load(node, ledDevices);
                    if (led != null)
                    {
                        leds.Add(led);
                    }
                }
            }
            c.LEDs = leds.ToArray();

            // wczytanie obszarów LED
            List <LEDGroup> ledGroups = new List <LEDGroup>();

            nodes = xml.SelectNodes("/configuration/leds/leds");
            if (nodes != null && nodes.Count > 0)
            {
                foreach (XmlNode node in nodes)
                {
                    LEDGroup ledGroup = LEDGroup.Load(node, leds);
                    if (ledGroup != null)
                    {
                        ledGroups.Add(ledGroup);
                    }
                }
            }
            c.LEDGroups = ledGroups.ToArray();

            // wczytanie urządzeń z 7-LED
            List <LEDDisplayDevice> ledDisplayDevices = new List <LEDDisplayDevice>();

            nodes = xml.SelectNodes("/configuration/ledDisplayDevices/ledDisplayDevice");
            if (nodes != null && nodes.Count > 0)
            {
                foreach (XmlNode node in nodes)
                {
                    LEDDisplayDevice ledDisplayDevice = LEDDisplayDevice.Load(node, interfaces);
                    if (ledDisplayDevice != null)
                    {
                        ledDisplayDevices.Add(ledDisplayDevice);
                    }
                }
            }
            c.LEDDisplayDevices = ledDisplayDevices.ToArray();

            // wczytanie 7-LED
            List <LEDDisplay> ledDisplays = new List <LEDDisplay>();

            nodes = xml.SelectNodes("/configuration/ledDisplays/ledDisplay");
            if (nodes != null && nodes.Count > 0)
            {
                foreach (XmlNode node in nodes)
                {
                    LEDDisplay ledDisplay = LEDDisplay.Load(node, ledDisplayDevices);
                    if (ledDisplay != null)
                    {
                        ledDisplays.Add(ledDisplay);
                    }
                }
            }
            c.LEDDisplays = ledDisplays.ToArray();

            // wczytanie obszarów 7-LED
            List <LEDDisplayGroup> ledDisplayGroups = new List <LEDDisplayGroup>();

            nodes = xml.SelectNodes("/configuration/ledDisplays/ledDisplays");
            if (nodes != null && nodes.Count > 0)
            {
                foreach (XmlNode node in nodes)
                {
                    LEDDisplayGroup ledDisplayGroup = LEDDisplayGroup.Load(node, ledDisplays);
                    if (ledDisplayGroup != null)
                    {
                        ledDisplayGroups.Add(ledDisplayGroup);
                    }
                }
            }
            c.LEDDisplayGroups = ledDisplayGroups.ToArray();

            // wczytanie słownika dla wyświetlaczy 7-segmentowych
            XmlNode dictionaryNode = xml.SelectSingleNode("/configuration/ledDisplaysDictionary");

            c.LEDDisplaysDictionary = LEDDisplaysDictionary.Load(dictionaryNode);

            // wczytanie urządzeń Keys
            List <KeysDevice> keysDevices = new List <KeysDevice>();

            nodes = xml.SelectNodes("/configuration/keysDevices/keysDevice");
            if (nodes != null && nodes.Count > 0)
            {
                foreach (XmlNode node in nodes)
                {
                    KeysDevice keysDevice = KeysDevice.Load(node, interfaces);
                    if (keysDevice != null)
                    {
                        keysDevices.Add(keysDevice);
                    }
                }
            }
            c.KeysDevices = keysDevices.ToArray();

            // wczytanie keys
            List <Key> keys = new List <Key>();

            nodes = xml.SelectNodes("/configuration/keys/key");
            if (nodes != null && nodes.Count > 0)
            {
                foreach (XmlNode node in nodes)
                {
                    Key key = Key.Load(node, keysDevices);
                    if (key != null)
                    {
                        keys.Add(key);
                    }
                }
            }
            c.Keys = keys.ToArray();

            // wczytanie encoders
            List <Encoder> encoders = new List <Encoder>();

            nodes = xml.SelectNodes("/configuration/encoders/encoder");
            if (nodes != null && nodes.Count > 0)
            {
                foreach (XmlNode node in nodes)
                {
                    Encoder encoder = Encoder.Load(node, keysDevices);
                    if (encoder != null)
                    {
                        encoders.Add(encoder);

                        // przypisanie enkoderów do wejść (wykrywanie szybkiego kręcenia)
                        foreach (Key key in c.Keys)
                        {
                            if (key.KeysDevice == encoder.KeysDevice)
                            {
                                if (key.Index == encoder.LeftIndex || key.Index == encoder.RightIndex)
                                {
                                    key.Encoder = encoder;
                                }
                            }
                        }
                    }
                }
            }
            c.Encoders = encoders.ToArray();

            // wczytanie stepper motors
            List <StepperDevice> stepperDevices = new List <StepperDevice>();

            nodes = xml.SelectNodes("/configuration/stepperDevices/stepperDevice");
            if (nodes != null && nodes.Count > 0)
            {
                foreach (XmlNode node in nodes)
                {
                    StepperDevice stepperDevice = StepperDevice.Load(node, interfaces);
                    if (stepperDevice != null)
                    {
                        stepperDevices.Add(stepperDevice);
                    }
                }
            }
            c.StepperDevices = stepperDevices.ToArray();

            // wczytanie servo devices
            List <ServoDevice> servoDevices = new List <ServoDevice>();

            nodes = xml.SelectNodes("/configuration/servoDevices/servoDevice");
            if (nodes != null && nodes.Count > 0)
            {
                foreach (XmlNode node in nodes)
                {
                    ServoDevice servoDevice = ServoDevice.Load(node, interfaces);
                    if (servoDevice != null)
                    {
                        servoDevices.Add(servoDevice);
                    }
                }
            }
            c.ServoDevices = servoDevices.ToArray();


            __instance = c;

            return(__instance);
        }