Board logo

Subject: cnModem与硬件Wave Modem通讯的问题,指令发出去没有反应 [Print This Page]

Author: mestars    Time: 2005-9-10 10:37     Subject: cnModem与硬件Wave Modem通讯的问题,指令发出去没有反应

Wave Modem装在Com1上,用超级终端测试没有问题,可是用cnModem控件发送指令没有反应呀,为什么?是不是还有参数要修改?
程序的代码如下:
//打开端口
procedure TForm1.btn_2Click(Sender: TObject);
begin
CnModem1.CommName:='Com1';
CnModem1.CommConfig.BaudRate:=9600;
CnModem1.StartComm;
end;
//发送AT指令
procedure TForm1.btn_1Click(Sender: TObject);
begin
  CnModem1.WriteATCommand('at');
  sleep(300);
//  CnModem1.WriteATCommand('AT+Cgmi');
//  CnModem1.WriteATCommand('AT+Cmgf=0');
//  sleep(300);
//  CnModem1.WriteATCommand('AT+CMgL=4');
//  sleep(300);
end;
//接收数据
procedure TForm1.CnModem1ReceiveData(Sender: TObject; Buffer: Pointer;
  BufferLength: Word);
Var
  i,LengthTotal: word;
  s, tmp: String;
  rbuf: Array[0..2047] Of byte;
  iPos1, iPos2: integer;
Begin
  s := '';
  LengthTotal :=BufferLength;
  FillChar(rbuf, 2048, #0);
  Move(Buffer^, pchar(@rbuf)^, LengthTotal);
  For i := 0 To LengthTotal - 1 Do
    s := s + chr(rbuf[i]);
  mmo_1.Lines.Add(s)  ;
  mmo_1.Lines.Add('-----------------------------');
end;
//关闭端口
procedure TForm1.btn_3Click(Sender: TObject);
begin
  CnModem1.StopComm;
end;
Author: mestars    Time: 2005-9-14 14:15

问题解决啦.不过现在用的是spcomm2.5。
cnModem是基于spcomm写的,spcomm3.0也有命令发出去没有反应的问题。估计是有些代码有问题,水平有限我没有发现到底是什么问题,希望改进一下。


支持cnPack希望你们做的更好。
Author: zjy    Time: 2005-9-14 20:35

CnModem 本身已经封装了常用的 AT 命令,在拨号前设置好属性,直接调用拨号方法就可以连接了。如果需要自己发 AT 命令的话,这个组件可能会有一些问题,没有仔细测试过。

有时间我们会测试一下,多谢您的报告。




Welcome to CnPack Forum (http://bbs.cnpack.org/) Powered by Discuz! 5.0.0