Get TDMS Group Channel Names Array
I'm having trouble using the TDMS Get Properties to get the channel names of a group.
I want an array of: ch1_unused, A_SRV_z, etc...
Attachments:
TDMS get Group Channel Name Array.JPG 64 KB
If you want to get all the channels names under a group, please use "TDMS List Contents" node.
Similar Messages
-
I recently upgraded from LabVIEW 6.i to LabVIEW 8.5. Back in 6.1 I could get all the channel names configured in MAX using Get DAQ Channel Names.vi. I was wondering how I can do this in 8.5. Ideally I would like the output to be an array of strings so I can then sort through them.
ThanksHello,
I think that you can do that on daqmx. Using property node. See the attached file.
Software developer
www.mcm-electronics.com
PS: Don't forget to rate a good anwser ; )
Currently using Labview 2011
PORTUGAL
Attachments:
ChannelName.PNG 19 KB -
How do I get channel names written into a logged ascii file in Signal Express
Hi there,
This maybe a rookie question but I am a relative rookie to this software, and I hope it has an easy fix!
Background:
Take a load of analogue inputs from a DAQ device into Signal Express, first thing that hits me is that unlike labVIEW you cannot right click in the channel configuration window and change the name from say... Dev2_ai0 to Air Pressure? I feel that if this was possible then I would overcome my problem? anyway I can't so onwards...
I goto the DAQmx Acquire window on the top left and can right click and rename the channel, which is great... however this does not translate to the logged data as I get the ai0 channel names across the top of the columns and not the names that I have put in.
Is there anyway of getting data like the attached snippet?
Many thanks for your help in advance.
Neil Barker, Redbull Technology.
Attachments:
Channel names.gif 4 KBHi Dan,
Thanks for the reply, that has certainly fixed my issue as I wasn't expanding the channel and selecting the channel that I had renamed.
One last thing though:
I now not only get the individual channel name but the prefix for the DAQmx Aquire, for instance I get the Input of Braketest and then the channels under the input data.
It looks a bit like this....
Braketest - Front Pres
Braketest - Rear Pres
Braketest - FR Temp
Braketest - FL Temp
etc etc...
Now all of the channel names at the top of the columns have this long name. Can this be rectified? can I remove the "Braketest" bit?
By the way I am saving it as an ASCII so that I can read it in excel.
Many thanks, Neil. -
I see "Get DAQ Channel Names.VI" and "Get Channel Information.VI" but I just want to get the name of just channel 0, or just channel 1. Is using an array of all channel names the only way I can do this?
I have Labview 6.1.
THANKS!!!
LaurenLauren,
Yes, currently that is the best way to go about accomplishing that. I attached a little VI that demonstrates a very basic way of finding the first virtual channel that uses device channel 1.
Ames
Applications Engineering
National Instruments
Attachments:
Find_First_Channel_1_Virtual_Channel_Name.vi 27 KB -
Hello,
I am working with other groups and getting the data in daily .csv files. When I use the "concatenate groups" script along with a script on importing files, I end up getting a huge file that takes about an hour to concatenate. In order to reduce the amount of time and memory that this takes, I was hoping that someone could help me modify the script so that I could just list the channel name that I am interested in and concatinating only those channels rather than all of them.
For example, if voltage, temperature, pressure and time data are taken daily for 30 days, I would like to import only the temperature and time data (from .csv format) and concatenate into one group.
I have attached the .vbs files that I use.
Thanks in advance,
Alan
Attachments:
Import and concatenate files.zip 9 KBHi Alan,
Actually, the feature you're asking for is already in the code of mine that you sent back. Look on line 11 of the main VBScript: ChannelSet = "" ' "" or "1-" (DataPlugin) or "Sheet1" (EXCEL Wizard)
If this "ChannelSet" parameter is set to something other than "" or "1-" then it is used in line 78:
Call DataFileLoadSel(FilePaths(i), DataPlugin, ChannelSet)
Yo can specify the channel indices to load with an expression like this:
ChannelSet = "[1]/[1],[3]"
Let me know if you have further questions,
Brad Turpin
DIAdem Product Support Engineer
National Instruments -
Parse fieldpoint IAK file -- get channel names and ranges?
Hello,
I am looking for a way to read the fieldpoint channel names in their real order (not sorted) _and_ their corresponding range settings from an IAK file. Hardware is a FP-1001 network module connected via RS485 and a handful of AI-110s and AO-210s.
Has anyone found a way to do so yet?
Tried the FP get configuration info VI without succes, it sorts the channel names alphabetically. Edited the VI (threw out the sort array funktion), but no success: Channels now are mixed in no sensible way (the documentation confirms this behavior).
For the ranges, I've looked at the optomux !E, but a) it needs a FP ressource connected (can't work offline this way), and b) I have no clue yet of how to match these ranges with the well-mixed channel names :-(
Maybe someone here can help?
Yours, sincerely,
Sebastian F. KleinauHi,
Please take a look at the following knowledgebase:FP Get Configuration Info.vi Returns Values in a Different Order
I think this is what you are looking for.
Regards,
Timo -
Manipulati​ng the outputs of the Get Channel Names.VI version 5.1
Using the get Channel Name VI. I get two arrays. One array lists the channel names acquired from the measurement and automation utility and the second array lists the accompanied units of those channels. The problem is in the order of channels listed. The VI sorts the array by date the channel was created in the measurement and automation utility. When I resort the channels in alpha numberic order I want to keep the units associated with their correct channels. How can this be done. Or can the get channel names.vi be modified to sort alpha numberically while outputing the correct units associated with those channels.
Attachments:
getnames.vi 19 KBHere's something to try (Sort 2D array ala index and bundle cluster array):
http://sine.ni.com/apps/we/niepd_web_display.DISPLAY_EPD4?p_guid=B45EACE3EA4356A4E034080020E74861&p_node=DZ52026&p_submitted=N&p_rank=&p_answer=&p_source=External
You just need to remove the indexing portion and directly feed in the names to the upper terminal of the index/cluster array and units to the bottom.
2006 Ultimate LabVIEW G-eek. -
Not able to get group name by using memberof class, getting Total groups as 0 even I am member of that group. Through this memberof class I am trying to find full qualified name(DN) of my group.
code I have used:
//specify the LDAP search filter
String searchFilter = "(&(objectClass=user)(CN=Username))";
//Specify the Base for the search
String searchBase = "";
Also I have used,
String searchFilter = "(&(objectClass=user)(CN=Username))";
//Specify the Base for the search
String searchBase = "ou=ibmgroups,o=ibm.com";
But in both cases I am getting value for Total groups as 0.
Code Reference:
* memberof.java
* December 2004
* Sample JNDI application to determine what groups a user belongs to
import java.util.Hashtable;
import javax.naming.*;
import javax.naming.ldap.*;
import javax.naming.directory.*;
public class memberof {
public static void main (String[] args) {
Hashtable env = new Hashtable();
String adminName = "CN=Administrator,CN=Users,DC=ANTIPODES,DC=COM";
String adminPassword = "XXXXXXX";
String ldapURL = "ldap://mydc.antipodes.com:389";
env.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.ldap.LdapCtxFactory");
//set security credentials, note using simple cleartext authentication
env.put(Context.SECURITY_AUTHENTICATION,"simple");
env.put(Context.SECURITY_PRINCIPAL,adminName);
env.put(Context.SECURITY_CREDENTIALS,adminPassword);
//connect to my domain controller
env.put(Context.PROVIDER_URL,ldapURL);
try {
//Create the initial directory context
LdapContext ctx = new InitialLdapContext(env,null);
//Create the search controls
SearchControls searchCtls = new SearchControls();
//Specify the search scope
searchCtls.setSearchScope(SearchControls.SUBTREE_SCOPE);
//specify the LDAP search filter
String searchFilter = "(&(objectClass=user)(CN=Andrew Anderson))";
//Specify the Base for the search
String searchBase = "DC=antipodes,DC=com";
//initialize counter to total the group members
int totalResults = 0;
//Specify the attributes to return
String returnedAtts[]={"memberOf"};
searchCtls.setReturningAttributes(returnedAtts);
//Search for objects using the filter
NamingEnumeration answer = ctx.search(searchBase, searchFilter, searchCtls);
//Loop through the search results
while (answer.hasMoreElements()) {
SearchResult sr = (SearchResult)answer.next();
System.out.println(">>>" + sr.getName());
//Print out the groups
Attributes attrs = sr.getAttributes();
if (attrs != null) {
try {
for (NamingEnumeration ae = attrs.getAll();ae.hasMore();) {
Attribute attr = (Attribute)ae.next();
System.out.println("Attribute: " + attr.getID());
for (NamingEnumeration e = attr.getAll();e.hasMore();totalResults++) {
System.out.println(" " + totalResults + ". " + e.next());
catch (NamingException e) {
System.err.println("Problem listing membership: " + e);
System.out.println("Total groups: " + totalResults);
ctx.close();
catch (NamingException e) {
System.err.println("Problem searching directory: " + e);
Any help will be highly appreciated.Not able to get group name by using memberof class, getting Total groups as 0 even I am member of that group. Through this memberof class I am trying to find full qualified name(DN) of my group.
code I have used:
//specify the LDAP search filter
String searchFilter = "(&(objectClass=user)(CN=Username))";
//Specify the Base for the search
String searchBase = "";
Also I have used,
String searchFilter = "(&(objectClass=user)(CN=Username))";
//Specify the Base for the search
String searchBase = "ou=ibmgroups,o=ibm.com";
But in both cases I am getting value for Total groups as 0.
Code Reference:
* memberof.java
* December 2004
* Sample JNDI application to determine what groups a user belongs to
import java.util.Hashtable;
import javax.naming.*;
import javax.naming.ldap.*;
import javax.naming.directory.*;
public class memberof {
public static void main (String[] args) {
Hashtable env = new Hashtable();
String adminName = "CN=Administrator,CN=Users,DC=ANTIPODES,DC=COM";
String adminPassword = "XXXXXXX";
String ldapURL = "ldap://mydc.antipodes.com:389";
env.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.ldap.LdapCtxFactory");
//set security credentials, note using simple cleartext authentication
env.put(Context.SECURITY_AUTHENTICATION,"simple");
env.put(Context.SECURITY_PRINCIPAL,adminName);
env.put(Context.SECURITY_CREDENTIALS,adminPassword);
//connect to my domain controller
env.put(Context.PROVIDER_URL,ldapURL);
try {
//Create the initial directory context
LdapContext ctx = new InitialLdapContext(env,null);
//Create the search controls
SearchControls searchCtls = new SearchControls();
//Specify the search scope
searchCtls.setSearchScope(SearchControls.SUBTREE_SCOPE);
//specify the LDAP search filter
String searchFilter = "(&(objectClass=user)(CN=Andrew Anderson))";
//Specify the Base for the search
String searchBase = "DC=antipodes,DC=com";
//initialize counter to total the group members
int totalResults = 0;
//Specify the attributes to return
String returnedAtts[]={"memberOf"};
searchCtls.setReturningAttributes(returnedAtts);
//Search for objects using the filter
NamingEnumeration answer = ctx.search(searchBase, searchFilter, searchCtls);
//Loop through the search results
while (answer.hasMoreElements()) {
SearchResult sr = (SearchResult)answer.next();
System.out.println(">>>" + sr.getName());
//Print out the groups
Attributes attrs = sr.getAttributes();
if (attrs != null) {
try {
for (NamingEnumeration ae = attrs.getAll();ae.hasMore();) {
Attribute attr = (Attribute)ae.next();
System.out.println("Attribute: " + attr.getID());
for (NamingEnumeration e = attr.getAll();e.hasMore();totalResults++) {
System.out.println(" " + totalResults + ". " + e.next());
catch (NamingException e) {
System.err.println("Problem listing membership: " + e);
System.out.println("Total groups: " + totalResults);
ctx.close();
catch (NamingException e) {
System.err.println("Problem searching directory: " + e);
Any help will be highly appreciated. -
Hello all,
I am using LabVIEW 8.0 PDS.
I created a new local domain called "MyDomain" in the "NI Domain Account Manager" . I added a new User called "MyUser" and a new group called "Maintenance". I set "MyUser" to be a member of the "Maintenance" group. Then, I configured LabVIEW to invoke the login dialog at start-up in order to log "MyUser" with the correct password.
I would like to get the group name of the current user logged programmatically in a VI. I tried with the VI Server >> Application >> Security properties and methods and also with the properties and methods of the NI Security Class but it seems to be not so simple as I believed at start.
I do not find any informations or KB on this (all the documents I found deal with LV DSC or TestStand).
The final goal is to be able to manage a list of user for my application. Each user is a member of a group ("Administrator", "Operator", "Maintenance") and depending on the group, the user can or cannot access to some parts of the application.
Thanks for your help.
Matthieu
EurilogicRe,
Here is a screenshot of this functions...
If you really own LV DSC 8.2 the best thing to do is to reinstall it.
Regards,
Message Edité par Richard K. le 04-02-2007 04:00 AM
Richard Keromen
National Instruments France
#adMrkt{text-align: center;font-size:11px; font-weight: bold;} #adMrkt a {text-decoration: none;} #adMrkt a:hover{font-size: 9px;} #adMrkt a span{display: none;} #adMrkt a:hover span{display: block;}
>> Découvrez, en vidéo, les innovations technologiques réalisées en éco-conception
Attachments:
security.jpg 3841 KB -
I created a Group and put in all names and email addresses but cannot get the group to appear in an outgoing email message. What am I doing wrong?
This may help.
Can't connect to the iTunes Store
What happens whenyou try to connect? Error messages? -
Why can I not use the channel name, which is obtained from the function of DAQmx Task, as the input of the channel name for the function of Get Channel Information of DAQ?
Not a lot of details here, but my guess is this isn't working for you because you are wiring in the task to the Active Channels Property and not the actual Channel Name. I have attatched a screenshot of what I believe you are trying to do. The Task has 2 channels in it, so I need to index off one of the channels and wire it into the active channels input of the Channel Property node. Then I can read information about that channel
Attachments:
channel_name.JPG 69 KB -
Labview 7 index waveform array by channel name string
I was messing around with the index array waveform function with a waveform array(3 elements). I had used the set waveform attribute vi with the name input set to "Channel Name." The index waveform array function would not return any data when I was passing a particular channel name to it. Inside the vi I noticed that the name input has to have the format "NI_ChannelName" to match the string constant. Is this explained in the documentation anywhere?? Wouldn't it be more useful to make this string constant a string control input that we wired data into?? Then we could index the waveform array based on any name input that we set with the waveform attribute function.
Hi 08,
despite reanimating an 11 year old thread that information you requested is given in the "Set Waveform Attribute Function" help as written by Brandon…
Best regards,
GerdW
CLAD, using 2009SP1 + LV2011SP1 + LV2014SP1 on WinXP+Win7+cRIO
Kudos are welcome -
How to Get Channel Name in Adapter Engine Alerts
Hi All,
I am using 'Alrtcatdef' and 'Rules' in RWB to generate Adapater Engine Alerts. I am aware of the standard containers that are available to compose Alert Email content.
Is there a way I can read the Channel Name(and NOT Adapter type i.e Idoc, File) that errors out, in the email content.
Channel Name is the name of the channel I proivde in Integration Directory.
Thanks,
XierThe above requirement could have been done with custom alert container variables ..... but defining custom alert container seems not possible.
Workaround:
When you run a scenario we have a fixed set of channel(s).....sender (optional) and receiver ..... an error in the sender channel goes back to the sending application and hence XI support personnel is excluded from it.....so now what remains is the receiver channel.
So if your requirement is to include channel name for one (or few) of the scenarios then include it in the Alert message that you set in the ALRTCATDEF ..... i.e. hard-code it ...... wont be a good approach if you have to implement the same logic for all the scenarios.....
Suggested the above approach thinking it is not possible to build custom container ..... if there is a way to do it then please even let me know.
Regards,
Abhishek. -
Getting channel name change in the save-Block accepted
Hi there,
i tried to change my channel names in the save-block. If i run the dac and the script again the old channel-names are still used. I reloaded the dac and restarted diadem and the new channel-names are correct listed in the save block, but while measurement the old ones are used?
Any hints?
thanks
diademiHi diademi,
Yes, now I understand the problem. The name which
is used to create the channel in the Dataportal is always the name of the last
significant source block like the F(x) block or a scale block etc. The other “Signalnamen”
are just something like an alias. They are used to handle exchanging blocks
more easily.
Greetings
Walter -
Advanced TDMS, Set Channel Information
Hello,
I have a problem with scaling in and TDMS File. I´ll try to explain what i want to do.
I work on a system that streams data from 2 PXIe 5122 via peer to peer streaming to 2 NI 7962R FPGA FlexRIO cards. After that I want to stream my measurement data from the FPGA cards to an NI 8260 hdd array via the advanced TDMS API using the "TDMS Advanced Asynchronous Write (Data Ref).vi"
This works fine, but i have a big problem trying to scale my raw data. When using the "TDMS Set Channel Information.vi" I can decide to split my measurement data into two groups, Digitizer 1 and 2 with 2 channels each digitizer. When doing so, the API sets 2 Properties to the groups called "NI_Scale[0]_Scale_Type == AdvancedAPI" and "NI_Scaling_Status==scaled". When the API Sets these 2 properties i don´t have any chance to scale my raw data directly with the "TDMS Create Scaling Information.vi" because this vi sets the scaling information to each channel. The properties were set, but TDMS viewer and also DIADEM ignores these properties cause the group properties from the Advanced API were set.
When taking all 4 channels from both digitizers into one group, the group properties "NI_Scale[0]_Scale_Type == AdvancedAPI" and "NI_Scaling_Status==scaled" won´t be set to the group. But i can´t write the data directly to the TDMS file over the data reference, because i have 2 data references from each digitizer, and the API has a problem deciding what sample belongs to which channel.
So the only thing that worked is to create one group and set channel informations for 2 measurement channels, then get the data reference that contains these two channels and write them to TDMS, then set the other two channels informations and get the second data reference and write them to TDMS.
But the problem is, that i have to do that in a loop. When setting always the channel informations before getting the datareference and write the raw values to TDMS file this slows the performance of my system.
I think the right way shoul be that i can use 2 groups for each digitizer and set channel informations for each without getting these two group properties into my TDMS file. Anyone has an idea how i can solve the problem?Thanks for your reply,
i know that the scaling vi works when using one group. It also works when using 2 groups. But you put the scaling infos for the whole group. when using an digitizer you can´t do this because every channel has a little bit different scaling values. so u must set the scaling values to each channel. this is done properly, but when using 2 groups tdms viewer and diadem ignore these scaling values because the Groups have the properties as stated in my first post.
Here is a little screenshot of what im trying to do.
Attachments:
TDMS Advanced.png 53 KB
Maybe you are looking for
-
Every time I used to open a new tab it comes as top site. Now not anymore , instead it open in a website called Only Search, I went to safari preferences and made all changes but after I quit Safari and open again all changes are gone. I can not chan
-
Problem formatting date.
I have a problem in validating and formatting date input by the user. The user input format is dd-MM-yyyy. I have to validate it and format it to dd-MMM-yy format. I tried the below code. import java.util.*; import java.text.*; public class DateForma
-
Lost calendar events after sync
after syncing my mac book air with my iphone 4 i lost all my past and future calendar events on my macbook and iphone. I have backups on time capsule: Q: how do i recover my approx 900 calendar events from time capsule into my calendar on macbook wit
-
BI BEANS - Graph - How to change the color .. please help
Hi Everyone, Can anyone please tell me how to change the color of the Graph bars or slices. I mean the color which represents the data. For example in a pie chart I want to set specific color for specific slice. Please help. Regards SRT
-
First noticed this on Google news items. Text would blur when I moused over a story. Since this started about two weeks ago I now have seen it happen in pull down menus on Amazon and Ebay as well. Those are the only three sites. This is happening on