📄 dvs-alar-out.c
字号:
//DVS-ALAR-OUT.C
#include "DVS-V1.0.H"
//============================================ 位定义 ========================================
bit guc_BitTel ; // 拔打电话标致位
//============================================================================================
//=========================================== 函数定义 =======================================
void AlarOut(); //报警输出
void ComAlarOut(unsigned char auc_ArmNub); //传感器报警时串口报警信息输出
//============================================================================================
//=========================================== 外部定义 =======================================
//函数
extern unsigned char RdEEPROM(unsigned char address); //读EEPROM
extern void WrEEPROM(unsigned char address,unsigned char indata); //写EEPROM
//extern void RxTCPSame(unsigned char auc_Command,unsigned char auc_Send_Len,unsigned char *pDst);//返回协议
extern void judgeRAYTC(unsigned char auc_Command,unsigned char auc_Send_Len,unsigned char *pDst);
extern void SendDTMEDat(unsigned char auc_data); //DTMF拔号
extern void Delay1Ms(unsigned int auc_time); //延时1MS
extern void SendToData(unsigned char *p,unsigned char Long); //发送命令
extern void SendASC(unsigned char ASC) ; //发送-个ASCII
extern void SuccBuzzer(); //设置成功时发出的声音
extern void FailBuzzer(); //设置失败时发出的声音
extern unsigned char DTMF(); //DTMF解码
//extern void Greek_Listen_Ctrl(); //现场监听
//变量
extern unsigned char bdata guc_74HC164LED; //指示灯
extern unsigned int data guc_AlarTi; //报警时间计数器
extern unsigned char data guc_AlarCnt; //拔号时计算器
extern unsigned char data guc_AlarNub; //防区号
extern unsigned int data guc_TiAlar; //警笛时间
extern unsigned int data guc_ERCTI; //放音触出定时
extern unsigned char idata RsBuf[32]; //接收缓冲区
extern unsigned char data guc_RsPoint; //接收长度
extern unsigned int data guc_Timer0; //拔号按键定时计数器
extern unsigned int idata guc_ENCD_TI; //报警后开始放音,放到一定时间后开始打开现场听
//位
extern bit guc_bitbhOF; //拔号开关
extern bit guc_bit_Alar_led;
extern bit guc_Bit_BuChe; //布撤防:1为布,0为撤
extern bit guc_bit_ERC; //放音开关
extern bit guc_bit_SenAlar; //传感器报警
extern bit guc_bit_AlLedOF; //报警指示灯闪烁开关
extern bit guc_bit_ReturnAlarPul; //在拔号时用户想停止报警
extern bit guc_bitENCD; //现场听
//============================================================================================
extern void SendToData(unsigned char *p,unsigned char Long); //发送命令
//============================================================================================
//语法格式:LiseCtrl()
//实现功能:发生警情时电话远程监听
//参数: 无
//返回值: 无
//创建时间:2008-12-30 修改时间:
//创建人员: 修改人员:
//============================================================================================
void LiseCtrl()
{
guc_bitENCD = 0 ; // 清除现场听标致
guc_bit_ERC = 0; // 关闭放音
Play_Snd = 1; // 关闭放音
Listen_CTRL = 1; //打开现场监听
// SendToData("25",2);
}
//============================================================================================
//语法格式:Telephone()
//实现功能:拔打电话
//输入参数:无
//返回参数:无
//创建时间:2009-02-27 修改时间:
//创建人员: 修改人员:
//============================================================================================
void Telephone() // 拔打电话
{
unsigned char idata luc_Len,luc_i;
unsigned char idata luc_Buf[PH_CODE_LEN];
HANDUP = 1; //挂机
Delay1Ms(1000);
for(luc_Len=0 ;luc_Len<PH_CODE_LEN - 1;luc_Len++)
{
luc_Buf[luc_Len] = RdEEPROM(STER_ADDR+PH_CODE_LEN*guc_AlarCnt+luc_Len+1); //第一个字节为'F'
if(luc_Buf[luc_Len]==0xff)break;
}
for(luc_i = 0 ;luc_i <luc_Len ; luc_i++)
{
SendDTMEDat(luc_Buf[luc_i]);
}
}
//============================================================================================
//语法格式:AlarOut()
//实现功能:传感器报警输出
//参数: 无
//返回值: 无
//创建时间:2008-11-30 修改时间:
//创建人员: 修改人员:
//============================================================================================
void AlarOut()
{
if(guc_bitbhOF)
{
if((guc_bit_SenAlar)&&(guc_Bit_BuChe)) // 传感器遥控控制,如果布防了
{
if((guc_BitTel)&&(!ONLINE)) // 如果电话线断了,也不拔打电话
{
if(RdEEPROM(STER_ADDR+PH_CODE_LEN*guc_AlarCnt)=='F')// 如果没有电话号码也不打电话
{
guc_BitTel = 0 ; // 拔打电话标致位清0
Telephone() ; // 拔打电话
guc_ERCTI = REC_PLAY_TIME; // 放音开始定时
guc_bit_ERC = 1; // 拔完号之后开始放音
guc_AlarTi = ALARTIME; // 报警开始定时60秒
guc_ENCD_TI = 32*20; // 20秒后开始现场听
guc_bitENCD = 1 ; // 现场听标致
}
}
if((guc_ENCD_TI==0)&&(guc_bitENCD)) LiseCtrl();
if(guc_AlarTi == 0)
{
HANDUP = 0; // 挂机
Delay1Ms(3000); // 延时等待电话线复位
guc_BitTel = 1 ; // 拔打电话标致位
guc_bit_ERC = 0; // 关闭放音
Listen_CTRL = 0; // 关闭现场监听
guc_AlarCnt++;
}
if(guc_AlarCnt>=9)
{
guc_AlarCnt = 0; // 拔号时计算器
guc_bit_SenAlar = 0; // 关闭传感器报警
}
}
}
}
//============================================================================================
//语法格式:ComAlarOut()
//实现功能:传感器报警时串口报警信息输出
//参数: 防区号
//返回值: 无
//创建时间:2008-12-29 修改时间:
//创建人员: 修改人员:
//============================================================================================
void ComAlarOut(unsigned char auc_ArmNub)
{
unsigned char data luc_temp;
bit bit_ok = 0;
luc_temp = auc_ArmNub-1;
judgeRAYTC(ALARCPP,1,&luc_temp); // 发送警情信息
guc_RsPoint = 0; // 清除接收长度
// Delay1Ms(1000); // 等待传感器不再发出信号
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -