DAQ task update during running task

Hi,
I hope sombody can answer this question.
Is it possible to update a running DAQ task without stopping the task?
In my task I have an analog output and I want to change the amplitude and/or the duty cycle of the output waveform.
Stopping the task and starting again with new parameters needs to much time.
Thank you,
Robert

If you're just looking to write new data to the task then there shouldn't be any need to restart it (you can use AO with non-regeneration like DianeS mentioned).  I wanted to make sure to mention that we have an online example that does just this:
Update Multiple Channels of Analog Output On-The-Fly
Additionally, there are some properties that are settable while the task is still running (e.g. AO Sample Rate can actually be changed on-the-fly on many of our Multifunction Boards).  Other properties (e.g. AO Voltage Range) cannot be modified without first stopping the task.  If you need to stop the task and reconfigure, Ben's method is a good idea.  I am aware of an example that does this for Analog Input tasks but I don't think we have one for AO.  Here's the link to an AI version in case anybody is interested (unlike AO, the AI Sample Clock is not changeable on-the-fly):
Switching Between Multiple Analog Input Tasks in DAQmx
From what it sounds like, the first link should be exactly what you need and you shouldn't need to worry about restarting your task.  Just add Duty Cycle to the control cluster and wire it into the
correspnding input of the Basic Function Generator.  If you have any questions about it or run into any issues don't hesitate to let us know!
Best Regards,
Message Edited by John P on 03-25-2010 06:35 PM
Message Edited by John P on 03-25-2010 06:36 PM
John Passiak

Similar Messages

  • How To: Deploying Windows & Office updates during task sequence

    How do you guys apply windows and office updates during the task sequence?
    Right now for Windows, I am offline servicing using my software deployment package.
    For Office, I had the software deployment package, but can't figure out how to add it to my task sequence. All the options don't allow me to choose the package.
    My end goal is to keep everything as up to date as possible, and if people image a computer and run Windows Update, they only have to download 10 or less updates, not 100+.

    Is Office part of your image or do you deploy Office as part of your task sequence?
    If office is part of your image, i'd recommend that you create a fully automated build and capture process using the MDT lite touch, and use a separate WSUS server to update the image with Windows , Office and other updates.
    It's pretty easy to setup.
    Creating a Windows 8.1 reference image:
    http://go.microsoft.com/?linkid=9845755
    If Office is not part of the image, you need to deploy the updates using Software Updates In SCCM as part of your Task Sequence.
    Ronni Pedersen | Microsoft MVP - ConfigMgr | Blogs:
    www.ronnipedersen.com/ and www.SCUG.dk/ | Twitter
    @ronnipedersen
    It's a task sequence. I'm confused how Software Updates works with SCCM because I do not want to use it to update All Systems. I only want to update it to computers that get imaged which are Unknown Computers. We have WSUS to take care of updates.
    If I deploy to Unknown Computers the updates in SCCM, once it joins the domain though to install all the other applications in the task sequence, will updates still go through now that it isn't a "Unknown ComputeR"?

  • LV 8.21: strange behavior with DAQ tasks, parallel running VI's and shift registers

    Hello,
    I have made a VI using DAQmx vi's. The VI uses shift registers to store DAQ tasks and other (internal) information. I have implemented  several modes of operation (enum control with a case structure) like 'init', 'read AD', 'config AD' etc. If I use this multi mode VI in a single main VI everything work as expected. I have attached a jpg that shows one example where the DAQ VI is called from 2 parallel running while loops. One loop aquires the data (LOOP 1) while the other loop configures the aquisition task (LOOP 2). If I implement the same thing by putting LOOP2 in a different VI that runs seperately from the first VI I get an error message (200428):
    Possible reason(s):
    Measurements: Value passed to the Task/Channels In control is invalid.
    The value must refer to a valid task or valid virtual channels.
    Task Name: EasyDAQ_AD
    Of course, the second VI is started manually after the 1. VI has passed the initialization part. The error message is triggered from the 1. VI that executes the DAQ task. From my understanding of the LV execution system this seems like a bug to me. Does anyone have an idea what could go wrong here?
    klaus
    Attachments:
    problem.jpg ‏30 KB

    1. In general, this kind of technique is something I've been using successfully for years.  (Ben recently wrote up a very nice treatment of these "Action Engines" as a "Community Nugget.")  So I don't start by expecting this to be a bug in the LV execution system.
    2. Your description of the problem sounds almost backwards.  You say you manually start the 2nd vi ("Config AD") *after* running the 1st vi ("Read AD").  Seems like you'd need to do the Config 1st and then do the Read, right?   I kinda suspect you actually did it in the right order, but described it wrong.
    3. The next likely scenario is that the Config failed, but you didn't trap the error and were unaware of it.  Then it makes sense that the Read would also fail.
    4. A couple issues I regularly deal with in these DAQ Action Engines is internal error handling.  I often keep a shift register inside to store errors generated inside the Action Engine.  But it can get a little tricky doing sensible things with both the internal error and any other error being wired in as input.
    I said all that so I can say this: if you have complex nested case statements, or lots of different action cases to handle, double check that the task wire makes it from all the way from left shift register to right.  Sometimes they get lost if they go through a case statement, the output tunnel is set to "use default if unwired", and 1 or more of the cases don't wire the output.
    -Kevin P.

  • Custom Scale behavior with DAQ Task running

    Hi to everyone, I am implementing a Polynomial Custom Scale for a sensor, but I have doubt about what happens if I change a Custom Scale and my DAQ Task is running, I suppose that the Custom scale does not change on the fly but my questions is if I have to clear the Task to apply the new custom scale or is enough with Stop the Task and Start the Task again.
    I am using the DAQmx functions for the code. Thanks for your help.

    Hi AYanez!! 
    Thank you very much for using NI Discussion Forums!!  I found a post that deals with the same issue you are trying to solve for your application.  It seems that you have to stop the task for the new scaling properties to be applied.  Take a look into this thread:
    Programmatically applying a custom scale in an active VI
    Hope this helps!
    Regards,
    Anuar R.
    National Instruments México y Latinoamérica
    Ingeniería de Aplicaciones
    www.ni.com/soporte

  • How can I combine these two DAQ tasks???

    I am using LabVIEW 11, Windows XP, cDAQ-9174 chassis, two NI-9205 modules.
    Please see my code for reference. I am very new so i will accept all suggestions.
    I am acquiring 12 volatage signals in a producer/consumer structure giving me a queue of 1-d array of waveform(dbl). Then I am acquiring 12 voltage signals in another loop giving me 2-d array of waveform(dbl).
    There is an issue creating the channels. How can I combine these two tasks?
    Thanks,
    ~Chris
    Attachments:
    WaveTest_6.2.vi ‏558 KB

    Hello chrisbe723,
    When you say that there is an issue creating the channels, are you getting a specific error message when running your code? Also are you referencing the same set of channels for the two DAQ task you are configuring?
    Paul-B
    Applications Engineer
    National Instruments

  • Is it possible for a DAQ task to just stop responding to commands?

    The software I am working on controls a NI USB-6501 digital I/O device using the NI-DAQmx library.  When the software initializes, it attempts to create 10 "tasks" (for different I/O lines of the device) using DAQmxCreateTask().  If any of the tasks cannot be created, the software should close with an error message. 
     if ((!CreateTestModeTask(&TestModeTask, USBdevname)) &&
         (!CreateChooseDUTTask(&DUTSelectTask, USBdevname)) &&
         (!CreateChargeStatusTask(&ChargeStatusTask, USBdevname)) &&
         (!CreateInitLinesTask(&InitLinesTask, USBdevname)) &&
         (!CreateChargeEnableTask(&ChargeEnableTask, USBdevname)) &&
         (!CreatePassFailEnableTask(&PF_EnableTask, USBdevname)) &&
         (!CreatePassFailResetTask(&PF_ResetTask, USBdevname)) &&
         (!CreatePassFailStateTask(&PF_StateTask, USBdevname)) &&
         (!CreatePassFailWriteTask(&PF_WriteTask, USBdevname)) &&
         (!CreateResetDUTTask(&ResetDUTTask, USBdevname)))
         continue running the software
    else
         show error message and close software
    Once the tasks are created, the software goes on to use them to manipulate the I/O signals of the NI USB-6501 device with DAQmxWriteDigitalLines() or DAQmxWriteDigitalU8().  The software does not check whether these functions return an indication of success or not... The assumption is that it works every time.
    This is my question:
    At run time, is it possible for a successfully created DAQ task to simply stop responding to commands?  This is what I believe happened.  I observed it only once out of hundreds of trials, but it is still a great concern.  Only 1 task stopped properly controlling the NI USB-6501.  All of the other ones continued to work properly. It continued to misbehave until I closed and re-started the software (thus re-creating all tasks).
    And if it is possible for a task to simply stop responding, is there any way to prevent it?
    -Mike

    Your assumption that instructions will work every time without facing errors is excessive in my opinion. I never observed a daqmx task simply stopping responding to commands: every time it happened, an error condition was raised explaining the misbehaviour.
    I would add some error checking where you are manipulating the daq board and look into the informations the error message gives you.
    Proud to use LW/CVI from 3.1 on.
    My contributions to the Developer Zone Community
    If I have helped you, why not giving me a kudos?

  • How many DAQ tasks per loop?

    Hi to everybody, I hope anybody can help me with the next case:
    I am working on a system in which I have to read signals of 5 different sensors which have different ways to communicate (4 - 20 mA, voltage, RS-232, ModBUS, etc.) with the DAQ Device (cDAQ in my case), at same time when I am reading the variables I must check for the state of several digital inputs to verify connections and if any is interrupt I must stop the Data Acquisition.
    My question is if is recommendable to put all the tasks in a single loop with the logic shown in the attached image.
    Or if I should divide the tasks in a multiple loop architecture.
    If the answer is the second, my next question is: How many DAQ tasks per loop is OK?, my doubt is based on the number of variables that I am going to read
    and the different ways to get the measures, specially which are by protocols (ModBUS, RS-232), all this by the response time.
    Thanks in advance, all suggestions are welcome!

    I would recommend using a loop just for control and UI events.  It should only have an event structure.  Don't use the timeout case, since that just turns the system into a polling.  Use Queues to send data from the controller loop to your other loops and User Events to send data back to the controller looop.
    There are only two ways to tell somebody thanks: Kudos and Marked Solutions
    Unofficial Forum Rules and Guidelines

  • Two DAQ tasks in a certain sequnce

    Hi everyone
    my mission includes two DAQ task, one is AI (voltage input), the other is DO(counter PWM output). the problem lie in the somewhat time sequence. that is,
    in a word, the recording (AI) is a little longer than generating (DO).
    for clear description, there are three episodes, 
    1. recording began and last  50ms, at 1000Hz rate,
    2.the PWM generation began after recording began 50ms, the PWM frequency and duration could be set by a controler, meanwhile, the recording go on
    3.when the PWM output ends, the recording   keep last 100ms, then recording completes.
    the point is that the recording couldn't be disrupted by the PWM in the whole mission.
    How could I  arrange the two task ?
    my card is a M series one.
    THANK YOU advanced

    Yamaeda 已写:
    - Setup the two tasks
    - Start AI task and Read 1D array of 50 values (samples)
    - Start DO task.
    - Poll Task complete in a 0ms wait loop
    - wait 100ms
    - Read AI task 1D array with -1 samples (grab all)
    /Y
    Thank you very much! Yamaeda.
    I am freshman. May I ask more clearly?
    1.Do you mean that it doesn't obey syntax? when a task line include more than one "DAQmx read.VI", and as a matter of affect, the recording isn't interrupted between two DAQmx raed.VI?
    2.How to merge the the two"read.VI" output in one awaveform chart  rather display them separately in two chart?
    3.How to insert a wait in the DAQmx task? use a sequence structure with a "programing/time/wait" or a "time delay express VI"?
    thank you again!

  • DAQ Task in Project is incorrect in distribute​d copy

    Greetings all,
    I have a question that I can't find the answer to w/ the search.  This is odd, but I've generated a DAQ Task in Project in LabWindows that reads a thermocouple and displays temperature in F.  It works well until I created a distribution disc & installed it on the computer where it will live.  The task works properly, except it displays temperature in C... how can this be? Have I missed something in the distributions section, or is there something else I have to do to the destination machine?
    I will add, I have 2 of the DAQ cards, both 6036E.  Would it be that I'm using a different card in the destination?
    Thanks,
    Rob

    Rob,
    There should be an option in one of the Advanced Tabs when you are building the distribution CD/installer for Including your hardware configuration with the installation. (It should be something along the lines of "Include my Hardware Configuration"). Ensure that this is checked when you are building the distribution so that the hardware configuration can be associated with the program and not just the card. It sounds like moving the 6036 over with the system worked because it was already configured to read in F whereas a different card might now have been without the program storing the hardware configuration information.
    Timothy
    Timothy S.
    PXI & VXI Platform Product Support Engineer

  • Export DAQ Task created in Labview to MAX

    Hi,
    Is it possible to export a DAQ Task that was created in labview so that it appears in "Data Neighborhood / NI-DAQmx Tasks" in MAX?
    Thanks,
    James
    Solved!
    Go to Solution.

    Never mind...
    Found it as "DAQmx Save Task"

  • How can i delete a DAQ Task

    Hi,
    As i see the list of NI DAQ tasks growing into infinity, Im starting to wonder how I can delete these tasks, as many have become irrelevant. Is there any easy acces to them? I've Tried to use MAX, but that didnt do anything for me. It terribly easy to add these tasks but seemingly impossible to delete them, or to copy them from one computer to another, hence my frustration.
    Could anyone help me out?
    sincerely,
    Bart de Vries

    Boob wrote:
    [..], thats why I went the hard way around.
    Well, it is not a "hard way", it is just "another way". Both ways (MAX vs. LV created task) have their place.
    The advantage of MAX tasks is that you can change settings (e.g. different hardware/channel, ...) without modifying the software. Disadvantage is that you have to provide those configurations together with your application, so you require a more worksome deployment procedure....
    just my 2 cents,
    Norbert
    CEO: What exactly is stopping us from doing this?
    Expert: Geometry
    Marketing Manager: Just ignore it.

  • How do I increase the precision of a timestamp acquired with a DAQ task?

    Hi
    I am using a DAQ task to acquire multiple channels of analog data. The waveform data already has timing information incorporated into it. I wanted to know if there was a way of increasing the accuracy of this timestamp information - (Its currently in seconds with a default ms offset for each sample).
    Thanks
    Brinda

    Hello Brinda,
    From your posting, it sounds like you are acquiring some waveform data and plotting it to a LabVIEW graph. Unfortunately, the ability to increase the timestamp of your acquired data is going to be a limitation of using a non-real time operating system such as Windows. You may have a device which can sample to some very small precision of accuracy, but if your OS is not able to transfer the data fast enough and timestamp it, then you will see a less precise timestamp than you were hoping. A workaround to get around this would be to use a real time environment and the LabVIEW Real Time module. If this does not seem to be an option, you may also want to consider trying to use a counter to perform the timestamping, or take a look at the LabVIEW exam
    ple program I have linked to below.
    Timestamping Analog Input Data Using a Counter (DAQ-STC)
    Precise Current Timestamp with Milliseconds
    Best of luck.
    Jared A

  • Update Indicator label during Run time

    Hi all,
    This is the situation, i have an Indicator to display Acceleration, Velocity & Displacement. I am using it a local variable in the 2 case structures. 
    Here is what i want to achieve:
    I want to update the Indicator label for the respective Radio Button control. If the click on Acceration button, the label should be updated to Acceleration during Run time. Correspondingly for Velocity and Displacement button. 
    Can anyone help me how to go about this.
    Excuse me if i am not clear about anything.
    Thanks in advance

    Generally you should not change the label of a control, because this is often how the control is referred to from elsewhere in the program and it causes confusion.
    Instead there is a Caption property. If you right click the control and select Visible Items->Caption, the label is hidden and the caption is displayed instead (with the same text).
    In your block diagram, right click on the chart terminal and select Create->Property Node->Caption->Text. This creates a property node for the caption property. You will need to click on it to change it to 'Write' rather than 'Read' - you can then wire whatever text string you like and it will update on the front panel.

  • Camera Raw Update Error "Another instance of Updater is running" CS5

    Hey, tried to open Raw files in cs5 today on a Rebel t3i I just got. Recieved error saying I needed to update raw plugin, knew it was gonna have to be done eventually. Been using a 50D for a long time without a problem.
    When I go to update the plugin I immediately get the error stating another instance of the updater is running. Can't be true. Nothing in task manager, restarted program and computer, no other users on this computer...what the hell?
    Live chat was useless, any ideas here?
    Edit: Also just tried to install ACR 6.4 since that's the minimum requirement for this new camera...same error!

    Thanks for updating the forum; hopefully someone else may benefit from your findings.
    I can't imagine how you connected that Hotfix with the Adobe updater issue - the two seem in totally different realms.  However you did it, good job!
    -Noel

  • Mac os x lion 10.7 on mac book pro not updating and running very slow

    i am using mac os x lion 10.7
    problem it is not updating and running very slow. How to improve?

    If you don't already have a current backup, back up all data before doing anything else. This procedure is a diagnostic  test. It changes nothing, for better or worse, and therefore will not, in itself, solve your problem. The backup is necessary on principle, not because of anything suggested in this comment. There are ways to back up a computer that isn't fully functional. Ask if you need guidance.
    Third-party system modifications are a common cause of usability problems. By a “system modification,” I mean software that affects the operation of other software — potentially for the worse. The procedure will help to identify which such modifications you've installed, as well as some other aspects of the state of the system that may be pertinent.
    Don’t be alarmed by the seeming complexity of these instructions — they’re easy to carry out. Here's a brief summary: You copy a line of text from this web page into a window in another application. You wait about a minute. Then you paste some other text, which will have been copied automatically, back into a reply on this page. The sequence is: copy, paste, paste again. That's all there is to it. Details follow.
    You may have started the computer in "safe" mode. Preferably, these steps should be taken while booted in “normal” mode. If the system is now running in safe mode and is bootable in normal mode, reboot as usual. If it only boots in safe mode, proceed anyway.
    Below are instructions to run a UNIX shell script. It does nothing but produce human-readable output. However, you need to be cautious about running any program at the behest of a stranger on a public message board. If you question the safety of the procedure suggested here — which you should — search this site for other discussions in which it’s been followed without any report of ill effects. If you can't satisfy yourself that these instructions are safe, don't follow them.
    The script will line-wrap or scroll in your browser, but it's really a single long line, all of which must be selected. You can accomplish this easily by triple-clicking anywhere in the line. The whole line will highlight, and you can then copy it.
    If you have more than one user, and the affected user is not an administrator, then please run the script twice: once while logged in as the affected user, and once as an administrator. The results may be different. The administrator is the user that is created automatically on a new computer when you start it for the first time. If you can't log in as an administrator, just run the script as the affected user. Most personal Macs have only one user, and in that case this paragraph doesn’t apply.
    Launch the built-in Terminal application in any of the following ways: 
    ☞ Enter the first few letters of its name into a Spotlight search. Select it in the results (it should be at the top.) 
    ☞ In the Finder, select Go ▹ Utilities from the menu bar, or press the key combination shift-command-U. The application is in the folder that opens. 
    ☞ Open LaunchPad. Click Utilities, then Terminal in the icon grid. 
    When you launch Terminal, a text window will open with a line already in it, ending either in a dollar sign ($) or a percent sign (%). If you get the percent sign, enter “sh” and press return. You should then get a new line ending in a dollar sign. 
    Triple-click anywhere in the line of text below on this page to select it:
    clear; PB=/usr/libexec/PlistBuddy; PR () { [[ "$o" ]] && o=$(sed 's/^/   /' <<< "$o") && printf '\n%s:\n\n%s\n' "$1" "$o"; }; PC () { o=$(egrep -v '^[[:blank:]]*($|#)' "$2"); PR "$1"; }; PF () { o=$($PB -c Print "$2" | awk -F'= ' \/$3'/{print $2}'); PR "$1"; }; PN () { [[ $o -eq 0 ]] || printf "\n%s: %s\n" "$1" $o; }; a=$(id | grep -w '80(admin)'); [[ "$a" ]] && sudo true && r=1 || r=; { [[ "$a" ]] || echo $'No admin access\n'; [[ "$a" && ! "$r" ]] && echo $'No root access\n'; system_profiler SPSoftwareDataType | sed '8!d;s/^ *//'; o=$(system_profiler SPDiagnosticsDataType | sed '5,6!d'); fgrep -q P <<< "$o" && o=; PR "POST"; o=$(($(vm_stat | awk '/Pageo/{sub("\\.",""); print $2}')/256)); o=$((o>=1024?o:0));  PN "Pageouts (MiB)"; s=( $(sar -u 1 10 | sed '$!d') ); [[ ${s[4]} -lt 90 ]] && o=$( printf 'User %s%%\t\tSystem %s%%' ${s[1]} ${s[3]} ) || o=; PR "Total CPU usage" && o=$(ps acrx -o comm,ruid,%cpu | sed '2!d'); PR "Max %CPU by process (name, UID, %)"; o=$(kextstat -kl | grep -v com\\.apple | cut -c53- | cut -d\< -f1); PR "Loaded extrinsic kernel extensions"; o=$(launchctl list | sed 1d | awk '!/0x|com\.apple|org\.(x|openbsd)|\.[0-9]+$/{print $3}'); PR "Loaded extrinsic user agents"; o=$(launchctl getenv DYLD_INSERT_LIBRARIES); PR "Inserted libraries"; PC "cron configuration" /e*/cron*; o=$(crontab -l | grep [^[:blank:]]); PR "User cron tasks"; PC "Global launchd configuration" /e*/lau*; PC "Per-user launchd configuration" ~/.lau*; PF "Global login items" /L*/P*/loginw* Path; PF "Per-user login items" L*/P*/*loginit* Name; PF "Safari extensions" L*/Saf*/*/E*.plist Bundle | sed 's/\..*$//;s/-[1-9]$//'; o=$(find ~ $TMPDIR.. \( -flags +sappnd,schg,uappnd,uchg -o ! -user $UID -o ! -perm -600 \) | wc -l); PN "Restricted user files"; cd; o=$(find -L /S*/L*/E* {/,}L*/{A*d,Compon,Ex,In,Keyb,Mail/Bu,P*P,Qu,Scripti,Servi,Spo}* -type d -name Contents -prune | while read d; do ID=$($PB -c 'Print :CFBundleIdentifier' "$d/Info.plist") || ID=; ID=${ID:-No bundle ID}; egrep -qv "^com\.apple\.[^x]|Accusys|ArcMSR|ATTO|HDPro|HighPoint|driver\.stex|hp-fax|\.hpio|JMicron|microsoft\.MDI|print|SoftRAID" <<< $ID && printf '%s\n\t(%s)\n' "${d%/Contents}" "$ID"; done); PR "Extrinsic loadable bundles"; o=$(find /u*/{,*/}lib -type f -exec sh -c 'file -b "$1" | grep -qw shared && ! codesign -v "$1"' {} {} \; -print); PR "Unsigned shared libraries"; o=$(system_profiler SPFontsDataType | egrep "Valid: N|Duplicate: Y" | wc -l); PN "Font problems"; for d in {/,}L*/{La,Priv,Sta}*; do o=$(ls -A "$d"); PR "$d"; done; [ "$r" ] && { o=$(sudo launchctl list | sed 1d | awk '!/0x|com\.(apple|openssh|vix\.cron)|org\.(amav|apac|calendarse|cups|dove|isc|ntp|post[fg]|x)/{print $3}'); PR "Loaded extrinsic daemons"; o=$(sudo defaults read com.apple.loginwindow LoginHook); PR "Login hook"; o=$(sudo crontab -l | grep [^[:blank:]]); PR "Root cron tasks"; }; o=$(syslog -k Sender kernel -k Message CReq 'GPU |hfs: Ru|I/O e|n Cause: -|NVDA\(|pagin|timed? ?o' | tail -n25 | awk '/:/{$4=""; print}'); PR "Log check"; } 2> /dev/null | pbcopy; exit
    Copy the selected text to the Clipboard by pressing the key combination command-C. Then click anywhere in the Terminal window and paste (command-V). The text you pasted should vanish immediately. If it doesn't, press the return key.
    If you're logged in as an administrator, you'll be prompted for your login password. Nothing will be displayed when you type it. You will not see the usual dots in place of typed characters. Make sure caps lock is off. Type carefully and then press return. You may get a one-time warning to be careful. If you make three failed attempts to enter your password, the script will run anyway, but it will produce less information. In most cases, the difference is not important, so don't worry about it.
    The script may take up to a few minutes to run, depending on how many files you have and the speed of the computer. Wait for the line "[Process completed]" to appear in the Terminal window.
    You can then quit Terminal. The output of the script will have been copied to the Clipboard automatically. All you have to do is paste into a reply to this message by pressing command-V again.
    Please note:
    ☞ This procedure is all copy-and-paste — type nothing in the Terminal window except your login password if and when prompted.
    ☞ Remember to post the output. It's already in the Clipboard when you see "[Process completed]" in the Terminal window. You don't have to copy the output; just paste into your web browser.
    ☞ If any personal information, such as your name or email address, appears in the output, anonymize it before posting. Usually that won't be necessary.

Maybe you are looking for