⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wavecom.c

📁 q24Wavecom的C程序代码
💻 C
📖 第 1 页 / 共 4 页
字号:
					StationRun(MsgModelOk,false);
					break;
				}
				//============================================
				case cnATcmd_CCLK:			// 设置实时时钟'ERROR'应答
				{
					StationRun(MsgModelOk,false);
					break;
				}
				//============================================
				case cnATcmd_ATM:
				case cnATcmd_AUDIO:
				{
					StationRun(MsgModelOk,false);
					break;
				}
				//============================================
				case cnATcmd_CCID:			// 查询SIM卡ID号'ERROR'应答
				{
					//bATcmdNeedResend = true;
					StationRun(MsgRvSIMID,false);
					break;
				}
				//============================================
				case cnATcmd_TestAT:		// 测试模块'ERROR'应答
				{
					StationRun(MsgModelOk,false);
					break;
				}
				//============================================
				case cnATcmd_SPSPKR0:
				case cnATcmd_SPSPKR1:
				case cnATcmd_SPSPKR2:
				case cnATcmd_SPSPKR3:
				case cnATcmd_HFSPKR0:
				case cnATcmd_HFSPKR1:
				case cnATcmd_HFSPKR2:
				case cnATcmd_HFSPKR3:		// 设置音量等级'ERROR'应答
				{
					break;
				}
				//============================================
				case cnATcmd_MIC:			// 设置MIC参数'ERROR'应答
				{
					break;
				}
				//============================================
				case cnATcmd_SID:			// 设置侧音参数'ERROR'应答
				{
					break;
				}
				//============================================
				case cnATcmd_ECHO:			// 设置回响参数'ERROR'应答
				{
					break;
				}
				//============================================
				case cnATcmd_CMGF:			// 选择PDU格式'ERROR'应答
				{
					break;
				}
				//============================================
				case cnATcmd_CSMS:			// 设置符合Phase II标准'ERROR'应答
				{
					break;
				}
				//============================================
				case cnATcmd_CNMI:			// 设置短消息输出位置信息'ERROR'应答
				{
					break;
				}
				//============================================
				case cnATcmd_CREG:			// 查询注册信息'ERROR'应答
				{
					break;
				}
				//============================================
				case cnATcmd_CMGR:			// 读取短消息'ERROR'应答
				{
					//StationRun(MsgReadSMS,false);
					break;
				}
				//============================================
				case cnATcmd_CMGD:			// 删除短消息'ERROR'应答
				{
					StationRun(MsgDelSMS,false);
					break;
				}
				//============================================
				case cnATcmd_CMGS:			// 发送短消息'ERROR'应答
				{
					StationRun(MsgSendSMS,false);
					break;
				}
				//============================================
				case cnATcmd_CSCA:			// 设置短信中心号码'ERROR'应答
				{
					break;
				}
				//============================================
				case cnATcmd_CMGL:			// 罗列所以短消息'ERROR'应答
				{
					break;
				}
				//============================================
				case cnATcmd_ATE:			// 设置AT命令不回送'ERROR'应答
				{
					StationRun(MsgModelOk,false);
					break;
				}
				//============================================
				case cnATcmd_NeedPIN:		// 查询SIM卡PIN码状态'ERROR'应答
				{
					StationRun(MsgPINState,cnReadPINStateError);
					break;
				}
				//============================================
				case cnATcmd_PINClck:		// 设置SIM卡锁PIN码'ERROR'应答
				{
					StationRun(MsgPINState,cnClckPINError);
					break;
				}
				//============================================
				case cnATcmd_InputPIN:		// SIM卡输入PIN码'ERROR'应答
				{
					StationRun(MsgPINState,cnInputPINError);
					break;
				}
				//============================================
				case cnATcmd_ChangePIN:		// SIM卡更改PIN码'ERROR'应答
				{
					StationRun(MsgPINState,cnChangePINError);
					break;
				}
				//============================================
				case cnATcmd_PINUnClck:		// 设置SIM卡PIN码解锁'ERROR'应答
				{
					StationRun(MsgPINState,cnUnClckPINError);
					break;
				}
				//============================================
				case cnATcmd_CHGBackPIN:	// 更改SIM卡PIN码为默认值'ERROR'应答
				{
					StationRun(MsgPINState,cnCHGBackPINError);
					break;
				}
				//============================================
				case cnATcmd_SaveCfg:		// 用户设置参数存储'ERROR'应答
				{
					break;
				}
				//============================================
				case cnATcmd_PowerOff:		// 用户关机'ERROR'应答
				{
					break;
				}
				//============================================
				case cnATcmd_CheckBatt:		// 检查电池电压'ERROR'应答
				{
					break;
				}
				//============================================
				case cnATcmd_SetCallWaitting:	// 设置呼叫等待'ERROR'应答
				{
					StationRun(MsgSetCallWait,false);
					break;
				}
				//============================================
				case cnATcmd_CancelCallWaittng:		// 取消呼叫等待设置'ERROR'应答
				{
					StationRun(MsgCancelCallWait,false);
					break;
				}
				//============================================
				case cnATcmd_Answer2ndCall:			// 接听呼叫等待的第2个电话'ERROR'应答
				{
					StationRun(MsgAnswer2ndCall,false);
					break;
				}
				//============================================
				case cnATcmd_Cancel2ndCall:			// 挂断呼叫等待的第2个电话'ERROR'应答
				{
					StationRun(MsgCancel2ndCall,false);
					break;
				}
				//============================================
				case cnATcmd_SetCallForward0:		// 设置呼叫转移'ERROR'应答
				case cnATcmd_SetCallForward1:		// 设置呼叫转移'OK'应答
				case cnATcmd_SetCallForward2:		// 设置呼叫转移'OK'应答
				case cnATcmd_SetCallForward3:		// 设置呼叫转移'OK'应答
				{
					StationRun(MsgSetCallForward,false);
					break;
				}
				//============================================
				case cnATcmd_CancelCallForward:		// 取消呼叫转移设置'ERROR'应答
				{
					StationRun(MsgCancelCallForward,false);
					break;
				}
				//============================================
				case cnATcmd_SendCCLK:				// 设置模块时钟'ERROR'应答
				{
					break;
				}
				//============================================
				case cnATcmd_CCEDMain:				// 查询主基站好'ERROR'应答
				{
					break;
				}
				//============================================
				case cnATcmd_CCEDSub:				// 查询从属基站好'ERROR'应答
				{
					break;
				}
				//============================================
				default: break;
			}
			break;
		}
*/	
		//<><><><><><><><><><><><><><><><><><><><><><><><><><><><>
		//信号强度分析  +CSQ: x,99或许+CSQ: xy,99 (x,y为ASCII字符的数字数值(31,32...))
		case cnRxATcmd_ATAck_CSQ:			// +CSQ: 31,99
		{
			ATcmdAckIdataPtr = SeekCharInString(' ',ATcmdAckIdataPtr);	// 找+CSQ:后空格
			ATcmdAckData = *(++ATcmdAckIdataPtr) & 0x0F;	//取31的低4位,表示信号强度
			if(*(++ATcmdAckIdataPtr) != ',')				//如果下一个字符,非逗号,表示当前信号强度为2个字节数据
			{
				ATcmdAckData = (ATcmdAckData << 4) | (*ATcmdAckIdataPtr & 0x0F);	//合并2个字节数据(每个字节取低4位)
			}
			
			StationRun(MsgRvCSQ,ATcmdAckData);	//往上层发信号强度消息
			
			bWaitOKAck = true;
			break;
		}
		
		//<><><><><><><><><><><><><><><><><><><><><><><><><><><><>
		//读取SIM卡ID号
		case cnRxATcmd_ATAck_SCKS:		// +CCID: "89860062135002061687"
		{
			ATcmdAckIdataPtr = SeekCharInString('"',ATcmdAckIdataPtr);	// 找+CCID:后的双引号
			
			i = 0x00;
			FillTempBuf();
			F0 = true;
			while(*(++ATcmdAckIdataPtr) != '"')
			{
				ATcmdAckData = *ATcmdAckIdataPtr & 0x0F;
				F0 = !F0;
				if(F0)
				{
					ATcmdAckData |= 0xF0;
					TempBuf[i] &= ATcmdAckData;
					++i;
				}
				else
				{
					ATcmdAckData <<= 4;
					ATcmdAckData |= 0x0F;
					TempBuf[i] &= ATcmdAckData;
				}
			}
			
			ATcmdAckData = &TempBuf[0];
			StationRun(MsgRvSIMID,ATcmdAckData);
			bWaitOKAck = true;
			break;
		}
		
		//<><><><><><><><><><><><><><><><><><><><><><><><><><><><>
		//查询SIM卡PIN状态
		case cnRxATcmd_ATAck_CPIN:
		{
			ATcmdAckCodePtr = &PIN_READY;
			ATcmdAckIdataPtrTemp = ATcmdAckIdataPtr;
			if(CmpString(ATcmdAckCodePtr,ATcmdAckIdataPtr))
			{
				StationRun(MsgPINState,cnPINReady);			// 不需要输入PIN码
			}
			else
			{
				ATcmdAckCodePtr = &PIN_SIMPIN;
				ATcmdAckIdataPtr = ATcmdAckIdataPtrTemp;
				if(CmpString(ATcmdAckCodePtr,ATcmdAckIdataPtr))
				{
					StationRun(MsgPINState,cnPINNeed);		// 需要输入PIN码
				}
				else
				{
					StationRun(MsgPINState,cnPINError);		// PIN码错误(需要输入PUK码)
				}
			}
			break;
		}
		
		//<><><><><><><><><><><><><><><><><><><><><><><><><><><><>
		case cnRxATcmd_ATAck_CCWA:		// 呼叫等待设置
		{	//  +CCWA: "05925186318",129,1
			goto RvNewCID;
			break;
		}
		
		//<><><><><><><><><><><><><><><><><><><><><><><><><><><><>
		case cnRxATcmd_ATAck_CREG:		// 注册信息查询
		{	// +CREG: 0,1
			ATcmdAckIdataPtr = SeekCharInString(',',ATcmdAckIdataPtr);	// 找串中的','
			ATcmdAckData = *(++ATcmdAckIdataPtr);	// 网络注册标志数据
			StationRun(MsgModelReg,ATcmdAckData);

			bWaitOKAck = true;						// 需要等待'OK'
			break;
		}
		//<><><><><><><><><><><><><><><><><><><><><><><><><><><><>
		case cnRxATcmd_ATAck_CMTI:		// 新短消息位置信息输出
		{	// +CMTI: "SM",2	+CMTI: "SM",12
			ATcmdAckIdataPtr = SeekCharInString(',',ATcmdAckIdataPtr);	// 找串中的','
			ATcmdAckData = *(++ATcmdAckIdataPtr) & 0x0F;
			if(*(++ATcmdAckIdataPtr) != '\r')
			{
				ATcmdAckData = (ATcmdAckData << 4) | (*ATcmdAckIdataPtr & 0x0F);
			}
			ATcmdAckData = DecToHexByte(ATcmdAckData);
			StationRun(MsgRvSMSPos,ATcmdAckData);		// 短消息的位置信息数据
			
			bATcmdAckType = true;					// 模块主动输出的参数
			break;
		}
		//<><><><><><><><><><><><><><><><><><><><><><><><><><><><>
		case cnRxATcmd_ATAck_CMGR:		// 读取短消息
		{
			break;
		}
		//<><><><><><><><><><><><><><><><><><><><><><><><><><><><>
		case cnRxATcmd_ATAck_CMGS:		// 发送短消息
		{
			bWaitOKAck = true;			// 需要等待'OK'
			break;
		}
		//<><><><><><><><><><><><><><><><><><><><><><><><><><><><>
		case cnRxATcmd_ATAck_CMGL:		// 罗列短消息
		{
			break;
		}
		//<><><><><><><><><><><><><><><><><><><><><><><><><><><><>
		case cnRxATcmd_ATAck_WBCI:		// 检查电池电压
		{	// +WBCI: 3,4149
			ATcmdAckIdataPtr = SeekCharInString(',',ATcmdAckIdataPtr);	// 找串中的','
			ATcmdAckData = ((*(++ATcmdAckIdataPtr) & 0x0F) << 4) | (*(++ATcmdAckIdataPtr) & 0x0F);	// 取电压数值
			StationRun(MsgCheckBatt,ATcmdAckData);
			
			bWaitOKAck = true;			// 需要等待'OK'
			break;
		}
		//<><><><><><><><><><><><><><><><><><><><><><><><><><><><>
		default: break;
	}
}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -