请教 GPRS软件框架
坛子里的各位兄弟姐妹,我司用的sim900 GPRS模块,目前正在软件开发中,前期熟悉了大量的资料和AT指令,并在网上下了一个别人MC35i的源程序,对整体的框架也有些把握了,但是依然存在两个比较大的问题,向大家请教:1、缓冲区的设计和解析,这个是最头痛的问题,我的缓冲区定义如下:
#define GSM_BUFFER_SIZE320
typedef struct{
Int8Uwrite;
Int8Uread;
Int8Udata;
}GSM_BUFFER;
GSM_BUFFER gGSM_Buffer;
缓冲区只是简单通过终端来接收数据,不做任何处理;
处理是通过缓冲区解析GSM_chkBuf()来现实的,这个地方遇到了问题,我的缓冲区要怎么解析,并且与RING管脚来配合使用解析当前发送AT指令的响应呢。
初步考虑:
if( 是帧头 <CR><LF> ){
if(是RING){
//ignore
返回0;
}
if ( 是短信 +CMI ){
获取短信index,返回0;
}
if ( 是提示符 “> ” ){
读取到处理缓冲区GSM_DealBuf,返回1;
}else{
找到帧尾,复制到GSM_DealBuf,返回1;
}
}
然后再RING中断中处理电话和短信:
问题一: ?本来是想在这里判断是电话还是短信,是电话就挂断,是短信就读取的,可是终端进来的时候,我的电话和短信标志内容并没有读到处理缓冲区去啊?
问题二: 如何保证我当前读取的AT指令响应正好就是我刚才发出去的AT指令的响应呢? 如果我在GSM_chkBuf的过程中收到RING中断,很可能我的帧数据还没有读取到处理缓冲区啊?
问题三: 对于这样GPS终端的软件来说,主循环中应该是按照什么样的顺序来处理呢? 来实现电话、短信、GPRS上下行数据的切换呢?
谢谢大家,甚是头晕中。 鍙澶勭悊涓插彛鏁版嵁灏卞彲浠�涓嶇敤閭d箞澶嶆潅 bu yong na me fu za ,zhi yao chu li chuan kou shu ju jiu ke yi le yong gprs shang wang fa tie hui bian cheng luan ma! 怎么还有提示符 “> ”?要做什么啊 回复【4楼】comway
怎么还有提示符 “> ”?要做什么啊
-----------------------------------------------------------------------
发送短信和GPRS数据啊,在发送AT+CMGS="",之后有提示啊,然后GPRS发送也是有提示符的啊。 我这个没有使用ucosII那个操作系统,你们都是用了这个操作系统吗? 要是用操作系统我觉得还是简单些呢。。 AT+CMGS啊,还得PUD编码是吧,推荐用w8010模块,直接发汉字短信的,gprs状态是透传串口 建议使用状态机来做{:smile:}
页:
[1]