Removal of multiple channels with wildcards

Can antbody help... ?

I am trying to create a little routine to remove Channels starting with 'T_' and using the * wildcard.

I tried copy similar examples on the forum but can't seeem to operate...

Sun group, the canals, the DataChannel, I have
Set Group = Data.Root.ChannelGroups (1)
Set Channels (i) = Data.GetChannels("T_*")
FOR i = 1 TO Channels.Count
Data.Root.ChannelGroups (1). Channels.Remove
NEXT ' I

Hey Adek,.

Check it out,

Dim oGr, oChn, DataChannel, I have

Set the oGr = Data.Root.ChannelGroups (1)
Set oChn = Data.GetChannels(""&oGr.Name&"/T_*") "
For i = 1 to oChn.Count
Dial oGr.Channels.Remove (oChn.Item (i). Name)
Next

I assumed that you only want to delete channels in the group "first." Otherwise just include an additional loop to scan all your groups

Kind regards

Javier

Tags: NI Software

Similar Questions

  • Replace negative values in multiple channels with "0'.

    Hello

    I'm calculating and then by creating a cumulative channel, multiple channels. Negative values in these channels aren't necessary, and I need a nice way to replace each negative value in these channels with a value of '0'.

    My current code is:

    Do
    Do
    If Data.Root.ChannelGroups (2). Channels (i). Values (II)< 0="" then="" data.root.channelgroups(2).channels(i).values(ii)="0    ">
    II = ii + 1
    Loop until the second > Data.Root.ChannelGroups (2). Channels (i). Properties ("length"). Value
    II = 1
    i = i + 1
    Loop until I > Data.Root.ChannelGroups (2). Channels.Count

    It works, but I don't like. He adds a few seconds when running my script, which was almost instantly. Is there a better way to do it?

    Thank you.

    Hello Kevin,

    The fastest way to go through a channel and check the values less than or equal to 0 is through the canal's calculator. The code below takes all the channel first channel group (with the exception of the first string that is be the weather channel in my example data set) and replaces the values<0 with="" 0="" through="" the="" iif="">

    Set Group = Data.Root.ChannelGroups (1)
    iMax = Group.Channels.Count
    FOR i = 2 to iMax
    Adjust the strings = Group.Channels (i)
    Formula = "= IIF (y '.<0, 0,="">
    Call to calculate (formula, Array("y"), Array (Channel))
    NEXT ' I

    In this example we overwrite the existing values of data channel with 0, but you can also copy the channels to make sure that your raw data is available.

    The calculator of channel is extremely fast for this type of operation because it does not create a loop to go if each line separately and check the values he...

    I hope this is useful,

    Otmar

  • acquisition of continuous sample with multiple channels

    Hello! Please tell me what I'm doing wrong here, I'm confused about how the acquisition of continuous sample with several channels (using NI USB-6215 boxes).

    Following code is python code, but I don't know who confuse you (and it's only a part of my code in order to not try, it won't work

    buffer_size = 2000 #samples to read
    sampling_rate_hz = 20000
    channels = "Dev1/ai0 ai1/Dev1" #this can be a string or a large number...

    CHK (nidaq. DAQmxCreateTask ("", ctypes.byref (taskHandle)))

    CHK (nidaq. DAQmxCreateAIVoltageChan (taskHandle, channels,"", DAQmx_Val_Cfg_Default, float64(-10.0), float64 (10.0), DAQmx_Val_Volts, None "))

    CHK (nidaq. DAQmxCfgSampClkTiming (taskHandle,"", float64 (sampling_rate_hz), DAQmx_Val_Rising, DAQmx_Val_ContSamps, uInt64 (buffer_size) "))

    CHK (nidaq. DAQmxRegisterEveryNSamplesEvent (taskHandle, DAQmx_Val_Acquired_Into_Buffer, uInt32 (1000), uInt32 (0), EveryNCallback_func, None))

    CHK (nidaq. DAQmxRegisterDoneEvent (taskHandle, uInt32 (0), DoneCallback_func, None))

    the callback function #and

    def py_EveryNCallback_func (self, taskHandle, event_type, nSamples):
    data = numpy.zeros ((self.channel_amount,buffer_size,), dtype = numpy.float64)
    read = int32()
    CHK (nidaq. DAQmxReadAnalogF64 (taskHandle, buffer_size, float64 (10.0), DAQmx_Val_GroupByScanNumber, data.ctypes.data, buffer_size * number_of_channels, ctypes.byref (read), None))

    With only one channel, everything's fine, and tension diagram looks like this:

    buffer_size = 2000, sampling_rate_hz = 20000

    But if I use two channels, voltage diagram looks like this

    buffer_size = 2000, sampling_rate_hz = 20000

    It looks like the sampling rate is higher or there are fewer values?, but with two channels with the results table is 2000 * 2 long and with a single result is 2000 * 1 long is not smaller

    most of the settings important (?) in my code:

    DAQmxCfgSampClkTiming "float64 rate": 20000 (sampling_rate_hz)
    'UInt64 sampsPerChanToAcquire' DAQmxCfgSampClkTiming: 2000 (buffer_size)
    DAQmxRegisterEveryNSamplesEvent "uInt32 nSamples": 1000 (?)
    'Int32 numSampsPerChan' DAQmxReadAnalogF64: 2000 (buffer_size)
    DAQmxReadAnalogF64 "float64 [] readArray": [[buffer_size] * number_of_channels]
    'UInt32 arraySizeInSamps' DAQmxReadAnalogF64: buffer_size * number_of_channels

    as you can see nSamples is a big question mark, but the problem still exists if I set variable buffer_size y (2000)

    Hi Dazzler,

    It is not a multi-channel example that ships with the driver, but after a quick look at the code that you use in your third post, everything seems to be configured correctly. The only thing I was thing I got a question about your plots. Looks like you draw each time the same number of points. If you draw just the table of data directly from the playback feature, you need to draw (buffer_size * number_of_channels) number of channels since the data returned is as an interlaced array. You can also choose to deinterleave samples. More information about this lie in the NOR-DAQmx C reference help, which is installed with the NOR-DAQmx driver.

    Kind regards

    Kent

    Technical sales engineer

  • DAQmx showing not readings to multiple channels

    Hello

    I am trying to acquire values of temperature of 3 consecutive using a task DAQmx channel as shown in the attached photo.

    I have a loop of producer-consumer for fast reading and writing samples in a file.

    To specify the channels, I typed in the box connected to a terminal of "physical channel" (not shown in picture) as follows:-SC1Mod2 / ai2:4.  This is to acquire a reading of analog channels 2, 3 and 4. The program must then write a file reading on channel 3.

    The code works perfectly if I purchase samples of 1 channel only.

    When I try to acquire multiple channels, I don't see readings on one of the task of acquiring Wired Digital indicators.

    I would appreciate your input on what might be wrong with the code.

    Thank you.

    kumv10 wrote:

    The broken wire seen in the photo is the result of adding more channels to the task of acquiring.  I managed to get around this by specifying a different, but even with an intact wire data type, the program is not displayed readings since the 2 remaining channels.

    Instead of use for dynamic data Type, then the channels Split, just use an array of Index to get your three values.

  • Generation of series in multiple channels

    Hi forum, I need to ask a few questions. Any help is appreciated.

    (1) I need help with the generation dynamic series in several channels. Here, we can see how the dynamic data set generated by a single channel. But I can't find anywhere, how to generate several series signals in multiple channels.

    (2) what is the limit for this generation series? I think it depends on the material, but I don't know, what is the limit. My hardware is SMU-6544.

    (3) it is possible to generate different signals in different channels using scripts? and to start the production in these channels at the same time? the example given in the script generation labview is unfortunately only for the generation of a channel.

    Thanks in advance,

    Kind regards

    Yan.

    Hi Yan,

    Produce on several channels with multiple data is difficult without a tool to view the data, or series of each channel bitstream concatenated into a software ADE and transposed before be downloaded into memory.  To make Visual things here, I'll assume that you want to generate a pattern of 3 bits on sample of channels 0, 1 and 2 is 8 wide.  Assume the following models of the series bit for each channel:

    ch 0: 0101 1010

    CH 1: 0000 1111

    CH 2:0100 1101

    So the question now is, how do you load this in the SMU-6544(or any other HSDIO hardware)?  Of the two options, you can use Digital Waveform Editor (NEWS) to create visually and save to a file type HWS then load a DJ using the API HSDIO.  It is the easiest in my opinion.

    The second way is construction examples of data based on a basic example.  I want to say is you take it all binary streams and built a 2D table so that it looks like:

    01011010

    00001111

    01001101

    An array of 3 x 8 and then transpose the table that turns into:

    000

    101

    000

    100

    111

    011

    110

    011

    Here you can see we have 8 lines, each line is a sample, and in the form of U32 read in decimal, you get 0, 5, 0, 4, 7, 3, 6, 3.  That's what you can load into our niHSDIO U32 function write a waveform.  I hope you can see how this translation occurs and how it looks like in terms of load on the jury.  Each sample usually contains data for all channels, where each bit in the U32 is one of the 32 channels available on your device.  So if you want to write a '1' on Channel 5, you would load a value of 0000 0000 0000 0000 0000 0000 0010 0000 in the form of sample, where the 5th bit is 1 and all the other bits 0.  In decimal, you would write '32' value.

    With regard to the limitation of the size of series, if your flow rate is slow enough you can disseminate and make an almost endless stream, but assuming that you are running at the maximum rate, your series of waveform size is limited by the size of your on-board memory.  Since each sample generation is 32-bit, which is 4 bytes for example, if a memory size of 32 MB will correspond to 8MS bitstream series max.

    For any questions or comments are welcome.  Thank you.

  • Duplicate the physical channel with virtual channel

    I accidentally created more global virtual channel with a single physical channel, for example:

    global virtual channel physical channel

    A0 vtc00

    A0 vtc01

    A0 vtc02

    My questions are:

    1. How can I change the virtual channel as follows:

    global virtual channel physical channel

    A0 vtc00

    A1 vtc01

    A2 vtc02

    2-How do I re-name/remove the virtual global channel, when it is not in the task?

    Thanks for your time, Dylan

    Hello Carisa,.

    I decided to go head re - install the DAQmx tonight and re-imported the right config file known about it.  So far, all global virtual channels are now under the management of devices and interfaces plus all unwanted virtual channels have disappeared - Yippee!  I tried to browse a unit test to make sure that the virtual channels work too, they seem good.

    Finally, the issue is resolved.  I would like to say thank you to you for you and Roberto Bozozlo have spent the time to help me through this.

    Sincerely, Dylan

  • How do switch you between multiple channels to indicate which channel to acquire the data from?

    I'm trying to builld a VI where I can have an option to enable or DISABLE multiple channels depending on the modules plugged into the chassis and then acquires the data of the channels which are turned on and where other acquisition parameters do not change. Is there any specific/switch where can I do this? Please answer as soon as possible. Its quite urgent. Thank you

    You use DAQmx?  To change the assignment of the data acquisition channels, you must close the currently open session and then create a new session with the new channel definition.  So the order of execution:

    Create task or virtual channel - read - clear task of triggering and synchronization of the configuration - set new channel list and to create a task - read - clear task, etc...

  • Several channels with different frequencies

    Hello

    I use card NI USB-6221.

    The C API using, I need to generate 6 digital output channels, with frequencies of diffrenet and Heavy duty.

    To be more precise, the 2 are totally identical, but I need them to be reversed, and the other 4 are similar to another, but should be shifted in time (I.e. There is a delay between each of the channels).

    I used the 2 channels of CO that the USB-6221 takes charge for the first two signals, and it works very well (the two signals are synchronized and are reversed).

    Now I need an additional 4 channels for the other vague square.

    I saw an articale NOR by JohnP web site with the title:

    Generate multiple channels of digital output with different frequencies and Heavy Duty

    The following example shows how to create and generate a digital with the non-regeneration wave form so that you can change the frequency and the duty cycle on the fly with the M Series DAQ hardware X.  The example uses output digital rather than counters to achieve this, so if you need more output than the available counters, it would be a good option (Note: on the materials of the M series an external sample clock must be provided, this may be caused by one of the counters if you want).

    that seems to be exactly what I need, but the examples are for LabView which I did not.

    Can someone explain how to do this with the C functions?

    Best regards

    Danny.

    Hey Danny,

    The important thing to note is that you can clock of arbitrary digital waveform (up to 1 MHz on the 6221).  The real data acquisition programming is pretty easy once you have the waveform.  My Example LV used LabVIEW Base generating function VIand then converted to a digital waveform to generate the signal from each channel.

    The functions of LV helped tremendously with to achieve the waveforms to be updated on the fly (the basic function generator keeps track of phase for you).

    If you do not need to be updated on the fly, then the construction of the waveform in C should not be too bad.  For example:

    P0.0 [1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0] * 1

    P0.1 [0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0] * 2

    P0.2 [0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1] * 4

    P0.3 [1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1] * 8

    [9 9 9 9 9 3 3 3 3 3 6 6 6 6 6 12 12 12 12 12]

    The table above U8 would give you 4 output waveform of 50% duty cycle at Fs/20, shifted 90 degrees to eachother.  The lines would be p0.0 by p0.3 (the bit rate of the U8 corresponds to what line goes high).

    Best regards

  • Dedicated for each channel from multiple channels in a single task task disadvantage

    Hello

    My current acquisition software (C + c++ / GCC) encapsulates the methods rather clumsy niDAQmx C to interface with the data acquisition equipment in a class that represents a task of acquisition. This way I can create several instances, for example counter input, analog input, analog output, their terminals and the class supports all work low level as ensuring input analog fake internal is started if there are only counter entries such as the sample clock starts, or configure reminders N-sample, etc.

    It seems to work very well, and also the time seems to be good, because first of all the tasks on multiple instances of my wrapper. For triggered early, that I use

    DAQmxCfgDigEdgeStartTrig(mTask,mTriggerTerminal.toAscii().constData(),DAQmx_Val_Rising)

    in-house.

    Now my real question: what is the advantage of multiple channels, when everything seems to work fine with multiple tasks and only one channel per task? I don't see the disadvantage, it would first classify necessary acquisitions in types (I, ao,...) because several strings in a single task must be of the same type. With my approach I need not care because each channel still gets its own task.

    I don't know I'm missing something here. Maybe someone can explain it to me, maybe some limitation of multi-tasking, I have not yet read.

    Hey!

    Unless you specified for managing the it (simultaneous sampling) or modular instruments and hardware devices (see link )

    You cannot perform two tasks at the same time that access to the analog inputs, for example, because the

    ADC is a shared resource that is connected to a multiplexer, and that only one task can work in it at a time given. (see here )

    Similar restrictions often apply to other types of operations.

    I'm not aware of any performance issues, perhaps a little more memory could be used.

    So as long as your hardware supports what you are doing, you should be ok, I think,

    and it is only a question of clarity and intelligibility, ease of use and structure.

    As you use classes, I'm sure you've heard about encapsulation - so it is a

    question of how you want to design your application.

    In addition, when you work in LabVIEW, tasks feel more natural to the principle of data flow, because you have a thread for your data acquisition,

    and it works very well with our modes of standard design.

    So, if it is better for you (and works with the hardware), you can give all the channels its own task.

    Hopefully this might clarify some things,

    Kind regards

    Rome

    OR Germany

  • Write to digitall all ports (channels) with the decimal value

    Hello

    It is possible to write all digital channels with a value decimal for a device with 96 channels at the same time?

    I have a USB-6509 camera and I want to write each value of Pentecost bit 1 in the loop (for the first transfer I write 0,1,2,4,8,16, 32, 64 and 128) with the line "Dev3/port0 / line0:7", but if I want to write all ports at the same time, how to set the line and the "write.vi DAQmx?

    Thank you.

    You can configure the reading and writing in the ports of 8 bits with the 6509.  For example, you could write just 128 to "Dev3/port0.  If you want to write to all 12 ports, I recommend doing a task that is several channels on the 6509 module, each channel of the task being a port.  You can then use the channel Multiple, single sample of writing of your values.  Your values must be in a table of U8.

  • filter multiple channels

    Hello, I have another problem here, just started to learn the filtering and decided to practice on the job making, im if you have this one question: I have two signals on channels of entry of two pressure sensors that come with high noise. I tried to split the signals, filter, and then merge again to send to waveform, but it does not somehow, and I thought that if there was a specific filter for multiple channels, I read that some TREES can divide signals itself and merge them automatically, but I couldn't find one. suggestions for beginners? Thanks in advance

    PS by the way, managed to filter one of the signals manually split and for some reason, the waveform to the display of the data of pressure with sound sensor stops working after apprx 3 sec, it kind of drags a bit and then goes black blank, so any suggestions on this point, would much appreciate

    PPS two graphics of waveform showing the initial data of the sensors go blank after a while at the same time black

    Hello Pomplamoose,

    I forgot to mention something: If you set playback VI to N samples then wire a constant for the number of samples per input channel. A good way would be to read in samples of 1000 per iteration.

    Part Fliltering:

    First of all, if you want to filter the high sounds you use Lowpass Fliter.

    Attached you will find your VI with 2 ways how you can filter your signals.

    (1) easy solution with express filter VI.

    (2) VI of Butterworth filter, the way in which you the tried.

    Some explanations to 2):

    If you use the butterworth VI as a low pass/high pass filter filter, it ignores the entrance of high cut-off frequency. The entry, you should use is the lowcutoff FREQ.

    In VI I provide you with there is no synchronization of the signal information once it is filtered, because you only use data of Y of the type of waveform. If you have calendar information in your signal you could do that with the construction of a waveform type after you filtered the data Y.

    Therefore, you have no synchronization of the signal you need to resize the chart you can see the filtered together signal.

    To merge the signals after you their filtered, you have 2 ways:

    (1) build an array of filters.

    (2) use the signals of fusion VI.

    If you need help just ask, otherwise mark as resolved.

    Kind regards

    Markus Mayr

  • 3070 connectivity problem - multiple Accespoints with the same SSID

    Hi all

    I have a problem with my printer HP Deskjet 3070 printer all-in-one.

    I have 2 accespoints with the same SSID for better coverage of the pit of the wireless home network.

    For some reason any my HP printer keeps losing wireless connection when the 2 accespoints are rising.

    I use a different frequency for the 2 accespoints channel and it works fine with all other wireless devices.

    I did that a DHCP are used, r, but in fact it doesn't matter because the printer uses a static IP (192.168.0.3)

    When the two AP is the printer loses wirelesss connectivity. (The blue led will blink)

    If I take one of the accespoints offline, the printer becomes available.

    Is this a problem on my end or a problem of software/firmware printer?

    Kind regards

    -eth0

    Lol this is not very clear to me?

    But it is very good that we continue here:

    http://h30499.www3.HP.com/T5/printers-DeskJet/3070A-connectivity-issue-multiple-Accespoints-with-the-same-SSID/TD-p/5865699#.UKNyiYatlI1

  • Multiple selection with binding variable error

    Hello world

    I tried to put in place an array of adf multiple selection with another table, by following the tutorial (http://www.oracle.com/technetwork/developer-tools/adf/learnmore/75-multi-parent-row-detail-views-328078.pdf), page 3.

    I created all things and first of all I had an exception error, which I fixed, but now, whenever I try to select multiple lines, it won't update the table of the adf.

    In this example, I choose a service line and it shows the emplooyes, but every time I try to choose another line by ctrl clicking on it, the employees table be updated.

    Since I tryied to follow the tutorial, I'll put the code for the bean, I created for this purpose (it's a little different than the code given by the tutorial, but only because I had to get rid of the exception error)

    I use jdeveloper Studio Edition Version 12.1.2.0.0.

    Here is my code for the bean.java:

    Select listen port defined for the departments table. The selected line keys are read in the reference table.

    For each line, the Department ID value is read and added to a string buffer that generates a comma-delimited

    List of the departmentIds. In the end, this string is passed as an argument to the link of action ExecuteWithParams

    {} public void onDepartmentTableSelect (SelectionEvent selectionEvent)

    variable to hold the string containing the selected set value line departmentId

    StringBuffer departmentIds = new StringBuffer();

    Go to the main table to read selected line keys

    RicheTableau rt = selectionEvent.getSource ((richeTableau));

    RKS RowKeySet = rt.getSelectedRowKeys ();

    Iterator selectedRowsIterator = rks.iterator ();

    memorize the current line to place it back in the end key

    CurrentRowKey () rt.getRowKey = (list);

    for each selected master line, determine the departmentId

    int size = 0;

    {while (selectedRowsIterator.hasNext ())}

    size ++;

    The rowKey () selectedRowsIterator.next = (list);

    each value is terminated by a comma

    If (departmentIds.length () > 0) {}

    departmentIds.append(",");

    }

    take the current line

    rt.setRowKey (rowKey);

    JUCtrlHierNodeBinding wrappedRow = rt.getRowData ((JUCtrlHierNodeBinding));

    Line rw = wrappedRow.getRow ();

    /*

    Number departmentId = (number) rw.getAttribute ("DepartmentId");

    */

    int departmentIdInt = rw.getAttribute ("DepartmentId") (Integer);

    oracle.jbo.domain.Number departmentId = new oracle.jbo.domain.Number (departmentIdInt);

    departmentIds.append (departmentId.stringValue ());

    }

    back the foreign currency on the line

    rt.setRowKey (currentRowKey);

    Run the query on the detail table

    BindingContext bctx = BindingContext.getCurrent ();

    BindingContainer links = bctx.getCurrentBindingsEntry ();

    OperationBinding executeWithParams = bindings.getOperationBinding("ExecuteWithParams");

    executeWithParams.getParamsMap () .put ("departmentIds", departmentIds.toString ());

    executeWithParams.execute ();

    refresh the detail table

    AdfFacesContext adfFacesContext = AdfFacesContext.getCurrentInstance ();

    adfFacesContext.addPartialTarget (employeeTable);

    }

    }

    If someone has an idea of why it isn't updated table, please answer. Any idea can help.

    Thanks in advance.

    Greetings,

    Frederico Barracha.

    Finally, I found the problem...

    The problem was that I had to remove a line in the properties of my table, the property services: selectedrowkeys, because he only spent the last selected row.

    Yet, I apreciate the help and I had to replace a code in the bean.java, in reason of the exception error and you had to do. Maybe I did a configuration in the wrong way and he would not.

    Thanks for the help.

    Kind regards

    Frederico.

  • Check for multiple users with the value of the UID 0

    Hi gurus,

    The runclufvy.sh gives the warning below can I ignore this or need to fix for the installation of the 11202 RAC on RHEL 5?

    Check for multiple users with the value of the UID 0
    PRVF-4132: several users 'root, jnftsi0' with '0' the UID exists on "hwvpa6".
    PRVF-4132: several users 'root, jnftsi0' with '0' the UID exists on "hwvpa2".

    Thank you

    Hello

    The runclufvy.sh gives the warning below can I ignore this or need to fix for the installation of the 11202 RAC on RHEL 5?

    Check for multiple users with the value of the UID 0
    PRVF-4132: several users 'root, jnftsi0' with '0' the UID exists on "hwvpa6".
    PRVF-4132: several users 'root, jnftsi0' with '0' the UID exists on "hwvpa2".

    User jnftsi0 cannot be used by the Oracle Installer or start the Oracle process, because what is the root group.

    If the user jnftsi0 is used by Oracle install or start Oracle process should then be removed from the root group, otherwise you can ignore it.

    Kind regards
    Levi pereira

  • Safari crashes on opening. Errors: Exception Type: EXC_BAD_ACCESS (SIGSEGV) of Exception Codes: KERN_INVALID_ADDRESS at 0 x 0000000000000023. I have already downloaded the last update: 9.1.3, flash removed, removed malicious software known with Malwarebyt

    Safari crashes on opening. The errors are:

    Exception type: EXC_BAD_ACCESS (SIGSEGV)

    Exception codes: KERN_INVALID_ADDRESS at 0 x 0000000000000023.

    I have already downloaded the last update: 9.1.3, flash removed, removed malicious software known with Malwarebytes. I would like to re - install the operating system, but I downloaded an upgrade initially and do not know what file name to look for to try to do more. I may or may not have a backup. If I do, are there instructions for this kind of restore somewhere?

    Thank you.

    Hello

    Can be an extension Safari or third party plugin that is causing Safari to unexpectedly stop then follow the instructions in this article to support > Safari: no support for third-party modules can cause Safari to suddenly quit, or have performance problems

Maybe you are looking for