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); }
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"); }
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); } }