Example #1
0
        public void Save(string dataSource, Analysis analysis, bool overWrite)
        {
            System.Text.StringBuilder text = new System.Text.StringBuilder();

            if (Attributes == null)
            {
                Attributes = new NativeArffAttributes();
            }
            if (overWrite && System.IO.File.Exists(dataSource))
            {
                System.IO.File.Delete(dataSource);
            }
            if (!System.IO.File.Exists(dataSource))
            {
                WriteHeader(text, dataSource, analysis.Events.ConversionFactor);

                WriteFixtureProfiles(text, analysis.FixtureProfiles);
                WriteLog(text, analysis.Log);
                WriteEventsHeader(text);
            }
            WriteEvents(text, analysis.Events, analysis.KeyCode);
            if (FlowsExist(analysis))
            {
                WriteFlows(text, analysis.Events);
            }
            System.IO.File.AppendAllText(dataSource, text.ToString());
        }
Example #2
0
        public Analysis Load(string dataSource)
        {
            string[] lines = System.IO.File.ReadAllLines(dataSource);

            if (IsOldVersion(lines))
            {
                throw new Exception("Please migrate the analysis file " + dataSource + " to version " + TwAssembly.Version() + " or later.");
            }

            double twConversionFactor = GetTwConversionFactor(lines);

            Attributes = LoadAttributes(lines);

            LogMeter log = LoadLog(lines);

            FixtureProfiles fixtureProfiles = LoadFixtureProfiles(lines);

            Events events = LoadEvents(lines);

            LoadFlows(lines, events);

            events.UpdateVolume();

            var analysis = new AnalysisDatabase(dataSource, events, log, fixtureProfiles);

            analysis.Events.ConversionFactor = twConversionFactor;
            analysis.Events.UpdateChannel();
            analysis.Events.UpdateSuperPeak();
            analysis.Events.UpdateLinkedList();
            analysis.Events.UpdateOriginalVolume();

            return(analysis);
        }
Example #3
0
        ArffAttributes LoadAttributes(string[] lines)
        {
            var attributes = new ArffAttributes();

            foreach (string line in lines)
            {
                if (line.Contains("@DATA"))
                {
                    break;
                }

                if (ContainsAttribute(line, "keycode"))
                {
                    attributes.IsKeyCodeEnabled = true;
                }
                if (ContainsAttribute(line, "eventid"))
                {
                    attributes.IsEventIdEnabled = true;
                }

                if (ContainsAttribute(line, "starttime"))
                {
                    attributes.IsStartTimeEnabled = true;
                }
                if (ContainsAttribute(line, "endtime"))
                {
                    attributes.IsEndTimeEnabled = true;
                }
                if (ContainsAttribute(line, "duration"))
                {
                    attributes.IsDurationEnabled = true;
                }

                if (ContainsAttribute(line, "firstcycle"))
                {
                    attributes.IsFirstCycleEnabled = true;
                }

                if (ContainsAttribute(line, "preserved"))
                {
                    attributes.IsManuallyClassifiedEnabled = true;
                }

                if (ContainsAttribute(line, "channel"))
                {
                    attributes.IsChannelEnabled = true;
                }

                if (ContainsAttribute(line, "volume"))
                {
                    attributes.IsVolumeEnabled = true;
                }
                if (ContainsAttribute(line, "peak"))
                {
                    attributes.IsPeakEnabled = true;
                }
                if (ContainsAttribute(line, "mode"))
                {
                    attributes.IsModeEnabled = true;
                }

                if (ContainsAttribute(line, "modefrequency"))
                {
                    attributes.IsModeFrequencyEnabled = true;
                }

                if (ContainsAttribute(line, "hour"))
                {
                    attributes.IsHourEnabled = true;
                }
                if (ContainsAttribute(line, "isweekend"))
                {
                    attributes.IsIsWeekendEnabled = true;
                }
                if (ContainsAttribute(line, "timetolongerevent"))
                {
                    attributes.IsTimeToLongerEventEnabled = true;
                }

                if (ContainsAttribute(line, "notes"))
                {
                    attributes.IsUserNotesEnabled = true;
                }

                if (ContainsAttribute(line, "class"))
                {
                    attributes.FixtureClasses = new List <FixtureClass>();
                    foreach (FixtureClass fixtureClass in FixtureClasses.Items.Values)
                    {
                        attributes.FixtureClasses.Add(fixtureClass);
                    }
                }

                if (ContainsAttribute(line, "classifiedusingfixturelist"))
                {
                    attributes.IsClassifiedUsingFixtureListEnabled = true;
                }
                if (ContainsAttribute(line, "manuallyapproved"))
                {
                    attributes.IsManuallyApprovedEnabled = true;
                }
                if (ContainsAttribute(line, "manuallyclassifiedfirstcycle"))
                {
                    attributes.IsManuallyClassifiedFirstCycleEnabled = true;
                }
            }

            return(attributes);
        }