| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780 |
- /**********************************************************************************
- * File Name: Modem.c
- * Function Describe:device for modem
- * Relate Module:
- * Explain: the modem must be using ZTE MC8332
- * Writer: ShiLiangWen
- * Date: 2015.1.20
- ***********************************************************************************/
- #define THIS_FILE_ID 2
- /* Includes ------------------------------------------------------------------*/
- #include "includes.h"
- //os_mbx_declare (PocMsgBox, 5); /* Declare an RTX mailbox */
- //_declare_box(PocMpool,sizeof(SUT_MODEM_POC_MSG),5);
- //os_mbx_declare (AtMsgBox, 10); /* Declare an RTX mailbox */
- //_declare_box(AtMpool,sizeof(SUT_MODEM_AT_MSG),10);
- SUT_MODEM_AT_MSG sutAtm,sutAtmPro;
- unsigned char g_ucModemSentTcpCt;//TCP 发送计数器
- /************************************************************************************
- * Usart3_DMA_Send(ucData,strlen((void *)ucData));
- *************************************************************************************/
- void ModemSendAT(char *p)
- {
- Uart2Send((unsigned char *)p,strlen(p));
- }
- /************************************************************************************
- *
- *************************************************************************************/
- void ModemSendData(unsigned char *pData,unsigned short datalen)
- {
- Uart2Send(pData,datalen);
- }
- /**********************************************************************************
- 等待模块启动完成
- 0:成功 -1:超时
- ***********************************************************************************/
- int WaitModemIsOpened(void)
- {
- int i;
- SUT_MODEM_AT_MSG *pMsg=&sutAtmPro;
- RunMake(THIS_FILE_ID);
- for(i=0;i<100;i++){
- // SlwTrace(INF,"AT\r\n");
- ModemSendAT("AT\r\n");
- //if(OS_R_TMO!=os_mbx_wait(AtMsgBox,(void **)&pMsg,50)){
- if((pMsg->MsgLen = MsgQueueAccept(pMsg->MsgData,sizeof(pMsg->MsgData)))){
- if('O'==pMsg->MsgData[0] && 'K'==pMsg->MsgData[1]){
- return 0;
- }
- //free(pMsg);
- }else os_dly_wait(100);
- }
- return 1;
- }
- void ModemCtrlInit(void)
- {
- }
- /**********************************************************************************
- ModemInit
- 返回:1 初始化成功 0-失败
- ***********************************************************************************/
- int ModemInit(void)
- {
- GPIO_InitTypeDef GPIO_InitStructure;
- MsgQueueSet();
- GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
- GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
- GPIO_InitStructure.GPIO_Pin = MODEM_RESET_PIN;
- GPIO_Init(MODEM_RESET_PORT, &GPIO_InitStructure);
- GPIO_InitStructure.GPIO_Pin = MODEM_PWRKEY_PIN;
- GPIO_Init(MODEM_PWRKEY_PORT, &GPIO_InitStructure);
- RunMake(THIS_FILE_ID);
- g_ucModemSentTcpCt=0;
- RunMake(THIS_FILE_ID);
- MODEM_RESET_HIGH;
- os_dly_wait(100);
- MODEM_RESET_LOW;
- MODEM_PWRKEY_HIGH;
- os_dly_wait(100);
- MODEM_PWRKEY_LOW;
- //return 0;//测试天线
- if(WaitModemStart())return 0;
- //return ModemGetIMEI();
- return 1;
- }
- /**********************************************************************************
- CSQ2Num
- ***********************************************************************************/
- int CSQ2Num(char *str)
- {
- int csq;
- csq=atoi(str);
- if(csq<0 || csq>99)return 99;
- else return csq;
- }
- /**********************************************************************************
- ModemStrCmp
- ***********************************************************************************/
- int ModemStrCmp(char *msg,char *str)
- {
- char *p1=str;
- char *p2=msg;
- while(*p1!=0){
- if(*p1!=*p2)return 1;
- p1++;
- p2++;
- }
- return 0;
- }
- /**********************************************************************************
- ModemWaitAckMsg
- Input:
- pATCmd--AT Command string
- pAck --期待回的ACK,头相同即可
- pMsg --实际消息内容,可能比pAck长
- timeout --超时,10ms为单位
- Output:
- if timeout return 0
- else return 1 注意,处理完消息要调用_free_box释放消息
- ***********************************************************************************/
- int ModemSendAT2WaitAckMsg(char *pATCmd,char *pAck,SUT_MODEM_AT_MSG **pMsg,int timeout)
- {
- int r;
- SUT_MODEM_AT_MSG *Msg=&sutAtmPro;
- ModemSendAT(pATCmd);
- while(timeout){
- if((Msg->MsgLen = MsgQueueAccept(Msg->MsgData,sizeof(Msg->MsgData)))){
- if(0==ModemStrCmp((char *)Msg->MsgData,pAck)){
- *pMsg=Msg;
- return 1;
- }else{
- }
- }else {
- timeout--;
- os_dly_wait(1);
- }
- }
- return 0;
- }
- int ModemSendTcpData(unsigned char socket,unsigned char *pData,unsigned short len)
- {
- int i;
- char buf[142];
- char tmp[5];
- unsigned char temp=0;
- unsigned short debuglen;
-
- sprintf(buf,"AT+ZIPSEND=%d,%d\r",socket,len);
- ModemSendAT(buf);
- ModemSendData(pData,len);
- if(g_ucModemSentTcpCt<255)g_ucModemSentTcpCt++;
- sprintf(buf,"TcpSend[%d]",len);
- SlwTrace(INF,buf,1);
- #if 0
- if(len>45)debuglen=45;
- else debuglen=len;
-
- buf[0]='>';buf[1]='>';buf[2]=0;
- for(i=0;i<debuglen;i++){
- sprintf(tmp,"%02x,",pData[i]);
- strcat(buf,tmp);
- }
- strcat(buf,"\r\n");
- SlwTrace(DEBUG,buf);
- #endif
-
-
- return 0;
- }
- int ModemSendUdpData(unsigned char socket,unsigned char *pData,unsigned short len)
- {
- int i;
- char buf[142];
- char tmp[5];
- unsigned char temp=0;
- sprintf(buf,"AT+ZIPSENDU=%d,%d\r",socket,len);
- ModemSendAT(buf);
- ModemSendData(pData,len);
-
- sprintf(buf,"UdpSend[%d]",len);
- SlwTrace(INF,buf,1);
-
- #if 1
- if(len>45)len=45;
- buf[0]='>';buf[1]='>';buf[2]=0;
- for(i=0;i<len;i++){
- sprintf(tmp,"%02x,",pData[i]);
- strcat(buf,tmp);
- }
- strcat(buf,"\r");
- SlwTrace(DEBUG,buf,0);
- #endif
- return 0;
-
- }
- unsigned short StrToNum(char *str)
- {
- unsigned short num;
- if(str[0]>0x2f && str[0]<0x3a){
- if(str[1]>0x2f && str[1]<0x3a){
- if(str[2]>0x2f && str[2]<0x3a){
- if(str[3]>0x2f && str[3]<0x3a){
- num=1000*(str[0]-0x30);
- num+=100*(str[1]-0x30);
- num+=10*(str[2]-0x30);
- num+=(str[3]-0x30);
- }else{
- num=100*(str[0]-0x30);
- num+=10*(str[1]-0x30);
- num+=(str[2]-0x30);
- }
- }else{
- num=10*(str[0]-0x30);
- num+=(str[1]-0x30);
- }
- }else{
- num= str[0]-0x30;
- }
- }else{
- num=0;
- }
- return num;
- }
- void ModemPoweroff(void)
- {
- ModemSendAT("AT+ZPWROFF\r\n");
- os_dly_wait(50);
- ModemSendAT("AT+ZPWROFF\r\n");
- IWDG_ReloadCounter();//喂狗
- os_dly_wait(100);
- IWDG_ReloadCounter();//喂狗
- os_dly_wait(100);
- IWDG_ReloadCounter();//喂狗
- os_dly_wait(50);
- IWDG_ReloadCounter();//喂狗
- MODEM_PWRKEY_LOW;
- MODEM_RESET_HIGH;
- os_dly_wait(10);
- MODEM_RESET_LOW;
- }
- /*******************************************************************
- *GetIPStatus
- 返回:0--未获取 1--获取成功
- ********************************************************************/
- //int ModemGetMEID(void)
- //{
- // int t,j;
- // int i,len;
- // SUT_MODEM_AT_MSG *pMsg=&sutAtmPro;
- // for(i=0;i<50;i++)
- // {
- // t=50;
- // ModemSendAT("AT^MEID\r\n");//0xA100005B114142
- // while(t--)
- // {
- // if((pMsg->MsgLen = MsgQueueAccept(pMsg->MsgData,sizeof(pMsg->MsgData))))
- // {
- // len=strlen((char*)pMsg->MsgData);
- // if(pMsg->MsgLen == 19) j= 14;
- // else if(pMsg->MsgLen == 20) j=15;
- // else continue;
- // memcpy(sutProductPara.MEID, &pMsg->MsgData[2], j);
- // if(j<sizeof(sutProductPara.MEID))
- // sutProductPara.MEID[j]=0;
- // return 1;
- // }else
- // os_dly_wait(1);
- // }
- // }
- // return 0;
- //}
- /*******************************************************************
- *GetIPStatus
- 返回:0--未获取 1--获取成功
- ********************************************************************/
- //int ModemGetIMEI(void)
- //{
- // int t,j;
- // int i,len;
- // unsigned char tempa,tempb;
- // unsigned char aucIMEI[16];
- // SUT_MODEM_AT_MSG *pMsg=&sutAtmPro;
- // for(i=0;i<50;i++){
- // ModemSendAT("AT+GSN\r\n");//0x80DA219D
- // //862015030301209 两种情况都会返回
- // t=50;
- // while(t--)
- // {
- // if((pMsg->MsgLen = MsgQueueAccept(pMsg->MsgData,sizeof(pMsg->MsgData))))
- // {
- // len=strlen((char *)&(pMsg->MsgData));
- // if(0==ModemStrCmp((char *)pMsg->MsgData,"0x"))
- // {
- // len -=4;
- // memcpy(sutProductPara.IMEI, &pMsg->MsgData[2], len);
- // if(len < sizeof(sutProductPara.IMEI))
- // sutProductPara.IMEI[len]=0;
- //
- // memset(aucIMEI,0,sizeof(aucIMEI));
- // tempa=15-strlen(sutProductPara.IMEI);
- // for(tempb=0;tempb<tempa;tempb++){
- // aucIMEI[tempb]=0x30;
- // }
- // strcat(aucIMEI,sutProductPara.IMEI);
- // strncpy(sutProductPara.IMEI,aucIMEI,sizeof(sutProductPara.IMEI));
- //
- // return 1;
- // }else if(len == 17)
- // {
- // len -= 2;
- // memcpy(sutProductPara.IMEI, pMsg->MsgData, len);
- // if(len < sizeof(sutProductPara.IMEI))
- // sutProductPara.IMEI[len]=0; //可以不做保存
- // return 2;
- // }
- // }else
- // os_dly_wait(1);
- // }
- // }
- // return 0;
- //}
- //
- char SetModemTCPHexMode(TCPUDP_DEF mode)
- {
- int t,i;
- char buf[40];
-
- SUT_MODEM_AT_MSG *pMsg=&sutAtmPro;
- for(i=0;i<3;i++){
- t=50;
- ModemSendAT("AT+MIPHEX?\r\n");
- while(t--)
- {
- if((pMsg->MsgLen = MsgQueueAccept(pMsg->MsgData, sizeof(pMsg->MsgData))))
- {
- if(0==ModemStrCmp((char *)pMsg->MsgData,"+MIPHEX:"))
- {
- if(pMsg->MsgData[8] != mode)
- {
- sprintf(buf, "AT+MIPHEX=%c\r\n", mode);
- ModemSendAT(buf);
- }else
- {
- SlwTrace(INF, "[11]TcpDataMode->HEX",1);
- return 1;
- }
- }
- }else os_dly_wait(1);
- }
- }
- SlwTrace(INF, "[11]TCPModeSet failed",1);
- return 0;
- }
- /*******************************************************************
- *ModemCheckPocParam
- return:
- 1--not same, Reset
- 0--same,no reset
- ********************************************************************/
- int ModemCheckPocParam(void)
- {
- int t,j;
- int i,len;
- char buf[60];
- char buf1[130];
- char buf2[40];
- SUT_MODEM_AT_MSG *pMsg=&sutAtmPro;
- RunMake(THIS_FILE_ID);
-
- for(i=0;i<5;i++)
- {
- ModemSendAT("AT+POC=020000\r\n");
- //+POC:0200000069643D3135393930303130313B69703D3235352E3235352E3235352E3235353B7077643D4131303030303542313134313432 len <= 13 + 100
- //id=159900101;ip=255.255.255.255;pwd=A100005B114142
- t=50;
- while(t--)
- {
- if((pMsg->MsgLen = MsgQueueAccept(pMsg->MsgData,sizeof(pMsg->MsgData))))
- {
- if(0==ModemStrCmp((char *)pMsg->MsgData,"+POC:02"))
- {
- sprintf(buf, "id=%lu;",sutProductPara.PSN);
- sprintf(buf2, "ip=%d.%d.%d.%d;",sutNewSegmentPara.PIP[0],sutNewSegmentPara.PIP[1],sutNewSegmentPara.PIP[2],sutNewSegmentPara.PIP[3]);
- strcat(buf, buf2);
- sprintf(buf2, "pwd=%s;",sutNewSegmentPara.HARDID);
- strcat(buf, buf2);
- AscStrToHexStr(buf,buf1);
- for(j=0;j<strlen(pMsg->MsgData);j++) if(pMsg->MsgData[j]== '\r') pMsg->MsgData[j] = 0;
- if(0!=strcasecmp((char *)&pMsg->MsgData[13],buf1))
- {
- ModemSendAT("AT+POC=010000");
- ModemSendAT(buf1);
- ModemSendAT("\r\n");
- return 1;
- }else return 0;
- }
- }else os_dly_wait(1);
- }
- }
- return 0;
- }
- void ModemInfo(void)
- {
- int t;
- int i,len,ver,j;
- char bufTemp[30],version[10],type,countFlag;
- SUT_MODEM_AT_MSG *pMsg=&sutAtmPro;
- RunMake(THIS_FILE_ID);
- ver=0;
-
- SlwTrace(INF, "[03]ModemInfo:",1);
- type=0;
- for(i=0;i<10;i++)
- {
- if(type==0) ModemSendAT("ATI\r\n");//模块型号
- else ModemSendAT("AT+LCTSW\r\n");//版本信息
- t=50;
- while(t--)
- {
- if((pMsg->MsgLen = MsgQueueAccept(pMsg->MsgData,sizeof(pMsg->MsgData))))
- {
- if(type==0)
- {//Manufacturer: LONGSUNG
- //Model: U9507C
- if(0==ModemStrCmp((char *)pMsg->MsgData,"Manufacturer:")) SlwTrace(INF, pMsg->MsgData, 0);
- else if(0==ModemStrCmp((char *)pMsg->MsgData,"Model:"))
- {
- SlwTrace(INF, pMsg->MsgData, 0);
- type ++;
- break;
- }
- }else{
- //SoftwareVersion: LLA0029.1.2_M005
- //InnerVersion: LLA0029_0016_1.0.57_L0901_EFS2.6
- //AP: LLA0029_0016_0.0.57_L0901_M005
- if(0==ModemStrCmp((char *)pMsg->MsgData,"SoftwareVersion:")) SlwTrace(INF, pMsg->MsgData, 0);
- else if(0==ModemStrCmp((char *)pMsg->MsgData,"AP:"))
- {
- SlwTrace(INF, pMsg->MsgData, 0);
- return;
- }
- else if(0==ModemStrCmp((char *)pMsg->MsgData,"InnerVersion:"))
- {
- SlwTrace(INF, pMsg->MsgData, 0);
- countFlag=0;
- for(j=0;j<strlen(pMsg->MsgData);j++)
- {
- if(pMsg->MsgData[j] == '_')
- {
- countFlag++;
- if(countFlag == 1)
- {
- version[0] = pMsg->MsgData[j+3];
- version[1] = pMsg->MsgData[j+4];
- }else if(countFlag == 3)
- {
- version[2] = pMsg->MsgData[j+2];
- version[3] = pMsg->MsgData[j+3];
- version[4] = pMsg->MsgData[j+4];
- version[5] = pMsg->MsgData[j+5];
- version[6] = 0;
- sprintf(bufTemp, "[03]ModemVer:%s",version);
- SlwTrace(INF, bufTemp, 1);
- g_iModemVer=atoi(version);
- }
- }
- }
- }
- }
- }else os_dly_wait(1);
- }
- }
- }
- void ModemPocVersionCheck(void)
- {
- char bufTemp[40];
- short t,i,len,ver,j;
- SUT_MODEM_AT_MSG *pMsg=&sutAtmPro;
- for(i=0;i<5;i++)
- {
- t=50;
- ModemSendAT("AT+POC_VER?\r\n");
- while(t--)
- {
- if((pMsg->MsgLen = MsgQueueAccept(pMsg->MsgData,sizeof(pMsg->MsgData))))
- {
- if(0==ModemStrCmp((char *)pMsg->MsgData,"+POC_VER:"))
- {
- len = strlen(pMsg->MsgData);
- j=0;
- for(i=0;i<len;i++)
- {
- if(pMsg->MsgData[i] == '\r')
- {
- bufTemp[j]=0;
- ver=atoi(bufTemp);
- sprintf(bufTemp,"[04]POCver:%d<->%s", ver,pMsg->MsgData);
- SlwTrace(INF, bufTemp,0);
- g_iPocVer=ver;
- return;
- }else if(pMsg->MsgData[i] >= '0' && pMsg->MsgData[i] <= '9') bufTemp[j++]=pMsg->MsgData[i];
- }
- }
- }else
- os_dly_wait(1);
- }
- }
- sprintf(bufTemp,"[04]PocVer=%d", ver);
- SlwTrace(INF, bufTemp, 1);
- }
- int ModemCheckUIM(void)
- {
- unsigned char t,round=0;
- int i,len,ver;
- char cmd[10];
- SUT_MODEM_AT_MSG *pMsg=&sutAtmPro;
- RunMake(THIS_FILE_ID);
- ver=0;
- for(i=0;i<30;i++)
- {
- t=50;
- if(round==0)
- {
- round=1;
- ModemSendAT("AT+QCPIN?\r\n");
- sprintf(cmd, "+QCPIN:");
- }else{
- round=0;
- ModemSendAT("AT+CPIN?\r\n");
- sprintf(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;
- }
- void M9507CSendTcpData(unsigned char socket, unsigned char *pData, unsigned short len)
- {
- char buf[20];
-
- sprintf(buf, "AT+TCPSEND=%d,%d,",socket, len);
- ModemSendAT(buf);
- ModemSendData(pData, len);
- ModemSendAT("\r\n");
- }
- void MC8332ModemSendTcpData(unsigned char socket,unsigned char *pData,unsigned short len)
- {
- M9507CSendTcpData(socket, pData, len);
- PrintTcpData(pData,len);
- if(socket == GPS_DATA_SOCKET)
- if(g_ucModemSentTcpCt<255)g_ucModemSentTcpCt++;
- if(socket == GPS_DATA_SOCKET)
- sutGpsInfo.isServerLogin = OPEN;
- }
- int ModemGPSStart(void)
- {
- int t;
- int i;
- SUT_MODEM_AT_MSG *pMsg=&sutAtmPro;
- RunMake(THIS_FILE_ID);
- for(i=0;i<5;i++)
- {
- t=100;
- ModemSendAT("AT+GPSSTART\r\n");//此指令一旦设置了一次后,下次会返回ERROR
- while(t--)
- {
- if((pMsg->MsgLen = MsgQueueAccept(pMsg->MsgData,sizeof(pMsg->MsgData))))
- {
- if(0==ModemStrCmp((char *)pMsg->MsgData,"RING") || 0==ModemStrCmp((char *)pMsg->MsgData,"ERROR")){
- return 0;
- }
- }else
- os_dly_wait(1);
- }
- }
- return 1;
- }
- char GPSModeSet(void)
- {
- int t,i;
- SUT_MODEM_AT_MSG *pMsg=&sutAtmPro;
- RunMake(THIS_FILE_ID);
- for(i=0;i<3;i++)
- {
- t=100;
- ModemSendAT("AT+NMEAS?\r\n");
- while(t--)
- {
- if((pMsg->MsgLen = MsgQueueAccept(pMsg->MsgData,sizeof(pMsg->MsgData))))
- {
- if(0==ModemStrCmp((char *)pMsg->MsgData,"+NMEAS:"))
- {
- if(pMsg->MsgData[7] == '0') return 0; //OK
- else ModemSendAT("AT+NMEAS=0\r\n");
- }
- }else
- os_dly_wait(1);
- }
- }
- return 1;
- }
- void ModemApnConfig(void)
- {
- char buf[60],index;
- char buf2[40];
- char i;
- SUT_MODEM_AT_MSG *pMsg=&sutAtmPro;
-
- sprintf(buf, "[11]Accessp:");
- if(sutProductPara.APNApn[0]==0)
- {//接入点为空时不配置,因为模块不支持
- strcat(buf, "unsupport-Empty");
- }else
- {
- sprintf(buf2, "AT+MIPPROFILE=1,\"%s\"\r\n",sutProductPara.APNApn);
- ModemSendAT(buf2);
- sprintf(buf2, "%s",sutProductPara.APNApn);
- strcat(buf,buf2);
- }
- SlwTrace(INF,buf,0);
-
- sprintf(buf, ",Name-Pass:");
- if(sutProductPara.APNName[0] ==0 ||
- sutProductPara.APNPass[0] ==0)
- {//名称或密码为空不配置,因为模块不支持
- strcat(buf, "unsupport-Empty");
- }else
- {
- sprintf(buf2,"AT^PPPCFG=\"%s\",\"%s\"\r\n",sutProductPara.APNName,sutProductPara.APNPass);
- ModemSendAT(buf2);
- sprintf(buf2, "%s,%s",sutProductPara.APNName,sutProductPara.APNPass);
- strcat(buf,buf2);
- }
- SlwTrace(INF,buf,1);
- }
- char WaitModemStart(void)
- {
- int t,i;
- SUT_MODEM_AT_MSG *pMsg=&sutAtmPro;
- SlwTrace(INF, "WaitModemRun:",0);
- for(i=0;i<100;i++)
- {
- t=50;
- ModemSendAT("ATE0\r\n");
- while(t--)
- {
- if((pMsg->MsgLen = MsgQueueAccept(pMsg->MsgData,sizeof(pMsg->MsgData))))
- {
- if(0==ModemStrCmp((char *)pMsg->MsgData,"OK") ||
- 0==ModemStrCmp((char *)pMsg->MsgData,"+POC:START"))
- {
- SlwTrace(INF, "Runing",1);
- return 0;
- }
- }else
- os_dly_wait(1);
- }
- }
- SlwTrace(INF, "TimeOut",1);
- return 1;
- }
- void ModemSetSpeed(void)
- {
- char i,t;
- int Volume;
- SUT_MODEM_AT_MSG *pMsg=&sutAtmPro;
-
- for(i=0;i<5;i++)
- {
- t=50;
- REGO:
- ModemSendAT("AT+LSHTTSSPEED?\r\n");
- while(t--)
- {
- if((pMsg->MsgLen = MsgQueueAccept(pMsg->MsgData,sizeof(pMsg->MsgData))))
- {
- if(0==ModemStrCmp((char *)pMsg->MsgData,"+LSHTTSSPEED:"))
- {
- Volume=atoi(&pMsg->MsgData[13]);
- if(7000 != Volume)
- {
- ModemSendAT("AT+LSHTTSSPEED=-1,7000\r\n");
- os_dly_wait(1);
- goto REGO;
- }
- else
- {
- SlwTrace(INF, "[06]SetTTS Speed Ok",1);
- return;
- }
- }
- }else
- os_dly_wait(1);
- }
- }
- SlwTrace(INF, "[06]SetTTS Speed Failed",1);
- }
- char GetUniStringByID(char *HardIDString)
- {//输出15个字节的字符串
- unsigned char id[12];
- unsigned char string[16];
-
- long long temp;
- short i;
- unsigned char seed;
- if(HardIDString == '\0') return 0;
- GetSTM32ID(id);
- printf("STM32 ID==");
- for(i=0;i<12;i++)printf("%02x",id[i]);
- printf("\r\n");
- for(i=5;i>=0;i--){
- temp <<=8;
- temp |= id[i];
- }
- temp &= 0xffffffffffff;
- printf("temp=%015llu\r\n",temp);
- snprintf(string,sizeof(string),"%015llu",temp);
- for(i=0;i<15;i++) HardIDString[i]=string[i];
- HardIDString[15]='\0';
- //snprintf(HardIDString,16,"%015llu",temp);
- return 1;
- }
- /***********************************************************************************/
|