J
jainibunan
Unregistered / Unconfirmed
GUEST, unregistred user!
我在做一个信号采集系统,我把采集到的数据存放在数组里,并设Rthreshold=4,
数据存放的代码如下:
if (MSComm.CommEvent=ComEVReceive) and ( RecData=true)and (SenData=True)then
begin
//InputLen1 :=MSComm.InBufferCount;
count:=0;
//接收二进制数据,转换为十六进制显示
if HexShow then
begin
tmpvar:=MSComm.Input;
InPutString:='';
for i:=0 to 3 do
begin
j:=0;
SetLength(DataArray,4);
tmpInt:=tmpvar;
DataArray[count]:=tmpint;
//tmpData[count]:=tmpInt;
InputString:=InputString+''+LowerCase(IntToHex(tmpInt,2));
inc(count);
while i=3 do
begin
Datah:=(DataArray[0] and 15)*16*16;
Datal:=(DataArray[1] div 16)*16+DataArray[1] mod 16;
Damp[j]:=Datah+Datal;
inc(j);
Datah:=(DataArray[2] and 15)*16*16;
Datal:=(DataArray[3] div 16)*16+DataArray[3] mod 16;
Damp[j]:=Datah+Datal;
end;
for t:=1 to 2 do
begin
chart1.Series[0].AddY(Damp[t],'',clred);
end;
if Count >=4 then
DataArray:=nil;
end;
end
由于我接收一次数据后,就把数组清空,所以我现在不知道如何把新读进来的数据画到tchart上去,而且要曲线往一个方向移动?恳请各位指点一下!谢谢
注:下面传上来的数据是12位的
数据存放的代码如下:
if (MSComm.CommEvent=ComEVReceive) and ( RecData=true)and (SenData=True)then
begin
//InputLen1 :=MSComm.InBufferCount;
count:=0;
//接收二进制数据,转换为十六进制显示
if HexShow then
begin
tmpvar:=MSComm.Input;
InPutString:='';
for i:=0 to 3 do
begin
j:=0;
SetLength(DataArray,4);
tmpInt:=tmpvar;
DataArray[count]:=tmpint;
//tmpData[count]:=tmpInt;
InputString:=InputString+''+LowerCase(IntToHex(tmpInt,2));
inc(count);
while i=3 do
begin
Datah:=(DataArray[0] and 15)*16*16;
Datal:=(DataArray[1] div 16)*16+DataArray[1] mod 16;
Damp[j]:=Datah+Datal;
inc(j);
Datah:=(DataArray[2] and 15)*16*16;
Datal:=(DataArray[3] div 16)*16+DataArray[3] mod 16;
Damp[j]:=Datah+Datal;
end;
for t:=1 to 2 do
begin
chart1.Series[0].AddY(Damp[t],'',clred);
end;
if Count >=4 then
DataArray:=nil;
end;
end
由于我接收一次数据后,就把数组清空,所以我现在不知道如何把新读进来的数据画到tchart上去,而且要曲线往一个方向移动?恳请各位指点一下!谢谢
注:下面传上来的数据是12位的