Jump to content

VegHead

Members
  • Posts

    7
  • Joined

  • Last visited

    Never

VegHead's Achievements

Newbie

Newbie (1/14)

0

Reputation

  1. QUOTE(i2dx @ Aug 7 2007, 01:37 AM) I wish it were that simple. The Reset NI-DAQmx Configuration appears in MAX at Tool > NI-DAQmx Configuration > Reset DI-DAQmx Configuration, completely clears out all tasks and global channels. My goal is give my users an interface that will give them choices between loading a set of Default Tasks, use the current tasks or loading a previously saved Configuration of Tasks. The DAQmx Import function merges the incoming tasks with any that currently exist. I can't rely on them to delete the unneeded tasks. So I'm looking for a way to delete all the tasks and global channels for the instance when the user wants to load the default or previously saved settings. Thanks, Dave
  2. Trying to use active X to control MAX. Need to get to the Reset Configuration function found under the tools > NIDAQmx configuration > Any idea what class this is found in? Any idea where I can find Help for active X and MAX? Thanks, Dave
  3. QUOTE(crelf @ Jul 31 2007, 01:01 PM) That is basicall the conclusion I've been coming up with. I suppose that I should teach them how to export their configuration also. I supposed another option is to programatically save the *.nce file with the data and when they want to recall their Tasks they will have to import through MAX and select the *.nce file that is with the data. Any suggestions on saving and recalling MAX configurations? Since recalling configurations merges with the existing tasks I can see this getting way out of hand. The users won't take the time to clean up after themselves. Any suggestions about importing? I've also noticed that import wizard show's every thing it's going to import along with yellow warnings all over the place. I don't want users to have to deal with this. Is there a way you know of to programatically clear out all tasks and virtual channels before importing? My thought is that I'll have a standard configuration including 1 task for every piece of hardware. The user then has a starting point, can name his channels, configure them and scale them. When he's done I can delete all the tasks that are unchanged and save the configuration. If the user wants to recall a configuration I would programatically clear all tasks then import the user setup. Thanks, Dave
  4. I've got 3 18-slot PXI Chassis populated with strain and S-series cards. I can synchronize and use 2 at a time when necessary. The systems will be used as a dynamic data acquisition system, meaning that no two uses for the system will be the same. My users are MAX and LV illiterate and one or two are computer illiterate. So I’m trying to create an interface that will ask them questions about sensor type, sensor location…. That will ultimately generate a task for each device used. The strain cards are 2 channel and can’t be combined in tasks. The S series cards can be combined in tasks. This probably doesn’t sound like any big deal, but what I run into next is saving the set up. I would like to just save the tasks but have found that this is no small obstacle to over come. All I’ve been able to come up with would be saving the task.vi inputs into some file and parsing the info back and forth to recall/save a setup or use the limited MAX vi’s to save and recall the tasks. The MAX option doesn’t seem very good as it doesn’t allow a way to clear out all of the unused tasks in MAX. Since the users are MAX illiterate the task list will never be cleared out and will end up being thousands of tasks long by years end. Not acceptable in my opinion. So has anybody out there already created some wizard or cool user interface that covers all of my needs and more? If that is a pipe dream I’m definitely open to any suggestions. I’ve been programming for about 10 years and have my CLD so don’t dumb up your suggestions, throw it at me as hard as you can. Thanks
  5. That is a good point. Thank you. Fortunately I'm doing this for graphing during acquisition for the GUI only. Post process analysis will include all data points. The tech's watch the data on the screen during test and look for Odd spikes that might indicate an issue with the fixture or set up. So I wanted to make sure to capture all of the spikes and make them obvious.
  6. That was very clever. I'm not savy enough to know how to add a picture of my code but with some additions your idea works great. To rebuild a new decimated array after the MinMax function you need to take the Min Index and Max Index from the MinMaxArray.vi. wire those to the Comparison Palet Min&Max.vi to find which came first. The Min or the Max, the Chicken or the egg. Using the Indexarray.vi wire the min index, then the max index. Wire the outputs to the edge of the for loop. After the for lop use the interleve function to put the min/max values back together into an array and graph it. It very closely resembles the original data and includes all abnormal data points. Takes 2 to 4 mS to decimate a 10,000 point array by 5. Fantastic idea. Thanks, Veghead
  7. Download File:post-6833-1163530445.viI've found that the Decimate (continuous, DBL) works great. Very fast on large arrays of data. But by it's nature it only captures a spike in the data if it the peak of the spike happens to be one of the values passed thru. I've tried creating my own version of code to decimate and capture peaks and valleys. It work well but is slow. Is there a way or is there some code out there or shipped that I've over looked that will decimate and pass out the min and max for the given data that is decimated? The code snipet I created uses the a shift register to keep track of the data array. Delete From Array.vi to pull out chunks of the original data. Those array chunks are sent thru the array Max Min.vi. The indicies of Array Max Min.vi go thru the Max&Min.vi to get the correct order. Then I get the 2 points desired from the original chunk in the correct order, build an array of the 2 points and concatinate that array to an array that is being built on a 2nd shift register. It's not really as involved as it sound but difficult to put into words. This process on a large 1 D Array takes about 100mS. Too long. Any suggestions for making this run in a couple mS would be greatly appreciated. Thanks veghead
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.