CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  网络通信/分布式开发

求助:关于spcomm 接收数据的问题..急...分不够可以再加.谢谢

楼主CHUKAI(网)2006-03-04 09:38:41 在 Delphi / 网络通信/分布式开发 提问

最近在做医院一台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  
  问题点数:100、回复次数:4Top

1 楼cuteant(我这张旧床票还能否登上你的破床|涛声是否依旧)回复于 2006-03-04 09:50:40 得分 0

move(buffer^,pchar(@rbuf)^,bufferlength);  
  换成move(buffer^,rbuf[1],bufferlength);试试Top

2 楼aiirii(ari-http://spaces.msn.com/members/aiirii/)回复于 2006-03-04 09:55:37 得分 0

var  
          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  
   
  我估计,得到的值,可能是一个偏差而已,所以,  
  你要多测几次,才能找出标准值Top

3 楼luxuewei5214(小卢)(以下内容仅供参考)回复于 2006-03-08 13:52:04 得分 0

我直接move(buffer^,rbuf,bufferLength)也可以取到数据,你要了解传输协议,在对数据分析,接受时要在发送后的100-200ms后,要延时,防止数据丢失。从仪器上显示的内容看,数据不止六个字节吧Top

4 楼Jethill(生儿子之前,老婆说她喜欢女儿!)回复于 2006-03-09 15:54:19 得分 0

我比较同意楼上老兄的意见,我做的读卡程序也是如此,延时时间要注意一下他给的相关协议。有的有要求,比如间隔等。Top

相关问题

  • spcomm接收数据代码应该怎么写?
  • spcomm 组件的数据接收,如何做成基于过程接收而不是基于事件接收
  • C# 线程问题,socket接收到数据后,分不够再加
  • 急!!!!SPCOMM如何接收大数据流,并将其还原成文件??
  • 请大家看看,这样使用SPCOMM为何接收不到数据?
  • 求助:  请教高手为什么使用spcomm控件无法接收usb专串口的数据?
  • MSCOMM 接收数据问题
  • servlet接收xml数据流
  • WinSocket接收数据问题!
  • 如何保证udp接收数据时客户端先发送的数据,服务器端先收到。(分不够再加)

关键词

  • 数据
  • rbuf
  • viewstring
  • bufferlength
  • ilen
  • 仪器
  • pchar
  • move
  • buffer

得分解答快速导航

  • 帖主:CHUKAI

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo