Daqarta for DOS Contents



Free Registration

Contact Us
Daqarta for DOS
Data AcQuisition And Real-Time Analysis
Shareware for Legacy Systems

From the Daqarta for DOS Help system:


The WaitS option can create delays of arbitrary duration. During the delay, all processing is suspended, although in RTime mode sample acquisition and stimulus generation continue. An optional message may be displayed during the wait. Any keypress will terminate the ongoing delay and resume normal processing, ignoring the keypress unless it is ESC to exit, or NUM-LOCK or the grey Pause/Break to halt the macro.

Although one of the main functions of Key Macros is to speed operations, sometimes certain delays may be desired. One typical case is where you are recording responses to stimuli that must not come too close together, to allow time for the system under test to re-stabilize.

Suppose you are looking at the initial transient response of a large gong-like structure, for example, which is driven by a hammer triggered by a digital output from the STIM3A Stimulus Generator or the Trigger Pulse source. You may need to wait several seconds between stimuli for the prior oscillations to decay adequately. Normally, the Trigger Cycle option would be your first choice, but it is limited to a delay equivalent to 32767 samples. This might easily be much less than a second at high sample rates. The WaitS option has no such limitation.

There are several different ways to use WaitS. SHIFT-W will begin a previously-specified delay interval and show an optional message. To enter a different interval or message, hit CTRL-SHIFT-W instead. You will be prompted for the delay time in seconds. Enter any value, using the direct entry standard number formats. If you conclude the number entry with a normal ENTER, any prior wait message will be retained. The delay interval will begin immediately.


If you conclude the WaitS seconds entry with ALT-ENTER, the message line will be cleared and a text cursor will appear. Enter any message, up to 64 characters, and it will be shown during the following delay and all subsequent WaitS delays until it is changed.

If you don't enter any text but just accept the null line via an ENTER key, then any prior message will be cleared and the normal comment line will be shown during the delay instead. If you ESCape from message entry, there will be no change to the prior message, and the current delay will be cancelled... but the new delay value you just entered will be used on subsequent WaitS invocations.

If you wish to copy the delay value to the normal comment line, you would usually end the value entry with CTRL-1 to CTRL-5 to specify the comment field. But if you also want to enter a wait message, you must use CTRL-ALT-1 to CTRL-ALT-5 instead. The comment will be sent to the indicated field, but it will not be seen during the delay since the wait message will be visible instead.


The maximum delay duration is limited only by the number entry system, at just under 10^112 seconds. Since a year is only 3.15 × 10^7 seconds and the estimated age of the universe is only 10 to 20 billion years or under 10^18 seconds, this is probably longer than most users will ever need. But these effectively "infinite" delays are actually quite useful when used to wait for a keypress, which immediately ends the delay.

For example, suppose your test sequence requires some changes in the external hardware between one part of the test and the next. A Key Macro to automate the test would need to alert the operator to make the changes, and wait for a keypress before proceeding to the next test phase. You could use the User Tone to give an audible alert, then begin a long wait with the message:

    'Strap next lawyer to table, attach electrodes, hit SPACE:'

This same approach can be used to create self-paced tutorials, or with a shorter delay setting to automatically advance after a reasonable time.

You can use the WaitS timer with the User Tone system to create elaborate delay sequences for pacing any multi-step procedure, even if unrelated to normal Daqarta functions. Each phase of the sequence can have its own distinctive tone, and a message prompt to guide the user to the next phase. Use this approach for all sorts of general lab and darkroom timing... the more complex the procedure, the more useful this method is.

Be creative: If one step has a long delay during which a user could be doing something else, provide an audible warning near the end of the interval to allow ample time to get back to the timed task before intervention is needed.

You don't need to use ANY of Daqarta's data acquisition capabilities to make it useful!

Use standard scientific prefixes to enter very large numbers for "infinite" delays with minimal keystrokes:

    '1k'   gives   1000 seconds = 16.7 minutes
    '1M'           10^6 seconds = 11.6 days (note 'M', not 'm')
    '1G'           10^9 seconds = 31.7 years
    '1T'           10^12 seconds = 31710 years
and so on...

When you set up a delay as part of a Key Macro using KeySt, you don't have to wait for it to complete before entering the next keystroke of the macro, since entering any "real" keystroke will end the delay. When the macro is run, it will wait for the full duration or until any real keystroke before it reads the next macro key. A real keystroke will be ignored after it breaks out of the delay, unless it is ESC to exit the macro, or NUM-LOCK or the grey Pause/Break to halt it.


The minimum delay duration is dependent upon your system and the current operation mode. One of four distinct timing methods is selected automatically to give the best resolution in the current mode. All methods require a certain setup overhead of several microseconds minimum.

The system timer is normally used, which gives 838 nsec resolution. If you are in unPaused RTime mode and interrupt-driven sampling is used, the delay is based instead on sample counting, so the resolution and minimum delay will be one sample period. This will be the case even with certain laboratory-type boards that are otherwise capable of DMA or FIFO operation, if the STIM3A Stimulus Generator is active.

In unusual circumstances the system timer may be not be free for delay timing, due to ADC board requirements. In this case the system memory refresh timer port will be monitored, giving a resolution of about 15 µsec. If the system is a PC or XT (which lacks the port), then a software delay of about this same resolution is used instead. The actual delay for this software loop is calibrated at session start-up to control for differing system speeds.


The normal random value entry system is available for WaitS, and may be used in macros to generate deliberate stimulus jitter. At larger values it can be used to give random stimulus presentation times to control subject "guessing". You must use the CTRL-SHIFT-W command format... the simple SHIFT-W command keeps re-using the previous setting.

If you want to set a random delay, AND send it to a comment field, AND change the wait message, you must:

  • Key in the upper delay limit at the prompt.
  • Hit ALT-# to specify a random value entry.
  • Key in the lower delay limit at the prompt.
  • Hit CTRL-1 to CTRL-5 to specify the comment field.
  • Key in the delay step size at the prompt.
  • Hit ALT-ENTER to specify a wait message.
  • Type in the message.
  • Hit ENTER to start the delay and show the message.


Besides WaitS, there are other ways you can create delays that may sometimes serve your needs better, even if they lack the range and precision of WaitS. Here are some ideas to get you started:
  • Take an average with a certain number of sweeps and a certain sample rate.
  • Use Trigger Cycle with the average for more control.
  • Run the average with View off to stabilize processing time, if needed for noisy traces.
  • Use Loop with a Single Sweep and Trigger Cycle macro.
  • Give a User Tone of a certain duration. It doesn't have to be an audible frequency.

Questions? Comments? Contact us!

We respond to ALL inquiries, typically within 24 hrs.
25 Years of Innovative Instrumentation
© Copyright 1999 - 2006 by Interstellar Research