关于BCB里用AT指令发短信息的问题

yzg_yornik 2010-06-08 03:17:33
刚开始接触哈,什么都不懂。


MSComm1->CommPort=1;//选择串口号
MSComm1->Settings="9600,N,8,1"; //设置串口的属性波特率、奇偶校验、数据位和、//停止位。
MSComm1->InputMode=0;//设置传入数据的格式,0表示文本形式
MSComm1->PortOpen=true;//打开串口

String lz = "AT\r"; //检测连接是否正常
MSComm1-> Output = lz;
Sleep(1000);
String re0 = MSComm1->Input;

lz = "AT+CMGF=1\r";
MSComm1-> Output = lz;
Sleep(1000);
String re1 = MSComm1->Input;

lz = "AT+CMGS=1356036XXXX\r";
MSComm1-> Output = lz;
Sleep(1000);
String re2 = MSComm1->Input;

// lz = "ceshi";
// MSComm1-> Output = lz;//这里该怎么写?
Sleep(3000);
String re3 = MSComm1->Input;

以上是我写的发送"ceshi"的代码,不知道最后的一段怎么写了。还有就是有时候运行时re0,re1,re2返回的怎么也带着发送出去的如AT什么的?这是怎么回事?还有就是发送完毕后如果要接着继续发送该怎么处理?
求各位高手帮忙!
...全文
163 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
yzg_yornik 2010-06-08
  • 打赏
  • 举报
回复
知道了,多谢!
ccrun.com 2010-06-08
  • 打赏
  • 举报
回复
删除什么呢?直接把要发的信息继续发就行了。
yzg_yornik 2010-06-08
  • 打赏
  • 举报
回复
那如果接着继续发信息要不要做什么处理?比如删除上次发送的内容什么的。
ccrun.com 2010-06-08
  • 打赏
  • 举报
回复
sorry,刚才说错鸟,是0x1A,换成十进制就是26.

String strEnd = char(0x1A);

加到末尾就行了。
yzg_yornik 2010-06-08
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ccrun 的回复:]
输出每一个指令后,你需要判断该指令是否被设备响应,然后再作一步的处理。
PDU模式发送文本消息时,消息内容需要经过PDU编码。

消息内容的后面要加0x1D字符作为结束。
[/Quote]
0x1D这个怎么加?转成String吗?
还有我看别的资料说结尾是26呀。
ccrun.com 2010-06-08
  • 打赏
  • 举报
回复
管理菜单-->生成帖子,使劲点击。
yzg_yornik 2010-06-08
  • 打赏
  • 举报
回复
我怎么看不到回复呢?
ccrun.com 2010-06-08
  • 打赏
  • 举报
回复
另外,用指令"ATE0”可关闭设备回显,这样返回的字符串就只是OK或ERROR之类的。
ccrun.com 2010-06-08
  • 打赏
  • 举报
回复
输出每一个指令后,你需要判断该指令是否被设备响应,然后再作一步的处理。
PDU模式发送文本消息时,消息内容需要经过PDU编码。

消息内容的后面要加0x1D字符作为结束。

1,317

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧