Hi @all,
I look at the exampels from Visual C, but they don´t realy help me. I post now the part what i create to get a sine wave. My problem is that i don´t see anything at the cwgrpah??? I don´t know why, may be someone can help me, or give some tips!
Here my code:
unit AO;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
CWHELPBUTTONLib_TLB, CWUIControlsLib_TLB, CWDAQControlsLib_TLB, StdCtrls,
OleCtrls, Variants;
{...}
var
Form1: TForm1;
data: Variant;
IsRunning: Boolean;
const
PI2 = 6.2832;
implementation
{$R *.DFM}
procedure TForm1.WaveformTypePointerValueChanged(Sender: TObject;
Pointer: Integer; var Value: OleVariant);
var
i: Integer;
begin
Case WaveformType.Value of
0:
For i := 0 To 19 do
data[i] := Sin(i / 20 * PI2)*6;
1:
For i := 0 To 19 do
data[i] := Int(i / 10) * 2 - 1;
2:
For i := 0 To 19 do
data[i] := 1 - (Abs(i - 10) / 5);
End;
data[20] := data[0]; // for display purposes only
CWGraph1.PlotY(data,0,1,TRUE);
end;
procedure TForm1.btnStartClick(Sender: TObject);
var
WriteSpec: CWAOWriteSpec;
begin
WriteSpec := CWDAQTools1.CreateCWAOWriteSpec;
CWAO1.UpdateClock.Frequency := FreqVal.Value * 20;
CWAO1.NIterations := IterationVal.Value; //Wiederholungen
CWAO1.Infinite := ContinuousSelect.Checked; //unendliche Wiederholung
CWAO1.Configure;
CWAO1.Write(data,WriteSpec);
CWAO1.Start;
If ContinuousSelect.Checked Then
begin
IsRunning := True;
btnStop.Enabled := True;
end
Else
begin
IsRunning := False;
btnStop.Enabled := False;
end;
end;
procedure TForm1.btnStopClick(Sender: TObject);
begin
CWAO1.Reset;
IsRunning := False;
btnStop.Enabled := False;
end;
procedure TForm1.FormShow(Sender: TObject);
var
v : OleVariant;
begin
data := VarArrayCreate([0,20],varDouble);
WaveformTypePointerValueChanged(WaveformType, 0, v);
end;
end.