6008 USB digitizer continuous data stream to be used by a third party software

Hi all,
I am trying to achieve a seemingly straight forward task and could do with some expert advice. I have a USB 6008 digitizer which is reading three channels of analogue data. I need to continuously stream data which can be accessed by a third party software for other things (signal processing, visualisation etc). I am proposing to record 10sec length of data and save it in a file in a designated location and repeat this and carry on as long as the programme is running. This will have generated a number of files each with fixed length of data which can be sequentially accessed by the third party program.I will then need to make this VI a standalone application which can be run a LabVIEW less machine.
The other method, may perhaps be, to use toggle between two data files- write in one file-save it, write in the second file and access the first file and overwrite the first file while access the second file.
Could anyone please help me with some ideas, expecially with the writing in files modules?

The first approach is rather straightforward. Create the filenames programmatically, typically by adding 1 to a number at the end of the previous filename.  The string and path manipulation functions can easily do this. This would produce a series of files named filename, filename1, filename2, filename3, filename4, ...
The alternating file approach is also feasible.  The key there is coordination between the two programs so that they are not both competing for the same file.  You need to have a plan for what to do with the data if the alternate file has not been released by the other program when LV needs to write to it.
Lynn

Similar Messages

  • After upgrading to OS Mavericks, I realized that the Partition for Windows is gone. I have really important data on this drive without a back up. Is there any way I can get this data before reformatting. Is there any third party software for receiving the

    After upgrading to OS Mavericks, I realized that the Partition for Windows is gone. I have really important data on this drive without a back up. Is there any way I can get this data before reformatting. Is there any third party software for receiving the data or any possible way? Money is not a limitation to this fix. Please help!!!

    sure pretty simple.  make a backup of your current settings
    http://support.apple.com/kb/HT1766?viewlocale=en_US
    then restore device from old backup you need pics off of
    then import pics to computer
    http://support.apple.com/kb/HT4083
    you may need to save pics to camera roll first
    then restore the new backup and sync pics back to phone via itunes
    Peace, Clyde

  • How to streaming data/image from labview to a third party software

    Hi, i am working on a research project and stuck on the following problem: I have two cameras and one IMU Sensor unit, all conected to my PC. I save the camera images as avi format and the IMU sensor as TDMS format. I have also another software running on the same PC which i developed using VisualStudio2013.  On this software i alredy implemented a very complex filter to fuse images and IMU.  Now my quesion: would be it possibel to stream the .avi and .tdms from LabView to my software so I can test in real time how my filter is performing? If yes please let me know what LabView function do i have to use. thanks

    Thanks, the hardware are my PC, 2 usb cameras and one usb-IMU sensor. The PC runs w7 with LabView2014. I can read the camera and IMU to my Laview without any problem and save the data on my hard desk. I am also developing another software on VS-C++ for image processing and data fusion. I would like to know what is the best (and fastest) possibility to stream this data (Images and IMU) in real time from LabView to my own software?
    I read a lot in NI-website on how to communicate LabView with a third party software. They are summarized in this link:
    https://decibel.ni.com/content/docs/DOC-9131
    It looks for me that the ‘shard memory’ principle (or File Mapping) is the most convenient method. In VC++ under windows I can easily handle shared memory by calling FileMapping windows functions. Now the question is how can I do that in LabView? I am relatively new in LabView and do not know if it is possible to use shared memory in LabView. For example: is it possible in LabView to buffer both video streams and IMU-data (live) in a shared memory in computer RAM using the windows FileMaping functions (may be using .dll). Then I can access the RAM form my own software and read the stream. Please see the attachment for more description.
    Attachments:
    Unbenannt.PNG ‏139 KB

  • Question about to recover data from windows essential 2012 (with raid0 or 1)with third party software !

    hi,
    I like to know if it is possible to install data recovery software on a extern harddisk ,and run it from there , just run  the  third party software in the memory of windows essential 2012 to recover data from its  harddisk  which has
    raid 0 or 1.
    if it is possible to install third party softare on extern harddisk or on usb stick on run it from there which steps I have to take ,or if there is some article about  it on windows website.
    how to install third party softwares on extern harddisk or usb stick on run it from there.
    thanks
    johan
    h.david

    Hi johan,
    Based on your description, I understand that you want to know how install a third-party software on an external
    harddisk or usb and then run this software from there. Regarding this issue, I suggest that you should contact with the third-party software support and confirm it. Since most programs use windows registry entries, and may rely on some .dll files. If all relevant
    auxiliary files and configurations of this software were installed in one directory tree, you may be able to install and run it on an external harddisk or usb.
    Hope this helps.
    Best regards,
    Justin Gu

  • Payment proposal data to be transfered to third party software

    Hi,
    I want to transfer prposal data to third party software to write check and attach digital signature. And once checks are prepared want to bring that data in SAP for payment run to generate accounting entry. I was wondering which BTE can help me in programe SAPF110V. Or if there is not any BTE that can be used after proposal is done what approach can be followed.
    Thanks

    Hi DHANANJAY,
    I have a requirement like need to send mail after the payment run (After F110).
    I need to send mail to vendors just after finishing the payment run i.e. After getting the message like Posting orders : X Generated, X Completed. I have a Zprogram to send mail , just i need to code such that it will schedule a job(ZPROGRAM) in background after 1 min . Is there any exit , BADI or BTE to do the same. I searched for some BTE's like 2040 and 2050 , but those are used to send mails after the form printing. I dont need to go for printing the payment advice . Please help me in this regard.
    Thanks,
    Bhanu.

  • Third party software for iphone data backup

    Hi,
    Can you please suggest me a free third party software that could help me backup the data from my iphone and sync it back to a new laptop...
    Regards,
    D.Balaji

    If you're talking about itunes content not purchased through itunes, this will do the trick:
    http://www.wideanglesoftware.com/touchcopy/index.php
    For purchased content: Store>Authorize this Computer, then File>Transfer Purchases.

  • Create a continuous data stream from C++, and read it in LabView

    Hello all.
    I'm working on a project which involves connecting to a motion tracker and reading position and orientation data from it in realtime. The code to get the data is in c++, so I decided that the best way to do this would be to create a c++ DLL file which contains all the necessary functions to first connect to the device and read the data from it, and use the Call Library Function node to feed this data into Labview. 
    I'm having trouble though, since ideally I would like a continuous stream of data from the c++ code into Labview, and I'm not sure how to achieve this. Putting the call library function node in a while loop seems like an obvious solution, but if I do it this way I would have to reconnect to the device every time I get the data, which is quite a bit too slow. 
    So my question is, if I created c++ function which created a data stream, could I read this into Labview without having to continually call a function? I'd prefer to only have to call a function once, and then read the data stream until a stop command is given.
    I'm using Labview 2010, version 10.0.
    Apologies if the question is poorly phrased, many thanks for your help.
    Dave
    Solved!
    Go to Solution.

    dr8086 wrote:
    This method sounds like an excellent suggestion, but I do have a few questions where I dont think I've understood fully.
    From what I understand the basic premise is to use one call library function node to access a DLL which creates an instance of the device object, and passes a pointer too it into labview. Then a seperate call library function node would pass this pointer to another DLL which could access the device object, update it and read the data. This part could be in a while loop and carry on reading the data until a stop command is given.
    That's it. I'm including some skeleton code as an example. I'm also including the code because I don't know how much you have experience with multi threading, so I'm showing how you'd have to use critical sections to guard the interactions between threads so that they don't lead to issues.
    // exported function to access the devices
    extern "C" __declspec(dllexport) int __stdcall init(uintptr_t *ptrOut)
    *ptrOut= (uintptr_t)new CDevice();
    return 0;
    extern "C" __declspec(dllexport) int __stdcall get_data(uintptr_t ptr, double vals[], int size)
    return ((CDevice*)ptr)->get_data(vals, size);
    extern "C" __declspec(dllexport) int __stdcall close(uintptr_t ptr, double last_vals[], int size)
    int r= ((CDevice*)ptr)->close();
    ((CDevice*)ptr)->get_data(last_vals, size);
    delete (CDevice*)ptr;
    return r;
    // h file
    // Represents a device
    class CDevice
    public:
    virtual ~CDevice();
    int init();
    int get_data(double vals[], int size);
    int close();
    // only called by new thread
    int ThreadProc();
    private:
    CRITICAL_SECTION rBufferSafe; // Needed for thread saftey
    vhtTrackerEmulator *tracker;
    HANDLE hThread;
    double buffer[500];
    int buffer_used;
    bool done; // this HAS to be protected by critical section since 2 threads access it. Use a get/set method with critical sections inside
    //cpp file
    DWORD WINAPI DeviceProc(LPVOID lpParam)
    ((CDevice*)lpParam)->ThreadProc(); // Call the function to do the work
    return 0;
    CDevice::~CDevice()
    DeleteCriticalSection(&rBufferSafe);
    int CDevice::init()
    tracker = new vhtTrackerEmulator();
    InitializeCriticalSection(&rBufferSafe);
    buffer_used= 0;
    done= false;
    hThread = CreateThread(NULL, 0, DeviceProc, this, 0, NULL); // this thread will now be saving data to an internal buffer
    return 0;
    int CDevice::get_data(double vals[], int size)
    EnterCriticalSection(&rBufferSafe);
    if (vals) // provides a way to get the current used buffer size
    memcpy(vals, buffer, min(size, buffer_used));
    int len= min(size, buffer_used);
    buffer_used= 0; // Whatever wasn't read is erased
    } else // just return the buffer size
    int len= buffer_used;
    LeaveCriticalSection(&rBufferSafe);
    return len;
    int CDevice::close()
    done= true;
    WaitForSingleObject(hThread, INFINITE); // handle timeouts etc.
    delete tracker;
    tracker= NULL;
    return 0;
    int CDevice::ThreadProc()
    while (!bdone)
    tracker->update();
    EnterCriticalSection(&rBufferSafe);
    if (buffer_used<500)
    buffer[buffer_used++]= tracker->getRawData(0);
    LeaveCriticalSection(&rBufferSafe);
    Sleep(100);
    return 0;
    dr8086 wrote:
    My main concern is that the object may go out of memory or be deallocated, since it wouldnt be held in any namespace or anything.
    Since you create the object with new, the object won't expire until either the dll is unloaded or the process (LabVIEW) closes. So the object will stay valid between dll calls provided LabVIEW didn't unload the dll (which it does if the VIs are closed). When that happens, I'm not exactly sure what happens to live objects (i.e. if you forgot to call close), I imagine the system reclaims the memory but the device might still be open.
    What I do to make sure that everything gets closed when the dll unloads before I could call close and delete the object is to everytime I create a new object in the dll I add it to a list, when the dll unloads, if the object is still on the list I delete it.
    dr8086 wrote:
    I also have a more general programming question about the purpose of the buffer. Would the buffer basically be a big table of position values, which are stored until they can be read into the rest of the VI? 
    Yes, see the example code.
    However, depending on the frequency with which you need to collect data from the device you might not need this buffer at all. I.e. if you collect a sample about every 100ms then you could remove all threading and buffer related functions and instead read the data from the read function itself like this:
    double CDevice::get_data()
    tracker->update();
    return tracker->getRawData(0);
     Because you'd only need a buffer and a seperate thread if you collect data at a high frequency and you cannot lose any data.
    Matt

  • How applet can read continuous data stream

    How applet can read continuous data from server(like database update)

    You can keep opened a socket to the server. You can send any data from/to the applet in that way.

  • How to get the updated data from a third party database in office 365 list

    Hello - I am trying to access a third party software database to create a dynamic Dashboard in SharePoint, and my approach is :-  
    Sync the 3rd part database in list (should get sync in list whenever new data is added to the 3rd party database) or if possible syc the data from CSV file to sharepoint list.
    I need to get that data into Giant chart or Dashboard
    any help will be highly appreciated.
    Thank you!

    There are many options available in SharePoint Online office 365 for connecting to External data e.g. external lists, Business Data Web Parts etc. Please check these urls for more details -
    Introduction
    to external data
    Use
    external data in workbooks in SharePoint Online
    Overview of Business Connectivity Services in SharePoint 2013
    Thanks
    Ganesh Jat [My Blog |
    LinkedIn | Twitter ]
    Please click 'Mark As Answer' if a post solves your problem or 'Vote As Helpful' if it was useful.

  • Cannot create data source using custom third-party driver

    Hi,
    I've just installed Weblogic Server 10.3.6 and I'm getting problems creating a generic data source using my own third party jdbc driver which I had no problems doing in Weblogic Server 10.0; this is what I did in 10.0;
    before starting server i put my driver jar file (and any jar files it needed) in the lib folder of the domain user project which weblogic appends to the classpath during server startup
    inside weblogic console -
    1. first page - provided a data source name and jndi name and selected 'other' for database type
    2. second page - selected 'other' for jdbc driver
    3. third page - deselected the global transactions
    4. fourth page - provided database name, username, host name, port, and password.
    5. fifth page - provided driver class, url, database user name and password (didn't bother with the test)
    6. Selected target server
    I then saved and activated changed and was done.
    This what I did for 10.3.6
    did the same thing I did for 10.0 before server start up
    inside weblogic console -
    1. first page - provided data source name and jndi name and selected 'other' for database type
    2. second page - selected 'other' for jdbc driver
    3. third page - deselected the support global transactions
    4. fourth page - here's where things are different - page only asked for database username and password, which I give.
    One this page I get a criptic error saying 'errors must be corrected before proceeding' - no other message as to what these errors might be either in the console or the cmd window of the server. I tried making changes to the provider authenticiation of the security realm but no luck. I tried following password creation requirements, I even tried proceeding to the next page without entering anything on this page, all no luck. I have no idea what's going on.
    Hope someone can help.
    Sam.

    I've fixed the class issue but am struggling a bit with SQL Server authentication. I'm running in mixed mode (originally set to Windows authentication but I've modified the security setting), I've enabled TCP/IP and Named Pipes, I've created a user (who I can log in to SQL Server Mgmt Studio successfully with), but still get a connection refused error.
    Any insight? Thanks.

  • How do i get files larger than 2 gigs on a usb drive and still be able to use on a mac and pc?

    how do i get files larger than 2 gigs on a usb drive and still be able to use on a mac and pc?

    You can format the drive using ExFAT or you can format the drive NTFS then use third-party software on the Mac to enable writing to it: NTFS 11.2.443.
    Disk Utility 12.x- Format a disk for Windows computers

  • How to read data over tcp/ip using labview

    Hi,
    I have a network enabled force transducer (6-axis load cell). I know its IP addr. and the data format it is sending the data out (7 32-bit DWORD, One status and 6 axis force data) . I have been playing around with the simple data client.vi example program. 
    When I executed the program using the devices IP addr. I used to get error 63: TCP/IP connection open. Then I ran the program using localhost in IP addr field, the program executes now indefinetly at one block only. I am attaching the screenshot for ref. 
    Thanks.
    Sasi.
    Attachments:
    TCP-IP.JPG ‏62 KB

    Hello,
    I'm wondering if you can create a rather simple VI that just tries to open and close a TCP connecting to your transducer. All you would need is a TCP Open and a TCP Close wired together with the proper IP address etc. Does this run? I did look to see if there was any NetFT information and I could not find anything. I feel that the problem lies in the communication protocol between your transducer. Another place to see if you can connect to it would be to try hyperterminal. You can access this in Windows XP by clicking Start»All Programs»Accessories»Communications»HypeTermina. Using this, you can try and connect to your instrument with TCP/IP outside of LabVIEW. You might also want to get in contact with the manufacturer to verify that third-party software can indeed communicate with it. There may be a specific set of instructions that need to be sent to the transducer in order to initiate the connection and then read from it. These may be in the form of serial commands that would need to be sent over TCP. What is the make and model of your transducer?
    -Zach
    Certified LabVIEW Developer

  • Problems Reading SSL  server socket  data stream using readByte()

    Hi I'm trying to read an SSL server socket stream using readByte(). I need to use readByte() because my program acts an LDAP proxy (receives LDAP messages from an LDAP client then passes them onto an actual LDAP server. It works fine with normal LDAP data streams but once an SSL data stream is introduced, readByte just hangs! Here is my code.....
    help!!! anyone?... anyone?
    1. SSL Socket is first read into  " InputStream input"
    public void     run()
              Authorization     auth = new Authorization();
              try     {
                   InputStream     input     =     client.getInputStream();
                   while     (true)
                   {     StandLdapCommand command;
                        try
                             command = new StandLdapCommand(input);
                             Authorization     t = command.get_auth();
                             if (t != null )
                                  auth = t;
                        catch( SocketException e )
                        {     // If socket error, drop the connection
                             Message.Info( "Client connection closed: " + e );
                             close( e );
                             break;
                        catch( EOFException e )
                        {     // If socket error, drop the connection
                             Message.Info( "Client connection close: " + e );
                             close( e );
                             break;
                        catch( Exception e )
                             //Way too many of these to trace them!
                             Message.Error( "Command not processed due to exception");
                             close( e );
                                            break;
                                            //continue;
                        processor.processBefore(auth,     command);
                                    try
                                      Thread.sleep(40); //yield to other threads
                                    catch(InterruptedException ie) {}
              catch     (Exception e)
                   close(e);
    2 Then data is sent to an intermediate function 
    from this statement in the function above:   command = new StandLdapCommand(input);
         public StandLdapCommand(InputStream     in)     throws IOException
              message     =     LDAPMessage.receive(in);
              analyze();
    Then finally, the read function where it hangs at  "int tag = (int)din.readByte(); "
    public static LDAPMessage receive(InputStream is) throws IOException
        *  LDAP Message Format =
        *      1.  LBER_SEQUENCE                           --  1 byte
        *      2.  Length                                  --  variable length     = 3 + 4 + 5 ....
        *      3.  ID                                      --  variable length
        *      4.  LDAP_REQ_msg                            --  1 byte
        *      5.  Message specific structure              --  variable length
        DataInputStream din = new DataInputStream(is);
        int tag = public static LDAPMessage receive(InputStream is) throws IOException
        *  LDAP Message Format =
        *      1.  LBER_SEQUENCE                           --  1 byte
        *      2.  Length                                  --  variable length     = 3 + 4 + 5 ....
        *      3.  ID                                      --  variable length
        *      4.  LDAP_REQ_msg                            --  1 byte
        *      5.  Message specific structure              --  variable length
        DataInputStream din = new DataInputStream(is);
           int tag = (int)din.readByte();      // sequence tag// sequence tag
        ...

    I suspect you are actually getting an Exception and not tracing the cause properly and then doing a sleep and then getting another Exception. Never ever catch an exception without tracing what it actually is somewhere.
    Also I don't know what the sleep is supposed to be for. You will block in readByte() until something comes in, and that should be enough yielding for anybody. The sleep is just literally a waste of time.

  • Using Digital I/O to generate serial data stream

    Hello All,
    I am in need to generate a serial data stream. HW I use is MIO-16E-10.
    I am planning to use the digital line out to generate the serial data stream.
    I seems that if I use the wait timer the minimum pulse width I can get is
    1ms. But for my application the pulses have to be shorter than that. I was
    wondering about an alternative way to achive this. Any one who has worked
    with a similar application please help!
    Thanks in advance!
    Anand.

    Anand,
    What you are looking to do is not possible with the digital lines on the board you have.
    Depending on what other connections you have on the board, you could use one of the two analog outputs to generate your required serial data stream using pattern generation. Check the DAQ solution wizard=>Custom DAQ applications=>Analog Output=>Generate continuous sine wave. This example should give you a baseline to get started. Substitute the sine wave generator for your desired digital stream Logic 0 =0V, Logic 1=5V.
    If you need more than 2 lines, or some form of handshaking, I would suggest using the PCI-6534 or (DIO-32-HS as it was previously called) This will give you the ability to generate serial data streams with timing and/or handshaking.

  • SAP MII 14.0 SP5 Patch 11 - Error has occurred while processing data stream Dynamic Query role is not assigned to the Data Server

    Hello All,
    We are using a two tier architecture.
    Our Corp server calls the refinery server.
    Our CORP MII server uses user id abc_user to connect to the refinery data server.
    The user id abc_user has the SAP_xMII_Dynamic_Query role.
    The data server also has the checkbox for allow dynamic query enabled.
    But we are still getting the following error
    Error has occurred while processing data stream
    Dynamic Query role is not assigned to the Data Server; Use query template
    Once we add the SAP_xMII_Dynamic_Query role to the data server everything works fine. Is this feature by design ?
    Thanks,
    Kiran

    Thanks Anushree !!
    I thought that just adding the role to the user and enabling the dynamic query checkbox on the data server should work.
    But we even needed to add the role to the data server.
    Thanks,
    Kiran

Maybe you are looking for