📄 dvs-rem-chtl.c
字号:
//dvs-rem-ctrl.C
#include "DVS-V1.0.H"
//=========================================== 函数定义 =======================================
void BuFanDis(); //布防处理
void BuFan(); //布防处理
void CheFanDis(); //撤防处理
void CheFan();
void BHStopAlar(); //在拔号时用户想停止报警
//============================================================================================
//=========================================== 外部定义 =======================================
//函数
extern void ScanRemDis(); //扫描遥控并处理
extern void ONAlarSoun(); //打开警号声 //打开警号声
extern void OFFAlarSoun(); //关闭警号声
extern void Fun_SET(); //功能设置
extern void ClearRem(); //清除2272解码后的数据
extern void SuccBuzzer(); //设置成功时发出的声音
extern void FailBuzzer(); //设置失败时发出的声音
extern void In_Fun_SET(); //扫描功能设置
extern void DispAlarLED(); //防区指示灯
extern void RemIn(); //315解码
extern void ComAlarDis(unsigned char auc_Nub); //处理球机报警
extern void SetWordDisp(); //各种设置时各LED指示
extern void Delay1Ms(unsigned int auc_time); //延时1MS
extern void WrEEPROM(unsigned char address,unsigned char indata); //写EEPROM
extern unsigned char RdEEPROM(unsigned char address); //读EEPROM
extern unsigned char JudgeDupAddr(unsigned char *p_PDst); //判断是否有重复的地址
extern void SendToData(unsigned char *p,unsigned char Long); //发送命令
extern void SendASC(unsigned char ASC); //发送-个ASCII
extern void ComAlarOut(unsigned char auc_ArmNub); //传感器报警时串口报警信息输出
extern void judgeRAYTC(unsigned char auc_Command,unsigned char auc_Send_Len,unsigned char *pDst);//返回协议
//变量
extern unsigned int data guc_Timer0; //拔号按键定时计数器
extern unsigned int data guc_KATime; //警响声定时计数器
extern unsigned char data guc_AlarCnt; //拔号时计算器
extern unsigned int data guc_AlarTi; //报警时间计数器
extern unsigned char idata guc_REM_TI; //315解码时间计数器
extern unsigned char idata guc_REM_Temp; //解码接收临时变量
extern unsigned char bdata guc_74HC164LED; //指示灯
//数组
extern unsigned char data guc_R315Buf[3]; //315解码后的数据
//位
extern bit guc_Bit_BuChe; //布撤防:1为布,0为撤
extern bit guc_bit_RemCom; //2272解码时为1
extern bit guc_bit_SenAlar; //传感器报警
extern bit guc_bit_AlLedOF; //报警指示灯闪烁开关
extern bit guc_bit_Alar_led; //防区指示灯闪
extern bit POW_GlimmLEDOF; //电源指示灯闪烁开关
extern bit guc_bit_RemAlar; //紧急报警LED指示灯标致
extern bit guc_bit_ReturnAlarPul; //在拔号时用户想停止报警
extern bit guc_BitTel ; // 拔打电话标致位
//extern bit guc_bitAlarPul2; //报警标致,1为已经报警
extern bit buc_bit_pshTimPulOF; //球机如果只有一路报警标致开关
//============================================================================================
//============================================================================================
//语法格式:void RemAlarOut()
//实现功能:遥控紧急报警处理
//参数: 无
//返回值: 无
//创建时间:2008-11-30 修改时间:
//创建人员: 修改人员:
//============================================================================================
void RemAlarOut()
{
if(guc_KATime == 0) ONAlarSoun(); //打开警号声
else OFFAlarSoun(); //关闭警号声
}
//============================================================================================
//语法格式:BuFan()
//实现功能:布防处理
//参数: 无
//返回值: 无
//创建时间:2009-01-08 修改时间:
//创建人员: 修改人员:
//============================================================================================
void BuFan()
{
DispAlarLED(); //防区指示灯
guc_Timer0 = 0 ; //退出现场监听
if(guc_74HC164LED==0) SUN_LED = SUN_LED_OFF; //如果防区指示灯熄灭时,运行指示灯也熄灭
else SUN_LED = SUN_LED_ON; //反之则点亮
guc_Bit_BuChe = 1; //布防
}
//============================================================================================
//语法格式:CheFan()
//实现功能:布防处理
//参数: 无
//返回值: 无
//创建时间:2009-01-08 修改时间:
//创建人员: 修改人员:
//============================================================================================
void CheFan()
{
SetWordDisp(); //各种指示灯进入设置方式
guc_bit_AlLedOF = 0 ; //报警指示闪烁灯关
ALARM_LED = 1; //撤防时报警指示点关
SUN_LED = SUN_LED_ON; //撤防时电源指示点亮
guc_74HC164LED = 0; //防区指示灯关闭
HANDUP = 0; //挂机
SET = 0; //继电器打开
// guc_bitAlarPul2 = 0; //表示已经报过警了
guc_AlarCnt = 9 ; //拔号9表示停止拔号
guc_AlarTi = 0; //报警时间清0
OFFAlarSoun(); //关闭警号声
guc_Bit_BuChe = 0; //撤防
}
//============================================================================================
//语法格式:BuFanDis()
//实现功能:布防处理
//参数: 无
//返回值: 无
//创建时间:2008-11-30 修改时间:
//创建人员: 修改人员:
//============================================================================================
void BuFanDis()
{
unsigned char data luc_temp;
BuFan();
luc_temp = ARMED; //布防赋值
judgeRAYTC(SET_COM_ARMED,1,&luc_temp); //返回网络模块布防
}
//============================================================================================
//语法格式:CheFanDis()
//实现功能:撤防处理
//参数: 无
//返回值: 无
//创建时间:2008-11-30 修改时间:
//创建人员: 修改人员:
//============================================================================================
void CheFanDis()
{
unsigned char data luc_temp;
CheFan();
luc_temp = DISARMED; //撤防赋值
judgeRAYTC(SET_COM_ARMED,1,&luc_temp); //返回网络模块撤防
}
//============================================================================================
//语法格式:BuFanRemDis()
//实现功能:解码时315的处理
//参数: 防区号
//返回值: 无
//创建时间:2009-01-20 修改时间:
//创建人员: 修改人员:
//============================================================================================
void BuFanRemDis(unsigned char auc_temp)
{
unsigned char data luc_data;
unsigned char data luc_Pul = 1;
guc_AlarCnt = 0; //电话号码清0,表示每次报警都从第一组电话号码开始拔
guc_bit_SenAlar = 1; // 传感器报警
guc_BitTel = 1 ; // 拔打电话标致位
SetWordDisp(); //设置时LED指示
luc_data = guc_74HC164LED; //点亮防区指示灯
luc_Pul = luc_Pul << (auc_temp-1);
guc_74HC164LED = luc_Pul|luc_data;
ONAlarSoun() ; //打开警号
ComAlarOut(auc_temp); //传感器报警时串口报警信息输出
}
//============================================================================================
//语法格式:ScanRemDis()
//实现功能:扫描遥控
//参数: 无
//返回值: 无
//创建时间:2008-11-30 修改时间:
//创建人员: 修改人员:
//============================================================================================
void ScanRemDis()
{
unsigned char data luc_temp;
RemIn(); //不断扫描是否解码
if(guc_bit_RemCom==1)
{
guc_bit_RemCom = 0;
luc_temp = JudgeDupAddr(guc_R315Buf); //比较是否有相等数据理力争
// SendASC(luc_temp);
if(luc_temp !=0)
{
if((9<=luc_temp)&&(luc_temp<=12)) //遥控控制
{
SuccBuzzer(); //设置成功时发出的声音
switch(luc_temp)
{
case SET_REM_ARM : BuFanDis() ; break; //遥控布防
case SET_REM_DISARM : CheFanDis() ; break; //遥控撤防
case SET_REM_ALARM : RemAlarOut(); break; //遥控紧急报警
case SET_REM_SETP : In_Fun_SET(); break; //遥控设置
default:break;
}
}
else
{
// SendASC(luc_temp);
if(guc_Bit_BuChe)
{
if(guc_REM_TI==0)
{
guc_REM_Temp = luc_temp;
guc_REM_TI=32*3; //定时3秒
BuFanRemDis(luc_temp);
}
else
{
if(luc_temp!=guc_REM_Temp)
{
guc_REM_Temp = luc_temp;
guc_REM_TI=32*3; //定时3秒
BuFanRemDis(luc_temp);
}
}
}
}
luc_temp = 0 ;
}
ClearRem();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -