Circular Buffer implementa​tion for LabVIEW 8.5

Greetings,
Several weeks ago I downloaded the implementation of a circular buffer for LabVIEW 8.5 from ni.com. The current webpage is:
http://zone.ni.com/devzone/cda/epd/p/id/5883
Unfortunately, this webpage has been updated since then and the available files for download (swcircularbuffer1.0.19.zip) are for LabVIEW 8.6.
So my question is: where can I find the implementation of a circular buffer for LabVIEW 8.5 ?
Thank you very much!
telmo
Solved!
Go to Solution.

Thanks Smercurio,  I needed this too. 
After looking at the code and seeing a note on the download page concerning a possibly more efficient method I'm wondering whether anyone has tried it yet.  I'm thinking that using the in-place structure to simply overwrite a pre-defined memory space would indeed be a better implementation of a circular buffer than the somewhat kludgy bounds checking and data wrapping that the NI code provides.  I plan to work on it myself of course but my boss gave me one of those "it would be great if we could have it tomorrow" talks that I'm sure most LV coders know only too well.  [While the C++ guys get two weeks to write Hello Wurld. ]
Anyway, the app is quite simple:   Run my USB-6251 card with a single channel as fast as possible (1.25MS/s) collecting to the circular buffer.  When a trigger is pressed, store the buffer so I get a file with a few mSec of pre-trigger data.  
I haven't yet tried the NI code so it may be sufficient for my needs but if anyone is working with the in-place structure and has ideas, code or suggestions I'd love to hear them.
Using LabVIEW: 7.1.1, 8.5.1 & 2013

Similar Messages

  • Implementing a circular buffer - which approach works best?

    I'm just implementing a circular buffer (or a circular queue, to be precise). Now I wonder which is better for wrapping around when inserting:
    Using the modulo operator or using some variable to store the insertionPoint and incrementing it after each insert?
    Does it make any difference in performance / readability?
    Greets, Oliver

    Trollhorn wrote:
    Uh, that article is really nice... thanks...Is that sarcasm, or is it "prob sol"?
    My suggestion would simply be: Why roll your own, when you can just use a standard implementation provided by the JDK (you do know about the java.util.Queue interface and can find standard classes which implement it, right?).
    So is this just for an academic exercise, or are you one of those premature optimizer kinda guys feeling the need to eek out every last millisecond of processing and/or save every last byte of memory? And maybe you fear the reaper (garbage collector) too.
    I don't see a real need for a "circular queue". Circular buffers, circular lists yes (where you iterate over it in a circular fashion), but when I think of a queue I think of FIFO pushing and popping elements, not iterating over it.

  • Global variables for circular buffer

    Hallo!
    I have another question:
    I need to have a variable circular buffer size. So I would like to define the circular buffer size by a global varable.
    Is that possible? I tried to use the global variable like {VAR_01} to insert in the desired field for circular buffer size, but dasylab only puts a zero in the field.
    Thank you and have a nice day.
    Hilby
    Solved!
    Go to Solution.

    Unfortunately it is not possible to have a variable-sized buffer. Right-click into the corresponding textfield: the context menu does not show an entry to choose the global variable from a list.
    M.Sc. Holger Wons | measX GmbH&Co. KG, Mönchengladbach, Germany | DASYLab, DIAdem, LabView --- Support, Projects, Training | Platinum National Instrument Alliance Partner | www.measx.com

  • How to implement multiple queues in one circular buffer?

    Spoiler (Highlight to read)
    Recently I have successfully shared data of 2D array among different vis in a project, using circular buffer.
    However, there is only one circular buffer allowed in one project for one data type.
    I want different vis, running and getting data from circular buffer in different speed, all getting data as a queue from circular buffer. Like the circular buffer's read continuous mode.
    The problem is that after a vi reads in continuous mode, the read data is deleted from the circular buffer. Then other vis can not use them any more and can not keep track where they should begin to read again.
    So if it is possible that there are multiple pointers or queues in circular buffer to keep track the progress of different vis, and data only update when it gets input from DAQ but not deleted when read?   

    LawrenceChong wrote:
    Spoiler (Highlight to read)
    Recently I have successfully shared data of 2D array among different vis in a project, using circular buffer.
    However, there is only one circular buffer allowed in one project for one data type.
    I want different vis, running and getting data from circular buffer in different speed, all getting data as a queue from circular buffer. Like the circular buffer's read continuous mode.
    The problem is that after a vi reads in continuous mode, the read data is deleted from the circular buffer. Then other vis can not use them any more and can not keep track where they should begin to read again.
    So if it is possible that there are multiple pointers or queues in circular buffer to keep track the progress of different vis, and data only update when it gets input from DAQ but not deleted when read?   
    THe last time I wrote a multi-subscriber cirular buffer was in LV 6. Since then I have found that polymorphic queues perform much better so I now use multiple queues. One queue for each subscriber of the data. The subscribers are then responsible for maintaining their own histories.
    So just use multiple queues.
    Ben
    Ben Rayner
    I am currently active on.. MainStream Preppers
    Rayner's Ridge is under construction

  • A general buffer block for Labview?

    Has anybody made a function which stores acquired values and returns the contents when needed. In other words I need a buffer which is as simple and fast as possible and does not waste resources.
    Of course, I can make a VI which has an uninitialized shift register and call it in the loop but it is not efficient enough in some demanding situations. And also, this kind of buffer will slow down the execution of the loop because the buffer increases all the time. (Clearing the buffer is possible by writing the contents to the file but it is a little bit complicated)
    In many of my applications where the acquired data is needed to be plotted I have used waveform chart which has a history for the data. I have noticed th
    at history feature can be effectively used as an buffer, it does not slow the execution like shift registers and you don't need to build any buffers by yourself.
    In some cases I don't need to display the data but I just want to buffer it, therefore it could be very useful to have a general buffer block in the Labview which does not have any kind of appearance in the front panel, just a node in the block diagram.(of course one way is to use the history of the waveform chart and hide the chart)
    I have been programming with LV over two years daily but making of efficient buffers has always been a question to me. I have noticed that other colleagues have same kind of problems.
    Maybe this kind of buffer block could be made by c-language code and called it by the LV, but calling functions from dlls take also some time overhead which can be too much.

    Hi Wirer,
    see attached file.
    Mike
    Wirer wrote:
    > Has anybody made a function which stores acquired values and returns
    > the contents when needed. In other words I need a buffer which is as
    > simple and fast as possible and does not waste resources.
    >
    > Of course, I can make a VI which has an uninitialized shift register
    > and call it in the loop but it is not efficient enough in some
    > demanding situations. And also, this kind of buffer will slow down the
    > execution of the loop because the buffer increases all the time.
    > (Clearing the buffer is possible by writing the contents to the file
    > but it is a little bit complicated)
    >
    > In many of my applications where the acquired data is needed to be
    > plotted I have used waveform chart which has a history for
    the data. I
    > have noticed that history feature can be effectively used as an
    > buffer, it does not slow the execution like shift registers and you
    > don't need to build any buffers by yourself.
    >
    > In some cases I don't need to display the data but I just want to
    > buffer it, therefore it could be very useful to have a general buffer
    > block in the Labview which does not have any kind of appearance in the
    > front panel, just a node in the block diagram.(of course one way is to
    > use the history of the waveform chart and hide the chart)
    >
    > I have been programming with LV over two years daily but making of
    > efficient buffers has always been a question to me. I have noticed
    > that other colleagues have same kind of problems.
    >
    > Maybe this kind of buffer block could be made by c-language code and
    > called it by the LV, but calling functions from dlls take also some
    > time overhead which can be too much.
    Attachments:
    FIFO_WO_LocalVar2_6i.vi ‏48 KB

  • 2d implementa​tion of median filter for images

    I want to use the LabVIEW 1d median filter function for 2d array (image) application.  Vision does not have this function (or I cannot find it [using Vision 8.5]).  I am assuming I can apply the 1d median filter across the rows, then transpose the array, and apply again to the rows (really the columns but now rows because of transposition).   Just like for using the 1d FFT for 2d FFT.  Is this strategy correct?
    Thanks,
    Don
    Solved!
    Go to Solution.

    Excellent find.  Further information on this fx:
    "You can use this VI to apply a median filter by
    selecting the correct order, (f^2-1)/2, where f is the size of
    the convolution matrix." (A median (center-pixel) operation is advantageous because it standardizes the
    gray-level values without significantly modifying the form of the objects or the
    overall brightness in the image.).
    So one only needs to specify the convolution kernel dimension, and can use the above equation to calculate order.  It was hard for me to believe that Vision did not have this function.  I now see that I should have searched the NI Vision for LabVIEW Help.  This is something I almost always do in addition to searching for the actual functions from the block diagram.  Had I done this, I would have found it.
    Thanks again for looking.
    Sincerely,
    Don

  • ActiveX wrapper for Labview

    Hello!
    My name is Daniel. I'm from Argentina and I work in Tracnova S.A.
    Tracnova is the Distributors of NI in Argentina.
    I am having an issue with ActiveX development for wrapper an dll driver.
    I have to read strain gage aquisition data from an USB device of MANTRACOURT (http://www.mantracourt.co.uk/products/wireless-telemetry).
    The manufacturer provide an dll driver. It's shipped with example for VB6 that I have been testing and it works fine.
    BUT I HAVE TO USE IT IN LABVIEW.
    My first problem is that I have to provide an CALLBACK function pointer as parameter to "INITIALISE" function of the dll. Here is an excerpt from the
    example that is shipped (Excerpt from a form module):
    Private Sub Form_Load()
        'we will only handle base station addresses of 1
        iBaseAddress = 1
        Caption = Caption & " [DLL v" & VERSION & "]"
        CLOSEPORT
        'set the callback so we can receive data provider packets
        Init AddressOf CallBack  ''''''----------------->>>>>>>>>>>>>>>> CALLBACK function pointer as parameter to "INITIALISE" (It defined as Init)
        'Open USB interface
        ok = OPENUSB
        If ok <> 0 Then
            ShowMessage "Cannot open USB interface!" & vbNewLine
        End If
    End Sub
    "CallBack" function is contained within .bas. Because You can only retrieve the address to a function or sub (public or private) contained within a
    Standard VB Module.  There's no way around this.
    Here is an excerpt from the example that is shipped (excerpt from a Standard Module):
    Sub CallBack(ByRef StringPtr As Long, Length As Long)
        Dim PBMsg As String, rc As Long, pEnd As Long
        Dim p(128) As Byte
        Dim cH As Byte
        Dim tID As Long
        Dim C As Integer
        On Error Resume Next
        CopyMemory p(0), ByVal StringPtr, Length
        PBMsg = Left$(StrConv(p(), vbUnicode), Length)
        'strip off the base station wrapper
        PBMsg = Mid$(PBMsg, 4, Len(PBMsg) - 5)
        If PBMsg <> "" Then
            Debug.Print CVStr2HEX(PBMsg)
            Select Case Asc(Mid$(PBMsg, 1, 1)) And &H1F
            Case PT_DATA_PROVIDER
                'pass data to the main form if we are not closing
                If Not Closing Then MainFrm.ShowMessage "DATA_PROVIDER Data Tag=" & Replace$(CVStr2HEX(Mid$(PBMsg, 2, 2)), " ", "") & " Data=" & Decode
    (Mid$(PBMsg, 5, Len(PBMsg) - 6)) & vbNewLine
            End Select
        End If
    End Sub
    Then, when an data packet arrived, the driver call to "CallBack" function instead, so I can process it and do what I need.
    But I can't pass pointer to function IN LABVIEW WITH "LOAD LIBRARY FUNCTION". So I did an ActiveX in VB6 for wrapping the dll of the driver. I attached the
    files tha I did. The ActiveX sends an event to labVIEW everytime that a data packet arrived. I trigger an event inside the CallBack function that it's
    not working, but if outside (look inside Iniciar() function where I wrote "This is the first event", the event trigger works.)
    Why is not THE CALLBACK FUNCTION TRIGGERING THE EVENT INSIDE THE LABVIEW??
    I also tried to make a Win32 DLL with C + + using PostLVUserEvent, but neither worked for me. I can send the code in C + + if you want to review.
    Thank you for your consideration. I look forward to hearing from you.
    Best Regards
    Daniel Lopez
    Design Engineer
    TRACNOVA SA
    www.tracnova.com
    Attachments:
    ActiveXPropia.zip ‏459 KB

    Thanks a lot nyc for your kind reply.
    Yes, you are right. They have COM driver, but the event does not fire in labview. Also, this driver does not implement a COM circular buffer which means that if you delay reading and processing the data, these are lost because they are rewritten. I have been asking for support to MANTRACOURT, but after several attempts, they told me they do not provide support for labview only for VB, VBA excel, and some other more, not even C + +     
    National I miss to much. Nice technical support !
    Please help, I need to fix this issue
    Thanks a lot!
    Daniel

  • How To create a Buffer Application Program in LabVIEW?

    Dear all:
    Can someone advise me on how to implement a buffer application for LabVIEW.
    Basically I have 2 application programs than run continously in paralell.
    1) LabVIEW Data Logging & Plotting Program. It takes 90 ms to excute its code
    2) C++ Data Acquisition Program. It Samples the data from a Reflective Memory Card (on the PCI bus of my PC)
    at 1ms and creates a Buffer where it store one sample per channel every 1 ms.
    I know LabVIEW have the Code Interface Node to call a C program but since both (The LabVIEW and the C) are runing (one slower than the other) in Parallel I need to somehow interrupt the C program from LabVIEW and get from it the data that it as collected so far.
    Any suggestio
    n will be highly appreciated. I attach txt file with a little more description of the problem.
    Thank You very much.
    Felix Beltran
    ALSTOM Power Conversion.
    U.K
    Attachments:
    NI_SW_Buffer_Question1.txt ‏2 KB

    Hi Felix,
    The best architecture for this application would be to have the C++ program divided into two threads. One thread is continuously acquiring data and placing it in a queue. The other "handling" thread will read data from the queue and serve it up to your LabVIEW application.
    Much better than using the Code Interface Node, build the C++ application into a DLL. You can then call a function from your LabVIEW program to start the acquisition, and then calls to the handling thread function will return data to LabVIEW.
    I hope this helps.
    Regards,
    Phil R
    Applications Engineer
    National Instruments
    http://www.ni.com/support

  • Fastest array operations on a 2D circular buffer

    I'm trying to create a a type of circular buffer on large-ish set of 2d data which are samples of voltage from a data acquisition board.  The boards are Measurement Computing and a lot of the nice programming features built into DAQmx for NI boards aren't easily available to me.
    I'm grabbing chunks of samples, 1000 per channel * 64 channels, every 100ms.  I'm calling this a 'page'.  For each page of samples I take a median for noise filtering and then I publish this median for multiple threads to use.  I also want to be able to string together pages of samples as if it were one longer data acquisition, for up to 30 seconds.  I'm doing it this way because the threads that are expecting their data every ~100ms can't release these AI boards for long periods of time to allow other threads to use them to perform long scans.  The data coming back from my boards is a 2D array.
    I have enough RAM available to pre-allocate the memory to hold all these pages and I've been playing with the In Place structures for awhile now and I haven't been able to land on the magical combination that will allow me to replace any page in the buffer.  It's easy enough using the subarray option of the in Place to replace either the first page or the last page but it gets more complicated to do a page somewhere in the middle without having to resort to Case statements.  I tried to do it with nested In Place structures but it seems as if the subarrays that get created in the lower levels already go out of scope by the time the top level gets it assigned and I just get jibberish on the output side.  Does this make sense?

    SmokeMonster wrote:
    I tried to do it with nested In Place structures but it seems as if the subarrays that get created in the lower levels already go out of scope by the time the top level gets it assigned and I just get jibberish on the output side.  Does this make sense?
    Sorry, but at least to me, this doesn't make sense.  Can you post your code?  I can't see how "out of scope" is a concept that applies here - LabVIEW keeps track of the memory for you and should never lose track of memory that's still in use.
    I posted one approach to a 2D circular buffer; maybe it's of some use to you.

  • How to buil a circular buffer of message

    Hi, I have a GPS that sends me their information every 30 seconds, I'm receiving this information for the serial port and I should send this information by another serial port, but every 90 seconds or more, the transfer time is variable according to the performs of the microcontroller, we need to know how buil a circular buffer of tx message so as not to miss any reading that I sent me the GPS.

    One way would be to have the serial port read in one loop, placing the received messages onto a queue, with the writing done in another loop, popping the messages off the queue as needed. Of course, if you are "loading" the queue every 30 seconds, and "unloading" the same amount only every 90 seconds, you will eventually run out of storage, filling up the predefined queue size. So you will need to determine how long that would be, and how you want to handle it. This is a problem that will occur with whatever method you use, also understanding that the longer you run, the further behind the actual GPS location data you will be. In LabVIEW 8.x, click "File" and New, there is an example of a producer/consumer architecture.
    Message Edited by LV_Pro on 01-27-2009 01:28 PM
    Putnam
    Certified LabVIEW Developer
    Senior Test Engineer
    Currently using LV 6.1-LabVIEW 2012, RT8.5
    LabVIEW Champion

  • Enumeration with Circular Buffer

    Hi, im having trouble with the enumeration of Circular Buffer .
    I had compilation errors with the Ring Buffer Class, it keeps pointing to public Enumeration elements () {return new RingBufferEnumeration(this);}
    Any advice ? Thanks
    This is the RingBufferEnumeration Class code
    public class RingBufferEnumeration implements Enumeration {
    private RingBufferNode firstFree, firstFilled;
         public RingBufferEnumeration(RingBufferNode a) {
              firstFree = new RingBufferNode(a);
              firstFilled = firstFree;
              firstFree.next = firstFree;
    public boolean hasMoreElements(){
      return firstFilled != firstFree;
    public Object nextElement () {
    return firstFilled= firstFilled.next;
    }this is the Ring Buffer Code
    public class RingBufferQueue implements Queue {
          * initialize an empty ring buffer queue
         public RingBufferQueue () {
              firstFree = new RingBufferNode(firstFilled);
              firstFilled = firstFree;
              firstFree.next = firstFree;
         private RingBufferNode firstFree, firstFilled;
          * Determines whether the collection is empty
          * @return true if the collection is empty
         public boolean isEmpty() { return firstFilled == firstFree; }
          * Determines number of elements in collection
          * @return number of elements in collection as integer
         public int size () {
              int count = 0;
              RingBufferNode p = firstFilled;
              for (; p != firstFree; p = p.next) count++;
              return count;
          * Yields enumerator for collection
          * @return an <code>Enumeration</code> that will yield the elements of the collection
          * @see java.util.Enumeration
         public Enumeration elements () {return new RingBufferEnumeration(this);}
          * add a new value to end of the collection
          * @param value element to be inserted into collection
         public synchronized void addLast (Object val) {
              if (firstFree.next == firstFilled)
                   firstFree.next = new RingBufferNode(firstFree.next);
              firstFree.value = val;
              firstFree = firstFree.next;
          * access the first value in collection
          * @return element at front of collection
          * @exception java.util.NoSuchElementException no matching value
         public Object getFirst () {
              if (firstFilled == firstFree) throw new NoSuchElementException();
              return firstFilled.value; }
          * remove first value in collection
          * @exception java.util.NoSuchElementException no matching value
         public synchronized void removeFirst () {
              if (firstFilled == firstFree) throw new NoSuchElementException();
              firstFilled = firstFilled.next;
    class RingBufferNode {
         public Object value;
         public RingBufferNode next;
         public RingBufferNode (RingBufferNode n)
              { next = n; }
    }

    im not sure is it a RingBufferNode but, im sure it is not indexed data for ring Buffer
    My IndexDeque is working correctly
    public Enumeration elements () { return new IndexedEnumeration(this); }IndexedEnumeration
    public class IndexedEnumeration implements Enumeration {
          * initialize newly created IndexedEnumeration
          * @param d collection to enumerate over
         public IndexedEnumeration (Indexed d) { data = d; }
         private Indexed data;
         private int index = 0;
          * see if enumeration should continue
          * @return true if enumeration has at least one more element
         public boolean hasMoreElements () { return index < data.size(); }
          * get next element in enumeration
          * @return value of next element in enumeration
         public Object nextElement () { return data.elementAt(index++); }
    }

  • I'd like to know how I can acquire a waveform on a loop and do a circular buffer with this waveforms I will acquire, cause I want to reduce the noise.

    I'm using trigger for this data acquisition.

    deco,
    If you really want a circular buffer, how much data do you want it to hold? One acquisition? Two? Three? Once this is decided, you will need to create the waveform and then continuously strip the old data out and place the new data in. This will add a bit of overhead to your VI.
    There are also software noise filters in LabVIEW that you can use to reduce the noise in your signal.
    Lastly, if there is a lot of noise, you may want to consider an SCXI system which will filter out most of the noise as the data is being acquired.
    Randy Hoskin
    Applications Engineer
    National Instruments
    http://www.ni.com/ask

  • Circular buffer error with DIO32HS

    Hello,
    I am using a DIO32HS in pattern buffered I/O with external clock in Labview and in Visual C.
    I lose a sample when the circular buffer has wrapped the first time. It is always the 17th sample after a full buffer. If I change the buffer size, it moves along.
    I tested it in Labview 6i and with Visual C. I can repeat the test and the error is always in the same spot. There are no error warnings, not in Labview or in C.
    I tried it with another DIO32HS and it makes no difference.
    Has anyone seen this before?
    How can I solve the problem?

    Hello,
    I am not sure where the problem lies in your application, but here is one test you can run to see if the card is working correctly and it may be something that we are missing in the programming of the card.
    You can open the Pattern Input example and the Pattern Output example VIs in labview.
    Next, tie all the data lines of port 0,1 to the data lines of port 2,3. Also tie REQ1 to REQ2 (clock line). Then you can start one example with the settings of external clock, then start the other program using the internal clock. This will insure that we start the slave ports first, then the master ports will start the transfer of data after the slave ports are ready.
    Hope fully you do not see the same behavior, but if you do, you may wish to contact NI technical
    support. For contact information visit www.ni.com.

  • Reg: vacancy for LabVIEW developer in Bangalore, Chennai and Delhi with (1-6) years experience

    Recruitment Process for LABVIEW: Tele Interview in case of outstation candidates. Bangalore candidates will have to first come for a Written Test (Technical + Analytical), 1-2 rounds of direct technical interview.
    Degree/Branches:  B.E / B.Tech in Electronics / EEE / E&C / E& Instrumentation .
    ROLES AND RESPONSIBILTIES OF ASSOCIATE ENGINEER-SEG:
    Development
    1. Responsible for developing software for the project/module allotted to you with smooth coordination and smooth handing over of the work executed by one to another member in case of change of projects.
    2. Expected to work on multiple projects, project dead line, adhere to coding guidelines and update your progress on the project on a weekly basis to your immediate supervisor.
    3. Developing the software strictly as per the requirement specification, design and Bug free.
    4. Responsible for building a trouble-free system to the satisfaction of the customer.
    Installation
    1. Responsible for installation of hardware and software at customer site for coordinating with the vendor and Manager – Sourcing to see that works done by the vendor is as per requirement specification
    Customer Support
    1. Responsible for providing support to the customer on the system supplied by the Captronic Systems in the past as well as present.
    2. Attends to the support case within 48hrs(local) / 96hrs(outstation ) / 96hrs(out of warranty) of reporting and collecting the Support Closure Report from the customer and submit it to the SBU-HEAD
    3. Informs Support executive with Support Status, Action Taken and Support Closed On
    Training
    1. Responsible for providing training to customer on the systems supplied by Captronic Systems.
    2. Responsible for in-house training to newly recruited engineers.
    Testing
    1. Responsible for testing code developed by you, by another developer and testing entire system at the customer site.  
    2. Responsible for testing hardware supplied by Captronic System and log the test report on the hardware test register.
    Sales Support
    1. Expected to travel with sales team to provide support to sales-team in proposal making at short notice and perform flawless pre-sales system and requirement study.
    General
    1. Expected to take part in technical sessions and keep yourself abreast with the recent product released and technical advancement made
    2. Expected to become domain expert is at least one field and to constantly improve coding style and knowledge.
    Quality
    Responsible for implementing the project methodology and quality policy of the company for all activities under your purview
     Interested candidates may forward your resumes witheir current CTC and notice period to [email protected] . Salary is never the Constraint.

    SANDU SUNITHA
    D/o.S. Venkateshwarlu,
    H.No:11/57, Kothapeta,
    Maruthi Nagar,Dhone,
    Kurnool (Dt.),
    Andhra Pradesh.
    E-Mail:[email protected]
    Mobile : 91-9963586292/08884822259
    Date: 09/ 05/ 2013
    Respected Sir/Madam,
    I have done my masters in  Control Systems Engineering in Electrical
    branch from Malla Reddy College of  Engineering. I am a well organized
    person, with good knowledge about the subject, able to do
    multitasking, able to work within a team and have excellent
    communication skills. As a good Engineer and excellent team player I
    can handle the responsibilities and challenges of the post of an good
    engineer to its fullest.
    I have worked for 6 Months as Project Trainee in CSR INDIA PVT LTD. My
    responsibilities in that institute include Testing, Reporting and
    Debugging, Updating the bugs as a trainee fresher. I was a part of the
    team that designed MERCURY TESTING TOOL, world's Best Automation tool
    today. I tested the model and executed the changes.And i had worked as
    Project Engineer in FUSION ELECTRONICS on Wonder ware SCADA. Presently
    working as Project Scientist in NAL (National Aerospace Laborateries)
    under Research and Development of IVHM(INTEGRATED VEHICLE HEALTH
    MANAGEMENT) Project on MATLAB/SIMULINK ,Labview ,Wireless Sensor
    Networks,WatchDog and Testing.
    Here is the list of the documents enclosed with this cover letter.
     1. Resume
    I hope that you find these of worth. I assure you that if selected; I
    will not let you down and would prove to be an asset for your reputed
    industry.
    Sincerely yours,
    SANDU SUNITHA
    Attachments:
    SANDU_SUNITHA(29_Apr_2013).doc ‏176 KB

  • Functions in IMAQ Vision for Labview same as those in Vision Builder?

    Hi all...
    i just have a simple question..Does IMAQ Vision for Labview has the same functions of Vision Builder?
    I know that with Vision Builder you can develop an application interactively...but does it has more functions than IMAQ Vision?
    So if i buy IMAQ Vision can i develop the same kind of applications that i would make with Vision Builder?
    I´m specially interested in color matching and color analisys functions.
    Thanks

    IMAQ Vision has much more than Vision Builder. Basically, VB was created using Vision and they implemented a good number of the functions in a menu driven format. However, there are many more functions available that were not integrated into VB.
    Vision does have some good color matching and analysis tools.
    Bruce
    Bruce Ammons
    Ammons Engineering

Maybe you are looking for

  • How do I update my Nik Plug Ins for LR 5 to the latest release?

    Nik has a new release (1.1.1.1) and the Plug In version I have in LR 5 is 1.1.1.0.  How do I update the Nik Plug In's?  I have Lightroom through the Creative Cloud and usually get my updates there.

  • Startup MacOS window popup

    Hey everyone, Just a quick question, I don't think it's too serious of a problem for me, but recently when starting up my mid-2009 MacBook Pro, I've noticed that the 'MacOS' window always pops up after logging into my account, it hasn't become that m

  • Help. it says that it still needs to be activated

    ok so i got an iphone 3g last night and the woman at the apple store said that all i had to do was sync it and id be able to use it. but it still says waiting for activation this may take some time. what do i need to do?

  • 10.6.7 Update Seems to Have Trashed my System

    Not sure, but it seems that ever since I installed the 10.6.7 update, I've had multiple software crashes, and today lost a client file totally. The problems I'm having are: 1) InDesign CS4 crashing when I export to PDF, and at other times when I don'

  • Motion videos render out blurry

    Maybe someone could help me. I've been creating title bars in Motion to use for sermons. I simply place them at the bottom of the screen. Nothing fancy. When I export the file and place it in FCP, for some reason the Motion video seems to be blurry,