最近在做医院一台Elec 2010 (电化学发光)仪器的数据接受..每次发接受的数据解码出来都不对...请各位帮忙指导一下...
procedure TTestComFrm.Comm1ReceiveData(Sender: TObject; Buffer: Pointer;
BufferLength: Word);
var
i:integer;
viewstring:string;
rbuf:array[1..8] of byte;
begin
//=============================================
viewstring:='' ;
move(buffer^,pchar(@rbuf)^,bufferlength);
for i:=1 to bufferlength do
viewstring:=viewstring+ inttohex(rbuf[i],2)+'' ;
viewstring:='接收:'+ viewstring;
memo1.lines.add(viewstring);
memo1.lines.add('');
end;
//=========以下是我的测试记录
我设了断点跟踪
move(buffer^,pchar(@rbuf)^,bufferlength);
这时的值是 0,57,1,85,0,6,0
最后得到的viewstring的值 是'05'
仪器上的输出的结果是 105 1407 CA125 18.06
procedure TTestComFrm.Comm1ReceiveData(Sender: TObject; Buffer: Pointer;
BufferLength: Word);
var
i:integer;
viewstring:string;
rbuf:array[1..8] of byte;
begin
//=============================================
viewstring:='' ;
move(buffer^,pchar(@rbuf)^,bufferlength);
for i:=1 to bufferlength do
viewstring:=viewstring+ inttohex(rbuf[i],2)+'' ;
viewstring:='接收:'+ viewstring;
memo1.lines.add(viewstring);
memo1.lines.add('');
end;
//=========以下是我的测试记录
我设了断点跟踪
move(buffer^,pchar(@rbuf)^,bufferlength);
这时的值是 0,57,1,85,0,6,0
最后得到的viewstring的值 是'05'
仪器上的输出的结果是 105 1407 CA125 18.06
解决方案 »
- 我该往哪个种语言发展啊????
- 在线等memo自动增高问题
- 怎样给一个没有句柄handle的类对象发送消息,想通过sendmessage实现,而不用dispatch?
- 能否在messagebox中增加一个checkbox?
- fastreport如何作出象excel那样的表格来?在线等!解决马上揭贴!
- 一直在这儿发言,再在这儿问个笔记本的问题
- 怎么能让DELPHI编出来的程序最小化以后进入到系统托盘?
- pixels???????救急
- indy 的 IdCoderMD5 控件的用法,在日本的网站上看到的,希望对大家有所帮助!
- !!!!组件开发!!!!
- 大家新年好:Delphi群组公开课,请进!
- delphi能不能做个论坛出来?
换成move(buffer^,rbuf[1],bufferlength);试试
iLen:integer;
begin
iLen := bufferlength; move(buffer^,pchar(@rbuf)^,iLen );
for i:=1 to iLen do
看
0,57,1,85,0,6,0
和
105 1407 CA125 18.06我估计,得到的值,可能是一个偏差而已,所以,
你要多测几次,才能找出标准值