如题,公司用的是ANTDATA公司出的DTGS-800模块,虽然也带有文档说明,但我觉得不够详细,所以特来发帖提问,希望大家踊跃发言,问题如下:
1、读取短信的时候,怎样才能不改变短信的状态呢?例如,执行了以下AT命令
AT+UGSM=1 返回OK(DTGS-800支持两套短信接口,这是选择了其中一种接口)
AT+CMGF=1 返回OK
AT+CMGR=0 返回+CMGR: 00000430,15980324358,,2009/02/16/16:01,0,54c854c8(该返回串中,00000430 表示什么意思?)
此时,如果执行AT+CMGT, 返回+CMGT: O,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F.
就是说,下标为0的短信的状态变成了 已读,那要怎样读取短信才能够不改变短信的状态呢?
另外就是如何从+CMGR: 00000430,15980324358,,2009/02/16/16:01,0,54c854c8这条返回值中判断该短信已经还是未读?
2、当用模块向别人打电话时,如何知道对方已经成功接听了电话?如果结束通话或者通话不成功时会都返回什么消息?
3、如何上网?包括如何连接指定IP地址和端口的服务器,如何向服务器发送信息,如何关闭连接,如何重新连接服务器,如何检查当前的连接状态等等。
我用过GSM方面的AT指令,以上问题都可以解决,比如说AT+CMGR=1,1就表示读取SIM卡中第一条短信,而且不改变其状态,但就是不知道CDMA方面的指令是怎么搞的。。
希望大家指教...
我觉得AT Command的响应不仅与GSM或CDMA有关,不同的移动modem生产厂商的AT命令规则也是不同的。
比如我上个项目中用到了AT命令,Nokia和SAMSUNG的AT命令响应就不同。
不过硬件生产厂商都会有详细的AT命令手册,建议LZ多多挖掘
引用: 引用 2 楼 biaozai06 的回复:
我觉得AT Command的响应不仅与GSM或CDMA有关,不同的移动modem生产厂商的AT命令规则也是不同的。
比如我上个项目中用到了AT命令,Nokia和SAMSUNG的AT命令响应就不同。
不过硬件生产厂商都会有详细的AT命令手册,建议LZ多多挖掘
呵呵,先谢谢这位兄弟。
其实你说的我也知道,现在的问题是这个提供给我们硬件的厂家的技术支持很差,AT命令手册讲解得不详细。而且打电话过去问他们的技术人员,
我问什么他们都不清楚的样子,是在是令人无语。不过现在项目的时间可能比较紧,所以只能抱着一试的心态上来求教了。。
(1)+CMGR: 00000430,15980324358,,2009/02/16/16:01,0,54c854c8这条返回值中判断该短信已经还是未读?
00000430是消息标识号,可以是模块自动生成。
(2)如果系统有短信来会提示:
CMT: 1(1为表示新消息存储于空间的第1个位置)
AT+CMGR=1读存储序号为1的消息。
模块回复:
+CMGR:00000220,13956083950,,2008/08/29/10:13,0,123456789\r\nOK\r\n
(3)至于模块的上网步骤是:
第一步:查询CDMA数据模块的空闲状态。当返回值为“+CAD:1”时,说明此时模块处于空闲状态,连接操作可以继续进行,否则,需要重新发送指令“AT+CAD?”检查其状态,直到返回空闲的状态时才会继续连接的工作。
第二步:将指令字符串“AT+CRM=130”发送到CDMA数据模块,该模块接收到之后,会改变其开始模式。这里选择的是带TCP协议栈的模式。
第三步:发送上位机的IP地址,“AT+DIP=\"124.73.47.200\"”。
第四步:发送PORT值,“AT+DPORT=\"8080\"”。
第五步:向CDMA模块发送指令“ATDT123”,使得CDMA模块向CDMA系统进行呼叫。呼叫失败时,会有字符串“NO CARRIER”返回,这时需要返回第一步,重新连接;呼叫成功时,则会有字符串返回“CALL”返回;然后继续接收“PPP”和“CONNECT”,当接收到“CONNECT”时就说明已经成功地与监控中心的上位机建立了TCP/IP连接,可以进行数据的发送了。
引用: 引用 4 楼 jeffery223 的回复:
(1)+CMGR: 00000430,15980324358,,2009/02/16/16:01,0,54c854c8这条返回值中判断该短信已经还是未读?
00000430是消息标识号,可以是模块自动生成。
(2)如果系统有短信来会提示:
CMT: 1(1为表示新消息存储于空间的第1个位置)
AT+CMGR=1读存储序号为1的消息。
模块回复:
+CMGR:00000220,13956083950,,2008/08/29/10:13,0,123456789\r\nOK\r\n
(3)至于模块的上网步骤是:
第一步…
呵呵。。首先谢谢兄弟的回帖。
这位兄弟说 00000430是消息标识号,可以是模块自动生成。 那具体代表什么意思?能否从这里判断出短信是已读还是未读?能否从这里判断出短信是纯英文短信还是中文短信?
还有就是如果别人向我发送了一条很长的短信,被运营商分割成两条发给我,那我要怎么识别?
另外就是关于上网的,如果已经正确地与上位机就建立了TCP/IP连接,那要怎么进行数据发送?有相关的AT指令吗?如果说我要发送 "Hello..." 这个字符串到上位机,那要如何操作?
有读了 短信后,短信的状态没有变化的 办法?
当对方 接通 电话 后,模块 会有 返回 一些 主动响应,具体eeworld模块 会返回什么 我不是 很清楚,当对方没有响应或者超时时 应该会返回“NO CARRIER” 。
正如 2楼所说 各种模块AT指令会有所 不同,比如SIM300模块,连接服务器AT指令流程(在终端中)为:at+cipcsgp=1,"uniwap"或者“cmnet” ,at+cipstart=“tcp”,“IP地址”,“端口”,当出现CONNECT OK 后,AT+CIPSEND 出现“>”后写入发送的消息。
引用: 引用 6 楼 peng5522 的回复:
有读了 短信后,短信的状态没有变化的 办法?
当对方 接通 电话 后,模块 会有 返回 一些 主动响应,具体eeworld模块 会返回什么 我不是 很清楚,当对方没有响应或者超时时 应该会返回“NO CARRIER” 。
正如 2楼所说 各种模块AT指令会有所 不同,比如SIM300模块,连接服务器AT指令流程(在终端中)为:at+cipcsgp=1,"uniwap"或者“cmnet” ,at+cipstart=“tcp”,“IP地址”,“端口”,当出现…
这个我知道,因为我们公司之前一直都是在用SIM300C模块的,对于GSM方面的指令还比较熟悉,但是这个CMDA模块我真的是没辙了..CMDA模块上面的手册说,连接上之后就可以尽兴数据传输了,但是具体怎么传输也没讲出来。;。郁闷..!