Esempio n. 1
0
        private EpisodeDescription getEpisode(EpisodeDescriptionEntry ede)
        {
            EpisodeDescription epi = new EpisodeDescription();
            epi.GVValue = ede.GVValue;
            epi.Start._Event = ede.Event1.SelectedItem; //may be EDE or string
            epi.End._Event = ede.Event2.SelectedItem; //may be EDE or string
            epi.useEOF = (bool)ede.useEOF.IsChecked;
            Object o = ede.GV1.SelectedItem;
            if (o != null && o.GetType().Name == "GVEntry")
                epi.Start._GV = (GVEntry)o;
            else
                epi.Start._GV = null;
            o = ede.GV2.SelectedItem;
            if (o != null && o.GetType().Name == "GVEntry")
                epi.End._GV = (GVEntry)o;
            else
                epi.End._GV = null;
            string str = ede.Comp1.Text;
            epi.Start._comp = str == "=" ? Comp.equals : str == "!=" ? Comp.notequal : str == ">" ? Comp.greaterthan : Comp.lessthan;
            str = ede.Comp2.Text;
            epi.End._comp = str == "=" ? Comp.equals : str == "!=" ? Comp.notequal : str == ">" ? Comp.greaterthan : Comp.lessthan;
            if (ede.GVValue1TB.IsVisible && ede.GVValue1TB.IsEnabled)
                epi.Start._GVVal = Convert.ToInt32(ede.GVValue1TB.Text);
            else if (ede.GVValue1CB.IsEnabled)
                epi.Start._GVVal = epi.Start._GV.ConvertGVValueStringToInteger((string)ede.GVValue1CB.SelectedItem); //
            if (ede.GVValue2TB.IsVisible && ede.GVValue2TB.IsEnabled)
                epi.End._GVVal = Convert.ToInt32(ede.GVValue2TB.Text);
            else if (ede.GVValue2CB.IsEnabled)
                epi.End._GVVal = epi.End._GV.ConvertGVValueStringToInteger((string)ede.GVValue2CB.SelectedItem);
            epi.Start._offset = Convert.ToDouble(ede.Offset1.Text);
            epi.End._offset = Convert.ToDouble(ede.Offset2.Text);

            o = ede.Event3.SelectedItem;
            if (o.GetType() == typeof(EventDictionaryEntry))
            {
                epi.Exclude = new ExclusionDescription();
                epi.Exclude.startEvent = (EventDictionaryEntry)o;
                object o1 = ede.Event4.SelectedItem;
                if (o1.GetType() == typeof(EventDictionaryEntry) && o != o1)
                    epi.Exclude.endEvent = (EventDictionaryEntry)o1;
            }

            //create list of any counter routines
            for (int i = 1; i < ede.EpisodeDescriptionPanel.Items.Count - 1; i++)
            {
                int v;
                PKDetectorEventCounter pkd = (PKDetectorEventCounter)ede.EpisodeDescriptionPanel.Items[i];
                PKDetectorEventCounterDescription pkdDesc = new PKDetectorEventCounterDescription(bdf);
                pkdDesc.EventNames = new List<string>(0);
                foreach (string s in pkd.EventSelection.SelectedItems) pkdDesc.EventNames.Add("**PKDet" + s); //create list of selected full Event names
                v = pkd.Found.SelectedIndex;
                if (v == 0) pkdDesc.found = null;
                else pkdDesc.found = v == 1;
                pkdDesc.includeChi2=(bool)pkd.Chi2.IsChecked;
                if (pkdDesc.includeChi2)
                {
                    pkdDesc.comp1 = pkd.Comp1.SelectedIndex == 0 ? Comp.lessthan : Comp.greaterthan;
                    pkdDesc.chi2 = pkd.chi2;
                }
                pkdDesc.includeMagnitude = (bool)pkd.Magnitude.IsChecked;
                if (pkdDesc.includeMagnitude)
                {
                    pkdDesc.comp2 = pkd.Comp2.SelectedIndex == 0 ? Comp.greaterthan : Comp.lessthan;
                    pkdDesc.magnitude = pkd.magnitude;
                }
                v=pkd.Sign.SelectedIndex;
                if (v == 0) pkdDesc.positive = null;
                else pkdDesc.positive = v == 1;
                epi.PKCounter = pkdDesc;
            }
            return epi;
        }
Esempio n. 2
0
        private void PerformOpenPFile()
        {
            string s;
            OpenFileDialog dlg = new OpenFileDialog();
            dlg.Title = "Open parameter file ...";
            dlg.DefaultExt = ".par"; // Default file extension
            dlg.Filter = "PAR Files (.par)|*.par"; // Filter files by extension
            dlg.InitialDirectory = Properties.Settings.Default.LastParFile;

            bool result = dlg.ShowDialog() == System.Windows.Forms.DialogResult.OK;
            if (!result) return;

            Properties.Settings.Default.LastParFile = System.IO.Path.GetDirectoryName(dlg.FileName);

            XmlReaderSettings xrs = new XmlReaderSettings();
            xrs.CloseInput = true;
            xrs.IgnoreWhitespace = true;
            XmlReader xml = XmlReader.Create(dlg.OpenFile(), xrs);
            try
            {
                if(!xml.ReadToFollowing("ASCtoFMParameters")) throw new XmlException("No ASCtoFMParameters element found");
                s = xml["ClockSync"];
                if (s == "First covered Event")
                    SyncToFirst.IsChecked = true;
                else
                    if (s == "None")
                        NoSyncToStatus.IsChecked = true;
                    else
                        SyncToMiddle.IsChecked = true;
                xml.ReadStartElement("ASCtoFMParameters");

                xml.ReadStartElement("EpisodeDescriptions");
                while (EpisodeEntries.Items.Count > 0) EpisodeEntries.Items.RemoveAt(0); //remove old entries
                while (xml.Name == "EpisodeDescription")
                {
                    EpisodeDescriptionEntry ede = new EpisodeDescriptionEntry(head, this);
                    if (ede.ReadNewSettings(xml))
                        EpisodeEntries.Items.Add(ede);
                }
                xml.ReadEndElement(/* EpisodeDescriptions */);

                listView2.SelectedItem = null;
                xml.ReadStartElement("GroupVariables");
                while (xml.Name == "GV")
                {
                    s = xml.ReadElementContentAsString();
                    for (int i = 0; i < listView2.Items.Count; i++)
                    {
                        if (((GVEntry)listView2.Items[i]).Name == s)
                        {
                            listView2.SelectedItems.Add(listView2.Items[i]);
                            break;
                        }
                    } //silently skip GVs not in current dataset
                }
                xml.ReadEndElement(/* GroupVariables */);

                SelChan.Text = xml.ReadElementString("Channels");

                s = xml["Remove"];
                if (s != null) //may not exist if using Radin reference
                    if (s == "Offsets") removeOffsets.IsChecked = true;
                    else
                        if (s == "Trends") removeTrends.IsChecked = true;
                        else
                            noneOffsets.IsChecked = true;
                xml.ReadStartElement("Samples");
                Decimation.Text = xml.ReadElementString("Decimation");
                RecLength.Text = xml.ReadElementString("RecordLength");
                if (xml.Name == "RadinReference")
                {
                    Radin.IsChecked = true;
                    xml.ReadStartElement();
                    RadinLow.Text = xml.ReadElementString("From");
                    RadinHigh.Text = xml.ReadElementString("To");
                    xml.ReadEndElement(/* RadinReference */);
                }
                else
                    Radin.IsChecked = false;
                xml.ReadEndElement(/* Samples */);

                s = xml["Type"]; //Type must be present
                if (s == "SelectedChannels") radioButton2.IsChecked = true;
                else
                    if (s == "Expression") radioButton4.IsChecked = true;
                    else
                        radioButton3.IsChecked = true;
                string v = xml.ReadElementString("Reference");
                if (s != "None")
                    if (s == "Expression") RefChanExpression.Text = v;
                    else RefChan.Text = v; //SelectedChannels case

                xml.ReadEndElement(/* ASCtoFMParameters */);
            }
            catch (XmlException e)
            {
                ErrorWindow er = new ErrorWindow();
                er.Message = "Error in parameter file at line number " + e.LineNumber.ToString("0") + ". Unable to continue.";
                er.ShowDialog();
            }
            xml.Close();
            RemoveSpec.IsEnabled = EpisodeEntries.Items.Count > 1;
        }
Esempio n. 3
0
 private void AddSpec_Click(object sender, RoutedEventArgs e)
 {
     EpisodeDescriptionEntry episode = new EpisodeDescriptionEntry(head, this);
     EpisodeEntries.Items.Add(episode);
     if (EpisodeEntries.Items.Count > 1) RemoveSpec.IsEnabled = true;
     Validate();
 }