示例#1
0
        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();
 }
示例#3
0
        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);
            }
        }