Вы находитесь на странице: 1из 5

#ifdef __EXAMPLE_MULTITASK__ #include "ql_appinit.h" #include "ql_interface.h" #include "ql_type.h" #include "ql_trace.h" #include "ql_audio.h" #include "ql_timer.

h" #include "ql_stdlib.h" #include "ql_pin.h" #include "Ql_multitask.h" #include "Ql_tcpip.h" #include "ql_fcm.h" #include "ql_filesystem.h" #include "ql_error.h" #include "ql_fota.h" #include "ql_sms.h" #include "ql_call.h" #include "ql_tts.h"

QlPinParameter pinparameter_GPIO1; QlPinParameter pinparameter_KBC4; QlPinParameter pinparameter_KBC3; unsigned int sw1=0; unsigned int sw2=0; char buffer[200]; char *pData= NULL; char *p=NULL; char Number[11]="9402882273";// PUT YOUR NUMBER HERE void Callback_Dial(s32 result); void Callback_Ring(u8* coming_call_num); void Callback_Hangup(void); Ql_STCall_Callback call_cb = { Callback_Dial, Callback_Ring, Callback_Hangup };

/************************************************************** * main task ***************************************************************/ QlEventBuffer flSignalBuffer; // Set flSignalBuffer to global variables may as well, otherwise it will occupy stack space void ql_entry() { bool keepGoing = TRUE; Ql_SMSInitialize(); Ql_SetSMSFormat(QL_SMS_FMT_TXT);

Ql_OpenModemPort(ql_md_port1); Ql_SetDebugMode(BASIC_MODE); Ql_SetPortOwner(ql_uart_port1,ql_main_task); Ql_SetUartDCBConfig(ql_uart_port1, 9600, 8, 1, 0); Ql_UartClrTxBuffer(ql_uart_port1); Ql_UartClrRxBuffer(ql_uart_port1); Ql_Call_Initialize(&call_cb); pinparameter_GPIO1.pinconfigversion = QL_PIN_VERSION; pinparameter_GPIO1.pinparameterunion.gpioparameter.pinpullenable = QL_PINPULLENABLE_DISABLE; pinparameter_GPIO1.pinparameterunion.gpioparameter.pindirection = QL_PINDIRECTION_OUT; pinparameter_GPIO1.pinparameterunion.gpioparameter.pinlevel = QL_PINLEVEL_HIGH; Ql_pinSubscribe(QL_PINNAME_M10_GPIO1, QL_PINMODE_1, &pinparameter_GPIO1); Ql_pinWrite(QL_PINNAME_M10_GPIO1, QL_PINLEVEL_HIGH); pinparameter_KBC4.pinconfigversion = QL_PIN_VERSION; pinparameter_KBC4.pinparameterunion.gpioparameter.pinpullenable = QL_PINPULLENABLE_DISABLE; pinparameter_KBC4.pinparameterunion.gpioparameter.pindirection = QL_PINDIRECTION_OUT; pinparameter_KBC4.pinparameterunion.gpioparameter.pinlevel = QL_PINLEVEL_LOW; Ql_pinSubscribe(QL_PINNAME_KBC4, QL_PINMODE_2, &pinparameter_KBC4); Ql_pinWrite(QL_PINNAME_KBC4, QL_PINLEVEL_HIGH);

pinparameter_KBC3.pinconfigversion = QL_PIN_VERSION; pinparameter_KBC3.pinparameterunion.gpioparameter.pinpullenable = QL_PINPULLENABLE_DISABLE; pinparameter_KBC3.pinparameterunion.gpioparameter.pindirection = QL_PINDIRECTION_OUT; pinparameter_KBC3.pinparameterunion.gpioparameter.pinlevel = QL_PINLEVEL_HIGH; Ql_pinSubscribe(QL_PINNAME_KBC3, QL_PINMODE_2, &pinparameter_KBC3); Ql_pinWrite(QL_PINNAME_KBC3, QL_PINLEVEL_HIGH); 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'; Ql_pinWrite(QL_PINNAME_KBC3, QL_PINLEVEL_LOW); p = Ql_strstr(pData,"1"); if (p) { sw1++; Ql_memset(buffer, 0x0, sizeof(buffer)); Ql_sprintf(buffer, "SW1 COUNT=%d\r\n,SW2 COUNT=%d",sw1,sw2); Ql_SendTextSMS((u8*)Number, (u8*)buffer); Ql_pinWrite(QL_PINNAME_M10_GPIO1, QL_PINLEVEL_LOW); Ql_pinWrite(QL_PINNAME_KBC4, QL_PINLEVEL_HIGH); Ql_Sleep(500); } p = Ql_strstr(pData,"2"); if (p) { sw2++; Ql_memset(buffer, 0x0, sizeof(buffer)); Ql_sprintf(buffer, "SW1 COUNT=%d\r\n,SW2 COUNT=%d",sw1,sw2); Ql_SendTextSMS((u8*)Number, (u8*)buffer); Ql_pinWrite(QL_PINNAME_M10_GPIO1, QL_PINLEVEL_HIGH); Ql_pinWrite(QL_PINNAME_KBC4, QL_PINLEVEL_LOW);

Ql_Sleep(500); } Ql_Sleep(500); Ql_pinWrite(QL_PINNAME_KBC3, QL_PINLEVEL_HIGH); break; } default: break; } } }

void Callback_Ring(u8* coming_call_num) { Ql_memset(buffer, 0x0, sizeof(buffer)); Ql_sprintf(buffer, "ATH\n"); Ql_SendToModem(ql_md_port1, (u8 *)buffer, Ql_strlen(buffer)); Ql_Sleep(500); Ql_memset(buffer, 0x0, sizeof(buffer)); Ql_sprintf(buffer, "SW1 COUNT=%d\r\n,SW2 COUNT=%d",sw1,sw2); Ql_SendTextSMS((u8*)coming_call_num, (u8*)buffer); }

void Callback_Dial(s32 result) { }

void Callback_Hangup(void) { }

#endif // __EXAMPLE_MULTITASK__

Вам также может понравиться