📄 dial_in.c
字号:
#include "all.h"
/*
60秒等待键入时限
按任何键延长60秒时限
case 1: //撤防
case 2: //布防
case 3: //在家布防
case 4: // /远程监听60秒按* 退出,并嘀嘀两声
case 5: //远程放音// 放音结束时会响嘀嘀两声
case Xing: //* 退出
*/
//远程布防声音
void Ph_Sound_Di() ;
//远程撤防声音
void Ph_Sound_DiDi() ;
//远程在家布防声音
void Ph_Sound_DiDiDi() ;
//系统进行一次撤防(远程)
void Ph_CeFang_Once() ;
void Ph_BuFang_Once();
//系统进行一次在家布防(远程)
void Ph_ZaiJia_BuFang_Once() ;
//远程监听
void Ph_JianTing_Once();
//远程放音
void Ph_Play20s_Once();
/**********************************************************************
**函数原型: void Attand_One_Jing88()
**入口参数:
**出口参数: 无
**返 回 值: 无
**说 明: //远程异地操作的密码确认
//如输入 有错则响"滋滋滋" 3声,允许错15次
//如输入 正确则响"滋滋"2声音
************************************************************************/
uchar YuanCheng_Mima() {
uint Phone_wait_cnt,pnum,cishu;
bit isokk_b=1;
Open_ZhaiJi_P;
Open_NeiRelay_P;
os_wait2(K_TMO, 200);
os_wait2(K_TMO, 200);
os_wait2(K_TMO, 200);
Ph_Sound_DiDi();
En_recieve_dtmfb=1;
cishu=0;
Phone_wait_cnt=0; //电话等15秒
// //delay 60s 延时60秒等待键入DTMF
Xin_dtmfb=0;
pnum=0;
while(++Phone_wait_cnt<1500) {
os_wait2(K_TMO, 5);
if(Xin_dtmfb){
Xin_dtmfb=0;
Phone_wait_cnt=0; //电话等15秒
isokk_b=1;
Phone_wait_cnt= 0; //延长60秒
switch(pnum++)
{
case 0:
if( Xin_dtmf!=(Para_all_True.Mima[0]-'0') ) {
isokk_b=0;
}
break;
case 1:
if( Xin_dtmf!=(Para_all_True.Mima[1]-'0') ) {
isokk_b=0;
}
break;
case 2:
if( Xin_dtmf!=(Para_all_True.Mima[2]-'0') ) {
isokk_b=0;
}
break;
case 3:
if( Xin_dtmf!=(Para_all_True.Mima[3]-'0') ) {
isokk_b=0;
}
break;
case 4:
if( Xin_dtmf!=(Para_all_True.Mima[4]-'0') ) {
isokk_b=0;
}
break;
case 5:
if( Xin_dtmf!=(Para_all_True.Mima[5]-'0') ) {
isokk_b=0;
}
else { //密码输入 正确
En_recieve_dtmfb=0;
Ph_Sound_DiDi();
return(1);
}
break;
case Xing: //退出
Phone_wait_cnt=30000;
break;
break;
default:
pnum=0;
break;
}
if( isokk_b==0) {
if(++cishu>=15) {
//连续5次错误则挂机退出
Phone_wait_cnt=30000;
break;
}
pnum=0;
Ph_Sound_DiDiDi();
}
}
}
if(Phone_wait_cnt>=1500) {
Ph_Sound_DiDi();
Close_ZhaiJi_P;
Close_NeiRelay_P;
}
En_recieve_dtmfb=0;
return(0);
}
/**********************************************************************
**函数原型: void Attand_One_Jing88()
**入口参数:
**出口参数: 无
**返 回 值: 无
**说 明: //远程异地操作
************************************************************************/
void Dial_In_attand(uint T_Shixian) {
uint Phone_wait_cnt;
Open_ZhaiJi_P;
Open_NeiRelay_P;
En_recieve_dtmfb=1;
Phone_wait_cnt=0; //电话等15秒
// //delay 60s 延时60秒等待键入DTMF
Xin_dtmfb=0;
while(++Phone_wait_cnt<T_Shixian) {
os_wait2(K_TMO, 5);
if(Xin_dtmfb){
Xin_dtmfb=0;
Phone_wait_cnt= 0; //延长60秒
switch(Xin_dtmf)
{
case 1: //撤防
Ph_CeFang_Once() ;
break;
case 2: //布防
Ph_BuFang_Once();
break;
case 3: //在家布防
//系统进行一次在家布防(远程)
Ph_ZaiJia_BuFang_Once() ;
break;
case 4:
// /远程监听60秒按* 退出,并嘀嘀两声
Ph_JianTing_Once();
break;
case 5: //听录音内容
//远程放音// 放音结束时会响嘀嘀两声
Ph_Play20s_Once();
break;
case Xing: //* 退出
Phone_wait_cnt=T_Shixian;
break;
default:
break;
}
}
}
En_recieve_dtmfb=0;
Xin_dtmfb=0;
Close_NeiRelay_P;
Close_ZhaiJi_P;
}
/**********************************************************************
**函数原型: void Attand_One_Jing88()
**入口参数:
**出口参数: 无
**返 回 值: 无
**说 明: //远程监听按* 退出,并嘀嘀两声
************************************************************************/
void Ph_JianTing_Once(){
uint i;
Close_JianJing_P; //打开监听
for(i=0;i<6000;i++) { // 延时60秒如有* 则退出
os_wait2(K_TMO, 5);
if(Xin_dtmfb&&Xin_dtmf==Xing){
Xin_dtmfb=0;
break;
}
}
Ph_Sound_DiDi() ;
Open_JianJing_P; //关监听
}
/**********************************************************************
**函数原型: void Attand_One_Jing88()
**入口参数:
**出口参数: 无
**返 回 值: 无
**说 明: //远程放音// 放音结束时会响嘀嘀两声
************************************************************************/
void Ph_Play20s_Once(){
uint i;
Close_En386_P;
Play_isd1420() ;
for(i=0;i<960;i++) { // 延时10秒
os_wait2(K_TMO, 5);
}
Close_isd1420(); // close放音
Ph_Sound_DiDi() ;
}
//==========================================================
/**********************************************************************
**函数原型: void Attand_One_Jing88()
**入口参数:
**出口参数: 无
**返 回 值: 无
**说 明:
************************************************************************/
//系统进行一次撤防(远程)
void Ph_CeFang_Once() {
uchar i;
Spk_cnt=0; //如报警警号响则停止响
Close_Spkk_P; //如报警警号响则停止响
Para_all_True.Work_Mode=0;
Ph_Sound_DiDi();
//得到权限
while(KEY_TX_Right_B==0 ) os_wait2(K_TMO,2);
KEY_TX_Right_B=0;
DaBao_JTX_0x24_And_Send(52, &i, 0); //52 发生撤防
os_wait2(K_TMO,200);
KEY_TX_Right_B=1;
//放弃到权限
}
/**********************************************************************
**函数原型: void Attand_One_Jing88()
**入口参数:
**出口参数: 无
**返 回 值: 无
**说 明:
************************************************************************/
//系统进行一次布防(远程)
void Ph_BuFang_Once() {
uchar i;
Para_all_True.Work_Mode=1;
Ph_Sound_Di();
//得到权限
while(KEY_TX_Right_B==0 ) os_wait2(K_TMO,2);
KEY_TX_Right_B=0;
DaBao_JTX_0x24_And_Send(50, &i, 0); //50 发生布防
os_wait2(K_TMO,200);
KEY_TX_Right_B=1;
//放弃到权限
}
/**********************************************************************
**函数原型: void Attand_One_Jing88()
**入口参数:
**出口参数: 无
**返 回 值: 无
**说 明:
************************************************************************/
//系统进行一次在家布防(远程)
void Ph_ZaiJia_BuFang_Once() {
uchar i;
Para_all_True.Work_Mode=2;
Ph_Sound_DiDiDi() ;
//51 发生在家布防
//得到权限
while(KEY_TX_Right_B==0 ) os_wait2(K_TMO,2);
KEY_TX_Right_B=0;
DaBao_JTX_0x24_And_Send(51, &i, 0); //51 发生在家布防
os_wait2(K_TMO,200);
KEY_TX_Right_B=1;
//放弃到权限
}
/**********************************************************************
**函数原型: void Attand_One_Jing88()
**入口参数:
**出口参数: 无
**返 回 值: 无
**说 明:
************************************************************************/
//远程布防声音
void Ph_Sound_Di() {
EN_PWM;
os_wait2(K_TMO, 110);
os_wait2(K_TMO, 110);
os_wait2(K_TMO, 110);
DIS_PWM;
os_wait2(K_TMO, 200);
}
/**********************************************************************
**函数原型: void Attand_One_Jing88()
**入口参数:
**出口参数: 无
**返 回 值: 无
**说 明:
************************************************************************/
//远程撤防声音
void Ph_Sound_DiDi() {
EN_PWM;
os_wait2(K_TMO, 110);
DIS_PWM;
os_wait2(K_TMO, 110);
EN_PWM;
os_wait2(K_TMO, 110);
DIS_PWM;
os_wait2(K_TMO, 110);
}
/**********************************************************************
**函数原型: void Attand_One_Jing88()
**入口参数:
**出口参数: 无
**返 回 值: 无
**说 明:
************************************************************************/
//远程在家布防声音
void Ph_Sound_DiDiDi() {
EN_PWM;
os_wait2(K_TMO, 110);
DIS_PWM;
os_wait2(K_TMO, 110);
EN_PWM;
os_wait2(K_TMO, 110);
DIS_PWM;
os_wait2(K_TMO, 110);
EN_PWM;
os_wait2(K_TMO, 110);
DIS_PWM;
os_wait2(K_TMO, 110);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -