关于tmsa32(TMS Async32)控件以字符串发送! ( 积分: 100 )

  • 主题发起人 主题发起人 riren
  • 开始时间 开始时间
R

riren

Unregistered / Unconfirmed
GUEST, unregistred user!
我刚刚网上看了一个用MSComm做的一个Modem拨号的组件,但是它发信号是MSComm1.Output:='ATH0*88'

的形式,即是用字符串的,但是我现在用的一个控件是tmsa32(TMS Async32)控件,这个我都是用var
senddata:array[0..7] of byte;

senddata[0]:=$d1;
senddata[1]:=$04;
senddata[2]:=$00;
senddata[3]:=$00;
senddata[4]:=$00;
senddata[5]:=$0b;
crc:=crccal.crc16(senddata,6); //校验
senddata[6]:=crc div $100;
senddata[7]:=crc mod $100;
vabuffer1.Clear;
vacomm1.WriteBuf(senddata,8); //发送

这样的话我怎么把ATH这些字母改成byte放上去发啊?还是这个组件有其它方法来发送的?
 
我刚刚网上看了一个用MSComm做的一个Modem拨号的组件,但是它发信号是MSComm1.Output:='ATH0*88'

的形式,即是用字符串的,但是我现在用的一个控件是tmsa32(TMS Async32)控件,这个我都是用var
senddata:array[0..7] of byte;

senddata[0]:=$d1;
senddata[1]:=$04;
senddata[2]:=$00;
senddata[3]:=$00;
senddata[4]:=$00;
senddata[5]:=$0b;
crc:=crccal.crc16(senddata,6); //校验
senddata[6]:=crc div $100;
senddata[7]:=crc mod $100;
vabuffer1.Clear;
vacomm1.WriteBuf(senddata,8); //发送

这样的话我怎么把ATH这些字母改成byte放上去发啊?还是这个组件有其它方法来发送的?
 
现在把字符转换成16进制是可以发了,发出去后和MSCOMM返回的字符是一样的,都是返回ATDT*88,但是用MSCOMM发却能拨通,用TMS Async32却不行
 
//AT指令自动连线
tmpstr:='ATS0=1'+chr(10)+chr(13);
vabuffer1.Clear;
vacomm1.WriteBuf(tmpstr[1],Length(tmpstr));
这个是返回OK

但是我自已拨号
tmpstr:='ATDT*88'+chr(10)+chr(13);
vabuffer1.Clear;
vacomm1.WriteBuf(tmpstr[1],Length(tmpstr));
不行,返回ERROR,在MSCOMM里这样是可以的
 
把vacomm的flowcontrol属性里的controldtr,controlrts属性改成handshake还有outctsflow,outdtsflow改成true就可以了
 
接受答案了.
 

Similar threads

后退
顶部