Waveform streaming and waveform scripting - Mutually exclusive?

Hello All,
I was looking at doing some tricks with the streaming capabilities of the new PXIe-5442 plus NI RAID extension. Is there a way to script multiple waveforms together if the total sample size exceeds the hardware capacity of the AWG (in other words can one of the waveforms be stremed to the memory) ?
If not are there any scripting or sequence "type" abilities that allows multiple waveforms be stored off board and let each waveform be hardware triggered (load, wait for ext trig, run waveform1, loop through first/last eight samples, wait ext trig, run waveform2, etc..)?
The looping functionalities are less of an issue with what is essentially a 1TB AWG but the triggering still poses a problem.
CVI examples are preferred but any example that shows the hardware feasibility exist should point me in the right direction.
Note: In a perfect world, I would to see a scripting solution that would allow different our experiment types to be more easily executed within the same project.
Thanks in advance.
Solved!
Go to Solution.

Hi,
You can do Waveform Streaming and Scripting in the same session.
To Stream to a waveform in script, you would need the streaming waveform name.
An example scenario is where you want to configure your board for 3 different waveforms (WfmA, WfmB and Streaming Waveform).
You can download WfmA and WfmB using "niFGEN Write Named Waveforms" and name the waveforms accordingly.
e.g., niFgen_WriteNamedWaveformI16 (vi, "0", wfmA, numPoints, wfmData)); /**Notice that these names will be used in script******/
We cannot assign name directly to a streaming waveform, however we can get information from the driver about the name it set to the streaming waveform.
Streaming Waveform:
1) Allocate Streaming Memory using niFgen_AllocateWaveform function
2) Pass the "Waveform Handle" output of niFgen_AllocateWaveform function to "niFGEN Streaming Handle" attribute
e.g.,
 checkErr(niFgen_AllocateWaveform(vi, VI_NULL, streamingWaveformSize, &wfmHandle));
 checkErr(niFgen_SetAttributeViInt32(vi, VI_NULL, NIFGEN_ATTR_STREAMING_WAVEFORM_HANDLE,
          streamingwfmHandle));
3) Fill the Streaming Memory Buffer with data using niFgen_WriteBinary16Waveform  and Streaming Waveform Handle
4) Then read the attribute "Streaming Waveform Name". You can use this name now in script.
 niFgen_GetAttributeViString (vi, "0",  NIFGEN_ATTR_STREAMING_WAVEFORM_NAME, 512, streamingwfmname);
To generate these sequence of waveforms, a sample script would be:
script myscript
generate wfmA
generate wfmB
repeat <repeat count>
generate <streamingwfmname>
end repeat
5) Download the script using  niFgen_WriteScript function
6) After you start the generation, inside a while loop continuously monitor the "Space Available in Streaming Wfm" and transfer the data using "niFgen_WriteBinary16Waveform  and Streaming Waveform Handle.
I have a sample application in LabVIEW, I can post it if it would help. Let me know if I am not clear on anything....
Thanks,
Kalyan
Kalyanramu Vemishetty
Automated Test Systems Engineer
National Instruments

Similar Messages

  • Combine waveform chart and waveform graph

    I would like to combine the properties of waveform charts and waveform graphs, i.e. I'd like both continuously changing and fixed graphs at the same time.  Specifically, I would like to display one waveform as a fixed, unchanging background, then display another waveform on top of this background while my code is running, as data arrives from a DAQ, point by point.  Is this possible?  Thanks!

    The answer is to use XYGraph.  See attached example.
    Attachments:
    plot_two_waveforms.vi ‏29 KB

  • Are "Back to my MAC" and "Port Forwarding" mutually exclusive?

    I have been using APExtreme and Port Forwarding successfully for several weeks now. The PF is to allow access to game players on a PC which acts as a server on the web. All Good.
    One more thing, I have a ISP provided wireless modem/router to talk to the cable and the world. It seems to work either bridged or un-bridged.
    I have disabled the wireless on the ISP's modem/router. (Actually the ISP's device doesn't hold a candle to the APE.)
    Still all good.
    So the firewall is on in the APExtreme and none on the modem router, and I have a port defined for my gamers to get access to my server in the APExtreme.
    I now want to implement Back to my MAC on my MBP and my other Apple devices. I believe these use iCloud for which I have an account and it seems to be working well with my iPhone.
    In Properties, when I select BtmM, iCloud says communications will be slow if I have port forwarding on. Also I will not be able to use the router function in my Modem/router.
    I'd really like to have the modem/router firewall up, and do the port forwarding there, but the BtmM will likely not get through.
    So what does anyone suggest?
    Can I use BtmM and port forwarding without too much degradation?
    Please advise.
    Thanks
    Barry

    To best answer your question on whether the two are "mutually exclusive," let take a look at how Back to My Mac (BTMM) basically works.
    BTMM - General Requirements
    OS X Leopard 10.7.3+
    Active iCloud account. Each Mac & the AirPort router, that will be relying on BTMM, needs to be configured with the same account.
    A publicly reachable IP address for your router.
    A router that supports either NAT-PMP or UPnP. For AirPorts, be sure it is running 7.6.1+ firmware.
    BTMM uses TCP port 5354 and UDP ports 4500 & 5353 for communications.
    BTMM - Basic Communication Flow
    For a computer connected to the Internet via a router, BTMM "asks" the router for its configuration information. For a router, like your AirPort, that uses NAT-PMP, BTMM will ask the router to assign arbitrary public ports. In turn, the router will provide these port assignments (& the router's Public IP address) back to BTMM.
    BTMM then sends this information to the iCloud account. In background iCloud updates a special set of DNS entries to be used by BTMM. These entries are then made available to all BTMM clients using your iCloud account. When a computer, with BTMM enabled, uses your iCloud credentials, it automatically retrieves a list of all other computers/routers that are registered with the same account. All these devices should then appear under the SHARED section of the Finder.
    When attempting to connect to a remote computer (or router), BTMM creates a secure connection to that remote device using the information from the iCloud account.
    Once the connection is established, the devices can then communicate with each other.
    So potentially, unless you are using Port Mapping for any of the ports BTMM uses, they should not conflict.

  • Oci8 and oracle extensions mutually exclusive?

    Does anybody know if the following extensions are mutually exclusive.
    php_oci8.dll
    php_oracle.dll
    I can't getting both to load.
    They can be uncommented in the php.ini and loaded individually but if both are used this causes a fatal error and apache fails to start and doesn't leave anything in the log file.
    I am currently using php4.3.6 / NT / Apache 1.3.12 (Win32)
    I am fairly new to php and don't seem to be getting anywhere fast, any help would be appreciated.
    thanks
    Neil W.

    I have them both uncommented and usable. I'm using Apache 1.3.28.
    Maybe your four-year old Apache version is the problem?
    -- CJ

  • Dual monitor and hw accel mutually exclusive (using Awesome WM)

    Hi I've been using Arch for some months now and I have laptop (Lenovo x220 with integrated intel graphics) with an occasional dual monitor setup. Things were smooth, but I was having issues with video tearing, so I went trough the intel graphics arch wiki page and I was able to turn on hw acceleration and get rid of the video tearing by putting this in my /etc/X11/xorg.conf.d
        # /etc/X11/xorc.conf.d/20-intel.conf
        Section "Device"
           Identifier  "Intel Graphics"
           Driver      "intel"
           Option      "AccelMethod"  "sna"
           Option      "TearFree"     "true"
        EndSection
    The problem is that I add that file I no longer have proper dual monitor with extended desktop, the second monitor kind of mirrors the main one.
    kind of, because I can move the pointer between the two monitors and is not duplicated, but the desktop (widows and awesome menu) is duplicated on the second monitor, but I can only interact with the windows using the mouse from the main monitor.
    I usually do `$ xrandr --mode 1920x1080 --output HDMI1 --right-of LVDS1` to output to the second monitor, and it was working allright.
    I've been trough arch and gentoo wiki looking for dual monitor/xorg config stuff to no avail yet.
    Last edited by vermelho (2012-08-01 20:18:50)

    I found a fix in this thread: http://forums.gentoo.org/viewtopic-p-71 … c9ec76f8b8
    Adding `i915.semaphores=1` to my boot params allows me to use the TearFree option in xorg config, without X crashing and with a dual monitor setup.

  • MSSQL driver: getInt() and getResultSet() are mutually exclusive?

    Hello,
    I have a problem with a stored procedure which returns out
    parameter (integer) and a result set produced by "select" sql. If i'm
    doing
    sth.registerOutParameter(1, Types.INTEGER);
    sth.execute();
    sth.getInt(1);
    following
    while (true) { ResultSet rsh = sth.getResultSet; if (rsh != null)
    break; sth.getMoreResults(); }
    never leaves the cycle. If i'm trying to sth.getInt() as i scrolled to
    ResultSet (and even if next() if issued to ResultSet), the last is
    immediately closed (each following operation with ResultSet throws
    exception).
    Is there way to use ResultSet and out parameters simultaneously?
    Indeed i need that badly.
    Thank you in advance
    Artiom

    Whose MS SQLServer driver are you using?
    When SQLServer executes a stored procedure, it
    sends the output parameter values after all the
    result set data and/or update counts. With our
    driver, you should be able to get the result set
    first, and then get the output parameter.
    Here is a code example that shows how to handle
    the returns from an arbitrarily complex procedure.
    boolean isResultSetFirst = cstmt.execute();
    while (true)
    int updateCount = cstmt.getUpdateCount();
    rs = cstmt.getResultSet();
    // If there are no more results or counts, we're done.
    if (rs == null && updateCount == -1)
    break;
    // Check to see if there is a ResultSet
    if (rs != null) {
    while (rs.next()) {
    System.out.println("Get first col by id:" + rs.getString(1));
    rs.close();
    } // Otherwise, there will be an update count
    else {
    System.out.println("Update count = " + cstmt.getUpdateCount());
    cstmt.getMoreResults();
    // Best to retrieve status after all result sets and update counts
    // have been retrieved.
    System.out.println( "Output status: " + cstmt.getInt(1));
    System.out.println( "Output param: " + cstmt.getString(2));
    Artiom wrote:
    Hello,
    I have a problem with a stored procedure which returns out
    parameter (integer) and a result set produced by "select" sql. If i'm
    doing
    sth.registerOutParameter(1, Types.INTEGER);
    sth.execute();
    sth.getInt(1);
    following
    while (true) { ResultSet rsh = sth.getResultSet; if (rsh != null)
    break; sth.getMoreResults(); }
    never leaves the cycle. If i'm trying to sth.getInt() as i scrolled to
    ResultSet (and even if next() if issued to ResultSet), the last is
    immediately closed (each following operation with ResultSet throws
    exception).
    Is there way to use ResultSet and out parameters simultaneously?
    Indeed i need that badly.
    Thank you in advance
    Artiom

  • DVD Audio and Subtitle script Please HELP

    Subtitle Audio Scripts Please Help
    Posted: Sep 3, 2006 8:04 PM
    I need to write a script that does the following:
    1st I have the end user choose if they want subtitles on or off and then both the buttons will default for the user to chose a language choice. So I need a script that will play just audio streams and a script that will play audio with the same language subtitle. Also if the user just pushes the language button I need the script it to default to play just that language...
    Here is what I have scripted already please tell me where my mistake is:
    Button Command
    Subtitles
    On mov GPRM 0,0
    Jump Special Features: English
    Off mov GPRM 0,1
    Jump Special Features: English
    English 1. mov GPRM 0,2
    2. Set System stream Au(Audio Stream 1) if (0=0)
    3. Set System Stream St(Subtitle Stream 1)(ON) if (0=0)
    4. Goto 11 if (GPRM 0=0)
    5. Set System stream Au(Audio Stream 1) if (0=1)
    6. Set System Stream St(Subtitle Stream 1)(Off) if (0=1)
    7. Goto 11 if (GPRM 0=1)
    8. Set System stream Au(Audio Stream 1) if (0=2)
    9. Set System Stream St(Subtitle Stream 1)(Off) if (0=2)
    10. Goto 11 if (GPRM 0=2)
    11. Jump JOFDVD:Start
    12. Exit
    All my language scripts will be similar just with different audio and sub streams.
    Help Please-
    Ryan-

    Hi There
    I think your error is in the first line of your script.
    You're using GPRM 0 to set your subtitle condition and when you press enter on your english button your first line says
    1. mov GPRM0,2
    I'm assuming you want to use this first comand to set your languange condition so you should use GPRM 1 (or more) - at this stage all you're doing is removing the subtitle condition set by your earlier script.
    Good luck
    Cheers
    B

  • When I record an audio track, there is a waveform. When I stop recording, the waveform disappears and becomes a straight line. It also disappears from the track edit window. But the sound is there. How can I stop the waveform from disappearing?

    When I record an audio track using Logic Pro X, there is a visible waveform which appears as I record. When I stop recording, the waveform disappears and becomes a straight line. It also disappears from the track edit window. But the sound is still there. How can I stop the waveform from disappearing? And can I do something to view it after it has disappeared? Anyone know the anser?

    In Logic:
    Preferences/Audio Set Recording Delay to 0 <zero>
    This should always be set to zero unless a specific set of circumstances exist and you're audio drivers do not report position correctly.
    On occasion, usually when importing a Logic 9 project, Logic-X randomly changes this to a negative/positive number.  It's actually a bug in Logic, as it should always display the waveform.

  • I am trying to create a PDF document that calculates Gains and Losses in Mutual Funds. The calculation scripts are repetitive from line to line. The scripts work well until I reach the line 32. Script stops calculating...

    I am trying to create a PDF document that calculates Gains and Losses in Mutual Funds. The calculation scripts are repetitive from line to line. The scripts work well until I reach the line 32. Although I am using the same script as the fields above in the columm, the script eventually stops calculating and I can't figure out why. Is there a limit of how many calculation scripts you can enter? I will attempt to attach my pdf as soon as I figure out how. Thanks.

    For e31 :
    var e30 = +getField("e30").value ;
    var c31 = +getField("c31").value ;
    if ( (e30 !== 0) && (c31 !== 0) ) event.value = e30 + c31 ;
    else event.value = "";
    for e32 :
    var e31 = +getField("e31").value ;
    var c32 = +getField("c32").value ;
    if ( (e31 !== 0) && (c32 !== 0) ) event.value = e31 + c32 ;
    else event.value = "";
    for e33 :
    var e32 = +getField("e32").value ;
    var c33 = +getField("c33").value ;
    if ( (e32 !== 0) && (c33 !== 0) ) event.value = e32 + c33 ;
    else event.value = "";
    Java console doesn't show any error... That's why I am wondering if it's not a limitation issue... or memory issue, because they are maybe too many rows or something....
    The c value is not calculated.

  • Code needed for "putting waveform graphs and 8bit images in the same window by Windraw"

    Hi Micheal, please sent the code example for my question:"putting waveform graphs and 8bit images in the same window by Windraw" , thanks.

    You can start from here ...
    Hope that helps,
    Michael
    Attachments:
    tester.vi ‏97 KB

  • Putting waveform graphs and 8bit images in the same window by Windraw

    How to put waveform graphs and 8bit images in the same window by Windraw VI?

    Use "Invoke Method: Get Image" to get a pic of your waveform graph/chart. Then combine this pic with your 8bit image using the IMAQ tools (IMAQ ImagetoImage). If you need an example send an e-mail again ...
    Michael

  • On a 3750 enhanced services port, are hierarchical queueing and standard queuing features mutually exclusive?

    When you configure hierarchical queueing on an enhanced services port, should one also configure the egress queue chararcteristics such as buffer space and thresholds, shaped/shared weights, egress priority queue, etc., that is all of those characteristics that one would configure if one were configuring a port for standard QOS.  In other words, on an enhanced services port, are the hierarchical queueing features using the modular QOS CLI and the standard egress queueing features supposed to be used together or are they mutually exclusive?

    Hi Christine,
    Answer to your confusion is in the following document.
    http://www.cisco.com/en/US/docs/switches/metro/catalyst3750m/software/release/12.1_14_ax/release/notes/OL464603.html#wp58682
    On an ES port, you can use LLQ (enabled with the priority policy-map class configuration command) and the egress priority queue (enabled with the priority-queue out
    interface configuration command). By using these two features, you can
    give priority to a class of traffic and avoid losing traffic when the
    switch is congested. In previous releases (before the egress priority
    queue was supported), you could put a traffic class into the
    strict-priority queue, but congestion at the egress queue-sets could
    result in the dropping of that priority traffic. The priority-queue out
    interface configuration command enables you to prioritize the same
    traffic class at the egress queue-sets, ensuring that priority traffic
    reaches the hierarchical queues and is processed with priority.
    you can also fine tune the Queue-sets for your desired results.
    http://www.cisco.com/en/US/docs/switches/metro/catalyst3750m/software/release/12.2_50_se/configuration/guide/swqos.html#wp1162303

  • Where is the menu to select the waveform monitors and vectorscope?

    I feel stupid but I am unable to find the menu to select the waveform monitors and vectorscope in the newest update to PP CC.  Any guidance would be most helpful.  Happy Halloween!

    FWIW - I have set up a Keyboard Shortcut  that Displays Waveforms in the Program Monitor.
    My wish was for them to be available as a Button Icon but that is not possible.

  • Best place to store THUMBNAIL AND WAVEFORM CACHE?

    I was taught that when creating a new project, it's best to create a folder
    on a seperate media drive, and direct your scratch discs, thumbnail & waveform cache as well as the autosave vault to that drive & folder. This way,
    everything associated with that one project resides in that one folder on
    your media drive, seperate from the computers hard drive and if you have
    to move the project to another computer or delete everything associated
    with the project, you just move or delete that one folder.
    This has served me well in the past,...but,
    I was recently working with (6) different G4 1.2 laptops running FCP 4.5.
    It was a training class and the machines were working 8 hours a day for
    6 days straight. They were not networked together in anyway.
    Periodically, everyone of them would "lose" the waveform cache and thumbnail cache pictures while editing. I don't mean the folders would
    disappear, I just mean they'd stop generating the little thumbnails and
    waveform pics on the timeline. The temporary fix was to just save the
    project, close FCP, and reopen the project. They'd all pop back in and be
    there again for a while.
    #1 - Anybody know why this would happen?
    #2 - It was suggested to me that to avoid this happening in the future,
    that you should should direct the thumbnail and waveform cache folders
    to live on the HARD DRIVE of the computer, the same one with the app,
    and NOT in the same folder as the seperate media drive where you capture
    and store your video.
    This goes against everything I originally learned, but was wondering what
    others might have to say or have experienced on this point.
    I'd appreciate any input. Thanks.

    gulp ... jumps right in with both feet ...
    I think you were taught wrong.
    this is not the official path as laid down by the gods of fcp
    conventional wisdom suggest that you should set your scratch disk location once and then let fcp organise everything else.
    re your questions:
    1. no idea ... not the end of the world but certainly a weird glitch tho.
    2. some do, some don't ... tiny files w. very low overhead, location shouldn't be a factor in the problem you noted

  • Waveform cursors and "data gates"

    I have a waveform graph and want to capture certain periods of the waveform. I want a cursor to appear as a line that is adjustable in length, position and level, much like data gates used in ultrasonic A-Scan applications. I have been doing this in the past by superimposing a picture drawing lines over the graph, but I think data gates using cursors would be easier to manage and simplify things. Does anyone know how to make a cursor appear as a line that can be adjusted for length and position on the graph? And it would be even better if it were adjustable with a touch screen or with the mouse.
    Paul
    7.1/XP
    PaulG.
    "I enjoy talking to you. Your mind appeals to me. It resembles my own mind except that you happen to be insane." -- George Orwell

    Paul,
    There is no one, built-in function in LabVIEW that allows you to do this behavior, but you can easily code it yourself. What you have to do is detect when one of the two cursors is moved and then move the other cursor with it. If you want to also graph a line between the two cursors, you can do that, too, just by plotting it like any other plot.
    Coding this behavior is a breeze in LabVIEW 8 because there is now an acutal "Cursor Move" event; I have attached a LabVIEW 8 VI that demonstrates how to implement what you are talking about. In LabVIEW 7.1 and older, this is a little more difficult because there is no "Cursor Move" event, but there is an old post that discusses possible workarounds.
    Kind Regards,
    E. Sulzer
    Applications Engineer
    National Instruments
    Attachments:
    CursorWindow.vi ‏22 KB

Maybe you are looking for