本人没有受过计算机系统教育,又天生愚笨,现请教spcomm发送问题。奸笑了。 (100分)

  • 主题发起人 主题发起人 zhaohai9
  • 开始时间 开始时间
Z

zhaohai9

Unregistered / Unconfirmed
GUEST, unregistred user!
spcomm串口通讯:
soh:=$1;
stx:=$2;
etx:=$3;
strTemp := SOH + '001' + '100' + STX + edit1.Text + ETX;
comm1.writecommdata(pchar(strtemp),length(strtemp));
此段程序发送的是pchar字符串,但我的仪表要接受的是ASCII码,我该如何发送?
edit1.text是个不定长的字符串如(W820=20.3或X086或X077或X023“ESC”ACDEFDFDFFFFF等等)
我该如何发送?
 
先转换成ASCII码,再发送
 
如果仪表是你公司的程序员写的,与他协商一下。
或者用MSCOMM或者communication functions API。
 
zhanggm:
以上为例,如何改写发送?
 
做一个转换不就行了
另外推荐大家用turbo power的async孔件,功能强大,使用也很简单
 
对仪表编程我以前用过,觉得控件发送字符,总要有一些字符用于控制,会丢一些字符。
我建仪你用台湾MAXO公司出的pcomm.dll,它专门用于仪表的控制。
 
chenlili:
是不是这样:
strtemp1:='';
for i:=1 to length(edit1.text) do
strtemp1:=strtemp1+inttoHEX(ord(strtemp),2);
strTemp := SOH + '303031313030'+ STX + strtemp1+ ETX;
comm1.writecommdata(pchar(strtemp),length(strtemp));
 
chenlili:
请把你的turbo power的async孔件给我一份copy.分先给你了。
 
URL http://www.24suns.com/freedelphi/NewBlack/vcl/downloads/Packs/TurboPower/Turbopower.Async.Professional.v3.06-FCN.rar
 
后退
顶部