Пример #1
0
        public double[] TDMSTimeColumn()
        {
            double[] logColumn = new double[logLength];

            TdmsChannelGroup channelGroupFETCHTime = this.channelGroupsFETCH["EXAM_Data_Internal"];

            // Get the channels
            TdmsChannelCollection channelsFETCHTime = channelGroupFETCHTime.GetChannels();
            TdmsChannel           tempChannel       = channelsFETCHTime["System Time"];

            logColumn = tempChannel.GetData <double>(0, (int)logLength);

            return(logColumn);
        }
Пример #2
0
        public void TDMSOpen(string filePath)
        {
            logFile  = new TdmsFile(filePath, new TdmsFileOptions(TdmsFileFormat.Version20, TdmsFileAccess.Read));
            logGroup = "EXAM_Data";

            // Get the channel group
            this.channelGroupsFETCH = logFile.GetChannelGroups();
            if (!this.channelGroupsFETCH.Contains(logGroup))
            {
                throw new SystemException("Group not found in tdms file!");
            }
            TdmsChannelGroup channelGroupFETCH = this.channelGroupsFETCH[logGroup];

            // Get the channels
            channelsFETCH   = channelGroupFETCH.GetChannels();
            logChannelCount = channelsFETCH.Count;
            logLength       = channelsFETCH[0].DataCount;

            loggingRate = logFile.GetProperty("EXAM_LoggingRate");
        }
Пример #3
0
        public void StartDataLogging2(string logConfigName, string lDescription, string lFilePath, double fTriggerLevel,
                                      int iTriggerSlope, string lTriggerChannel, double lRate, string[] lFilePropertiesNames, string[] lFilePropertiesValues, string[] lChannelsToLog,
                                      double lDuration, double lPreTriggerDuration, bool lReplaceFile, string[] lChannelShortNames)
        {
            //VeriStand 2013 and later, logging for EXAM startMeasurement
            FileConflictOperation fileConflict = new FileConflictOperation();

            if (lReplaceFile)
            {
                fileConflict = FileConflictOperation.OverwriteExisting;
            }
            else
            {
                fileConflict = FileConflictOperation.CreateUnique;
            }

            TdmsLogFile logFile = new TdmsLogFile(lFilePath, fileConflict);
            DataLoggingSpecification loggingSpec    = new DataLoggingSpecification(logFile);
            DefaultTrigger           defStopTrigger = new DefaultTrigger(false);
            Slope            triggerSlope           = new Slope();
            TdmsChannelGroup logChannelGroup        = new TdmsChannelGroup("EXAM_Data");
            TdmsChannelGroup logChannelGroupInt     = new TdmsChannelGroup("EXAM_Data_Internal");

            //Internal info channel
            logChannelGroupInt.AddChannel("System Time", "Targets/Controller/System Channels/System Time");

            if (iTriggerSlope < 0)
            {
                triggerSlope = Slope.Falling;
            }
            else
            {
                triggerSlope = Slope.Rising; // Rising = 0
            }

            string lTriggerChannelLower = lTriggerChannel.ToLower();

            if (lTriggerChannel.Trim() != "" && lTriggerChannelLower.Trim() != "notrigger")
            {
                //Console.WriteLine("@@" + lTriggerChannel+"@@");
                AnalogEdgeTrigger startTrigger = new AnalogEdgeTrigger(lTriggerChannel.Trim(), fTriggerLevel, triggerSlope, true);
                loggingSpec.StartTrigger = startTrigger;
            }
            else
            {
                DefaultTrigger startTrigger = new DefaultTrigger(true);
                loggingSpec.StartTrigger = startTrigger;
            }

            if (lDuration > 0)
            {
                loggingSpec.PostTriggerDuration = lDuration;
                defStopTrigger.DefaultResult    = true;
            }

            loggingSpec.StopTrigger                    = defStopTrigger;
            loggingSpec.PreTriggerDuration             = lPreTriggerDuration;
            loggingSpec.Retriggerable                  = false;
            loggingSpec.LogDataAtTargetRate            = false;
            loggingSpec.SegmentFileOnTrigger           = false;
            loggingSpec.LogDataAgainstAbsoluteTimeBase = true;
            loggingSpec.CustomRate = lRate;

            uint           j = 0;
            IList <string> tempPrVariables = new List <string>(lChannelsToLog);
            int            varCount        = tempPrVariables.Count;

            foreach (string Channel in tempPrVariables)
            {
                //string channelName = Channel.Replace(@"/", @"_");
                //channelName = channelName.Replace(@" ", @"_");
                //TdmsChannel vSLogChan = new TdmsChannel(channelName,Channel);
                TdmsChannel vSLogChan = new TdmsChannel(Channel, Channel);
                //TdmsProperty vSProperty = new TdmsProperty("channelName",TdmsPropertyDataType.String,(String)Channel);
                //vSLogChan.AddProperty(vSProperty);
                TdmsProperty vSProperty = new TdmsProperty("ChannelShortName", TdmsPropertyDataType.String, (String)lChannelShortNames[j]);
                vSLogChan.AddProperty(vSProperty);
                logChannelGroup.AddChannel(vSLogChan);
                j++;
            }
            j = 0;

            for (int i = 0; i < lFilePropertiesNames.GetLength(0); i++)
            {
                TdmsProperty vSProperty = new TdmsProperty(lFilePropertiesNames[i], TdmsPropertyDataType.String, (String)lFilePropertiesValues[i]);
                logFile.AddProperty(vSProperty);
            }

            logFile.AddChannelGroup(logChannelGroup);
            logFile.AddChannelGroup(logChannelGroupInt);
            logFile.Description = lDescription;
            loggingSpec.LogFile = logFile;
            ErrChk(this.LoggingManager.StartDataLoggingSession(logConfigName, loggingSpec));
        }
        public void InitRecordingToolTdms(string sequenceName)
        {
            string channelGroupName = sequenceName;
            TdmsChannelGroup channelGroup = new TdmsChannelGroup(channelGroupName);
            tdmsGroupCollection = tdmsFile.GetChannelGroups();
            if (tdmsGroupCollection.Contains(channelGroupName))
            {
                channelGroup = tdmsGroupCollection[channelGroupName];
            }
            else
            {
                tdmsGroupCollection.Add(channelGroup);
            }

            // Set up the channel.
            string dataChannelName = sequenceName + "-channel";
            TdmsChannel dataChannel = new TdmsChannel(dataChannelName, TdmsDataType.Double);
            TdmsChannelCollection channels = channelGroup.GetChannels();
            if (channels.Contains(dataChannelName))
            {
                dataChannel = channels[dataChannelName];
            }
            else
            {
                channels.Add(dataChannel);
            }
        }