private async void PlaySequence(PlayList playList) { playing = true; playButton.Visibility = System.Windows.Visibility.Collapsed; stopButton.Visibility = System.Windows.Visibility.Visible; while (playing) { foreach (var row in playList.PlayListRows) { await ledControl.setStatus(redLed, row.Status1); if (row.Status1 == 0) { PicRedLed.Source = ledRed0; } else { PicRedLed.Source = ledRed1; } await ledControl.setStatus(blueLed, row.Status2); if (row.Status2 == 1) { PicBlueLed.Source = ledBlue0; } else { PicBlueLed.Source = ledBlue1; } Thread.Sleep(row.Time); } } // Laitetaan kuvat oikein lopputilanteen mukaisesti await setBluePic(); await setRedPic(); }
public SequenceWindow() { InitializeComponent(); newList = new PlayList(); }
private void PlayButton_Click(object sender, RoutedEventArgs e) { // Play-nappia painettu, toistetaan sekvenssi var selectedSequence = this.SequencesComboBox.SelectedItem as LedSequence; if (selectedSequence != null) { PlayList uusiLista = new PlayList(); try { using (var loadSequences = new SequenceContext()) { int time = 0; int pinId1 = 0; int status1 = 0; int pinId2 = 0; int status2 = 0; SequenceNameTextBox.Text = selectedSequence.Name; var sequenceId = selectedSequence.Id; /* * var query = loadSequences.TimeRows * .Include(c => c.LedRows) * .ToArray(); */ var query = ( from timer in loadSequences.TimeRows join leds in loadSequences.LedRows on timer.Id equals leds.TimeRow.Id join sekvenssi in loadSequences.LedSequences on timer.LedSequence.Id equals sekvenssi.Id where sekvenssi.Id.Equals(sequenceId) select new { sequencedId = timer.LedSequence.Id, sequenceName = timer.LedSequence.Name, timeRowId = timer.Id, time = timer.Time, ledRowId = leds.Id, ledPinId = leds.PinId, ledStatus = leds.Status }).ToArray(); PlayListRow playListRow = new PlayListRow(); int count = 0; foreach (var sequence in query) { if (count % 2 == 0) { time = sequence.time; pinId1 = sequence.ledPinId; status1 = sequence.ledStatus; } else { pinId2 = sequence.ledPinId; status2 = sequence.ledStatus; PlayListRow listanrivi = new PlayListRow(time, pinId1, status1, pinId2, status2); uusiLista.addRow(listanrivi); } count++; } } } catch (Exception) { throw; } PlaySequence(uusiLista); } }