SPCOMM收不到数据? |
答題得分者是:thanmail
|
紫電靑霜
一般會員 發表:2 回覆:9 積分:2 註冊:2008-05-15 發送簡訊給我 |
为什么我用SPCOMM做的程式收不到数据?代码如下:
procedure TForm1.FormCreate(Sender: TObject); begin memo1.Clear; Comm1.startcomm; end; procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin comm1.StopComm; end; procedure TForm1.Comm1ReceiveData(Sender: TObject; Buffer: Pointer; BufferLength: Word); var S: string; begin SetLength(S,BufferLength); Move(Buffer^, PChar(S)^, BufferLength); Memo1.Lines.Add(S); Memo1.Invalidate; end; procedure TForm1.Button1Click(Sender: TObject); var S: string; begin S:=Edit1.Text; Comm1.WriteCommData(PChar(s),Length(s)); end; |
thanmail
一般會員 發表:4 回覆:20 積分:14 註冊:2004-12-16 發送簡訊給我 |
|
紫電靑霜
一般會員 發表:2 回覆:9 積分:2 註冊:2008-05-15 發送簡訊給我 |
|
thanmail
一般會員 發表:4 回覆:20 積分:14 註冊:2004-12-16 發送簡訊給我 |
Delphi下还有一个好用的Com组件,而且是免费的。
Tcomport,位置在 http://sourceforge.net/projects/comport/ 你可以下载到最新版本和源码和帮助和demo。 用它你再试试! |
紫電靑霜
一般會員 發表:2 回覆:9 積分:2 註冊:2008-05-15 發送簡訊給我 |
|
紫電靑霜
一般會員 發表:2 回覆:9 積分:2 註冊:2008-05-15 發送簡訊給我 |
|
紫電靑霜
一般會員 發表:2 回覆:9 積分:2 註冊:2008-05-15 發送簡訊給我 |
|
thanmail
一般會員 發表:4 回覆:20 積分:14 註冊:2004-12-16 發送簡訊給我 |
===================引 用 紫電靑霜 文 章=================== 我昨天还发现一个问题:我用TComPort给GSM Modem发出拨号指令以后,每隔几百毫秒发一次查询命令时收不到回应数据,只有在发一次挂断指令后才能收到一次查询的回应数据,不知道是不是这个组件的 BUG ? 你说的挂断指令,是把TComport,CLose再Open, 还是给Modem发挂断指令呢? 你说的 “每隔几百毫秒发一次查询命令时收不到回应数据,” 是指你收不到应答的数据包,还是任何接收数据都没有(是否响应ComPortRxChar事件?) TComport我用过有一段时间了,几年前用过,最近也用过, 没有发现说发送的包发不出去的bug, 有时通讯错误后,会收到对方机器发来大量的杂论无章的数据, 这不知道是TComport的bug,还是对方机器的bug。 但是发不出去的bug,应该没有。 你遇到的问题我觉得可能是数据处理的问题, 或者是和MODEM协议上理解的问题。 |
紫電靑霜
一般會員 發表:2 回覆:9 積分:2 註冊:2008-05-15 發送簡訊給我 |
===================引 用 thanmail 文 章=================== ===================引 用 紫電靑霜 文 章=================== 我昨天还发现一个问题:我用TComPort给GSM Modem发出拨号指令以后,每隔几百毫秒发一次查询命令时收不到回应数据,只有在发一次挂断指令后才能收到一次查询的回应数据,不知道是不是这个组件的 BUG ? 你说的挂断指令,是把TComport,CLose再Open, 还是给Modem发挂断指令呢? 你说的 “每隔几百毫秒发一次查询命令时收不到回应数据,” 是指你收不到应答的数据包,还是任何接收数据都没有(是否响应ComPortRxChar事件?) TComport我用过有一段时间了,几年前用过,最近也用过, 没有发现说发送的包发不出去的bug, 有时通讯错误后,会收到对方机器发来大量的杂论无章的数据, 这不知道是TComport的bug,还是对方机器的bug。 但是发不出去的bug,应该没有。 你遇到的问题我觉得可能是数据处理的问题, 或者是和MODEM协议上理解的问题。 不是断掉COM口,是给连在COM口上的GSM modem发一条挂断电话的指令。 数据可以发送出去,我是发送的拨号的指令,拨打的手机也能响铃,也收到一部分返回的数据,但是返回的数据中没有拨打的状态数据。我发出的查询指令是 AT CLCC,正常的话应该返回 我发出的 AT CLCC 和 CLCC: 1,0,2,0,0 ... ,但只能收到 AT CLCC,后面缺少 CLCC: 1,0,2,0,0 这一串,用WINDOWS的超级终端就能收到这些。
編輯記錄
紫電靑霜 重新編輯於 2008-12-26 17:14:32, 註解 無‧
|
thanmail
一般會員 發表:4 回覆:20 積分:14 註冊:2004-12-16 發送簡訊給我 |
===================引 用 紫電靑霜 文 章===================
不是断掉COM口,是给连在COM口上的GSM modem发一条挂断电话的指令。 数据可以发送出去,我是发送的拨号的指令,拨打的手机也能响铃,就是收到一部分返回的数据,但是返回的数据中没有拨打的状态数据。我发出的查询指令是 AT CLCC,正常的话应该返回 我发出的 AT CLCC 和 CLCC: 1,0,2,0,0 ... ,但只能收到 AT CLCC,后面缺少 CLCC: 1,0,2,0,0 这一串,用WINDOWS的超级终端就能收到这些。 那看来应该是协议上的问题, 只能仔细研究一下MODEM的协议了。 对于MODEM的通讯,我没有经验, 具体的问题只能等有经验的人来帮助解决了。 |
紫電靑霜
一般會員 發表:2 回覆:9 積分:2 註冊:2008-05-15 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |