📄 fntelgen.c
字号:
#include "main.h"
unsigned char fnFindFreeExt(unsigned char mOutNum)
{
if(!Ext1_FunPt)
{
Ext1_NumdialIn=mOutNum; // 1 = Line In 1 2=Line In 2
Ext1_FunPt=15;
Ext1_dialtime=0;
SetBit(ExtTelRingState,cExt1Num);
return 1;
}
if(!Ext2_FunPt)
{
Ext2_NumdialIn=mOutNum; // 1 = Line In 1 2=Line In 2
Ext2_FunPt=15;
Ext2_dialtime=0;
SetBit(ExtTelRingState,cExt2Num);
return 2;
}
if(!Ext3_FunPt)
{
Ext3_NumdialIn=mOutNum; // 1 = Line In 1 2=Line In 2
Ext3_FunPt=15;
Ext3_dialtime=0;
SetBit(ExtTelRingState,cExt3Num);
return 3;
}
if(!Ext4_FunPt)
{
Ext4_NumdialIn=mOutNum; // 1 = Line In 1 2=Line In 2
Ext4_FunPt=15;
Ext4_dialtime=0;
SetBit(ExtTelRingState,cExt4Num);
return 4;
}
if(!Ext5_FunPt)
{
Ext5_NumdialIn=mOutNum; // 1 = Line In 1 2=Line In 2
Ext5_FunPt=15;
Ext5_dialtime=0;
SetBit(ExtTelRingState,cExt5Num);
return 5;
}
if(!Ext6_FunPt)
{
Ext6_NumdialIn=mOutNum; // 1 = Line In 1 2=Line In 2
Ext6_FunPt=15;
Ext6_dialtime=0;
SetBit(ExtTelRingState,cExt6Num);
return 6;
}
return 0;
}
void fnStopOutRing(unsigned char mOutNum)
{
switch(mOutNum)
{
case 1:
Ext1_FunPt=0;
Writesoundway(SigCallID,cX_Ex1,OFF); //连接响铃
ClrBit(ExtTelRingState,cExt1Num);
break;
case 2:
Ext2_FunPt=0;
Writesoundway(SigCallID,cX_Ex2,OFF); //连接响铃
ClrBit(ExtTelRingState,cExt2Num);
break;
case 3:
Ext3_FunPt=0;
Writesoundway(SigCallID,cX_Ex3,OFF); //连接响铃
ClrBit(ExtTelRingState,cExt3Num);
break;
case 4:
Ext4_FunPt=0;
Writesoundway(SigCallID,cX_Ex4,OFF); //连接响铃
ClrBit(ExtTelRingState,cExt4Num);
break;
case 5:
Ext5_FunPt=0;
Writesoundway(SigCallID,cX_Ex5,OFF); //连接响铃
ClrBit(ExtTelRingState,cExt5Num);
break;
case 6:
Ext6_FunPt=0;
Writesoundway(SigCallID,cX_Ex6,OFF); //连接响铃
ClrBit(ExtTelRingState,cExt6Num);
break;
default:
return;
}
}
void fnStopExtRing(unsigned char mExtNum)
{
switch(mExtNum)
{
case 1:
Ext1_FunPt=0; //0 内线空闲
Writesoundway(SigCallID,cX_Ex1,OFF);//断开响铃
ClrBit(ExtTelRingState,cExt1Num);
break;
case 2:
Ext2_FunPt=0; //0 内线空闲
Writesoundway(SigCallID,cX_Ex2,OFF);//断开响铃
ClrBit(ExtTelRingState,cExt2Num);
break;
case 3:
Ext3_FunPt=0; //0 内线空闲
Writesoundway(SigCallID,cX_Ex3,OFF);//断开响铃
ClrBit(ExtTelRingState,cExt3Num);
break;
case 4:
Ext4_FunPt=0; //0 内线空闲
Writesoundway(SigCallID,cX_Ex4,OFF);//断开响铃
ClrBit(ExtTelRingState,cExt4Num);
break;
case 5:
Ext5_FunPt=0; //0 内线空闲
Writesoundway(SigCallID,cX_Ex5,OFF);//断开响铃
ClrBit(ExtTelRingState,cExt5Num);
break;
case 6:
Ext6_FunPt=0; //0 内线空闲
Writesoundway(SigCallID,cX_Ex6,OFF);//断开响铃
ClrBit(ExtTelRingState,cExt6Num);
break;
default:break;
}
}
void fnCutOffExtLineAndLinkToBusy(unsigned char mY4Y5Nm)
{
unsigned char i;
for(i=0;i<cExtTelNum;i++)
{
if(Ext_LineY4Y5Num[i]==mY4Y5Nm)
{
Ext_FunPt[i]=5; // fnExt1_Err
Writesoundway(Connect_Busy,i,ON);
Ext_LineY4Y5Num[i]=0;
}
}
}
void fnStopExtWaitRing(unsigned char mExt_FPt,unsigned char mExtNum)
{
switch(mExtNum)
{
case 1:
if(mExt_FPt==7)
{
Ext1_FunPt=7; //7 fnExt2_LinkExtPhone 内线连内线
Writesoundway(Ext1_LineY4Y5Num,WaitRing,OFF); //断开回铃声
}
else if(mExt_FPt==18)
{
Ext1_FunPt=18;
}
Ext1_dialtime=0;
break;
case 2:
if(mExt_FPt==7)
{
Ext2_FunPt=7; //7 fnExt2_LinkExtPhone 内线连内线
Writesoundway(Ext2_LineY4Y5Num,WaitRing,OFF); //断开回铃声
}
else if(mExt_FPt==18)
{
Ext2_FunPt=18;
}
Ext2_dialtime=0;
break;
case 3:
if(mExt_FPt==7)
{
Ext3_FunPt=7; //7 fnExt2_LinkExtPhone 内线连内线
Writesoundway(Ext3_LineY4Y5Num,WaitRing,OFF); //断开回铃声
}
else if(mExt_FPt==18)
{
Ext3_FunPt=18;
}
Ext3_dialtime=0;
break;
case 4:
if(mExt_FPt==7)
{
Ext4_FunPt=7; //7 fnExt2_LinkExtPhone 内线连内线
Writesoundway(Ext4_LineY4Y5Num,WaitRing,OFF); //断开回铃声
}
else if(mExt_FPt==18)
{
Ext4_FunPt=18;
}
Ext4_dialtime=0;
break;
case 5:
if(mExt_FPt==7)
{
Ext5_FunPt=7; //7 fnExt2_LinkExtPhone 内线连内线
Writesoundway(Ext5_LineY4Y5Num,WaitRing,OFF); //断开回铃声
}
else if(mExt_FPt==18)
{
Ext5_FunPt=18;
}
Ext5_dialtime=0;
break;
case 6:
if(mExt_FPt==7)
{
Ext6_FunPt=7; //7 fnExt2_LinkExtPhone 内线连内线
Writesoundway(Ext6_LineY4Y5Num,WaitRing,OFF); //断开回铃声
}
else if(mExt_FPt==18)
{
Ext6_FunPt=18;
}
Ext6_dialtime=0;
break;
default:break;
}
}
void fnExtLinkMusic(unsigned char mExtNum)
{
switch(mExtNum)
{
case 1:
Ext1_FunPt=13; //13 连音乐
Writesoundway(Ext1_LineY4Y5Num,cX_Music,ON); //连接音乐
break;
case 2:
Ext2_FunPt=13; //13 连音乐
Writesoundway(Ext2_LineY4Y5Num,cX_Music,ON); //连接音乐
break;
case 3:
Ext3_FunPt=13; //13 连音乐
Writesoundway(Ext3_LineY4Y5Num,cX_Music,ON); //连接音乐
break;
case 4:
Ext4_FunPt=13; //13 连音乐
Writesoundway(Ext4_LineY4Y5Num,cX_Music,ON); //连接音乐
break;
case 5:
Ext5_FunPt=13; //13 连音乐
Writesoundway(Ext5_LineY4Y5Num,cX_Music,ON); //连接音乐
break;
case 6:
Ext6_FunPt=13; //13 连音乐
Writesoundway(Ext6_LineY4Y5Num,cX_Music,ON); //连接音乐
break;
default:break;
}
}
void fnExtCutOffMusic(unsigned char mExt_FPt,unsigned char mExtNum)
{
switch(mExtNum)
{
case 1:
Ext1_FunPt=mExt_FPt;
Writesoundway(Ext1_LineY4Y5Num,cX_Music,OFF); //断开音乐
break;
case 2:
Ext2_FunPt=mExt_FPt;
Writesoundway(Ext2_LineY4Y5Num,cX_Music,OFF); //断开音乐
break;
case 3:
Ext3_FunPt=mExt_FPt;
Writesoundway(Ext3_LineY4Y5Num,cX_Music,OFF); //断开音乐
break;
case 4:
Ext4_FunPt=mExt_FPt;
Writesoundway(Ext4_LineY4Y5Num,cX_Music,OFF); //断开音乐
break;
case 5:
Ext5_FunPt=mExt_FPt;
Writesoundway(Ext5_LineY4Y5Num,cX_Music,OFF); //断开音乐
break;
case 6:
Ext6_FunPt=mExt_FPt;
Writesoundway(Ext6_LineY4Y5Num,cX_Music,OFF); //断开音乐
break;
default:break;
}
}
void fnConnectionOutLine(unsigned char cNumIn ,unsigned char mExtNum)
{
switch(cNumIn)
{
case 1:
Out1_FunPt=2;
SetBit(PORTC,Line_LedCtr); //外线提示灯亮
Writesoundway(cY_Outside1,mExtNum,ON); //提机接听
Out1_NumdialOut =mExtNum;
return;
case 2:
Out2_FunPt=2;
SetBit(PORTC,Line2_LedCtr); //外线提示灯亮
Writesoundway(cY_Outside2,mExtNum,ON); //提机接听
Out2_NumdialOut =mExtNum;
return;
default:break;
}
}
void fnCutOffLineIn(unsigned char mLineNm) // 1= Line 1 , 2=Line 2
{
unsigned char i;
if (mLineNm == 1)
{
for (i=0; i<16; i++)
{
Writesoundway(cY_Outside1,i,OFF);
}
ClrBit(PORTC,Line_LedCtr); //外线提示灯亮
ClrBit(OutsideBusy_Free,0); //外线释放
Out1_FunPt=0;
}
else if (mLineNm == 2)
{
for (i=0; i<16; i++)
{
Writesoundway(cY_Outside2,i,OFF);
}
ClrBit(PORTC,Line2_LedCtr); //外线提示灯亮
ClrBit(OutsideBusy_Free,1); //外线释放
Out2_FunPt=0;
}
}
void fnCutOffY4Y5(unsigned char mY4Y5Nm) // 4= Y4 , 5= Y5
{
unsigned char i;
if (mY4Y5Nm == 4)
{
for (i=0; i<16; i++)
{
Writesoundway(Connect_Ext1,i,OFF);
}
ClrBit(OutsideBusy_Free,4); //Y4Y5被占
}
else if (mY4Y5Nm == 5)
{
for (i=0; i<16; i++)
{
Writesoundway(Connect_Ext2,i,OFF);
}
ClrBit(OutsideBusy_Free,5); //Y4Y5被占
}
}
void fnCutOffDTMF(unsigned char mDTMFNm) // 1= DTMF 1 , 2=DTMF 2
{
unsigned char i;
if (mDTMFNm==1)
{
for (i=0; i<8; i++)
{
Writesoundway(i,cX_DTMF1,OFF);
}
ClrBit(DTMFBusy_Free,0); //DTMF释放
}
else if (mDTMFNm==2)
{
for (i=0; i<8; i++)
{
Writesoundway(i,cX_DTMF2,OFF);
}
ClrBit(DTMFBusy_Free,1); //DTMF释放
}
}
unsigned char fnLinkLineIn_Ext(unsigned char mExtenNm) //mExtenNm 0-5 return: 0:Unsuccess 1= Line 1 2= Line 2
{
if(bit_is_clear(OutsideBusy_Free,cOut1Num)) //查找空闲外线
{
SetBit(OutsideBusy_Free,cOut1Num); //外线被占
SetBit(PORTC,(Line_LedCtr)); //外线提示灯亮
Writesoundway(cY_Outside1,mExtenNm,ON);
return (1);
}
if(bit_is_clear(OutsideBusy_Free,cOut2Num)) //查找空闲外线
{
SetBit(OutsideBusy_Free,cOut2Num); //外线被占
SetBit(PORTC,(Line2_LedCtr)); //外线提示灯亮
Writesoundway(cY_Outside2,mExtenNm,ON);
return (2);
}
return 0;
}
unsigned char fnLinkExtLineY4Y5(unsigned char mExtenNm) //mExtenNm 0-5 return: 0:Unsuccess 4= Y4 5= Y5
{
if(bit_is_clear(OutsideBusy_Free,4)) //查找空闲外线
{
SetBit(OutsideBusy_Free,4); //外线被占
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -