spcomm 电子秤 老问题

ln521 2009-09-01 03:17:56
通信协议 RS232

控件: spcomm +delphi

参数: StopBits = _1 ByteSize = _8 Parity = None


procedure ReceiveData(Sender: TObject; Buffer: Pointer;
BufferLength: Word);
var
s,sTmp:String;
i,j,nSensor,nFrameLen:Integer;
s1:array [1..800] of char;
rbuf:Array[1..300] Of Byte;
bufflen:integer;
begin
mmoTest.text := '';
if chbHex.Checked then
begin
bufflen := 160;
If (bufferlength >= bufflen) Then
exit;
sTmp := '';
move(buffer^,rbuf,bufferlength);
For i := 1 To bufferlength Do
sTmp := sTmp + inttohex(rbuf[i],2)+'';
mmoTest.Lines.Add(HexStrToStr(sTmp));
end
else
begin
Move( Buffer^,s1, bufferlength );
mmoTest.Lines.Add(copy(s1,1,bufferlength));
end;
end;

抛出来的 数据 如何转成 重量 ??? 没有搞过这玩意, 希望大虾们赐教!!!
...全文
178 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
leeky 2009-09-01
  • 打赏
  • 举报
回复
当然有种可能的办法,就是去猜协议,因为很多秤(地磅等)的数据是ASCII码,使用串口调试工具收数据,通过实际重量与串口数据的对比,就知道了协议.
leeky 2009-09-01
  • 打赏
  • 举报
回复
说来说去就是通信协议嘛.协议是很自由的嘛.你要拿电子秤的相关开发资料去看.
就像我们说某种东西是饭,英国人说"rice",我们说"吃饭",闽南人说"驾崩":).............
还有很多种很多种语言,你不知道是哪种语言,你哪能听懂?
ln521 2009-09-01
  • 打赏
  • 举报
回复
谁有写过转换的 例子没有!
bdmh 2009-09-01
  • 打赏
  • 举报
回复
这需要有规定好的转换规则,传过来的数据要通过转换,才能得到实际的值,这些都要在设计初期规定好
SuperTitan001 2009-09-01
  • 打赏
  • 举报
回复
这个是要看电子秤的通信协议的
不过,一般的电子秤传送的就是重量的数据,不会加密,数据取出来后分析一下,一般都可以看出来的

1,593

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧