NI-DAQmx Analog out to Cluster how to convert to individual array elements

I am trying to decompose the cluster that comes from a single channel multiple point anolog input capture. What you get is a cluster that has the starting time, the time interval between samples and the actual analog input data points. What I want to do is after capture I want to have access to the data so I can make calculations on it. When I am done I want to write the data to a spreadsheet file. I can't seem to get the cluster to array function to wire up. I have tried every possible combination of functions and I can't get them to wire up eventhough the input type is a cluster. I have posted a screen shot of my code below.
I can get this to work with raw data using the express vi that writes to spreadsheet but I would like to know how to do this manually as well.
Perry
Attachments:
unbundle.jpg ‏85 KB

You don't understand how dataflow works with LabVIEW and an understanding of this is essential. Dataflow means that a function does not execute until all of the data wired to it is present. In your second file, you create the date/time for the header in the second frame of the sequence structure, when the frame completes, it passes out of the structure to the concantanate string function. This is then wired to the Write Characters to File Function which will now execute because all the data inputs are present. This is set to create a new file so it is executing after the Write to Spreadsheet File which is inside the sequence structure. You do not need the sequence structure at all. You do need to provide some dataflow between the Write Characters and the Write to Spreadsheet File. Here's a bit cleaner example of your code.
Attachments:
Example with Dataflow.vi ‏190 KB

Similar Messages

  • How to convert arraylist into array

    how to convert arraylist into array?

    If you are using generics, I would use this version of toArray:
    List < X > list = ...
    X[] array = list.toArray(new X[list.size()]);If you are not using generics, that same thing looks like:
    List  list = ...
    X[] array = (X[]) list.toArray(new X[list.size()]);

  • 6025e daqmx analog out then input

    I have a 6025E card and I am trying to output a triangle wave on ao0 and read it back on ai1.  it used to work until i added three more analog inputs then i get buffer errors.  I tried changing the analog out to interrupts but it says that property is invalid.  i went into MAX and output a sine wave on ao0 and when i read it back into ai1 in the test panels i a sine wave with a bunch of steps.  Is something wrong with my card? i tried to reset it with no luck.  I even tried the shipping examples and get property invalid on the interrupt and it doesn't like the sample clock?
    any suggestions ?
    James
    Message Edited by James R on 11-16-2006 10:57 AM
    - James
    Using LV 2012 on Windows 7 64 bit

    Hey James,
    Is there a particular reason you are want use interupts? DMAs are generally much faster. If you are getting buffer errors, try increasing the size of the buffer using the DAQmx Configure Output Buffer.
    Let me know if that works for you.
    Cheers
    Malay Duggar
    NI

  • How to convert a 2D array of pixels in to a grayscale planar image

    Im having following problems, I hope someone may help me.
    1.     I want to convert a 2D array of pixels (Grayscale values) into a Grayscale PlannerImage. I tried the following code I found on net.
    The steps to do this are:
    -Construct a DataBuffer from your data array.
    -Construct a SampleModel describing the data layout.
    -Construct a Raster from the DataBuffer and SampleModel. You can use methods from the RasterFactory class to do this.
    -Construct a ColorModel which describes your data. The factory method PlanarImage.createColorModel(sampleModel) will take care of this for some common cases.
    -Construct a TiledImage with the SampleModel and ColorModel.
    -Populate the TiledImage with your data by using the TiledImage.setData() method to copy your raster into the TiledImage.
    Only the last step involves any actual processing. The rest is just object creation.
    public static RenderedImage createRenderedImage(float[][] theData, int width, int height, int numBands) {
    int len = width * height * numBands;
    Point origin = new Point(0,0);
    // create a float sample model
    SampleModel sampleModel =
    RasterFactory.createBandedSampleModel(DataBuffer.TYPE_FLOAT,width,height,numBands);
    // create a compatible ColorModel
    ColorModel colourModel = PlanarImage.createColorModel(sampleModel);
    // create a TiledImage using the float SampleModel
    TiledImage tiledImage = new TiledImage(origin,sampleModel,width,height);
    // create a DataBuffer from the float[][] array
    DataBufferFloat dataBuffer = new DataBufferFloat(theData, len);
    // create a Raster
    Raster raster = RasterFactory.createWritableRaster(sampleModel,dataBuffer,origin);
    // set the TiledImage data to that of the Raster
    tiledImage.setData(raster);
    RenderedImageAdapter img = new RenderedImageAdapter((RenderedImage)tiledImage);
    return img;
    I passed it 2D array of pixels with 3 bands, and it gave an exception >>Array index out of bounds at this line >>tiledImage.setData(raster). Then I tried it with a 1D array of length height*width with a single band. So Now it gives me a monochromatic RenderedImage. How can I make it a grayscale PlanarImage.

    jyang, thank you very much for your response. I believe I found a different solution all together, by converting each 16-bit intensity value into an 8-bit intensity value via an intensity ratio (ie: divide each intensity by the maximum and multiply by 256). The attachment shows the new program.
    Attachments:
    mod_image.vi ‏2004 KB

  • How can I set the caption text of picture controls inside an array or how can I choose which array element is assigned using the array elements caption text property.

    I have 8 picture controls inside an array and I would like to set the caption text of these controls.
    I have used the property node of the array and used the array elements property caption text to set the text.
    The problem is however that I set the same text to all the picture controls inside the array.
    My question is how to set caption text of specific elements (Picture control) that I have so far only been able to access using the array elements caption text property.

    Some more help
    1 You could use the caption of the array and place it in front of the selected picture and update that using property nodes.
    2 Like Norbett said if you use a cluster of pictures then their caption can be updated individually.
    Here is a an example that demonstrates the above
    David
    Attachments:
    Modify the Captions Of Pictures.vi ‏83 KB

  • How to convert image to array pixel values in java

    I would like to know how to convert image into arrary of pixels in java ?
    which API should i use ?
    please give me link to a sample program !

    I find the most efficient way to just walk over the image and call getRGB(x,y) on every pixel, more so than Pixelgrabber. If someone knows a more efficient way, give me a beep.

  • How to change value of array element using property node

    hello all : )
    im using an array of combo-box. the size of array is not fixed.
    i want to use the strings[ ] property of combo-box to enter selection texts but since i have placed it inside the array im unable to use this property.
    i used 'arrayelem' reference property and connected property node to it but didnt got strings [ ] in the selection.
    so is there any way i can use the strings [ ] property
    Solved!
    Go to Solution.

    the picture what I posted is a snippet. It is a png file which also contains a vi:
    http://www.ni.com/tutorial/9330/en/
    I have found this post. I am just reading it:
    http://forums.ni.com/t5/LabVIEW/combobox-in-array-why-does-it-work-this-way/m-p/2146916/highlight/tr...
    It might help...
    hmm, it is more complicated as I thought )
    edit: just to be CLEAR: so you want to create a new selection LIST for each of the array elements (comboboxes)) OR you just want to set all the comboboxes to a particular value which is ALREADY in the combobox list??

  • How to convert an int array to string array?

    Hi,
    Can anyone please help me with this question?
    int number={4,6,45,3,2,77};
    I like to convert this into a list and sort
    List mylist = Arrays.asList(number);
    Collections.sort(mylist);
    But first I need to convert the int array to String array.
    Please advise. Thanks.

    If you want to convert your int array to a String array, you have no choice but doing a conversion element by element in a for loop.
    However, if the sort method doesn't behave as desired, you can use the one with 2 parameters, the second parameter being a comparator class.
    Check the javadoc for more information : http://java.sun.com/j2se/1.3/docs/api/java/util/Collections.html
    /Stephane

  • How to convert an ascii file into dBase .dbf file type

    Does any one out there know how to convert an ascii file(which is generated from PL/SQL script) into a .dbf (dBaseIII) file type? Thanks in advance.

    I haven't worked with dBase for about 20 years, but I seem to recall it having an IMPORT command for that purpose. But maybe I'm wrong...

  • How to modify array elements from a separate class?

    I am trying to modify array elements in a class which populates these fields by reading in a text file. I have got mutator methods to modify the array elements and they work fine in the same class.
    public class Outlet {
         private Outlet[] outlet;
         private String outletName;
         private int phoneNumber;
         private int category;
         private int operatingDays;
    static final int DEFAULT = 99;
         public void setPhoneNumber(int newPhoneNumber) {
              phoneNumber = newPhoneNumber;
         public void setCategory(int newCategory) {
              category = newCategory;
         public void setOperatingDays(int newOperatingDays) {
              operatingDays = newOperatingDays;
    public static void readFile(Outlet[] outlet) throws FileNotFoundException {
              Scanner inFile = new Scanner(new FileReader("outlets.txt"));
              int rowNo = 0;
              int i = 0;
              String outletValue;
              while (inFile.hasNext() && rowNo < MAXOUTLETS) {
                   outlet[rowNo] = new Outlet();
                   outletValue = inFile.nextLine();
                   outlet[rowNo].setOutletName(outletValue.toUpperCase());
                   outlet[rowNo].setPhoneNumber(DEFAULT);
                   outlet[rowNo].setCategory(DEFAULT);
                   outlet[rowNo].setOperatingDays(DEFAULT);
              inFile.close();
         public static void displayUnassignedOutlets(Outlet[] outlet) {
              int i = 0;
              System.out.println("Showing all unassigned Outlets");
              System.out.println(STARS);
              for (i = 0; i < MAXOUTLETS; i++ ) {
                   if (outlet.getCategory() == DEFAULT) {
                   System.out.println("\nOutlet Number: " + (i + 1) + "\t" +
                             outlet[i].getOutletName());
    Now in the other class that I want to modify the array elements I use the following code but I get an error that "The expression type must be an array but a Class ' Outlet' is resolved".
    So how can I modify the array elements? What do I have to instantiate to get the following code to work?
    public class Franchise {
         private Franchise[] franchise;
         public Outlet[] outlet;
         public static void createFranchise(Franchise[] franchise) throws FileNotFoundException {
              Scanner console = new Scanner(System.in);
              int choice = -1;
    ++++++++++++++++++++++++++++++++++++
              Outlet outlet = new Outlet();
              Outlet.readFile(outlet.getOutlet());
    ++++++++++++++++++++++++++++++++++++
              boolean invalidChoice = true;
              while (invalidChoice) {
              System.out.println("\nCreating a New Franchise...");
              System.out.println(STARS);
              System.out.println("Please select an outlet from the list below");
              Outlet.displayUnassignedOutlets(outlet.getOutlet());
              choice = console.nextInt();
              if (choice < 0 || choice > 10) {
                   System.out.println("Error! Please choose a single number between 1 and 10");               
              else {
                   invalidChoice = false;
              invalidChoice = true;
              while (invalidChoice) {
                   System.out.println("Please enter the Phone Number for this Outlet");
                   choice = console.nextInt();
                   String phone = new String();
              phone = new Integer(choice).toString();
                   if (phone.length() < 8 || phone.length() > 10) {
                        System.out.println("Error! Please enter 8 to 10 digits only");
                   else {
    +++++++++++++++++++++++++++++++++++++++
                        outlet[(choice - 1)].setPhoneNumber(choice);
    +++++++++++++++++++++++++++++++++++++++
                        invalidChoice = false;

    Hi Pete!
    Thanks for your comments. I have included my full classes below with their respective driver modules. Hope this helps out a bit more using the code tags. Sorry, it was my first posting. Thanks for the heads up!
    import java.util.*;
    import java.io.*;
    public class Outlet {
         public Outlet[] outlet;
         private String outletName;
         private int phoneNumber;
         private int category;
         private int operatingDays;
    //     private Applicant chosenApplicant;
         static boolean SHOWDETAILS = false;
         static final String STARS = "****************************************";
         static final int MAXOUTLETS = 10;
         static final int DEFAULT = 99;
         public Outlet[] getOutlet() {
              return outlet;
         public String getOutletName() {
              return outletName;
         public int getPhoneNumber() {
              return phoneNumber;
         public int getCategory() {
              return category;
         public int getOperatingDays() {
              return operatingDays;
         public void setOutletName(String newOutletName) {
              outletName = newOutletName;
         public void setPhoneNumber(int newPhoneNumber) {
              phoneNumber = newPhoneNumber;
         public void setCategory(int newCategory) {
              category = newCategory;
         public void setOperatingDays(int newOperatingDays) {
              operatingDays = newOperatingDays;
         public Outlet() {
              outlet = new Outlet[10];
         public static void readFile(Outlet[] outlet) throws FileNotFoundException {
              Scanner inFile = new Scanner(new FileReader("outlets.txt"));
              int rowNo = 0;
              int i = 0;
              String outletValue;
              while (inFile.hasNext() && rowNo < MAXOUTLETS) {
                   outlet[rowNo] = new Outlet();
                   outletValue = inFile.nextLine();
                   outlet[rowNo].setOutletName(outletValue.toUpperCase());
                   //System.out.println(rowNo % 2);
              //     if (rowNo % 2 == 0) {
                   outlet[rowNo].setPhoneNumber(DEFAULT);
                   outlet[rowNo].setCategory(DEFAULT);
                   outlet[rowNo].setOperatingDays(DEFAULT);
    //               System.out.println("Outlet Name+++++++  " + rowNo + "\n" + outlet[rowNo].getOutlet());               
                   rowNo++;
         //          System.out.println(rowNo);
              if (SHOWDETAILS) {
                   if (rowNo > 6) {
                        for (i = 0; i < rowNo; i++ ) {
                             System.out.println("\nOutlet Name+++++++  " + (i + 1) + "\t" +
                                       outlet.getOutletName());
              inFile.close();
         public static void displayAllOutlets(Outlet[] outlet) {
              int i = 0;
              System.out.println("Showing All Outlets");
              System.out.println(STARS);
              for (i = 0; i < MAXOUTLETS; i++ ) {
                   System.out.println("\nOutlet Number: " + (i + 1) + "\t" +
                             outlet[i].getOutletName());
         public static void displayUnassignedOutlets(Outlet[] outlet) {
              int i = 0;
              System.out.println("Showing all unassigned Outlets");
              System.out.println(STARS);
              for (i = 0; i < MAXOUTLETS; i++ ) {
                   if (outlet[i].getCategory() == DEFAULT) {
                   System.out.println("\nOutlet Number: " + (i + 1) + "\t" +
                             outlet[i].getOutletName());
         public static void main(String[] args) throws FileNotFoundException {
              Outlet start = new Outlet();
              Outlet.readFile(start.getOutlet());
              Outlet.displayUnassignedOutlets(start.getOutlet());
    ================================
    So in the below Franchise class, when I specify:
    outlet[(choice - 1)].setPhoneNumber(choice);
    I get the error that an array is required but the class Outlet is resolved. Any feedback is greatly appreciated!
    import java.io.FileNotFoundException;
    import java.io.PrintWriter;
    import java.util.*;
    public class Franchise {
         private Franchise[] franchise;
         public Outlet[] outlet;
         static final int MAXOUTLETS = 10;
         static final int DEFAULT = 99;
         static boolean SHOWDETAILS = false;
         static final String STARS = "****************************************";
         static final double REGHOTDOG = 2.50;
         static final double LARGEHOTDOG = 4;
         static final int SALESPERIOD = 28;
         static final int OPERATINGHOURS = 8;
         public Franchise[] getFranchise() {
              return franchise;
         public Franchise() {
         public static void createFranchise(Franchise[] franchise) throws FileNotFoundException {
              Scanner console = new Scanner(System.in);
              int choice = -1;
              //franchise[i] = new Franchise();
              Outlet outlet = new Outlet();
              //outlet[i] = new Franchise();
              Outlet[] myOutlet = new Outlet[10];
              Outlet.readFile(outlet.getOutlet());
              boolean invalidChoice = true;
              while (invalidChoice) {
              System.out.println("\nCreating a New Franchise...");
              System.out.println(STARS);
              System.out.println("Please select an outlet from the list below");
              Outlet.displayUnassignedOutlets(outlet.getOutlet());
              choice = console.nextInt();
              if (choice < 0 || choice > 10) {
                   System.out.println("Error! Please choose a single number between 1 and 10");               
              else {
                   invalidChoice = false;
              //System.out.println(j);
              invalidChoice = true;
              while (invalidChoice) {
                   System.out.println("Please enter the Phone Number for this Outlet");
                   choice = console.nextInt();
                   String phone = new String();
                  phone = new Integer(choice).toString();
                   if (phone.length() < 8 || phone.length() > 10) {
                        System.out.println("Error! Please enter 8 to 10 digits only");
                   else {
                        outlet[(choice - 1)].setPhoneNumber(choice);
                        invalidChoice = false;
              invalidChoice = true;
              while (invalidChoice) {
                   System.out.println("Please enter the category number for this Outlet");
                   choice = console.nextInt();
                   if (choice < 1 || choice > 4) {
                        System.out.println("Error! Please choose a single number between 1 and 4");
                   else {
                        outlet.setCategory(choice);
                        invalidChoice = false;
              invalidChoice = true;
              while (invalidChoice) {
                   System.out.println("Please enter the Operating Days for this Outlet");
                   choice = console.nextInt();
                   if (choice < 5 || choice > 7) {
                        System.out.println("Error! Please choose a single number between 5 and 7");
                   else {
                        outlet.setOperatingDays(choice);
                        invalidChoice = false;
    //          Applicant chosenApplicant = new Applicant();
         //     Applicant.readFile(chosenApplicant.getApplicant());
              //Applicant.checkCriteria(chosenApplicant.getApplicant());
         //     System.out.println("This Franchise has been assigned to : " +
              //          chosenApplicant.displayOneEligibleApplicant());
              Outlet.displayUnassignedOutlets(outlet.getOutlet());
         public static void main(String[] args) throws FileNotFoundException {
              Franchise start = new Franchise();
              Franchise.testing(start.getFranchise());
              //Franchise.createFranchise(start.getFranchise());
              //Franchise.displaySalesForcast();
              //Franchise.displayAllFranchises(start.getOutlet());

  • How Convert a Byte array to a image format

    Hi,
    How to convert a Byte array to an image format....I shall be more clear what i want...See i recieve a Byte array fom server this Byte array before recieveing at my end it was converted from an image/text format into a Byte array and is sent from server and, I recieve this Byte array now I have to convert this Byte array into their respective image....please tell me how to convert a Byte array to a image ......... Kindly explain clearly as i am new to Java......
    Thanking You.

    Note: This thread was originally posted in the [New To Java|http://forums.sun.com/forum.jspa?forumID=54] forum, but moved to this forum for closer topic alignment.

  • How to convert a .jsp to a .java/.class for use in pplcode

    .

    At first , thanks for your help ,armalcolm
    But I don't understand how to convert java string array to c string(char)array.I have seen the doc. , but I don't understand still.
    Belown is my code
    <code>
    JNIEXPORT void JNICALL Java_init
    (JNIEnv *env, jobject jobj, jobjectArray jfilename, jint jlength)
         jobject obj = env->NewObject(env,mid,param);
         jobjectArray obj_java = (jobjectArray)env->CallObjectMethod(obj,mid,param);
         length = jlength;
         filename = (char**) malloc(length * sizeof(char*));
         for (i=0;i<length;i++)
              jstring jstr = env->(jstring) GetObjectArray(obj_java,i);
              filename[i] = (char*) malloc(strlen(jstr)+1);
              strcpy(filename,GetStringUTFChars(jstr,0));
    </code>
    I know this is a error codes.Can you help me??
    I don't know how to use NewObject() , CallObjectMethod() and GetObjectArray() method
    Thanks

  • Read spreadsheet file for Analog Out Profile using DAQmx

    I am trying to read a .txt file in, then output the Analog out profile (Daqmx) vs. time.  The first column is time is (ms) in .001 sec increments.  The second column is the Analog out voltage I want to output.  I want to read the profile in, and ouput the a Analog out voltage incrementing in .001 sec intervals (or whatever the time increments are in the .txt file).  The problem I am having is, it reads in the whole file and outputs it in a fraction of a sec, instead of incrementing by the time.  I attached a screen shot of what I have.  Any help would be great. Thanks 
    Attachments:
    screen shot read.jpg ‏75 KB

    You are reading the timing but not doing anything with it. You've specified Analog Wfm 1Chan NSamp for the DAQmx Write but you did not create the waveform data type. Use the Build Waveform function on the Waveform palette and wire in your array to the Y (waveform component) input and the time interval to the dt input.
    Message Edited by Dennis Knutson on 04-06-2006 08:56 AM
    Attachments:
    Build Waveform.JPG ‏6 KB

  • How can I generate tones with usb 6008 using analog out?... tia sal2

    Greetings All
    I've been looking at the example Sim Phone.vi that comes with labview and would like to generate similar tones out of our usb 6008 device. I can get a very faint sound out of our usb 6008 using the example Gen Multi Volt Updates-SW Timed.vi Does anyone know the best way to alter Sim Phone.vi to have the sound come out of the Analog output of our usb 6008 device. ( I have a small speaker connected to the Analog out on our USB 6008)
    PS: we are using labview 7.1
    Does anyone know the Analog output frequency range of the usb-6008? Is this possible?
    TIA
    Attachments:
    Gen Mult Volt Updates-SW Timed.vi ‏78 KB

    Hi sal2,
    As stated earlier you could most certainly use the USB device to generate sound, but that would be at a max update rate of 150 Hz. While according to Nyquist theorem you could get frequency information for signals below 75 Hz, you may notice that the quality of the data in that spectrum to be very low due to having so few samples.
    While technically possible to produce you really should look for a device with a faster Analog Output update rate. I would look for a device that supports Analog Output at least 10x the maximum frequency that you want the user to hear. Some great, yet lower cost products, would be the M-Series line of products. They would give you the performance that is really needed in the type of application that you are talking about.
    If you still want to use the USB Device, then you would need to use code similar to that found in the example Gen Mult Volt Updates-SW Timed (Found here: C:\Program Files\National Instruments\LabVIEW 7.1\examples\daqmxbase\Dynamic\ao).
    Best of luck getting your system together,
    Otis
    Training and Certification
    Product Support Engineer
    National Instruments

  • How to drive Analog Out For Hbm MX879

    Hello,
    I use labview with Hbm 879 Module. I try to drive an analog out directly from labview. I can't find any Vi for this in the Hbm library. I asked directly to hbm but such vi are not developped and there is no ETA.
    Does someone have done this kind of feature on hbm analog output and can share his vi ?
    Thank's.
    Jacques

    Hello,
    I didn't find this instrument driver on the third party driver page :http://www.ni.com/downloads/instrument-drivers/f/
    If this material support SCPI command (like *idn?) may be you can try to send those command directly with VISA functions. Also may be the commands are given in the user manual of the HBM 879.
    Best regards
    Jean-Luc D. NI France
    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;}
    Journées techniques : du contrôle d'instruments aux bancs de test
    Du 4 au 13 juin : Grenoble - Pari...

Maybe you are looking for

  • MR8M post a different GL account versus MIRO

    Hi Gurus, Any idea why MR8M posted a different GL account from the original entry? here are the entries: MIRO Debit- GR/IR clearing      100 Debit- Expense(manual)    20 Credit- AP vendor                120 MR8M   Debit- AP vendor          120 Credit

  • Printer 5220 problem with Black color

    I replaced my Black cartridge and the printer did not print Black. I clean the head many times already. What should I do?

  • SQL statement errors in 10.2.0.3 but not 10.1.0.4

    One of my developers noticed some errors this morning after we moved over to 10.2.0.3 on windows. The query returns rows in 10.1.0.4 but in 10.2.0.3 returns an ORA-01791:not a SELECTed expression. Here is the query: Select rn, mpid, first, middle, la

  • RemoteApp's not running when accessed from the internet

    Hi TP, Hopefully someone can help me here. I've installed RDWeb on the RDG server which live in our DMZ - I can access and log on to RDS from the internet with the RDG FQDN remote.external.com but I can't launch any RemoteApp's. Basically there's no

  • Permissions issue in moss 2007

    Hi , I have site collection under that couple of subsites as well, there are different SP group  foreach  subsite. the group permission level is Contribute. permissions were broken from parent. from one subsite group one of the user is suddenly not g