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; } } }
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; } } }
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; } } }
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; } } }
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; } } }
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(¤t_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; } } }