Data AcQuisition And Real-Time Analysis
Scope - Spectrum - Spectrogram - Signal Generator
Software for Windows
Science with your Sound Card!
The following is from the Daqarta Help system:



Spectrum Analyzer

Signal Generator

(Absolutely FREE!)


Pitch Tracker


DaqMusiq Generator
(Free Music... Forever!)

Engine Simulator

LCR Meter

Remote Operation

DC Measurements

True RMS Voltmeter

Sound Level Meter

Frequency Counter
    Spectral Event

    MHz Frequencies

Data Logger

Waveform Averager


Post-Stimulus Time
Histogram (PSTH)

THD Meter

IMD Meter

Precision Phase Meter

Pulse Meter

Macro System

Multi-Trace Arrays

Trigger Controls


Spectral Peak Track

Spectrum Limit Testing

Direct-to-Disk Recording



Frequency response

Distortion measurement

Speech and music

Microphone calibration

Loudspeaker test

Auditory phenomena

Musical instrument tuning

Animal sound

Evoked potentials

Rotating machinery


Product test

Contact us about
your application!

Custom Remote Control

Instead of invoking DqaCmd directly from your own program, you can use the underlying Windows message scheme for custom remote control. The assembly-language source code for DqaCmd and DqaDlg can serve as examples for this. The code is included along with the executables in the Documents - Daqarta - Utility folder.

The basic scheme requires you to first get a handle to Daqarta using FindWindow with the parameters shown in the examples. Before you send your macro string, you create a COPYDATASTRUCT that includes a special Daqarta ID code, the count of bytes in the string, and a pointer to the string. You then invoke SendMessage to send that to Daqarta. Daqarta copies the data into its own internal buffers and immediately responds back to your program with a WM_USER message that includes the special DQA_REMOTE_ID in wParam, plus a confirmation code (-1) in lParam that indicates your message has been received. You then watch for another WM_USER message (with the same wParam) that will be either 0 for success, or an error code. (See the source code for a complete list of error codes and meanings.)

With this scheme your program can do other work while it is waiting for the WM_USER completion message. (With DqaCmd the program would be blocked unless you issued it from a separate thread.)

Your custom program can also receive fixed-point or floating-point Macro Variable value messages. These are WM_USER messages, with wParam holding a variable ID instead of DQA_REMOTE_ID, and lParam holding the value.

For a fixed-point variable like VarA, use VarA=>> to send the integer part, and VarA=>* to send the fraction part. The wParam IDs will be 'VarA' and 'varA', respectively.

Likewise, for a floating-point variable like A, use A=>> and A=>* and watch for wParam IDs 'intA' and 'frcA'. (The float is converted to fixed-point automatically.)

Similarly, a macro that uses WaitAvg=>> will have 'Done' in wParam and the total Frames count in lParam when the average completes.

If you want to send a Cancel message to Daqarta, you use PostMessage with DQA_REMOTE_ID in wParam, and lParam set to 0x100.

The total macro string you pass in COPYDATASTRUCT is limited to 16384 characters, including the terminal null. Longer entries will be truncated by Daqarta, and probably produce an error due to the mangled macro remaining.

See also Remote Control, DqaDlg Dialog Remote Control Demonstration, DqaCmd Command-Line Remote Control, Macro Overview


Questions? Comments? Contact us!

We respond to ALL inquiries, typically within 24 hrs.
Over 35 Years of Innovative Instrumentation
© Copyright 2007 - 2023 by Interstellar Research
All rights reserved