void ql_entry()
{
    bool                    keepGoing = TRUE;
    QlEventBuffer   flSignalBuffer;
    s32 period = 10;
    char buffer[100];
    char *pData, *p;

    Ql_SetDebugMode(BASIC_MODE);   
    Ql_DebugTrace("keyboard: ql_entry\r\n");
    Ql_OpenModemPort(ql_md_port1);	   

    queryPinStatus();
    
    while(keepGoing)
    {
        Ql_GetEvent(&flSignalBuffer);
        switch(flSignalBuffer.eventType)
        {
            case EVENT_KEY:
            {
                Key_Event* pKeyEvt = &flSignalBuffer.eventData.key_evt;
                Ql_sprintf(buffer, "\r\nEVENT_KEY: key_val(%x), isPressed=%d\r\n", pKeyEvt->key_val, pKeyEvt->isPressed);
                Ql_SendToUart(ql_uart_port1, (u8*)buffer, Ql_strlen(buffer));  
                break;
            }

            case EVENT_POWERKEY:
            {
                Powerkey_Event* pPwrkeyEvt = &flSignalBuffer.eventData.powerkey_evt;
                char* pwrKeyOn = "POWERKEY_ON";
                char* pwrKeyOff = "POWERKEY_OFF";
                if (POWERKEY_ON == pPwrkeyEvt->powerkey)
                {
                    Ql_sprintf(buffer, "\r\nEVENT_KEY: POWERKEY_ON");
                }
                else
                {
                    Ql_sprintf(buffer, "\r\nEVENT_KEY: POWERKEY_OFF");
                }
                if (pPwrkeyEvt->isPressed)
                {
                    Ql_sprintf(buffer + Ql_strlen(buffer), ", Press Key Down\r\n");
                }
                else
                {
                    Ql_sprintf(buffer + Ql_strlen(buffer), ", Release Key\r\n");
                }
                Ql_SendToUart(ql_uart_port1, (u8*)buffer, Ql_strlen(buffer));  
                break;
            }

            default:
                break;
        }
    }
}
예제 #2
0
void ql_entry()
{
	bool           keepGoing = TRUE;
	QlEventBuffer    flSignalBuffer;

	Ql_DebugTrace("ql_entry ");
	Ql_SetDebugMode(BASIC_MODE);   

        //Customer_Lib_Interface1((void*)&flSignalBuffer, 0, sizeof(QlEventBuffer));
        //Customer_Lib_Interface2();
         
	while(keepGoing)
	{	
		Ql_GetEvent(&flSignalBuffer);
		switch(flSignalBuffer.eventType)
		{

			default:
				break;
		}
	}
}
void ql_entry()
{
    bool           keepGoing = TRUE;
    QlEventBuffer  flSignalBuffer;
    s32 period = 10;

    Ql_SetDebugMode(BASIC_MODE);   
    Ql_DebugTrace("transpass: ql_entry\r\n");
    Ql_OpenModemPort(ql_md_port1);       

    while(keepGoing)
    {    
        Ql_GetEvent(&flSignalBuffer);
        switch(flSignalBuffer.eventType)
        {
            case EVENT_MODEMDATA:
            {                
                Ql_DebugTrace("\r\nEVENT_MODEMDATA type=%d \r\n",flSignalBuffer.eventData.modemdata_evt.type);
                Ql_DebugTrace("\r\nmodemdata =%s\r\n",flSignalBuffer.eventData.uartdata_evt.data);    
                //if (flSignalBuffer.eventData.modemdata_evt.type==DATA_AT)
                Ql_SendToUart(ql_uart_port1,(u8*)flSignalBuffer.eventData.uartdata_evt.data,flSignalBuffer.eventData.uartdata_evt.len);    
                break;
            }

            case EVENT_UARTDATA:
            {            
                Ql_DebugTrace("\r\nEVENT_UARTDATA PORT=%d\r\n",flSignalBuffer.eventData.uartdata_evt.port);
                Ql_DebugTrace("\r\nuart data =%s\r\n",flSignalBuffer.eventData.uartdata_evt.data);    
                Ql_SendToModem(ql_md_port1,(u8*)flSignalBuffer.eventData.uartdata_evt.data,flSignalBuffer.eventData.uartdata_evt.len);    
                break;            
            }
            
            default:
                break;
        }
    }
}
예제 #4
0
void ql_entry()
{
    bool           keepGoing = TRUE;
    QlEventBuffer  flSignalBuffer;
    s32 period = 10;

    Ql_DebugTrace("at: ql_entry\r\n");
    
    Ql_SetDebugMode(BASIC_MODE);   
    Ql_OpenModemPort(ql_md_port1);       

    Ql_memset(atbuffer,0,100);
    //Ql_sprintf((char *)atbuffer,"AT+QLOCPU=0\n");
    Ql_sprintf((char *)atbuffer,"AT+CPIN?\n");
    Ql_SendToModem(ql_md_port1,atbuffer,Ql_strlen((char*)atbuffer));    
         
    while(keepGoing)
    {    
        Ql_GetEvent(&flSignalBuffer);
        switch(flSignalBuffer.eventType)
        {
            case EVENT_TIMER:
            {
                Ql_sprintf((char *)buffer,"\r\nTimer expired\r\n");
                Ql_SendToUart(ql_uart_port1, (u8*)buffer,Ql_strlen(buffer));

                Ql_memset(atbuffer,0,100);
                Ql_sprintf((char *)atbuffer,"AT+QAUDCH=1\n");
                Ql_SendToModem(ql_md_port1,atbuffer,Ql_strlen((char *)atbuffer));
                //Ql_PlayAudio(QL_AUDIO_EMS_TADA,0);    
                
                break;
            }
            
            case EVENT_MODEMDATA:
            {                
                Ql_DebugTrace("\r\nEVENT_MODEMDATA type=%d \r\n",flSignalBuffer.eventData.modemdata_evt.type);
                if (flSignalBuffer.eventData.modemdata_evt.type==DATA_AT)
                {
                    pData = (char*)flSignalBuffer.eventData.modemdata_evt.data;
                    custom_at_handler();            
                }
                break;
            }
            
            case EVENT_UARTDATA:
            {            
                Ql_DebugTrace("\r\nEVENT_UARTDATA PORT=%d\r\n",flSignalBuffer.eventData.uartdata_evt.port);
                Ql_DebugTrace("\r\nuart data =%s\r\n",flSignalBuffer.eventData.uartdata_evt.data);        
                break;            
            }
            
            case EVENT_SERIALSTATUS:
            {
                bool val = flSignalBuffer.eventData.portstatus_evt.val;
                u8 port = flSignalBuffer.eventData.portstatus_evt.port;
                u8 type = flSignalBuffer.eventData.portstatus_evt.type;

                Ql_DebugTrace("EVENT_SERIALSTATUS port=%d type=%d val=%d\r\n",port,type,val);
                break;
            }
            
            default:
                break;
        }
    }
}
예제 #5
0
void ql_entry(void)
{
    s32 ret;
    bool keepGoing = TRUE;
    bool isContinued = FALSE;
    u32 cnt = 0; 
    
    Ql_DebugTrace("OpenCPU: Hello TTS !\r\n\r\n");    /* Print out messages through DEBUG port */
    Ql_SetDebugMode(BASIC_MODE);    /* Only after the device reboots, 
                                     *  the set debug-mode takes effect. 
                                     */

    // Initialize TTS, and register callback function
    Ql_TTS_Initialize(&Callback_TTS_Play);
    
    while(keepGoing)
    {
        Ql_GetEvent(&g_event);
        switch(g_event.eventType)
        {
            case EVENT_UARTDATA:
            {
                // TODO: receive and handle data from UART
                ascii* pChar;
                s16  strLen;
                PortData_Event* pDataEvt = (PortData_Event*)&g_event.eventData.uartdata_evt;

                /* Change audio path (Command: audio path=0/1/2)
                *  0 = the main audio path
                *  1 = earphone audio path
                *  2 = loudspeaker audio path
                */ 
                Ql_memset(g_buffer, 0x0, sizeof(g_buffer));
                strLen = Ql_sprintf(g_buffer, "audio path=");
                pChar = Ql_strstr((char*)pDataEvt->data, g_buffer);
                if (pChar)
                {
                    u8 audPath;
                    char* p1;
                    char* p2;
                    Ql_DebugTrace((char*)pDataEvt->data);
                    p1 = Ql_strstr((char*)pDataEvt->data, "=");
                    p2 = Ql_strstr((char*)pDataEvt->data, "\r\n");
                    Ql_memset(g_buffer, 0x0, sizeof(g_buffer));
                    memcpy(g_buffer, p1 + 1, p2 - p1 -1);
                    if (Ql_strcmp(g_buffer, "1") == 0)
                    {
                        audPath = QL_AUDIO_PATH_HEADSET;
                    }
                    else if (Ql_strcmp(g_buffer, "2") == 0)
                    {
                        audPath = QL_AUDIO_PATH_LOUDSPEAKER;
                    }
                    else
                    {
                        audPath = QL_AUDIO_PATH_NORMAL;
                    }
                    if (!Ql_VoiceCallChangePath(audPath))
                    {
                        Ql_DebugTrace("Fail to change audio path.\r\n");
                    }
                    else
                    {
                        Ql_DebugTrace("Change audio path to %d.\r\n", audPath);
                    }
                    break;
                }

                // Start tts speech (Command: start tts=...)
                strLen = Ql_sprintf(g_buffer, "start tts=");
                ret = Ql_strncmp((char*)pDataEvt->data, g_buffer, strLen);
                if (0 == ret)
                {
                    char* pCh = NULL;
                    pCh = Ql_strstr((char*)pDataEvt->data, "=");
                    if (pCh != NULL)
                    {
                        Ql_memset(g_buffer, 0x0, sizeof(g_buffer));
                        Ql_strncpy(g_buffer, pCh + 1, pDataEvt->len - (pCh - (char*)pDataEvt->data + 1) - 2);
                        Ql_DebugTrace("Ql_TTS_Play(), len=%d\r\n", Ql_strlen(g_buffer));
                        ret = Ql_TTS_Play((u8*)g_buffer, sizeof(g_buffer));
                        if (ret < 0)
                        {
                            Ql_DebugTrace("Fail to play TTS.\r\n");
                            break;
                        }
                        else
                        {
                            Ql_DebugTrace("Playing finished.\r\n");
                        }
                    }
                    break;
                }
                
                // Stop TTS (Command: stop tts)
                Ql_memset(g_buffer, 0x0, Ql_strlen(g_buffer));
                strLen = Ql_sprintf(g_buffer, "stop tts\r\n");
                ret = Ql_strncmp((char*)pDataEvt->data, g_buffer, strLen);
                if (0 == ret)
                {
                    Ql_DebugTrace(g_buffer);
                    Ql_TTS_Stop();
                    break;
                }
                
                // Query TTS' status (Command: tts?)
                Ql_memset(g_buffer, 0x0, Ql_strlen(g_buffer));
                strLen = Ql_sprintf(g_buffer, "tts?\r\n");
                ret = Ql_strncmp((char*)pDataEvt->data, g_buffer, strLen);
                if (0 == ret)
                {
                    Ql_DebugTrace(g_buffer);
                    ret = Ql_TTS_Query();
                    switch (ret)
                    {
                    	case TTS_STATUS_IDLE:
                            Ql_DebugTrace("TTS: idle\r\n");
                    	    break;
                    	case TTS_STATUS_PLAYING:
                    	    Ql_DebugTrace("TTS: playing\r\n");
                    	    break;
                    	default:
                    	    Ql_DebugTrace("Fail to query TTS' status. Error code: %d\r\n", ret);
                    	    break;
                    }
                    break;
                }

                // Set volume (Command: tts vol=0..100)
                Ql_memset(g_buffer, 0x0, sizeof(g_buffer));
                strLen = Ql_sprintf(g_buffer, "tts vol=");
                pChar = Ql_strstr((char*)pDataEvt->data, g_buffer);
                if (pChar)
                {
                    u8 ttsVol;
                    char* p1;
                    char* p2;
                    Ql_DebugTrace((char*)pDataEvt->data);
                    p1 = Ql_strstr((char*)pDataEvt->data, "=");
                    p2 = Ql_strstr((char*)pDataEvt->data, "\r\n");
                    Ql_memset(g_buffer, 0x0, sizeof(g_buffer));
                    memcpy(g_buffer, p1 + 1, p2 - p1 -1);
                    ttsVol = Ql_atoi(g_buffer);
                    ttsVol = (ttsVol > 100) ? 100 : ttsVol;
                    Ql_SetVolume_Ex(VOL_TYPE_MEDIA, QL_AUDIO_PATH_HEADSET, ttsVol);
                    break;
                }
                
               // Set TTS Style 
               // Set TTS fastest voice speed
                Ql_memset(g_buffer, 0x0, sizeof(g_buffer));
                strLen = Ql_sprintf(g_buffer, "tts Style1=");
                pChar = Ql_strstr((char*)pDataEvt->data, g_buffer);
                if (pChar)
                {
                    u32 ret;
                    ret = Ql_TTS_SetStyle(TTS_PARAM_VOICE_SPEED,TTS_SPEED_MAX);
                    Ql_DebugTrace("Set TTS fastest voice speed.\r\n");
                    break;
                }
                // Set TTS minimized volume.
                Ql_memset(g_buffer, 0x0, sizeof(g_buffer));
                strLen = Ql_sprintf(g_buffer, "tts Style2=");
                pChar = Ql_strstr((char*)pDataEvt->data, g_buffer);
                if (pChar)
                {
                    u32 ret;
                    ret = Ql_TTS_SetStyle(TTS_PARAM_VOLUME,TTS_VOLUME_MIN);
                    Ql_DebugTrace("Set TTS minimized volume.\r\n");
                    break;
                }
                // Set TTS voice effect --eccentric
                Ql_memset(g_buffer, 0x0, sizeof(g_buffer));
                strLen = Ql_sprintf(g_buffer, "tts Style3=");
                pChar = Ql_strstr((char*)pDataEvt->data, g_buffer);
                if (pChar)
                {
                    u32 ret;
                    ret = Ql_TTS_SetStyle(TTS_PARAM_VEMODE,TTS_VEMODE_ECCENTRIC);
                    Ql_DebugTrace("Set TTS voice effect --eccentric.\r\n");
                    break;
                }
            }

            /*************************************
            *  'Case' another EVENT if needed.
            *
            **************************************/
            
            default:
                break;
        }
    }
}
예제 #6
0
void ql_entry()
{
    bool keepGoing = TRUE;
    QlEventBuffer flSignalBuffer;
    s32 period = 10;
    char buffer[100];
    char *pData, *p;

    Ql_SetDebugMode(BASIC_MODE);   
    Ql_DebugTrace("pwm: ql_entry\r\n");
    Ql_OpenModemPort(ql_md_port1);       

    while(keepGoing)
    {    
        Ql_GetEvent(&flSignalBuffer);
        switch(flSignalBuffer.eventType)
        {
            case EVENT_UARTDATA:
            {
                if (flSignalBuffer.eventData.uartdata_evt.len>0)
                {
                    s32 pin;
                    s32 mod = 0;
                    s32 pinpullenable = 0;
                    s32 pindirection = 0;
                    s32 pinlevel = 0;
                    s32 iret;

                    pData = (char*)flSignalBuffer.eventData.uartdata_evt.data;

                    //command-->select QL_PINNAME_BUZZER pin function to mode1, it is Net light function
                    p = Ql_strstr(pData,"1");
                    if (p)
                    {
                        iret = Ql_pinSubscribe(QL_PINNAME_BUZZER, QL_PINMODE_1, NULL);    
                        Ql_sprintf(buffer, "\r\nSubscribe(%d),pin=%d,mod=%d\r\n",iret,QL_PINNAME_BUZZER,QL_PINMODE_1);
                        Ql_SendToUart(ql_uart_port1,(u8*)buffer,Ql_strlen(buffer));  
                        break;
                    }
                    
                    //command-->select QL_PINNAME_BUZZER pin function to mode3, it is pwm function
                    p = Ql_strstr(pData,"3");
                    if (p)
                    {
                        QlPinParameter pinparameter;
                        pinparameter.pinconfigversion = QL_PIN_VERSION;
                        pinparameter.pinparameterunion.pwmparameter.pwmsource = QL_PWMSOURCE_32K;
                        pinparameter.pinparameterunion.pwmparameter.pwmclkdiv = QL_PWMSOURCE_DIV8;
                        pinparameter.pinparameterunion.pwmparameter.lowpulesnumber = 4000;
                        pinparameter.pinparameterunion.pwmparameter.highpulesnumber = 8000;
                        iret = Ql_pinSubscribe(QL_PINNAME_BUZZER, QL_PINMODE_3, &pinparameter);    
                        Ql_sprintf(buffer, "\r\nSubscribe(%d),pin=%d,mod=%d\r\n",iret,QL_PINNAME_BUZZER,QL_PINMODE_3);
                        Ql_SendToUart(ql_uart_port1,(u8*)buffer,Ql_strlen(buffer));  
                        break;
                    }   
                    
                    //command-->unsubscribe
                    p = Ql_strstr(pData,"u");
                    if (p)
                    {
                        iret = Ql_pinUnSubscribe(QL_PINNAME_BUZZER);
                        Ql_sprintf(buffer, "\r\nUnSubscribe(%d),pin=%d\r\n",iret,QL_PINNAME_BUZZER);
                        Ql_SendToUart(ql_uart_port1,(u8*)buffer,Ql_strlen(buffer));  
                        break;
                    } 
                    
                    //command-->control start pwm
                    p = Ql_strstr(pData,"s");
                    if (p)
                    {
                        iret = Ql_pinControl(QL_PINNAME_BUZZER, QL_PINCONTROL_START);
                        Ql_sprintf(buffer, "\r\nStart(%d),pin=%d\r\n",iret,QL_PINNAME_BUZZER);
                        Ql_SendToUart(ql_uart_port1,(u8*)buffer,Ql_strlen(buffer));  
                        break;
                    }
                    
                    //command-->control stop pwm
                    p = Ql_strstr(pData,"t");
                    if (p)
                    {
                        iret = Ql_pinControl(QL_PINNAME_BUZZER, QL_PINCONTROL_STOP);
                        Ql_sprintf(buffer, "\r\nStop(%d),pin=%d\r\n",iret,QL_PINNAME_BUZZER);
                        Ql_SendToUart(ql_uart_port1,(u8*)buffer,Ql_strlen(buffer));  
                        break;
                    }  
                }
                break;            
            }
            
            default:
                break;
        }
    }
}
void ql_entry()
{
    bool           keepGoing = TRUE;
    QlEventBuffer  flSignalBuffer;
    char *p=NULL;
    char *p1=NULL;
    char *pData= NULL;

    Ql_memset(data_p, '*', DATA_LEN);
    
    data_p[0] = 'B';
    data_p[1] = 'e';
    data_p[2] = 'g';
    data_p[3] = 'i';
    data_p[4] = 'n';


    data_p[DATA_LEN-3] = 'E';
    data_p[DATA_LEN-2] = 'n';
    data_p[DATA_LEN-1] = 'D';

    Ql_SetDebugMode(BASIC_MODE);
    Ql_DebugTrace("tcpip: ql_entry\r\n");

    Ql_GprsNetworkInitialize(0,  0, &callback_func);
    Ql_GprsNetworkInitialize(1,  1, &callback_func);

    while(keepGoing)
    {    
        Ql_GetEvent(&flSignalBuffer);
        switch(flSignalBuffer.eventType)
        {
            case EVENT_UARTDATA:
            {
                pData = (char*)flSignalBuffer.eventData.uartdata_evt.data;
                pData[flSignalBuffer.eventData.uartdata_evt.len+1] = '\0';

                /*APNSet=0-1*/
                p = Ql_strstr(pData,"APNSet=");
                if (p)
                {
                    s32 ret;
                    p = Ql_strstr(pData,"=");
                    p += 1;
                    ret = Ql_GprsAPNSet(Ql_atoi(p), (u8*)"CMNET", (u8*)"", (u8*)"", CallBack_GprsAPNSet);
                    OUT_DEBUG(textBuf,"Ql_GprsAPNSet(%d)=%d\r\n",Ql_atoi(p),ret);
                    break;
                }

                /*APNGet=0-1*/
                p = Ql_strstr(pData,"APNGet=");
                if (p)
                {
                    s32 ret;
                    p = Ql_strstr(pData,"=");
                    p += 1;
                    ret = Ql_GprsAPNGet(Ql_atoi(p), CallBack_GprsAPNGet);
                    OUT_DEBUG(textBuf,"Ql_GprsAPNGet(%d)=%d\r\n",Ql_atoi(p),ret);
                    break;
                }

                /*NetworkActive=0-1*/
                p = Ql_strstr(pData,"NetworkActive=");
                if (p)
                {
                    s32 ret;
                    p = Ql_strstr(pData,"=");
                    p += 1;
                    ret = Ql_GprsNetworkActive(Ql_atoi(p));
                    OUT_DEBUG(textBuf,"Ql_GprsNetworkActive(contxtid=%d)=%d\r\n",Ql_atoi(p),ret);
                    break;
                }

                /*NetworkDeactive=0-1*/
                p = Ql_strstr(pData,"NetworkDeactive=");
                if (p)
                {
                    s32 ret;
                    p = Ql_strstr(pData,"=");
                    p += 1;

                    //you must close socket
                    if(socketonly[Ql_atoi(p)] >= 0)
                    {
                        Ql_SocketClose(socketonly[Ql_atoi(p)]);
                        socketonly[Ql_atoi(p)] = 0xFF;
                        send_dataLen[Ql_atoi(p)] = 0;
                    }
                    

                    if(udponly[Ql_atoi(p)] >= 0)
                    {
                        Ql_SocketClose(udponly[Ql_atoi(p)]);
                        udponly[Ql_atoi(p)] = 0xFF;
                        send_dataLen[Ql_atoi(p)] = 0;
                    }

                    ret = Ql_GprsNetworkDeactive(Ql_atoi(p));
                    OUT_DEBUG(textBuf,"Ql_GprsNetworkDeactive(contxtid=%d)=%d\r\n",Ql_atoi(p),ret);
                    break;
                }

                /*NetworkGetState=0-1*/
                p = Ql_strstr(pData,"NetworkGetState=");
                if (p)
                {
                    s32 ret;
                    OpenCpuNetWorkState_e networkstate;
                    u8 ps_status;
                    p = Ql_strstr(pData,"=");
                    p += 1;
                    ret = Ql_GprsNetworkGetState(Ql_atoi(p), &networkstate, &ps_status);
                    OUT_DEBUG(textBuf,"Ql_GprsNetworkGetState(contxtid=%d,networkstate=%d,ps_status=%d)=%d\r\n",Ql_atoi(p),networkstate,ps_status,ret);
                    break;
                }

                /*GetHostIpbyName=0-1,www.quectel.com*/
                p = Ql_strstr(pData,"GetHostIpbyName=");
                if (p)
                {
                    s32 ret;
                    OpenCpuNetWorkState_e networkstate;
                    u8 addr[4*5];
                    u8 addr_len = 0;
                    u8 out_entry_num;
                    u8 ps_status;
                    p = Ql_strstr(pData,"=");
                    p += 1;
                    p1 = Ql_strstr(pData,",");
                    *p1 = '\0';
                    p1 += 1;
                    ret = Ql_GetHostIpbyName(Ql_atoi(p), (u8*)p1, addr, &addr_len, 5, &out_entry_num, CallBack_getipbyname);
                    OUT_DEBUG(textBuf,"Ql_GetHostIpbyName(contxtid=%d,\"%s\")=%d\r\n",Ql_atoi(p),p1,ret);
                    if(ret == 0)
                    {
                        OUT_DEBUG(textBuf,"addr_len=%d,ip=%d.%d.%d.%d,out_entry_num=%d\r\n",addr_len, addr[0],addr[1],addr[2],addr[3],out_entry_num);
                    }
                    else if(ret == -2)
                    {
                        OUT_DEBUG(textBuf,"please wait CallBack_getipbyname\r\n");
                    }
                    else
                    {
                        OUT_DEBUG(textBuf,"Ql_GetHostIpbyName run error\r\n");
                    }

                    break;
                }

                /*socketcreate=0-1*/
                p = Ql_strstr(pData,"socketcreate=");   // tcp socket
                if (p)
                {
                    s32 ret;
                    OpenCpuNetWorkState_e networkstate;
                    u8 ps_status;
                    
                    p = Ql_strstr(pData,"=");
                    p += 1;
                    ret = Ql_SocketCreate(Ql_atoi(p), 0);
                    OUT_DEBUG(textBuf,"Ql_SocketCreate(contxtid=%d)=%d\r\n",Ql_atoi(p),ret);
                    if(ret < 0)
                    {
                        OUT_DEBUG(textBuf,"failed to create socket\r\n");
                        break;
                    }

                   socketonly[Ql_atoi(p)] = ret;

                    ret = Ql_SocketConnect(ret, address, port);
                    OUT_DEBUG(textBuf,"Ql_SocketConnect(ip=%d,%d,%d,%d,port=%d)=%d\r\n",address[0],address[1],address[2],address[3],port,ret);
                    if(ret == 0)
                    {
                        OUT_DEBUG(textBuf,"Ql_SocketConnect connect successed\r\n");
                    }
                    else if(ret == -2)
                    {
                        OUT_DEBUG(textBuf,"please wait CallBack_socket_connect\r\n");
                    }
                    else
                    {
                        OUT_DEBUG(textBuf,"Ql_SocketConnect run error\r\n");
                    }
                    
                    break;
                }

                /*socketclose=0-1*/
                p = Ql_strstr(pData,"socketclose=");
                if (p)
                {
                    s32 ret;
                    p = Ql_strstr(pData,"=");
                    p += 1;
                    if(socketonly[Ql_atoi(p)] == 0xFF)
                    {
                        OUT_DEBUG(textBuf,"socket already close\r\n");
                        break;
                    }
                    ret = Ql_SocketClose(socketonly[Ql_atoi(p)]);
                    OUT_DEBUG(textBuf,"Ql_SocketClose(socket=%d)=%d\r\n",socketonly[Ql_atoi(p)],ret);
                    socketonly[Ql_atoi(p)] = 0xFF;
                    send_dataLen[Ql_atoi(p)] = 0;
                    break;
                }

                /*socketsend=0-1*/
                p = Ql_strstr(pData,"socketsend="); //tcp send
                if (p)
                {
                    s32 ret;
                    p = Ql_strstr(pData,"=");
                    p += 1;
                    if(socketonly[Ql_atoi(p)]  == 0xFF)
                    {
                        OUT_DEBUG(textBuf,"socket not create\r\n");
                        break;
                    }

                    if(send_dataLen[Ql_atoi(p)]  > 0)
                    {
                        OUT_DEBUG(textBuf,"socket now busy, sending\r\n");
                        break;
                    }
                    
                    send_dataLen[Ql_atoi(p)]  = 0;
                    dataLen[Ql_atoi(p)]  = DATA_LEN;
                    do
                    {
                        ret = Ql_SocketSend(socketonly[Ql_atoi(p)] , data_p + send_dataLen[Ql_atoi(p)]  ,dataLen[Ql_atoi(p)]  - send_dataLen[Ql_atoi(p)] );
                        OUT_DEBUG(textBuf,"Ql_SocketSend(socket=%d,dataLen=%d)=%d\r\n",socketonly[Ql_atoi(p)] ,dataLen[Ql_atoi(p)] ,ret);
                        if(ret == (dataLen[Ql_atoi(p)]  - send_dataLen[Ql_atoi(p)] ))
                        {
                            //send compelete
                            send_dataLen[Ql_atoi(p)]  = 0;
                            break;
                        }
                        else if((ret < 0) && (ret == -2)) 
                        {
                            //you must wait CallBack_socket_write, then send data;                                                    
                            break;
                        }
                        else if(ret < 0)
                        {
                            //error , Ql_SocketClose
                            Ql_SocketClose(socketonly[Ql_atoi(p)]);
                            socketonly[Ql_atoi(p)] = 0xFF;
                            send_dataLen[Ql_atoi(p)]  = 0;
                            break;
                        }
                        else if(ret <= dataLen[Ql_atoi(p)] )
                        {
                            send_dataLen[Ql_atoi(p)]  += ret;
                            //continue send
                        }
                    }while(1);
                    break;
                }

                /*socketack=*/
                p = Ql_strstr(pData,"socketack=");  // tcp ack
                if (p)
                {
                    s8 ret;
                    u64 ackedNum;
                    p = Ql_strstr(pData,"=");
                    p += 1;
                    if(socketonly[Ql_atoi(p)] == 0xFF)
                    {
                        OUT_DEBUG(textBuf,"socket not create\r\n");
                        break;
                    }
                    ret = Ql_SocketTcpAckNumber(socketonly[Ql_atoi(p)], &ackedNum);
                    OUT_DEBUG(textBuf,"Ql_SocketTcpAckNumber(socket=%d,ackedNum=%d)=%d\r\n",socketonly[Ql_atoi(p)],ackedNum,ret);
                    break;
                }
                
                /*udpcreate=0-1*/
                p = Ql_strstr(pData,"udpcreate="); //udp socket
                if (p)
                {
                    s32 ret;
                    OpenCpuNetWorkState_e networkstate;
                    u8 ps_status;
                    
                    p = Ql_strstr(pData,"=");
                    p += 1;
                    ret = Ql_SocketCreate(Ql_atoi(p), 1);
                    OUT_DEBUG(textBuf,"Ql_SocketCreate(contxtid=%d)=%d\r\n",Ql_atoi(p),ret);
                    if(ret < 0)
                    {
                        OUT_DEBUG(textBuf,"failed to create socket\r\n");
                        break;
                    }
                    udponly[Ql_atoi(p)] = ret;
                    break;
                }

                /*udpclose=0-1*/
                p = Ql_strstr(pData,"udpclose=");
                if (p)
                {
                    s32 ret;
                    p = Ql_strstr(pData,"=");
                    p += 1;
                    if(udponly[Ql_atoi(p)] == 0xFF)
                    {
                        OUT_DEBUG(textBuf,"socket already close\r\n");
                        break;
                    }
                    ret = Ql_SocketClose(udponly[Ql_atoi(p)]);
                    OUT_DEBUG(textBuf,"Ql_SocketClose(socket=%d)=%d\r\n",udponly[Ql_atoi(p)],ret);
                    udponly[Ql_atoi(p)] = 0xFF;
                    send_dataLen[Ql_atoi(p)] = 0;
                    break;
                }

                /*SendHeartBeat*/
                p = Ql_strstr(pData,"SendHeartBeat");
                if (p)
                {
                    s32 ret;
                    ret = Ql_SwitchHeartBeat(1, 70, 15);
                    OUT_DEBUG(textBuf,"!!!!SET heart Beat =%d!!!!\r\n",ret);
                    break;
                }

                /*udpsend=0-1*/
                p = Ql_strstr(pData,"udpsend=");
                if (p)
                {
                    s32 ret;
                    p = Ql_strstr(pData,"=");
                    p += 1;
                    if(udponly[Ql_atoi(p)]  == 0xFF)
                    {
                        OUT_DEBUG(textBuf,"socket not create\r\n");
                        break;
                    }

                    if(send_dataLen[Ql_atoi(p)]  > 0)
                    {
                        OUT_DEBUG(textBuf,"socket now busy, sending\r\n");
                        break;
                    }
                    
                    send_dataLen[Ql_atoi(p)]  = 0;
                    dataLen[Ql_atoi(p)]  = DATA_LEN;
                    ret = Ql_SocketSendTo(udponly[Ql_atoi(p)], data_p, DATA_LEN, address, port);

                    OUT_DEBUG(textBuf,"Ql_SocketSendTo(socket=%d,dataLen=%d)=%d\r\n",udponly[Ql_atoi(p)] ,DATA_LEN ,ret);
                    if(ret == DATA_LEN)
                    {
                        //send success
                    }
                    else if(ret < 0)
                    {
                        //error , Ql_SocketClose
                        Ql_SocketClose(udponly[Ql_atoi(p)]);
                        udponly[Ql_atoi(p)] = 0xFF;
                        send_dataLen[Ql_atoi(p)]  = 0;
                        OUT_DEBUG(textBuf,"Ql_SocketSendTo send error\r\n");
                    }
                    else
                    {
                        //error , Ql_SocketClose
                        Ql_SocketClose(udponly[Ql_atoi(p)]);
                        udponly[Ql_atoi(p)] = 0xFF;
                        send_dataLen[Ql_atoi(p)]  = 0;
                        OUT_DEBUG(textBuf,"Ql_SocketSendTo send error\r\n");
                    }
                    break;
                }
                break;            
            }
            
            default:
                break;
        }
    }

    Ql_GprsNetworkUnInitialize(0);
    Ql_GprsNetworkUnInitialize(1);
}
/******************************************************************
* Please refer to how to configure the constant 
* 'Customer_user_qlconfig' in ql_customer_config.c
*******************************************************************/
void ql_entry()
{
    bool           keepGoing = TRUE;
    QlEventBuffer  flSignalBuffer;
    s32 period = 10;
    char buffer[100];
    char *pData, *p;
    QlAudioPlayPath path;

    Ql_SetDebugMode(BASIC_MODE);   
    Ql_DebugTrace("headset: ql_entry\r\n");
    Ql_OpenModemPort(ql_md_port1);       
     
    while(keepGoing)
    {    
        Ql_GetEvent(&flSignalBuffer);
        switch(flSignalBuffer.eventType)
        {
            case EVENT_POWERKEY:
            {
                if(flSignalBuffer.eventData.powerkey_evt.powerkey == POWERKEY_ON)
                {
                    Ql_PowerOnAck();
                    Ql_sprintf(buffer, "\r\nNow, Power on System\r\n");
                    Ql_SendToUart(ql_uart_port1,(u8*)buffer,Ql_strlen(buffer));  
                    path = Ql_VoiceCallGetCurrentPath();
                    Ql_sprintf(buffer, "\r\nCurrent Voice call path is %d\r\n",path);
                    Ql_SendToUart(ql_uart_port1,(u8*)buffer,Ql_strlen(buffer));  
                    Ql_VoiceCallChangePath(QL_AUDIO_PATH_LOUDSPEAKER);
                    if(path == QL_AUDIO_PATH_NORMAL)
                    {
                        Ql_sprintf(buffer, "\r\nnow change to QL_AUDIO_PATH_LOUDSPEAKER\r\n");
                        Ql_SendToUart(ql_uart_port1,(u8*)buffer,Ql_strlen(buffer));  
                    }
                }
                else if(flSignalBuffer.eventData.powerkey_evt.powerkey == POWERKEY_OFF)
                {
                    if( flSignalBuffer.eventData.powerkey_evt.isPressed)
                    {
                        Ql_sprintf(buffer, "\r\nNow, Press PWRKEY\r\n");
                        Ql_SendToUart(ql_uart_port1,(u8*)buffer,Ql_strlen(buffer));  
                    }
                    else
                    {
                        Ql_sprintf(buffer, "\r\nNow, Release PWRKEY\r\n");
                        Ql_SendToUart(ql_uart_port1,(u8*)buffer,Ql_strlen(buffer));  
                    }
                }
                break;
            }
                    
            case EVENT_HEADSET:
            {                
                switch(flSignalBuffer.eventData.headset_evt.headsettype)
                {
                    case HEADSET_PLUGOUT:
                        Ql_sprintf(buffer, "\r\nHEADSET_PLUGOUT");
                        Ql_SendToUart(ql_uart_port1,(u8*)buffer,Ql_strlen(buffer));  
                        path = Ql_VoiceCallGetCurrentPath();
                        Ql_sprintf(buffer, "\r\nCurrent Voice call path is %d\r\n",path);
                        Ql_SendToUart(ql_uart_port1,(u8*)buffer,Ql_strlen(buffer));  

                    #if 1                                           
                        if(path != QL_AUDIO_PATH_LOUDSPEAKER)
                        {
                            Ql_sprintf(buffer, "\r\nnow change to QL_AUDIO_PATH_LOUDSPEAKER\r\n");
                            Ql_SendToUart(ql_uart_port1,(u8*)buffer,Ql_strlen(buffer));  
                            Ql_VoiceCallChangePath(QL_AUDIO_PATH_LOUDSPEAKER);
                        }                                            
                    #endif
                    
                        break;
                    case HEADSET_PLUGIN:
                        Ql_sprintf(buffer, "\r\nHEADSET_PLUGIN");
                        Ql_SendToUart(ql_uart_port1,(u8*)buffer,Ql_strlen(buffer));  
                        path = Ql_VoiceCallGetCurrentPath();
                        Ql_sprintf(buffer, "\r\nCurrent Voice call path is %d\r\n",path);
                        Ql_SendToUart(ql_uart_port1,(u8*)buffer,Ql_strlen(buffer));

                    #if 1                                            
                        if(path != QL_AUDIO_PATH_HEADSET)
                        {
                            Ql_sprintf(buffer, "\r\nnow change to QL_AUDIO_PATH_HEADSET\r\n");
                            Ql_SendToUart(ql_uart_port1,(u8*)buffer,Ql_strlen(buffer));  
                            Ql_VoiceCallChangePath(QL_AUDIO_PATH_HEADSET);
                        }                                            
                    #endif
                    
                        break;
                    case HEADSET_KEYPRESS:
                        Ql_sprintf(buffer, "\r\nHEADSET_KEYPRESS");
                        Ql_SendToUart(ql_uart_port1,(u8*)buffer,Ql_strlen(buffer));  
                       break;
                    case HEADSET_KEYRELEASE:
                        Ql_sprintf(buffer, "\r\nHEADSET_KEYRELEASE");
                        Ql_SendToUart(ql_uart_port1,(u8*)buffer,Ql_strlen(buffer));  
                        break;
                    case HEADSET_ADC:
                        Ql_sprintf(buffer, "\r\nHEADSET_ADC:%d",flSignalBuffer.eventData.headset_evt.data1);
                        Ql_SendToUart(ql_uart_port1,(u8*)buffer,Ql_strlen(buffer));  
                        break;
                }
                 break;    
            }
            
            case EVENT_MODEMDATA:
            {                
                //Ql_DebugTrace("\r\nEVENT_MODEMDATA type=%d \r\n",flSignalBuffer.eventData.modemdata_evt.type);
                //Ql_DebugTrace("\r\nmodemdata =%s\r\n",flSignalBuffer.eventData.uartdata_evt.data);    
                //if (flSignalBuffer.eventData.modemdata_evt.type==DATA_AT)
                Ql_SendToUart(ql_uart_port1,(u8*)flSignalBuffer.eventData.uartdata_evt.data,flSignalBuffer.eventData.uartdata_evt.len);    
                break;
            }
            case EVENT_UARTDATA:
            {            
                //Ql_DebugTrace("\r\nEVENT_UARTDATA PORT=%d\r\n",flSignalBuffer.eventData.uartdata_evt.port);
                //Ql_DebugTrace("\r\nuart data =%s\r\n",flSignalBuffer.eventData.uartdata_evt.data);    
                Ql_SendToModem(ql_md_port1,(u8*)flSignalBuffer.eventData.uartdata_evt.data,flSignalBuffer.eventData.uartdata_evt.len);    
                break;                        
            }
            
            default:
                break;
        }
    }
}
예제 #9
0
void ql_entry(void)
{
    bool keepGoing = TRUE;
    s32 ret;
    s32 i;
    char notes[50];
    
    OUT_DEBUG(debug_buffer,"sms: ql_entry\r\n");
    Ql_SetDebugMode(ADVANCE_MODE);
    Ql_OpenModemPort(ql_md_port1);
    Ql_SMS_Callback cb_func={CallBack_NewSMS,CallBack_SendSMS,CallBack_DeleteSMS,                 //public
                                       CallBack_ReadPDUSMS,CallBack_NewFlashPDUSMS,CallBack_PDUStatusReport,               //pdu
                                       CallBack_ReadTextSMS,CallBack_NewFlashTextSMS,CallBack_TextStatusReport};           //text
    ret=Ql_SMSInitialize(&cb_func);
    
    OUT_DEBUG(debug_buffer,"\r\nQl_SMSInitialize=%d\r\n",ret);
    //OUT_DEBUG(debug_buffer,"CallBack_ReadPDUSMS=%X\r\n",CallBack_ReadPDUSMS);
    while(keepGoing)
    {    
        Ql_GetEvent(&g_event);
        switch(g_event.eventType)
        {
            case EVENT_MODEMDATA:
            {
                //TODO: receive and hanle data from CORE through virtual modem port
                PortData_Event* pPortEvt = (PortData_Event*)&g_event.eventData.modemdata_evt;
                OUT_DEBUG(debug_buffer,"%s", pPortEvt->data);
                break;
            }
            
            case EVENT_UARTDATA:
            {
                char* pChar=NULL;
                char* pChar2=NULL;
                PortData_Event* pDataEvt = (PortData_Event*)&g_event.eventData.uartdata_evt;

                //Ql_SetSMSStorage=(0-3)
                Ql_memset(notes, 0x0, sizeof(notes));
                Ql_sprintf(notes, "Ql_SetSMSStorage=");
                pChar = Ql_strstr((char*)pDataEvt->data, notes);
                if (NULL != pChar)
                {
                    u8 storage;
                    pChar+=17;
                    storage=Ql_atoi(pChar);
                    ret=Ql_SetSMSStorage(storage);
                    OUT_DEBUG(debug_buffer,"\r\nQl_SetSMSStorage(storage=%d)=%d\r\n",storage,ret);
                    break;
                }
                
                //Ql_GetSMSStorageInfo
                Ql_memset(notes, 0x0, sizeof(notes));
                Ql_sprintf(notes, "Ql_GetSMSStorageInfo");
                pChar = Ql_strstr((char*)pDataEvt->data, notes);
                if (NULL != pChar)
                {
                    u8 current_mem,used,total;
                    ret=Ql_GetSMSStorageInfo(&current_mem, &used, &total);
                    OUT_DEBUG(debug_buffer,"\r\nQl_GetSMSStorageInfo(current_mem=%d,used=%d,total=%d)=%d\r\n",
                                                            current_mem,used,total,ret);
                    break;
                }

                //Ql_SetInfoCentreNum="<sca number>" eg:Ql_SetInfoCentreNum="+8613800551500"
                Ql_memset(notes, 0x0, sizeof(notes));
                Ql_sprintf(notes, "Ql_SetInfoCentreNum=\"");
                pChar = Ql_strstr((char*)pDataEvt->data, notes);
                if (NULL != pChar)
                {
                    pChar+=21;
                    pChar2 = Ql_strstr(pChar,"\"");
                    *pChar2=0; 
                    ret=Ql_SetInfoCentreNum((u8*)pChar);
                    OUT_DEBUG(debug_buffer,"\r\nQl_SetInfoCentreNum(sca_num=%s)=%d\r\n", pChar,ret);
                    break;
                }
                
                //Ql_GetInfoCentreNum
                Ql_memset(notes, 0x0, sizeof(notes));
                Ql_sprintf(notes, "Ql_GetInfoCentreNum");
                pChar = Ql_strstr((char*)pDataEvt->data, notes);
                if (NULL != pChar)
                {
                    u8 sca_number[40];
                    u8 type;
                    ret=Ql_GetInfoCentreNum(sca_number,&type);
                    OUT_DEBUG(debug_buffer,"\r\nQl_GetInfoCentreNum(sca_number=\"%s\",type=%d)=%d\r\n",
                                                            sca_number,type,ret);
                    break;
                }
                
                //Ql_SetNewSMSDirectToTE=(0,1)
                Ql_memset(notes, 0x0, sizeof(notes));
                Ql_sprintf(notes, "Ql_SetNewSMSDirectToTE=");
                pChar = Ql_strstr((char*)pDataEvt->data, notes);
                if (NULL != pChar)
                {
                    u8 op;
                    pChar+=23;
                    op=Ql_atoi(pChar);
                    ret=Ql_SetNewSMSDirectToTE(op);
                    OUT_DEBUG(debug_buffer,"\r\nQl_SetNewSMSDirectToTE(op=%d)=%d\r\n",op,ret);
                    break;
                }

                //Ql_SetSMSFormat=(0,1)
                Ql_memset(notes, 0x0, sizeof(notes));
                Ql_sprintf(notes, "Ql_SetSMSFormat=");
                pChar = Ql_strstr((char*)pDataEvt->data, notes);
                if (NULL != pChar)
                {
                    u8 format;
                    pChar+=16;
                    format=Ql_atoi(pChar);
                    ret=Ql_SetSMSFormat(format);
                    OUT_DEBUG(debug_buffer,"\r\nQl_SetSMSFormat(format=%d)=%d\r\n",format,ret);
                    break;
                }

                //Ql_ReadSMS=(1,300),(0,1)
                Ql_memset(notes, 0x0, sizeof(notes));
                Ql_sprintf(notes, "Ql_ReadSMS=");
                pChar = Ql_strstr((char*)pDataEvt->data, notes);
                if (NULL != pChar)
                {
                    u16 index;
                    u8 mode;
                    pChar+=11;
                    index=Ql_atoi(pChar);
                    pChar=Ql_strstr(pChar, ",");
                    pChar++;
                    mode=Ql_atoi(pChar);
                    ret=Ql_ReadSMS(index,mode);
                    OUT_DEBUG(debug_buffer,"\r\nQl_ReadSMS(index=%d,mode=%d)=%d\r\n",index,mode,ret);
                    break;
                }
                 
                //Ql_DeleteSMS=(1,300),(0,4)
                Ql_memset(notes, 0x0, sizeof(notes));
                Ql_sprintf(notes, "Ql_DeleteSMS=");
                pChar = Ql_strstr((char*)pDataEvt->data, notes);
                if (NULL != pChar)
                {
                    u16 index;
                    u8 flag;
                    pChar+=13;
                    index=Ql_atoi(pChar);
                    pChar=Ql_strstr(pChar, ",");
                    pChar++;
                    flag=Ql_atoi(pChar);
                    ret=Ql_DeleteSMS(index,flag);
                    OUT_DEBUG(debug_buffer,"\r\nQl_DeleteSMS(index=%d,flag=%d)=%d\r\n",index,flag,ret);
                    break;
                }

                //Ql_ListSMS=(0,4)
                Ql_memset(notes, 0x0, sizeof(notes));
                Ql_sprintf(notes, "Ql_ListSMS=");
                pChar = Ql_strstr((char*)pDataEvt->data, notes);
                if (NULL != pChar)
                {
                    u8 by_status;
                    u16 sms_count=0;                    
                    QlSMSListNode sms_list[MAX_LIST_NODE_COUNT];  //MAX_LIST_NODE_COUNT should be set large enough
                    pChar+=11;
                    by_status=Ql_atoi(pChar);
                    
                    ret=Ql_ListSMS(sms_list, MAX_LIST_NODE_COUNT, by_status, &sms_count);
                    OUT_DEBUG(debug_buffer,"\r\nQl_ListSMS(by_status=%d,node_count=%d,sms_count=%d)=%d\r\n",
                        by_status,MAX_LIST_NODE_COUNT,sms_count,ret);
                    if(0==ret)
                    {
                        for(i=0;i<sms_count;i++)
                        {
                            OUT_DEBUG(debug_buffer,"index=%d,status=%d\r\n",sms_list[i].index,sms_list[i].status);
                        }
                    }
                    break;
                }

                //Ql_GetUnReadSMS=(0,1)
                Ql_memset(notes, 0x0, sizeof(notes));
                Ql_sprintf(notes, "Ql_GetUnReadSMS=");
                pChar = Ql_strstr((char*)pDataEvt->data, notes);
                if (NULL != pChar)
                {
                    u8 mode;
                    pChar+=16;
                    mode=Ql_atoi(pChar);
                    ret=Ql_GetUnReadSMS(mode);
                    OUT_DEBUG(debug_buffer,"\r\nQl_GetUnReadSMS(mode=%d)=%d\r\n",mode,ret);
                    break;
                }
                
                //Ql_SendPDUSMS
                Ql_memset(notes, 0x0, sizeof(notes));
                Ql_sprintf(notes, "Ql_SendPDUSMS");
                pChar = Ql_strstr((char*)pDataEvt->data, notes);
                if (NULL != pChar)
                {
                    u8 pdu_len;
                    u8 pdu_string[]={0x00,       //Set aside for SCA
                                                 0x31,      //FO
                                                 0xff,      //Set aside for MR   
                                                 /*
                                                 0x05,      //DA Length
                                                 0x81,      //DA type
                                                 0x01,      
                                                 0x80,
                                                 0xf6,      //DA:10086
                                                 */
                                                 0x0b,     //DA Length
                                                 0x81,     //DA type
                                                 0x31,
                                                 0x58,
                                                 0x15,
                                                 0x64,
                                                 0x79,
                                                 0xf3,    //DA:13855146973
                                                 
                                                 0x00,      //PID
                                                 0x00,      //DCS
                                                 0x47,      //VP
                                                 0x07,      //UDH
                                                 0xd1,
                                                 0x7a,
                                                 0x79,
                                                 0x4c,
                                                 0x2f,
                                                 0xb3,
                                                 0x01      //UD:Quectel, GSM 7-bit coding
                                             };
                    pdu_len=sizeof(pdu_string);
                    
                    ret=Ql_SendPDUSMS(pdu_string,pdu_len);
                    OUT_DEBUG(debug_buffer,"\r\nQl_SendPDUSMS(pdu_len=%d)=%d\r\n",pdu_len,ret);
                    if(0==ret)
                    {
                        for(i=0;i<pdu_len;i++)
                        {
                            OUT_DEBUG(debug_buffer,"%02X",pdu_string[i]);
                        }
                        OUT_DEBUG(debug_buffer,"\r\n");
                    }
                    break;
                }
                           

                //Ql_SetTextSMSPara=(0-2),(0,1),(0,1)
                Ql_memset(notes, 0x0, sizeof(notes));
                Ql_sprintf(notes, "Ql_SetTextSMSPara=");
                pChar = Ql_strstr((char*)pDataEvt->data, notes);
                if (NULL != pChar)
                {
                    u8 chset,isflashsms,status_report;
                    pChar+=18;
                    chset=Ql_atoi(pChar);
                    pChar=Ql_strstr(pChar, ",");
                    pChar++;
                    isflashsms=Ql_atoi(pChar);
                    pChar=Ql_strstr(pChar, ",");
                    pChar++;
                    status_report=Ql_atoi(pChar);
                    
                    ret=Ql_SetTextSMSPara(chset, isflashsms, status_report);
                    OUT_DEBUG(debug_buffer,
                       "\r\nQl_SetTextSMSPara(chset=%d,isflashsms=%d,status_report=%d)=%d\r\n",chset,isflashsms,status_report,ret);
                    break;
                }
                
                //Ql_SendTextSMS="<phone number>"
                Ql_memset(notes, 0x0, sizeof(notes));
                Ql_sprintf(notes, "Ql_SendTextSMS=\"");
                pChar = Ql_strstr((char*)pDataEvt->data, notes);
                if (NULL != pChar)
                {
                    pChar+=16;
                    pChar2 = Ql_strstr(pChar,"\"");
                    *pChar2=0; 
                    ret=Ql_SendTextSMS((u8*)pChar,(u8*)"Welcome to use Quectel module!",
                        Ql_strlen((u8*)"Welcome to use Quectel module!"));
                    OUT_DEBUG(debug_buffer, "\r\nQl_SendTextSMS(phone_num=\"%s\")=%d\r\n",pChar,ret);
                    break;
                }
                
                Ql_SendToModem(ql_md_port1, (u8*)pDataEvt->data, pDataEvt->len);
                break;
            }
            default:
                break;
        }
    }
}