Read new data from main vi to sub vi on each loop of sub vi

I know this is possible (or at least I think I do), what I have is essentially two while loops, one is in hte main VI, which contains all my sub vi's, and the other is in one of my sub vis. I have a DAQ signal coming in to my main VI, and this is being sent to various sub vis and conditioning equations. One of the sub vi's is a pop up window, which allows the user to calibrate the device. It runs a while loop loging the voltage from the DAQ signal, generating a best fit line, and sending the slope and intercept data to a configuration file.
The problem is, the sub VI is taking the valueof the DAQ at the start of hte while loop, but then not updating it on each itteration. Someone told me I should look at global variables, but I could not figure out how to use them. Could someone please explain how the value can be updated in each loop of the sub VI ?

Hello..
According to me global variables will be better potion to solve your problem... You need to take values in global variables and read them in your sub VIs...
1. Go to block diagram - right click to get function palette - then got to all functions - structures - select global - put it in your VI - then double click on the global - then a front panel will open.
2. Take the variables you need save the file.
3. Then copy the same global variable fro the block diagram and paste it in the sub VI where you want. Left click on the global variable and you will be able to select the one of the variables you created in the global front panel.
4. Whenever you want to use these global variables just copy the variable from the VI and paste it another VI where you want to use it..
I hope this will help you.. Best luck..

Similar Messages

  • Is there any way to read the data from an excel file w/o using a loop structure?

    I am retrieving a large amount of data (multiple sheets) from an excel file and would like to extract the entire range without retrieving individual cell values(too slow). I can write an range all at once but cannot read it.

    If you are able to write a block of data, then you should be able to read a block. The four requirements that you want to verify are:
    1. The Range specified must match the exact size and location of the data block you want to read
    2. The returned data is in a 2D array of Variants (either strings or numbers)
    3. Use Variant to Data to convert to 2D DBL or 2D Strings
    4. Check for the correct orientation for your application (use transpose if it is not)
    Michael Munroe
    Certified LabVIEW Developer
    www.abcdef.biz
    Michael Munroe, ABCDEF
    Certified LabVIEW Developer, MCP
    Find and fix bad VI Properties with Property Inspector

  • Read Video data from buffer or byte array

    Hi guys,
    I've developed a tx/rx module, the tx read an mpg file and transfer it over network. rx has the data in a byte array, I also feed the byte array to a media buffer. Now my question is how to creat the player and feed the player to play the content of the buffer or byte array?
    I would really appreaciate if someone could help me please...
    Thanx
    I haven't and didn't want to use any of the RTP stuff...

    Hi, I tried PullBufferDataSource. What I am trying to do is : read a .wav file into a queue, then construct a datasource with this queue. The processor will be contructed to process the datasource, and a datasink to sink data to a file. I think if this workflow could work, it should work in network transmission.
    In fact the code works partially. The trick part is the read( Buffer ) method. If I try to use 'if' statement to see if Queue has empty or not, the datasink could not format the head part of output file correctly. If I didnot use 'if' statement, the program will terminate when exception occurs. The output file is all right.
    I did not understand what is going on.
    Note: the original file is a RAW data file without format info.
    Here is the code fragments. Hopefully we can work together to figure it out.
    Thanks.
    Jim
    * QueueDataSourceTester.java
    * Created on November 11, 2002, 10:29 AM
    package bonephone;
    import javax.media.*;
    import javax.media.control.*;
    import javax.media.protocol.*;
    import javax.media.datasink.*;
    import javax.media.format.AudioFormat;
    import java.util.LinkedList;
    import java.io.*;
    * @author wguo
    public class QueueDataSourceTester implements ControllerListener, DataSinkListener {
    protected LinkedList myQueue;
    /** Creates a new instance of QueueDataSourceTester */
    public QueueDataSourceTester() {
    myQueue = new LinkedList();
    public void testIt( ){
    // Read a file into a Queue
    FileInputStream inputStream = null;
    try{
    inputStream = new FileInputStream( "c:/media/phone.wav");
    catch( IOException ioe ){
    System.err.println( "Error on open media file." );
    try{
    byte data[] = new byte[1024];
    int n ;
    while( ( n = inputStream.read( data, 0, 1024 )) != -1 ){
    myQueue.addLast( data );
    data = new byte[1024];
    inputStream.close();
    catch( IOException ioe ){
    System.err.println( "Error on reading file." );
    System.out.println( "Queue Size: " + myQueue.size() );
    System.out.println( "myQueue = " + myQueue.size() );
    QueueDataSource dataSource = new QueueDataSource( myQueue );
    Processor p = null ;
    try{
    System.out.println( "Create processor for QueueDataSource ... " );
    p = Manager.createProcessor( dataSource );
    catch( Exception e ){
    System.err.println( "Cannot create a processor for the QueueDataSource. " );
    System.out.println( "\nProcessor is created." );
    p.addControllerListener( this );
    p.configure();
    if( !waitForState( p, p.Configured ) ) {
    System.err.println( "Failed to configure the processor." );
    System.out.println( "\nProcessor is configured") ;
    // p.setContentDescriptor( new ContentDescriptor( ContentDescriptor.RAW ) );
    p.setContentDescriptor( new ContentDescriptor( FileTypeDescriptor.WAVE ) );
    TrackControl tcs[] = p.getTrackControls();
    Format f[] = tcs[0].getSupportedFormats();
    if( f == null || f.length == 0 ){
    System.err.println( "The mux does not support the input format : "+ tcs[0].getFormat() );
    tcs[0].setFormat(
    new AudioFormat( AudioFormat.ULAW,
    8000,
    8,
    1,
    Format.NOT_SPECIFIED,
    AudioFormat.SIGNED,
    8,
    Format.NOT_SPECIFIED,
    Format.byteArray ) );
    //System.out.println( "Setting the track format to: " + f[4] );
    p.realize();
    if( !waitForState( p, p.Realized )){
    System.err.println( "Failed to realize the processor" );
    DataSink dsink;
    MediaLocator outML = new MediaLocator("file:/c:/media/queue.wav" );
    if( (dsink = createDataSink( p, outML )) == null ){
    System.err.println( "Failed to create a datasink for given " +
    "mediaLocator : " + outML );
    dsink.addDataSinkListener( this );
    System.out.println( "\nProcessor is realized" );
    try{
    p.start();
    dsink.start();
    catch( IOException ioe ){
    System.err.println( "IO error during processing." );
    waitForFileDone();
    try{
    dsink.close();
    catch( Exception e ){
    p.removeControllerListener( this );
    System.err.println( "... done processing." );
    DataSink createDataSink( Processor p, MediaLocator outML ){
    DataSource ds ;
    if( ( ds = p.getDataOutput() ) == null ) {
    System.err.println( "Something is really wrong: the processor does" +
    " not have an output DataSource. " );
    return null;
    System.out.println( "DataOutput: " + ds.getContentType() );
    DataSink dsink;
    try{
    System.out.println( "- create DataSink for : " + outML );
    dsink = Manager.createDataSink( ds, outML );
    dsink.open();
    catch( Exception e ){
    System.err.println( "Cannot create the DataSink: " + e );
    return null;
    return dsink;
    Object waitSync = new Object();
    boolean stateTransitionOK = true;
    boolean waitForState( Processor p, int state ){
    synchronized( waitSync ){
    try{
    while( p.getState() < state && stateTransitionOK )
    waitSync.wait();
    catch( Exception e ){
    return stateTransitionOK;
    public void controllerUpdate(javax.media.ControllerEvent controllerEvent) {
    if( controllerEvent instanceof ConfigureCompleteEvent ||
    controllerEvent instanceof RealizeCompleteEvent ||
    controllerEvent instanceof PrefetchCompleteEvent ){
    synchronized( waitSync ){
    stateTransitionOK = true;
    waitSync.notifyAll();
    } else if( controllerEvent instanceof ResourceUnavailableEvent ){
    synchronized( waitSync ){
    stateTransitionOK = false;
    waitSync.notifyAll( );
    public static void main( String args[] ){
    QueueDataSourceTester tester = new QueueDataSourceTester();
    tester.testIt();
    Object waitFileSync = new Object();
    boolean fileDone = false;
    boolean fileSuccess = true;
    boolean waitForFileDone(){
    synchronized( waitFileSync ){
    try{
    waitFileSync.wait( 5000 );
    catch( Exception e ){
    System.err.println( "Error on waiting file to be done" );
    return fileSuccess;
    public void dataSinkUpdate(javax.media.datasink.DataSinkEvent dataSinkEvent) {
    if( dataSinkEvent instanceof EndOfStreamEvent ){
    synchronized( waitFileSync ){
    fileDone = true;
    waitFileSync.notifyAll();
    else if ( dataSinkEvent instanceof DataSinkErrorEvent ){
    synchronized( waitFileSync ){
    fileDone = true;
    fileSuccess = false;
    waitFileSync.notifyAll();
    // Inner Class
    * A datasource that will read Media data from Queue.
    * Inside queue individual RAW data packats are stored.
    * @author wguo
    public class QueueDataSource extends PullBufferDataSource{
    protected QueueSourceStream streams[];
    /** Creates a new instance of QueueDataSource */
    public QueueDataSource( LinkedList source ) {
    printDebug( "QueueDataSource: QueueDataSource( LinkedList) " );
    streams = new QueueSourceStream[1];
    streams[0] = new QueueSourceStream( source );
    public void connect() throws java.io.IOException {
    printDebug( "QueueDataSource: connect() " );
    public void disconnect() {
    printDebug( "QueueDataSource: disconnect()" );
    public String getContentType() {
    return ContentDescriptor.RAW;
    public Object getControl(String str) {
    printDebug( "QueueDataSource: getControl(String) " );
    return null;
    public Object[] getControls() {
    printDebug( "QueueDataSource: getControls() " );
    return new Object[0];
    public javax.media.Time getDuration() {
    return DURATION_UNKNOWN;
    public javax.media.protocol.PullBufferStream[] getStreams() {
    printDebug( "QueueDataSource: getStreams() " );
    return streams;
    public void start() throws java.io.IOException {
    printDebug( "QueueDataSource:start()" );
    public void stop() throws java.io.IOException {
    printDebug( "QueueDataSource: stop() " );
    private void printDebug( String methodInfo ){
    System.out.println( methodInfo + " is called" );
    // Inner Class
    public class QueueSourceStream implements PullBufferStream{
    LinkedList sourceQueue;
    AudioFormat audioFormat;
    boolean ended = false;
    /** Creates a new instance of QueueSourceStream */
    public QueueSourceStream( LinkedList sourceQueue ) {
    printDebug( "QueueSourceStream: QueueSourceStream( LinkedList )" );
    this.sourceQueue = sourceQueue;
    audioFormat = new AudioFormat(
    AudioFormat.ULAW,
    8000,
    8,
    1,
    Format.NOT_SPECIFIED,
    AudioFormat.SIGNED,
    8,
    Format.NOT_SPECIFIED,
    Format.byteArray);
    public boolean endOfStream() {
    printDebug( "QueueSourceStream: endOfStream()" );
    return ended;
    public javax.media.protocol.ContentDescriptor getContentDescriptor() {
    printDebug( "QueueSourceStream: getContentDescriptor()" );
    return new ContentDescriptor( ContentDescriptor.RAW) ;
    public long getContentLength() {
    printDebug( "QueueSourceStream:getContentLength()" );
    return 0;
    public Object getControl(String str) {
    printDebug( "QueueSourceStream:getControl( String) " );
    return null;
    public Object[] getControls() {
    printDebug( "QueueSourceStream:getControls()" );
    return new Object[0];
    public javax.media.Format getFormat() {
    printDebug( "QueueSourceStream:getFormat()" );
    return audioFormat;
    public void read(javax.media.Buffer buffer) throws java.io.IOException {
    buffer.setData( (byte[])sourceQueue.removeFirst() );
    buffer.setOffset( 0 );
    buffer.setLength( 1024 );
    buffer.setFormat( audioFormat );
    printDebug( "QueueSourceStream: read( Buffer ) " );
    else {
    buffer.setEOM( true );
    buffer.setOffset( 0 );
    buffer.setLength( 0 );
    ended = true;
    System.out.println( "Done reading byte array" );
    return;
    public boolean willReadBlock() {
    printDebug( "QueueSourceStream: willReadBlock()" );
    if( myQueue.isEmpty() )
    return true;
    else
    return false;
    private void printDebug( String methodInfo ){
    System.out.println( methodInfo + " is called. " );

  • Reading the data from BLOB column

    HI,
    I have a table with following structure
    Test_Mail(Attachment BLOB,Attachmentname varchar2(255),FileSize number)
    The data in the table is like
    Attachment|Attachmentname|FileSize
    BLOB|test.txt|1236
    I wants to read the data from the BLOB attachment in to new file.
    can any one help me in doing this with plsql??
    Thanks in advance,
    Balaji tk.
    Edited by: Balaji.tk on Jan 9, 2011 9:28 PM

    May be something like this ?
    DECLARE
       l_file       UTL_FILE.FILE_TYPE;
       l_buffer     RAW (32767);
       l_amount     BINARY_INTEGER     := 32767;
       l_pos        INTEGER            := 1;
       l_blob       BLOB;
       l_blob_len   INTEGER;
    BEGIN
    -- Open the destination file.
       l_file := UTL_FILE.FOPEN ('TEST_DIR', v_attachment_name, 'wb');
       --This v_attachment_name can be selected from your table.
    -- Get LOB locator
    FOR rec IN (
    SELECT attachment   l_blob
          FROM test_mail
         --Your where condition to find the row.      
       --AND ROWNUM =1
    LOOP
       l_blob_len := DBMS_LOB.getlength (rec.l_blob);
    -- Read chunks of the BLOB and write them to the file
    -- until complete.
       WHILE l_pos < l_blob_len
       LOOP
          DBMS_LOB.READ (rec.l_blob, l_amount, l_pos, l_buffer);
          UTL_FILE.put_raw (l_file, l_buffer, FALSE);
          l_pos := l_pos + l_amount;
       END LOOP;
      commit;
    END LOOP;
    -- Close the file.
       UTL_FILE.FCLOSE (l_file);
    EXCEPTION
       WHEN OTHERS
       THEN
    -- Close the file if something goes wrong.
          IF UTL_FILE.IS_OPEN (l_file)
          THEN
             UTL_FILE.FCLOSE (l_file);
          END IF;
          RAISE;
    END;

  • Reading the data from one component view into another component view

    Hi All,
    I have requirement to read the data from one component into another component while creating the service order. Here are the details.
    Main View for Service order: BT116H_SRVO in that we have two assignment blocks like Organizational data(BTORGSET) and amount allocation(BTAMNTALL).This two blocks are two different component which are associated with main component(BT116H_SRVO).
    I need to read the sales org data from component/View(BTORGSET/Orgsetdata) into Component/View(BTAMNTALL(HdrBillPlanDet) method DO_VALIDATE_INPUT.
    I searched in SDN but all the posts are related to the data exchange between two views in same component. But My scenario is different as explained above.
    Refer the attachments for the component link..
    Please let me know how we can achieve this one..
    Thanks,
    Sapsar.

    Finally I was able to fix my code...My Mistakes were need to read the parent node above three levels and need to use the relation entity name while reading the data..
    Below is the correction code
    IF iv_index IS NOT INITIAL.
         lr_iterator ?= collection_wrapper->get_iterator( ).
         lr_current ?= lr_iterator->get_by_index( iv_index ).
         lr_entity ?= lr_iterator->get_by_index( iv_index ).
       ELSE.
         lr_current = collection_wrapper->get_current( ).
       ENDIF.
    *loop back to root entity
             WHILE lr_entity->get_name( ) NE 'BTAdminH'.
               lr_entity = lr_entity->get_parent( ).
             ENDWHILE.
    *Get the related entity
             IF lr_entity IS BOUND.
               lr_collection ?= lr_entity->get_related_entities( iv_relation_name = 'BTHeaderOrgmanSet' ) .
               IF lr_collection IS BOUND.
                 lr_orgset_m = lr_collection->get_current( ).
    *            lr_orgset = lr_orgset_m->get_related_entity( iv_relation_name = 'BTOrgSet' ).
                 lr_orgset = lr_orgset_m->get_property_as_string( 'SALES_ORG' ).
               ENDIF.
             ENDIF.
    Thanks,
    Sapsar.

  • Reading the data from web

    Hi guys ,
    I am new to j2me ,i am going to start a project named onlineNews
    for this project i need to read the data from web.can anyone help me with a sample code for reading a data from web
    thank u for spending your precious time

    that depends on the used technology on top of the web. I believe with J2ME you have access to the URLConnection class, so you can send HTTP requests manually. Otherwise you will need to use low level sockets, or use webservices such as SOAP or XML-RPC.
    There is a lightweight XML-RPC client available for J2ME. It is no longer in development, but that doesn't mean that it doesn't work.
    http://kxmlrpc.objectweb.org/

  • Reading the data from the BufferReader????

    Hi,
    When i read the data from the BufferReader Like:-
    // Reading the data
    sbAppendBuf.append("<!--"+openingTag+"\r\n");
    BufferedReader readercopyRightInput= new BufferedReader(new FileReader(copyRightFile));
    while ((filecopyRightData=readercopyRightInput.readLine()) != null) {
    sbAppendBuf.append(filecopyRightData+"\r\n");
    sbAppendBuf.append(closingTag+"-->"+"\r\n");
    I am getting an extra new line character before the Closing Tag. Where the output is like:-
    <!--<opentag>
    <<contents>>
    // Extra space before the closeTag
    </closetag> -->
    How the extra space is coming i am not so sure where "\r" is needed for the proper alignment.So it is needed.
    Please do provide a solution for this..
    Thanks,
    JavaLover

    Here the snippet of my code:-
    sbAppendBuf.append("<!--"+openingTag);
    BufferedReader readercopyRightInput= new BufferedReader(new FileReader(copyRightFile));
    while ((filecopyRightData=readercopyRightInput.readLine()) != null) {
    sbAppendBuf.append(filecopyRightData+"\r\n");
    sbAppendBuf.append(closingTag+"-->"+"\r\n");
    Thanks,
    Java Lover

  • Read in data from a file

    Hello,
    I am EXTREMELY new to java programming. I've read a book on learning java and I have no clue how to read in data from an input (text) file.
    I'd like to have the user enter a filename at the keyboard. The file will contain data for two fields separated by a blank. I want to read it into an array of a class of objects. Ex. 1 8
    3 8
    8 49
    The first number should go into array.fld1 and the second number should go in array.fld2.
    ex. cout <<< please enter your filename
    cin >>filename << endl;
    i:=0;
    while not eof(filename)
    read array.fld1;
    read array.fld2;
    i++;
    Can someone help me with this??

    Simple example
    try {
            BufferedReader in = new BufferedReader(new FileReader("FileName.txt"));
            String str;
            while ((str = in.readLine()) != null) {
                //do whatever whith str       
            in.close();
        } catch (IOException e) {
            //Handle Exception...

  • How to read in data from MySQL to Authorware?

    Hi,
    I am trying to read in values from my database (MySQL) to
    authorware, but the best I am able to get is true or false.
    I would like to be able to get some data from the database
    and return it to AW as a string. Does anyone have any experience
    with this? Can anyone lend a helping hand in this endeavor?
    Thanks in advance for your help,
    Brad

    "Paul Swanson" <[email protected]>
    wrote in message
    news:[email protected]...
    > Kevin, you shouldn't need to worry about ODBC or OLEDB.
    Your PHP script
    > needs to handle the database connection, and you can use
    PHP's
    > mysql_connect() function for that. You really don't need
    to do anything
    > different for Authorware than you do for any PHP/MySQL
    application in
    > terms
    > of connecting to the database.
    >
    > My PHP script returns data to AW in the form of
    name=value pairs delimited
    > by the ampersand character. I then use the following
    code in AW to convert
    > them into lists:
    >
    > =========================
    > -- Use this routine to break queryString into name /
    value arrays.
    > -- Assumes a database query returns a string of
    name=value pairs
    > -- delimited by the ampersand (&) character.
    >
    > -- strip leading & from queryString
    > queryString := SubStr(queryString, 1,
    CharCount(queryString))
    >
    > -- break into list of individual lines
    > tempList := Replace("&", Return, queryString)
    >
    > listLength := LineCount(tempList)
    >
    > -- create empty arrays for name and value
    > name := Array("", listLength)
    > value := Array("", listLength)
    >
    > repeat with counter := 1 to listLength
    > singleLine := GetLine(tempList, counter)
    > name[counter] := GetWord(1, Replace("=", " ",
    singleLine))
    > value[counter]:= GetWord(2, Replace("=", " ",
    singleLine))
    > end repeat
    >
    > -- now you will need to add a separate calc icon with a
    routine to
    > -- read the data from the arrays. name[counter] matches
    value[counter]
    > =========================
    >
    > I follow this with another Calc icon (I could have done
    it all in one
    > calc)
    > that parses the names and assigns the values to my
    custom AW variables:
    >
    > =========================
    > -- get just the info we want, and store in variables
    >
    > repeat with counter := 1 to listLength
    > if name[counter] = "Lesson1Complete" then
    > Lesson1Complete := Number(value[counter])
    > else if name[counter] = "Lesson2Complete" then
    > Lesson2Complete := Number(value[counter])
    > else if name[counter] = "Lesson3Complete" then
    > Lesson3Complete := Number(value[counter])
    > else if name[counter] = "Lesson4Complete" then
    > Lesson4Complete := Number(value[counter])
    > else if name[counter] = "Lesson5Complete" then
    > Lesson5Complete := Number(value[counter])
    > else if name[counter] = "Lesson6Complete" then
    > Lesson6Complete := Number(value[counter])
    > else if name[counter] = "Lesson7Complete" then
    > Lesson7Complete := Number(value[counter])
    > else if name[counter] = "Lesson8Complete" then
    > Lesson8Complete := Number(value[counter])
    > else if name[counter] = "OverviewComplete" then
    > OverviewComplete := Number(value[counter])
    > else if name[counter] = "grade" then
    > score := Number(value[counter])
    > else if name[counter] = "passed" then
    > passed := Number(value[counter])
    > end if
    > end repeat
    I'd like to point out here that any time you have a series of
    variables that
    all have identical names except for a number in the variable
    name, you
    should be looking at lists. I'm surprised, Paul, that you
    have lists used
    to the extent that you're able to use Value[counter] on the
    right side of
    the equation, yet you're not using lists on the left side of
    the equation.
    Let's look at how this code could be made super simple by
    having ONE list
    variable, LessonComplete, instead of Lesson1Complete through
    Lesson8Complete.
    -- Assumes a database query returns a string of name=value
    pairs
    -- delimited by the ampersand (&) character.
    -- strip leading & from queryString
    --(note you could also not add this ampersand on the PHP
    side)
    queryString := SubStr(queryString, 1, CharCount(queryString))
    -- break into list of individual lines
    tempList := Replace("&", Return, queryString)
    listLength := LineCount(tempList)
    -- create empty arrays for name and value
    name := Array("", listLength)
    LessonComplete := []
    repeat with counter := 1 to listLength
    singleLine := GetLine(tempList, counter)
    name[counter] := GetWord(1, Replace("=", " ", singleLine))
    LessonComplete[name[counter] * 1] := GetWord(2, Replace("=",
    singleLine))
    end repeat
    -- now you will need to add a separate calc icon with a
    routine to
    -- read the data from the arrays. name[counter] matches
    value[counter]
    --No you don't...You're DONE :-)
    Also note that this is extensible...you can have Lesson 9,
    10, etc. and not
    have to change the code. You can also lower the amount of
    data being
    transmitted, because now instead of Lesson8Complete=1 all you
    need is 8=1.
    This lowers the server load and speeds the response. It has
    advantages on
    the Authorware side as well, because if, for instance, you
    had a series of
    buttons that were checked or not based on the completion, you
    could do the
    same type of loop. Separate variable names do not allow for
    that type of
    loop unless you use Eval (ugh).
    HTH;
    Amy

  • What is the 'quickest' way to read char data from a txt file

    Hello,
    What is the 'quickest' way to read character data from a txt file stored on the phone to be displayed into the screen?
    Regards

    To be even a bit more constructive...
    Since J2me does not have a BufferedInputStream, it will help to implement it yourself. It's much faster since you read large blocks at ones in stread of seperate chars.
    something line this lets you read lines very fast:
      while ( bytesread < filesize ) {
             length = configfile.read( buff, 0, buff.length );
             // append buffer to temp String
             if ( length < buff.length ) {
                byte[]  buf  = new byte[length];
                System.arraycopy( buff, 0, buf, 0, length );
                tmp.append( new String( buf ) );
             } else {
                tmp.append( new String( buff ) );
             // look in tmp string for \r\n
             idx1 = tmp.toString().indexOf( "\r\n" );
             while ( idx1 >= 0 ) {
                //if found, split into line and rest of tmp
                line = tmp.toString().substring( 0, idx1 );
             /// ... do with it whatever you want ... ////
                tmp = new StringBuffer( tmp.toString().substring( idx1 + 2 ) );
                idx1 = tmp.toString().indexOf( "\r\n" );
             bytesread += length;
          }

  • Sending AT command from xbee pro to read the data from device

    I am new to serial communications using Labview. 
    I am having trouble with starting up the project, where I have to design the software that involves XBee pro module.
    I need to send the READ command to read the data from a device. Then the software should go to the AT command mode (we enter the AT command mode by entering +++)
    Then I need to read the energy level of the device by entering the command: ATED. The software should continuously read the energy level every 30 seconds, which will be displayed on the front panel. 
    I am not sure where to start the software from. i.e. how to enter the Read command and then the AT command. 
    I am hoping someone can suggest how to start this.
    Thanks  in advance. 

    Hello Manny,
    You could also review the discussion from the link below which may also guide you in a good direction with your project. 
    "Need example vi using AT commands for dialing the modem at the remote end"
    http://forums.ni.com/t5/LabVIEW/Need-example-vi-using-AT-commands-for-dialing-the-modem-at-the/td-p/...
    Best regards,
    Daniel Cabezas
    Applications Engineering
    National Instruments
    www.ni.com/support 

  • I have a VI and an attched .txt data file. Now I want to read the data from the .txt file and display it as an array in the front panel. But the result is not right. Any help?

    I have a VI and an attched .txt data file. Now I want to read the data from the .txt file and display it as an array in the front panel. But the result is not right. Any help?
    Attachments:
    try2.txt ‏2 KB
    read_array.vi ‏21 KB

    The problem is in the delimiters in your text file. By default, Read From Spreadsheet File.vi expects a tab delimited file. You can specify a delimiter (like a space), but Read From Spreadsheet File.vi has a problem with repeated delimiters: if you specify a single space as a delimiter and Read From Spreadsheet File.vi finds two spaces back-to-back, it stops reading that line. Your file (as I got it from your earlier post) is delimited by 4 spaces.
    Here are some of your choices to fix your problem.
    1. Change the source file to a tab delimited file. Your VI will then run as is.
    2. Change the source file to be delimited by a single space (rather than 4), then wire a string constant containing one space to the delimiter input of Read From Spreadsheet File.vi.
    3. Wire a string constant containing 4 spaces to the delimiter input of Read From Spreadsheet File.vi. Then your text file will run as is.
    Depending on where your text file comes from (see more comments below), I'd vote for choice 1: a tab delimited text file. It's the most common text output of spreadsheet programs.
    Comments for choices 1 and 2: Where does the text file come from? Is it automatically generated or manually generated? Will it be generated multiple times or just once? If it's manually generated or generated just once, you can use any text editor to change 4 spaces to a tab or to a single space. Note: if you want to change it to a tab delimited file, you can't enter a tab directly into a box in the search & replace dialog of many programs like notepad, but you can do a cut and paste. Before you start your search and replace (just in the text window of the editor), press tab. A tab character will be entered. Press Shift-LeftArrow (not Backspace) to highlight the tab character. Press Ctrl-X to cut the tab character. Start your search and replace (Ctrl-H in notepad in Windows 2000). Click into the Find What box. Enter four spaces. Click into the Replace With box. Press Ctrl-V to paste the tab character. And another thing: older versions of notepad don't have search and replace. Use any editor or word processor that does.

  • How to read a data from USB port using JAVA

    hi all,
    i need to know how to read a data from USB port using java. any API are available for java ?.........please give your valuable ideas !!!!!!!!!
    Advance Thanks!!

    You can do this. Please use this link
    [http://www.google.co.in/search?hl=en&client=firefox-a&rls=org.mozilla%3Aen-US%3Aofficial&hs=uHu&q=java+read+data+from+usb+port&btnG=Search&meta=&aq=f&oq=]
    What research did you do of your own? Have you done some testing application and tried yourself??

  • How to read the data from Excel file and Store in XML file using java

    Hi All,
    I got a problem with Excel file.
    My problem is how to read the data from Excel file and Store in XML file using java excel api.
    For getting the data from Excel file what are all the steps i need to follow to get the correct result.
    Any body can send me the code (with java code ,Excel sheet) to this mail id : [email protected]
    Thanks & Regards,
    Sreenu,
    [email protected],
    india,

    If you want someone to do your work, please have the courtesy to provide payment.
    http://www.rentacoder.com

  • How to read the data from excel file and store into the table?

    Hi All,
    I have table with BLOB datatype contains a excel file. I have to read that data from excel and store into one table with all the fields in excel.
    All the excel fields and my table columns are same.
    Can you share with me how can acheive this using LOB's?
    Thanks

    Hi OraSuirya,
    you can try with external tables .
    syntax as follows
    create table ext_table_csv (
    i Number,
    n Varchar2(20),
    m Varchar2(20)
    organization external (
    type oracle_loader
    default directory ext_dir
    access parameters (
    records delimited by newline
    fields terminated by ','
    missing field values are null
    location ('file.csv')
    reject limit unlimited;
    For this you need to create directory
    Directory Creation syntax:
    create or replace directory ext_dir as 'D:\oracle\user_dir\ext_dir';
    grant read, write on directory ext_dir to <User>;
    please paste the excel file in the particular directory .
    I hope this will help you.
    Please correct me if I am wrong anywhere .
    Thanks,
    Tippu.

Maybe you are looking for