public async Task ColorEntireLEDStrip(Button SenderButton) { await Task.Run(async() => { foreach (Control c in SenderButton.Parent.Controls) { if (c is Button) { Button Button = c as Button; if (Button.Text != "X") { MainFormClass.IndividalLEDRedTrackBar.Invoke((MethodInvoker) delegate { MainFormClass.IndividalLEDGreenTrackBar.Invoke((MethodInvoker) delegate { MainFormClass.IndividalLEDBlueTrackBar.Invoke((MethodInvoker) delegate { WorkingPanelBox MomentaryDataTag = (WorkingPanelBox)Button.Parent.Tag; Button.BackColor = Color.FromArgb(MainFormClass.IndividalLEDRedTrackBar.Value, MainFormClass.IndividalLEDGreenTrackBar.Value, MainFormClass.IndividalLEDBlueTrackBar.Value); Color AfterShuffel = MainFormClass.ShuffleColors(Color.FromArgb(MainFormClass.IndividalLEDRedTrackBar.Value, MainFormClass.IndividalLEDGreenTrackBar.Value, MainFormClass.IndividalLEDBlueTrackBar.Value)); MainFormClass.Serial.Write(new IndividualLEDs(AfterShuffel.R, AfterShuffel.G, AfterShuffel.B, MomentaryDataTag.PinID, Int32.Parse(Button.Text))); }); }); }); await Task.Delay(10); } } } }); }
public void SaveCurrentSetup() { try { using (StreamWriter SaveFile = new StreamWriter(MainFormClass.SaveFileDialog.FileName, false)) { using (StreamWriter AutoSaveFile = new StreamWriter(Directory.GetCurrentDirectory() + "\\Setups\\0.txt", false)) { foreach (Control c in MainFormClass.ConfigureSetupWorkingPanel.Controls) { WorkingPanelBox MomentaryDataTag = (WorkingPanelBox)c.Tag; string SerialOut = MomentaryDataTag.XLoc + ";" + MomentaryDataTag.YLoc + ";" + MomentaryDataTag.FromLEDID + ";" + MomentaryDataTag.InvertXDir + ";" + MomentaryDataTag.InvertYDir + ";" + MomentaryDataTag.XLEDCount + ";" + MomentaryDataTag.YLEDCount + ";" + MomentaryDataTag.PinID + ";" + MomentaryDataTag.PixelTypeIndex + ";" + MomentaryDataTag.PixelBitstreamIndex; SaveFile.WriteLine(SerialOut); AutoSaveFile.WriteLine(SerialOut); SerialOut = ""; SerialOut += (c.Controls.Find("MakeLEDPanelStripSeriesIDLabelFrom", true)[0] as TextBox).Text + ";"; SerialOut += (c.Controls.Find("MakeLEDPanelStripSeriesIDLabelTo", true)[0] as TextBox).Text + ";"; SaveFile.WriteLine(SerialOut); AutoSaveFile.WriteLine(SerialOut); } } } } catch { MessageBox.Show("Cannot access file!"); } }
public async Task ColorEntireLEDStrip(Button SenderButton) { await Task.Run(async() => { foreach (Control c in SenderButton.Parent.Controls) { if (c is Button) { Button Button = c as Button; if (Button.Text != "X") { MainFormClass.IndividalLEDRedTrackBar.Invoke((MethodInvoker) delegate { MainFormClass.IndividalLEDGreenTrackBar.Invoke((MethodInvoker) delegate { MainFormClass.IndividalLEDBlueTrackBar.Invoke((MethodInvoker) delegate { WorkingPanelBox MomentaryDataTag = (WorkingPanelBox)Button.Parent.Tag; Button.BackColor = Color.FromArgb(MainFormClass.IndividalLEDRedTrackBar.Value, MainFormClass.IndividalLEDGreenTrackBar.Value, MainFormClass.IndividalLEDBlueTrackBar.Value); Color AfterShuffel = MainFormClass.ShuffleColors(Color.FromArgb(MainFormClass.IndividalLEDRedTrackBar.Value, MainFormClass.IndividalLEDGreenTrackBar.Value, MainFormClass.IndividalLEDBlueTrackBar.Value)); string SerialOut = "4;" + MomentaryDataTag.PinID + ";" + Button.Text + ";" + AfterShuffel.R + ";" + AfterShuffel.G + ";" + AfterShuffel.B; MainFormClass.SendDataBySerial(SerialOut); }); }); }); await Task.Delay(10); } } } }); }
public void ColorSingleLED(Button SenderButton) { WorkingPanelBox MomentaryDataTag = (WorkingPanelBox)SenderButton.Parent.Tag; SenderButton.BackColor = Color.FromArgb(MainFormClass.IndividalLEDRedTrackBar.Value, MainFormClass.IndividalLEDGreenTrackBar.Value, MainFormClass.IndividalLEDBlueTrackBar.Value); Color AfterShuffel = MainFormClass.ShuffleColors(Color.FromArgb(MainFormClass.IndividalLEDRedTrackBar.Value, MainFormClass.IndividalLEDGreenTrackBar.Value, MainFormClass.IndividalLEDBlueTrackBar.Value)); MainFormClass.Serial.Write(new IndividualLEDs(AfterShuffel.R, AfterShuffel.G, AfterShuffel.B, MomentaryDataTag.PinID, Int32.Parse(SenderButton.Text))); }
private void MoveLEDStrip(object sender, MouseEventArgs e) { Panel SenderPanel = sender as Panel; WorkingPanelBox MomentaryDataTag = (WorkingPanelBox)SenderPanel.Tag; if (MomentaryDataTag.Moving == true) { SenderPanel.Location = new Point(MomentaryDataTag.XLoc + (Control.MousePosition.X - DragStart.X), MomentaryDataTag.YLoc + (Control.MousePosition.Y - DragStart.Y)); } }
public void ColorSingleLED(Button SenderButton) { WorkingPanelBox MomentaryDataTag = (WorkingPanelBox)SenderButton.Parent.Tag; SenderButton.BackColor = Color.FromArgb(MainFormClass.IndividalLEDRedTrackBar.Value, MainFormClass.IndividalLEDGreenTrackBar.Value, MainFormClass.IndividalLEDBlueTrackBar.Value); Color AfterShuffel = MainFormClass.ShuffleColors(Color.FromArgb(MainFormClass.IndividalLEDRedTrackBar.Value, MainFormClass.IndividalLEDGreenTrackBar.Value, MainFormClass.IndividalLEDBlueTrackBar.Value)); string SerialOut = "4;" + MomentaryDataTag.PinID + ";" + SenderButton.Text + ";" + AfterShuffel.R + ";" + AfterShuffel.G + ";" + AfterShuffel.B; MainFormClass.SendDataBySerial(SerialOut); }
public void WorkingPanelMouseMove(object _Sender) { Panel SenderPanel = _Sender as Panel; foreach (Control InnerControl in SenderPanel.Controls) { WorkingPanelBox MomentaryDataTag = (WorkingPanelBox)InnerControl.Tag; if (MomentaryDataTag.Moving) { InnerControl.Location = new Point(MomentaryDataTag.XLoc + (Control.MousePosition.X - DragStart.X), MomentaryDataTag.YLoc + (Control.MousePosition.Y - DragStart.Y)); } } }
public void WorkingPanelMouseUp(object _Sender) { Panel SenderPanel = _Sender as Panel; foreach (Control InnerControl in SenderPanel.Controls) { foreach (Control InnerInnerControl in InnerControl.Controls) { InnerInnerControl.Visible = true; } WorkingPanelBox MomentaryDataTag = (WorkingPanelBox)InnerControl.Tag; MomentaryDataTag.XLoc = InnerControl.Location.X; MomentaryDataTag.YLoc = InnerControl.Location.Y; MomentaryDataTag.Moving = false; InnerControl.Tag = MomentaryDataTag; } }
private void MoveLEDStripUp(object sender, MouseEventArgs e) { Panel SenderPanel = sender as Panel; foreach (Control InnerControl in SenderPanel.Parent.Controls) { foreach (Control InnerInnerControl in InnerControl.Controls) { InnerInnerControl.Visible = true; } } WorkingPanelBox MomentaryDataTag = (WorkingPanelBox)SenderPanel.Tag; MomentaryDataTag.XLoc = SenderPanel.Location.X; MomentaryDataTag.YLoc = SenderPanel.Location.Y; MomentaryDataTag.Moving = false; SenderPanel.Tag = MomentaryDataTag; }
public async Task SendSetup() { while (MainFormClass.IndividualLEDWorkingPanel.Controls.Count > 0) { MainFormClass.IndividualLEDWorkingPanel.Controls[0].Dispose(); } foreach (Control InnerControl in MainFormClass.ConfigureSetupWorkingPanel.Controls) { WorkingPanelBox MomentaryDataTag = (WorkingPanelBox)InnerControl.Tag; MakeLEDStrip(MomentaryDataTag.XLoc, MomentaryDataTag.YLoc, MomentaryDataTag.FromLEDID, MomentaryDataTag.InvertXDir, MomentaryDataTag.InvertYDir, MomentaryDataTag.XLEDCount, MomentaryDataTag.YLEDCount, MomentaryDataTag.PinID, "", true, MomentaryDataTag.PixelTypeIndex, MomentaryDataTag.PixelBitstreamIndex); } await Task.Run(async() => { List <int> Pins = new List <int>(); List <int> LEDCount = new List <int>(); List <int> PixelTypesIndexs = new List <int>(); List <int> PixelBitrateIndexs = new List <int>(); foreach (Control c in MainFormClass.ConfigureSetupWorkingPanel.Controls) { WorkingPanelBox MomentaryDataTag = (WorkingPanelBox)c.Tag; if (!Pins.Contains(MomentaryDataTag.PinID)) { Pins.Add(MomentaryDataTag.PinID); LEDCount.Add(MomentaryDataTag.XLEDCount *MomentaryDataTag.YLEDCount); PixelTypesIndexs.Add(MomentaryDataTag.PixelTypeIndex); PixelBitrateIndexs.Add(MomentaryDataTag.PixelBitstreamIndex); } else { int Index = Pins.FindIndex(x => x == MomentaryDataTag.PinID); LEDCount[Index] += (MomentaryDataTag.XLEDCount *MomentaryDataTag.YLEDCount); } } for (int i = 0; i < Pins.Count; i++) { MainFormClass.Serial.Write(new NoneMode(LEDCount[i] + ";" + Pins[i] + ";" + PixelTypesIndexs[i] + ";" + PixelBitrateIndexs[i])); } MainFormClass.Serial.Write(new NoneMode("9999")); int TotalLEDs = 0; foreach (int i in LEDCount) { TotalLEDs += i; } MainFormClass.TotalLEDCount = TotalLEDs; MainFormClass.SendSetupProgressBar.Invoke((MethodInvoker) delegate { MainFormClass.SendSetupProgressBar.Maximum = MainFormClass.ConfigureSetupWorkingPanel.Controls.Count; }); if (MainFormClass.GeneralSettingsAutoSendCheckBox.Checked) { MainFormClass.ConfigureSetupHiddenProgressBar.Invoke((MethodInvoker) delegate { MainFormClass.ConfigureSetupHiddenProgressBar.Maximum = MainFormClass.ConfigureSetupWorkingPanel.Controls.Count; }); } List <int> UpOrDownFrom = new List <int>(); List <int> UpOrDownTo = new List <int>(); List <int> InternalPins = new List <int>(); List <int> SeriesData = new List <int>(); foreach (Control c in MainFormClass.ConfigureSetupWorkingPanel.Controls) { WorkingPanelBox MomentaryDataTag = (WorkingPanelBox)c.Tag; InternalPins.Add(MomentaryDataTag.PinID); int Lowest = 999999; int Highest = 0; foreach (Control g in c.Controls) { if (g is TextBox) { if (!g.Enabled) { int Value = Int32.Parse(g.Text); if (Value > Highest) { Highest = Value; } if (Value < Lowest) { Lowest = Value; } } } } int UpDownValue = Int32.Parse(c.Controls.Find("MakeLEDPanelStripSeriesIDLabelTo", true)[0].Text) - Int32.Parse(c.Controls.Find("MakeLEDPanelStripSeriesIDLabelFrom", true)[0].Text); if (UpDownValue < 0) { UpDownValue = 0; } if (UpDownValue > 0) { UpOrDownFrom.Add(Lowest); UpOrDownTo.Add(Highest); } else { UpOrDownFrom.Add(Highest); UpOrDownTo.Add(Lowest); } } int PanelNumber = 0; for (int i = 0; i < MainFormClass.ConfigureSetupWorkingPanel.Controls.Count; i++) { int Position = SeriesData.Count; for (int j = 0; j < SeriesData.Count; j++) { int ValueA = Int32.Parse(MainFormClass.ConfigureSetupWorkingPanel.Controls[i].Controls.Find("MakeLEDPanelStripSeriesIDLabelTo", true)[0].Text); int ValueB = Int32.Parse(MainFormClass.ConfigureSetupWorkingPanel.Controls[j].Controls.Find("MakeLEDPanelStripSeriesIDLabelFrom", true)[0].Text); if (ValueA < ValueB) { Position--; } } SeriesData.Insert(Position, PanelNumber); PanelNumber++; } for (int i = 0; i < InternalPins.Count; i++) { MainFormClass.SendSetupProgressBar.Invoke((MethodInvoker) delegate { MainFormClass.SendSetupProgressBar.Value = i; }); if (MainFormClass.GeneralSettingsAutoSendCheckBox.Checked) { MainFormClass.ConfigureSetupHiddenProgressBar.Invoke((MethodInvoker) delegate { MainFormClass.ConfigureSetupHiddenProgressBar.Value = i; }); } MainFormClass.Serial.Write(new NoneMode(UpOrDownFrom[SeriesData[i]] + ";" + UpOrDownTo[SeriesData[i]] + ";" + InternalPins[SeriesData[i]])); } MainFormClass.Serial.Write(new NoneMode("9999")); MainFormClass.SendSetupProgressBar.Invoke((MethodInvoker) delegate { MainFormClass.SendSetupProgressBar.Value = 0; }); if (MainFormClass.GeneralSettingsAutoSendCheckBox.Checked) { for (int i = MainFormClass.Width - MainFormClass.MenuButton.Width; i < MainFormClass.Width; i++) { MainFormClass.ConfigureSetupHiddenProgressBar.Invoke((MethodInvoker) delegate { MainFormClass.ConfigureSetupHiddenProgressBar.Location = new Point(i, 0); }); await Task.Delay(5); } MainFormClass.ConfigureSetupHiddenProgressBar.Invoke((MethodInvoker) delegate { MainFormClass.ConfigureSetupHiddenProgressBar.Visible = false; }); MainFormClass.GeneralSettingsAutoSendCheckBox.Invoke((MethodInvoker) delegate { MainFormClass.GeneralSettingsAutoSendCheckBox.Enabled = true; }); } MainFormClass.Serial.Write(new NoneMode("9999")); MainFormClass.Serial.Write(new NoneMode(" ")); }); }
public void MakeLEDStrip(int _XLocation, int _YLocation, int _FromLEDID, bool _InvertXDir, bool _InvertYDir, int _XLEDAmount, int _YLEDAmount, int _PinID, string _IndputTextData, bool _IsIndividualLEDs, int _PixelTypeIndex, int _PixelBitstreamIndex) { int CurrentLED = _FromLEDID; Panel BackPanel = new Panel { BorderStyle = BorderStyle.FixedSingle, Width = (int)(_XLEDAmount * MainFormClass.ButtonWidth + MainFormClass.Margins) + MainFormClass.Margins * 2, Height = (int)(_YLEDAmount * (2 * MainFormClass.ButtonHeight) + MainFormClass.Margins) + MainFormClass.Margins * 2 + MainFormClass.ButtonHeight, Location = new Point(_XLocation, _YLocation) }; if (_IsIndividualLEDs) { BackPanel.Font = new Font(MainFormClass.IndividualLEDWorkingPanel.Font.FontFamily, BackPanel.Font.Size); } else { BackPanel.Font = new Font(MainFormClass.ConfigureSetupWorkingPanel.Font.FontFamily, BackPanel.Font.Size); } BackPanel.BackColor = Color.Gray; if (!_IsIndividualLEDs) { BackPanel.MouseMove += MoveLEDStrip; BackPanel.MouseDown += MoveLEDStripDown; BackPanel.MouseUp += MoveLEDStripUp; } Button DeleteButton = new Button { Width = MainFormClass.ButtonWidth, Height = MainFormClass.ButtonHeight, Text = "X", Parent = BackPanel }; DeleteButton.Click += RemoveLEDStrip; DeleteButton.Font = new Font(BackPanel.Font.FontFamily, 7); DeleteButton.Location = new Point(0, MainFormClass.Margins); DeleteButton.FlatStyle = FlatStyle.Flat; DeleteButton.FlatAppearance.BorderSize = 0; DeleteButton.BackColor = Color.DarkGray; DeleteButton.Name = "MakeLEDPanelDeleteButton"; BackPanel.Controls.Add(DeleteButton); Label StripIDLabel = new Label { Height = MainFormClass.ButtonHeight, Font = new Font(BackPanel.Font.FontFamily, 7), Tag = _PinID, Text = _PinID.ToString() }; StripIDLabel.Location = new Point(StripIDLabel.Location.X + MainFormClass.ButtonWidth, MainFormClass.Margins); StripIDLabel.ForeColor = Color.White; StripIDLabel.Name = "MakeLEDPanelStripIDLabel"; BackPanel.Controls.Add(StripIDLabel); bool UseDefaultText = true; string[] InputTextDataSplit = _IndputTextData.Split(';'); if (_IndputTextData != "") { UseDefaultText = false; } int BoxNumber = 0; for (int i = 0; i < _XLEDAmount; i++) { for (int j = 0; j < _YLEDAmount; j++) { if (!_IsIndividualLEDs) { TextBox NewButton = new TextBox { Width = MainFormClass.ButtonWidth, Height = MainFormClass.ButtonHeight, Text = CurrentLED.ToString(), Font = new Font(BackPanel.Font.FontFamily, 7), Enabled = false, TextAlign = HorizontalAlignment.Center, BorderStyle = BorderStyle.None, BackColor = Color.DarkGray, ForeColor = Color.White, Name = "MakeLEDPanelStripLEDIDLabel" }; if (_InvertXDir) { if (_InvertYDir) { NewButton.Location = new Point(MainFormClass.Margins + MainFormClass.ButtonWidth * ((_XLEDAmount - 1) - i), MainFormClass.Margins + (MainFormClass.ButtonHeight * 2) * ((_YLEDAmount - 1) - j) + (MainFormClass.Margins + MainFormClass.ButtonHeight)); } else { NewButton.Location = new Point(MainFormClass.Margins + MainFormClass.ButtonWidth * ((_XLEDAmount - 1) - i), MainFormClass.Margins + (MainFormClass.ButtonHeight * 2) * j + (MainFormClass.Margins + MainFormClass.ButtonHeight)); } } else { if (_InvertYDir) { NewButton.Location = new Point(MainFormClass.Margins + MainFormClass.ButtonWidth * i, MainFormClass.Margins + (MainFormClass.ButtonHeight * 2) * ((_YLEDAmount - 1) - j) + (MainFormClass.Margins + MainFormClass.ButtonHeight)); } else { NewButton.Location = new Point(MainFormClass.Margins + MainFormClass.ButtonWidth * i, MainFormClass.Margins + (MainFormClass.ButtonHeight * 2) * j + (MainFormClass.Margins + MainFormClass.ButtonHeight)); } } if (i == 0 && j == 0) { TextBox NewTextBox = new TextBox(); NewTextBox.Width = MainFormClass.ButtonWidth; NewTextBox.Height = MainFormClass.ButtonHeight; NewTextBox.Click += ClickToSetSeries; if (UseDefaultText) { NewTextBox.Text = "0"; } else { NewTextBox.Text = InputTextDataSplit[0]; } NewTextBox.Font = new Font(BackPanel.Font.FontFamily, 7); NewTextBox.TextChanged += ChangeSeries; NewTextBox.Location = new Point(NewButton.Location.X, NewButton.Location.Y + MainFormClass.ButtonHeight); NewTextBox.Parent = BackPanel; NewTextBox.BorderStyle = BorderStyle.None; NewTextBox.BackColor = Color.DarkGray; NewTextBox.ForeColor = Color.White; NewTextBox.Name = "MakeLEDPanelStripSeriesIDLabelFrom"; BackPanel.Controls.Add(NewTextBox); } if (i == _XLEDAmount - 1 && j == _YLEDAmount - 1) { TextBox NewTextBox = new TextBox(); NewTextBox.Width = MainFormClass.ButtonWidth; NewTextBox.Height = MainFormClass.ButtonHeight; NewTextBox.Click += ClickToSetSeries; if (UseDefaultText) { NewTextBox.Text = "0"; } else { NewTextBox.Text = InputTextDataSplit[1]; } NewTextBox.Font = new Font(BackPanel.Font.FontFamily, 7); NewTextBox.TextChanged += ChangeSeries; NewTextBox.Location = new Point(NewButton.Location.X, NewButton.Location.Y + MainFormClass.ButtonHeight); NewTextBox.Parent = BackPanel; NewTextBox.BorderStyle = BorderStyle.None; NewTextBox.BackColor = Color.DarkGray; NewTextBox.ForeColor = Color.White; NewTextBox.Name = "MakeLEDPanelStripSeriesIDLabelTo"; BackPanel.Controls.Add(NewTextBox); } BackPanel.Controls.Add(NewButton); } else { Button NewButton = new Button(); NewButton.Width = MainFormClass.ButtonWidth; NewButton.Height = MainFormClass.ButtonHeight; NewButton.Text = CurrentLED.ToString(); NewButton.Font = new Font(BackPanel.Font.FontFamily, 5); NewButton.FlatStyle = FlatStyle.Flat; NewButton.FlatAppearance.BorderSize = 0; NewButton.BackColor = Color.DarkGray; NewButton.ForeColor = Color.White; NewButton.Name = "MakeLEDPanelStripLEDIDButton"; if (_InvertXDir) { if (_InvertYDir) { NewButton.Location = new Point(MainFormClass.Margins + MainFormClass.ButtonWidth * ((_XLEDAmount - 1) - i), MainFormClass.Margins + (MainFormClass.ButtonHeight * 2) * ((_YLEDAmount - 1) - j) + (MainFormClass.Margins + MainFormClass.ButtonHeight)); } else { NewButton.Location = new Point(MainFormClass.Margins + MainFormClass.ButtonWidth * ((_XLEDAmount - 1) - i), MainFormClass.Margins + (MainFormClass.ButtonHeight * 2) * j + (MainFormClass.Margins + MainFormClass.ButtonHeight)); } } else { if (_InvertYDir) { NewButton.Location = new Point(MainFormClass.Margins + MainFormClass.ButtonWidth * i, MainFormClass.Margins + (MainFormClass.ButtonHeight * 2) * ((_YLEDAmount - 1) - j) + (MainFormClass.Margins + MainFormClass.ButtonHeight)); } else { NewButton.Location = new Point(MainFormClass.Margins + MainFormClass.ButtonWidth * i, MainFormClass.Margins + (MainFormClass.ButtonHeight * 2) * j + (MainFormClass.Margins + MainFormClass.ButtonHeight)); } } NewButton.Click += MainFormClass.ColorSingleLED_Click; BackPanel.Controls.Add(NewButton); } CurrentLED++; BoxNumber++; } } WorkingPanelBox TagData = new WorkingPanelBox(_XLocation, _YLocation, false, _XLEDAmount, _YLEDAmount, _PinID, _InvertXDir, _InvertYDir, _FromLEDID, _PixelTypeIndex, _PixelBitstreamIndex); BackPanel.Tag = TagData; if (_IsIndividualLEDs) { MainFormClass.IndividualLEDWorkingPanel.Controls.Add(BackPanel); } else { MainFormClass.ConfigureSetupWorkingPanel.Controls.Add(BackPanel); } }