at指令,如何读取串口手机上的短信 ( 积分: 200 )

  • 主题发起人 主题发起人 scy_fjqz
  • 开始时间 开始时间
S

scy_fjqz

Unregistered / Unconfirmed
GUEST, unregistred user!
用at+cmgl=4之后,如何把缓冲内容从mscomm控件转移到memo1控件上啊,大伙帮忙!
 
用at+cmgl=4之后,如何把缓冲内容从mscomm控件转移到memo1控件上啊,大伙帮忙!
 
大侠帮忙
 
在它的ReceiveData接收事件将读取的bufferlength存为字符串
type
IArr = ^integer;
var
RevP : array [1..4096] of byte;
i : integer;
CommRevStr : ShortString;
begin
SetLength(CommRevStr,BufferLength);
Move(IArr(buffer)^,Revp,bufferLength);
For i:=1 to BufferLength do
begin
CommrevStr := Char(Revp);
end;
edit1.text:=commrevStr;
end;
 
to:maggic
兄弟,mscomm控件中,只有oncomm事件,没有ReceiveData事件啊
 
[:D]我用的是TComm
 
http://www.delphibbs.com/delphibbs/dispq.asp?lid=2991449
 
在oncomm事件中使用
case 方法啊

Case MSComm1.CommEvent of
comEventBreak ' 收到 Break。
comEventCDTO ' CD (RLSD) 超时。
comEventCTSTO ' CTS Timeout。
comEventDSRTO ' DSR Timeout。
comEventFrame ' Framing Error
comEventOverrun '数据丢失。
comEventRxOver '接收缓冲区溢出。
comEventRxParity ' Parity 错误。
comEventTxFull '传输缓冲区已满。
comEventDCB '获取 DCB] 时意外错误
end;

' 事件
Case comEvCD ' CD 线状态变化。
Case comEvCTS ' CTS 线状态变化。
Case comEvDSR ' DSR 线状态变化。
Case comEvRing ' Ring Indicator 变化。
Exit Sub
Case comEvReceive ' 收到 RThreshold # of chars.
 
tcomm事件中的onReceiveData事件中
procedure Tfrm_sms.Comm1ReceiveData(Sender: TObject; Buffer: Pointer;
BufferLength: Word);
var sa: PChar;
begin
GetMem(sa, BufferLength);
try
Move(Buffer^, Sa^, BufferLength);
Memo1.Lines.Add(Sa);
finally
FreeMem(sa);
end;
end;
 
接受答案了.
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
666
import
I
I
回复
0
查看
805
import
I
后退
顶部