123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162 |
- /**********************************************************************************
- * File Name: MC8332Mode.c
- * Function Describe: Header file for MC8332Mode.c
- * Function Describe:device for modem
- * Relate Module:
- * Explain: the modem must be using ZTE MC8332
- * Date: 2016-3-11
- ***********************************************************************************/
- #include "includes.h"
- int ModemCheckUIM(void)
- {
- unsigned char t,round=0;
- int i,len,ver;
- char cmd[10];
- SUT_MODEM_AT_MSG *pMsg=&sutAtmPro;
- ver=0;
- for(i=0;i<30;i++)
- {
- t=50;
- if(round==0)
- {
- round=1;
- ModemSendAT("AT+QCPIN?\r\n");
- snprintf(cmd, sizeof(cmd), "+QCPIN:");
- }else{
- round=0;
- ModemSendAT("AT+CPIN?\r\n");
- snprintf(cmd, sizeof(cmd), "+CPIN:");
- }
-
- while(t--)
- {
- if((pMsg->MsgLen = MsgQueueAccept(pMsg->MsgData,sizeof(pMsg->MsgData))))
- {
- if(0==ModemStrCmp((char *)pMsg->MsgData,cmd))
- {//+QCPIN: READY
- //+CPIN: READY
- if(pMsg->MsgData[7+round]=='R' && pMsg->MsgData[9+round]=='A'){
- return 1;
- }
- }
- }else
- os_dly_wait(1);
- }
- }
- return 0;
- }
- /********************************************************************
- *return 1 重写
- *return 0 不用重写
- *********************************************************************/
- int ModemSetMC8332APN(char *pApnName,char *pApnPass)
- {
- //先读APN
- //AT+ZPIDPWD?
- //+ZPIDPWD: card,card
- int t;
- char name[31];
- char pass[31];
- char buf[100];
- char *pTemp,finished;
- int i,len;
- SUT_MODEM_AT_MSG *pMsg=&sutAtmPro;
- finished=0;
- for(i=0;i<50;i++){
- ModemSendAT("AT+ZPIDPWD?\r\n");//+ZPIDPWD: card,card
- t=50;
- while(t--)
- {
- if((pMsg->MsgLen = MsgQueueAccept(pMsg->MsgData,sizeof(pMsg->MsgData))))
- {
- if(0==ModemStrCmp((char *)pMsg->MsgData,"+ZPIDPWD:"))
- {
- //get name
- pTemp=(char *)&(pMsg->MsgData[10]);
- memset(name,0,sizeof(name));
- for(i=0;i<31;i++)
- {
- if(*pTemp==',')
- {
- pTemp++;
- break;
- }else
- name[i]=*pTemp++;
- }
- //get password
- memset(pass, 0, sizeof(pass));
- for(i=0;i<31;i++){
- if(*pTemp<0x20)break;
- else
- pass[i]=*pTemp++;
- }
- finished=1;
- break;
- }
- }else
- os_dly_wait(1);
- }
- if(finished) break;
- }
- if(finished==0){
- SlwTrace(INF,"Read APN Timeout!",1);
- return 0;
- }
- snprintf(buf, sizeof(buf), "RAPN:%s,%s", name,pass);
- SlwTrace(INF,buf,1);
- //--比较,不同则重写
- if(0!=strcmp(pApnName,name) || 0!=strcmp(pApnPass,pass))
- {
- snprintf(buf, sizeof(buf),"AT+ZPIDPWD=%s,%s\r\n", pApnName, pApnPass);
- ModemSendAT(buf);
- snprintf(buf, sizeof(buf), "RstApn->%s,%s", pApnName, pApnPass);
- SlwTrace(INF, buf,1);
- return 1;
- }
- return 0;
- }
- /********************************************************************
- CDMA
- *********************************************************************/
- int MC8332ModemWaitRegistered(void)
- {
- int i,j,k;
- char buffer[2];
- SUT_MODEM_AT_MSG *pMsg=&sutAtmPro;
- //wait CREG OK
- for(i=0;i<10;i++){
- if(ModemSendAT2WaitAckMsg("AT+CREG?\r\n","+CREG:",&pMsg,100)){
- //if(MsgQueueAccept(pMsg->MsgData,sizeof(pMsg->MsgData))){
- if(pMsg->MsgData[9]=='1' || pMsg->MsgData[9]=='5'){
- //_free_box(AtMpool,pMsg);
- break;
- }else{
- //_free_box(AtMpool,pMsg);
- }
- }
- os_dly_wait(200);
- }
- if(i==10){
- SlwTrace(INF,"Network not registered!!",1);
- return 0;
- }
- SlwTrace(INF,"Network Registered!!",1);
- }
- void MC8332ModemSendTcpData(unsigned char socket,unsigned char *pData,unsigned short len)
- {
-
- M9507CSendTcpData(socket, pData, len);
- PrintBufferData(pData,len);
- if(socket == GPS_DATA_SOCKET)
- if(g_ucModemSentTcpCt<255)g_ucModemSentTcpCt++;
- if(socket == GPS_DATA_SOCKET)
- sutGpsInfo.isServerLogin = OPEN;
- }
|