Академический Документы
Профессиональный Документы
Культура Документы
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);
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_Hangup(void) { }
#endif // __EXAMPLE_MULTITASK__