📄 tskwic.c
字号:
return (APP_NO_ANSWER);
}
else
return(APP_NO_ERROR);
}
else{
if ((INT24U)pMsg == MSG_WICRESP_OK)
return (APP_NO_ERROR);
else if ((INT24U)pMsg == MSG_WICRESP_ERROR)
return (APP_ERROR);
else if ((INT24U)pMsg == MSG_WICRESP_UIMPIN)
return (APP_PIN);
else{
if((INT24U)pMsg < PTR_MAX){
Func_Clear_Msg((INT8U rom *)pMsg);
}
//goto wait;
}
}
}
}
//return (APP_FAIL);
}
INT8U WIC_Init_Module(void){
INT8U chrT;
INT8U ctr;
ctr = 0;
do{chrT = WIC_DoCmd(WICCmd_AT);
}while(chrT != APP_NO_ERROR);
do{
OSTimeDly(100);
chrT = WIC_DoCmd(WICCmd_PIN_STT);
if(chrT == APP_PIN){
//check if local PIN is NULL, if not, make the command; otherwise, return PIN error
chrT = WIC_DoCmd(WICCmd_PINWORD);//chrWICBuffer);
if(chrT == APP_NO_ERROR) break;
else for(;;);
}
ctr++;
if(ctr == 5){
Mod_Rdy = FALSE;
return(1);
}
}while(chrT != APP_NO_ERROR);
OSTimeDly(200);
do{chrT = WIC_DoCmd(WICCmd_E0);
}while(chrT != APP_NO_ERROR);
do{chrT = WIC_DoCmd(WICCmd_SIG_QL);
}while(chrT != APP_NO_ERROR);
do{chrT = WIC_DoCmd(WICCmd_INCALL_TYPE);
}while(chrT != APP_NO_ERROR);
do{chrT = WIC_DoCmd(WICCmd_WIND_SET);
}while(chrT != APP_NO_ERROR);
do{chrT = WIC_DoCmd(WICCmd_CCED);
}while(chrT != APP_NO_ERROR);
do{chrT = WIC_DoCmd(WICCmd_CREG);
}while(chrT != APP_NO_ERROR);
do{chrT = WIC_DoCmd(WICCmd_IFC);
}while(chrT != APP_NO_ERROR);
do{chrT = WIC_DoCmd(WICCmd_CHANNEL);
}while(chrT != APP_NO_ERROR);
do{chrT = WIC_DoCmd(WICCmd_SM_HANDLMODE);
}while(chrT != APP_NO_ERROR);
do{chrT = WIC_DoCmd(WICCmd_CLIP);
}while(chrT != APP_NO_ERROR);
do{chrT = WIC_DoCmd(WICCmd_WSVG);
}while(chrT != APP_NO_ERROR);
do{chrT = WIC_DoCmd(WICCmd_POW_STT);
}while(chrT != APP_NO_ERROR);
do{chrT = WIC_DoCmd(WICCmd_CNMI);
}while(chrT != APP_NO_ERROR);
do{chrT = WIC_DoCmd(WICCmd_SPK_GAIN);
}while(chrT != APP_NO_ERROR);
do{chrT = WIC_DoCmd(WICCmd_WSCL);
}while(chrT != APP_NO_ERROR);
do{
OSTimeDly(100);
chrT = WIC_DoCmd(WICCmd_TIME_GET);
}while(chrT != APP_NO_ERROR);
//WIC_DoCmd(WICCmd_PIN_STT);
//do{chrT = WIC_DoCmd(WICCmd_CCWA);
//}while(chrT != APP_NO_ERROR);
//WIC_DoCmd(WICCmd_TIME_GET);
Mod_Rdy = TRUE;
return(0);
}
void WIC_OffHook(void){
INT8U chrT;
do{chrT = WIC_DoCmd(WICCmd_DIATON_OFF);
}while(chrT != APP_NO_ERROR);
do{chrT = WIC_DoCmd(WICCmd_DIATON_OPEN);
}while(chrT != APP_NO_ERROR);
}
void WIC_OnHook(void){
INT8U chrT;
WIC_DoCmd(WICCmd_ON_HOOK);
do{chrT = WIC_DoCmd(WICCmd_DIATON_OFF);
}while(chrT != APP_NO_ERROR);
}
void WIC_KeySound(INT8U key){
INT8U chrT;
INT8U i,x;
if (key == 0x00) return;
x = key;
if(key >= 0x70) key = '*';
for(i = 0; i<50 ; i++){
chrWICBuffer[i] = WICCmd_DTMFTON_OPEN[i];
if(chrWICBuffer[i] == 0x00) break;
}
chrWICBuffer[12] = key;
do{chrT = WIC_DoCmd(chrWICBuffer);
}while(chrT != APP_NO_ERROR);
if (x == '#' || x == '*' || (x >= '0' && x <= '9')){
for(i = 0; i<50 ; i++){
chrWICBuffer[i] = WICCmd_VTS[i];
if(chrWICBuffer[i] == 0x00) break;
}
chrWICBuffer[7] = key;
do{chrT = WIC_DoCmd(chrWICBuffer);
}while(chrT != APP_NO_ERROR);
}
}
INT8U WIC_Call(INT8U rom * ptrNumber, INT8U len, INT8U type){
INT8U i, chrT,j;
INT8U err;
INT8U rom *pMsg;
do{chrT = WIC_DoCmd(WICCmd_DIATON_OFF);
}while(chrT != APP_NO_ERROR);
for(i = 0; i<50 ; i++){
chrWICBuffer[i] = WICCmd_D[i];
if(chrWICBuffer[i] == 0x00) break;
}
for(j = 0; j< len; j++){
chrWICBuffer[i++] = *ptrNumber++;
}
if(type == VOICE)
chrWICBuffer[i++] = ';';
chrWICBuffer[i++] = '\r';
chrWICBuffer[i++] = '\n';
chrWICBuffer[i] = 0x00;
if(type == VOICE){
WIC_DoCmd(chrWICBuffer);
}
else{//if data, send cmd and wait for MSG_WICRESP_NOCARRIER or MSG_DATA_CONSUCC
WIC_Send_Cmd(chrWICBuffer);
for(;;){
pMsg = OSQPend(peventWIC, 200, &err);
if(err == OS_TIMEOUT){
return(1);
}
else if((INT24U)pMsg == MSG_DATA_CONSUCC){
OSQPost(peventPPPHandler, (OS_EVENT *) MSG_LOW_UP);
return(0);
}
else if((INT24U)pMsg == MSG_WICRESP_NOCARRIER)
return(1);
if((INT24U)pMsg >= PTR_MAX) Func_Clear_Msg(pMsg);
}
}
}
void WIC_SendSM(INT8U rom * ptrData, INT8U len, OS_EVENT * Origin){
INT8U rom * ptrT1;
INT8U rom * ptrT2;
INT8U rom * ptrT3;
INT8U rom * pMsg;
INT8U err,i,chrT;
if(len > ((256 - 12)+1)){ //if the length is too long
OSQPost(Origin, (OS_EVENT *)MSG_SM_SENDFAIL);
return;
}
ptrT1 = OSMemGet(pMemSml,&err);
if(err == OS_NO_ERR){
ptrT2 = OSMemGet(pMemLge,&err);
if(err == OS_NO_ERR){
((MSG_HEAD *)ptrT1)->Msg_ID = MSG_COM0_TRANSMIT;
((MSG_HEAD *)ptrT1)->Origin = peventWIC;
((MSG_HEAD *)ptrT1)->pmemME = pMemSml;
((MSG_HEAD *)ptrT1)->Attached = TRUE;
((MSG_HEAD *)ptrT1)->pMem = ptrT2;
((MSG_HEAD *)ptrT1)->pmemATT = pMemLge;
//
ptrT3 = WICCmd_CMGS;
for(;;){
chrT = *ptrT3++;
if(chrT == 0x00) break;
*ptrT2++ = chrT;
}
*ptrT2++ = '\"';
chrT = *ptrData; //chrT now contains the length of number
ptrData++;
//now copy the number--the number is coded in ASCII
for(i=0;i<chrT;i++){
*ptrT2 = *ptrData;
ptrT2++;
ptrData++;
}
*ptrT2++ = '\"';
*ptrT2++ = '\r'; //add the <CR>
// *ptrT2++ = '\n'; //add the <CR>
//now copy the data
chrT = len - chrT - 1; //the length of data
for(i=0;i<chrT;i++){
*ptrT2 = *ptrData;
ptrT2++;
ptrData++;
}
*ptrT2++ = 0x00; //here is the unicode form of "Ctr-Z"
*ptrT2++ = 0x1a;
//
((MSG_HEAD *)ptrT1)->LenOfAttach = (INT16U)((INT24U)ptrT2 - (INT24U)((MSG_HEAD *)ptrT1)->pMem);
OSQPost(peventHardware, (OS_EVENT *)ptrT1);
return;// (APP_NO_ERROR);
wait2:
pMsg = OSQPend(peventWIC, 500, &err);
if(err == OS_TIMEOUT){
//OSQPost(Origin, (OS_EVENT *)MSG_SM_SENDFAIL);
return;
}
else if ((INT24U)pMsg == MSG_WICRESP_OK){
//OSQPost(Origin, (OS_EVENT *)MSG_SM_SENDSUCC); //SM send successfully
return;
}
else if ((INT24U)pMsg == MSG_WICRESP_ERROR){
OSQPost(Origin, (OS_EVENT *)MSG_SM_SENDFAIL);
return;
}
else{
if((INT24U)pMsg < PTR_MAX){
Func_Clear_Msg(pMsg);
}
goto wait2;
}
return;
}
}
OSQPost(Origin, (OS_EVENT *)MSG_SM_SENDFAIL);
return;
}
void WIC_ChgToCmdMod(void){
OSTimeDly(150); // send nothing for 1.5s
chrWICBuffer[0] = '+';
chrWICBuffer[1] = '+';
chrWICBuffer[2] = '+';
chrWICBuffer[3] = 0x00;
WIC_Send_Cmd(chrWICBuffer);
OSTimeDly(150); // send nothing for 1.5s
}
void WIC_Call3Party(INT8U rom * pn, INT8U len){
INT8U i,j;
for(i = 0; i<50 ; i++){
chrWICBuffer[i] = WICCmd_WFSH[i];
if(chrWICBuffer[i] == 0x00) break;
}
i--;
i--;
chrWICBuffer[i++] = '=';
for(j=0;j<len;j++){
chrWICBuffer[i++] = *pn++;
}
chrWICBuffer[i++]='\r';
chrWICBuffer[i++]='\n';
chrWICBuffer[i]=0;
WIC_DoCmd(chrWICBuffer);
}
//INT8U rom WICCmd_DIATON_OPEN[]={"AT+WTONE=1,1,450,2,0\r\n"};
void WIC_PlayTone(INT8U rom * pd){
INT8U i;
for(i = 0; i<50 ; i++){
chrWICBuffer[i] = WICCmd_DIATON_OPEN[i];
if(chrWICBuffer[i] == 0x00) break;
}
chrWICBuffer[13] = *pd++;
chrWICBuffer[14] = *pd++;
chrWICBuffer[15] = *pd++;
WIC_DoCmd(chrWICBuffer);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -