📄 admcptcl.h
字号:
/*******************************************************************************
* 版权所有 (C)2005,深圳豪恩科技有限公司
*
* 文件名称: main.C
* 文件标识:
* 内容摘要: LHD6000主板主芯片程序,2005.12.05开始
* 其它说明:
* 当前版本: 0.000
* 作 者: 涂常亮(豪恩科技研发中心安全主机组)
* 完成日期: 2005.03.28
*
* 修改纪录1:
* 修改日期:
* 版 本 号:
* 修 改 人:
* 修改内容:
* 修改纪录2:
*******************************************************************************/
#ifndef AdemcoProtocol_H
#define AdemcoProtocol_H
//#include <reg54.h>
//#include "EEPROM.H"
#define MAX_TIMES_ADEMCO_TRY 0x10 //重试次数
///最大次数,安定宝协议重试
#ifndef ADEMCO_STAGE
#define ADEMCO_STAGE
#define ADEMCO_START (0)
///协议开始
#define ADEMCO_START_SEND_ID (ADEMCO_START) //开始发送ID //0 //4位ID,中间加DTMF停止信号0xFF
///四位ID,那这位不算
#define ADEMCO_START_SEND_ID1 (ADEMCO_START_SEND_ID) //开始发送ID //0
///第一位ID:0
#define ADEMCO_START_SEND_ID2 (ADEMCO_START_SEND_ID1 + 2) //开始发送ID //2
///第二位ID: 2
#define ADEMCO_START_SEND_ID3 (ADEMCO_START_SEND_ID2 + 2) //开始发送ID //4
///第三位ID: 4
#define ADEMCO_START_SEND_ID4 (ADEMCO_START_SEND_ID3 + 2) //开始发送ID //6
///第四位ID: 6
#define ADEMCO_SEND_ID_END (ADEMCO_START_SEND_ID4 + 1)//(ADEMCO_START_SEND_ID + 7) //4位ID,中间加DTMF停止信号0xFF //7
///ID结尾
#define ADEMCO_SEND_FMT (ADEMCO_SEND_ID_END + 1) //发送 4+1 或 ContactID 的格式识别符(17,18) //8
///4 + 1与ContactID格式区别
#define ADEMCO_SEND_FMT_END (ADEMCO_SEND_FMT + 3)
///格式结束
#define ADEMCO_SEND_CHK_SUM (0xF0)
///协议校验和,为什么是0xF0
#define ADEMCO_END (ADEMCO_SEND_CHK_SUM + 1)//(0xF1)
///协议结束
#define ADEMCO_WAIT_WAIT_ACK (ADEMCO_END + 1) //发送结束,等待确认回铃
///等待回铃???
//**********************定义发送 4+1 协议所需宏
#define ADEMCO41_SEND_EVENT (ADEMCO_SEND_FMT_END + 1) //格式两位,中间加暂停 //12(0x0C)(ADEMCO_SEND_FMT + 4)
///12 即0x0c
#define ADEMCO41_SEND_EVENT_END (ADEMCO41_SEND_EVENT + 1)
///13 即0x0d
#define ADEMCO41_FIRE_ALARM 1 //火警,包括火警,气警,求助防区
///4+1事件代码1:火警
#define ADEMCO41_HOLDUP 2 //劫警,胁持防区
///4+1事件代码2:劫警
#define ADEMCO41_BURG_ALARM 3 //盗警,出入,活动,周边,防拆防区
///4+1事件代码3:盗警
#define ADEMCO41_OPENING 4 //撤防
///4+1事件代码4:撤防
#define ADEMCO41_CLOSING 5 //布防
///4+1事件代码5:布防
#define ADEMCO41_AC_POWER 6 //交流掉电
///4+1事件代码6:交流掉电
#define ADEMCO41_LOW_BATT 7 //电池欠压
///4+1事件代码7:电池欠压
#define ADEMCO41_RESTORE 8 //复位(恢复出厂值 ??? )
///4+1事件代码8:
#define ADEMCO41_TEST 9 //测试(本系统不使用)
///4+1事件代码9:
//******************************************end
//****************************定义ContactID所用宏
#define CONTACTID_SEND_MARK_EVT (ADEMCO_SEND_FMT_END + 1) //发送一位事件标志码 //12(0x0C)(ADEMCO_SEND_FMT + 4)
///12,即0x0c
#define CONTACTID_SEND_MARK_END (CONTACTID_SEND_MARK_EVT + 1) //13(0x0D)
///13
#define CONTACTID_SEND_EVT (CONTACTID_SEND_MARK_END + 1) //14(0x0E) //发送3位时间码
///14
#define CONTACTID_SEND_EVT1 (CONTACTID_SEND_EVT) //14(0x0E)
#define CONTACTID_SEND_EVT2 (CONTACTID_SEND_EVT1 + 2) //16(0x10)
#define CONTACTID_SEND_EVT3 (CONTACTID_SEND_EVT2 + 2) //18(0x12)
#define CONTACTID_SEND_EVT_END (CONTACTID_SEND_EVT3 + 1) //19(0x13)//(CONTACTID_SEND_EVT + 6)
#define CONTACTID_SEND_SUB_SYS (CONTACTID_SEND_EVT_END + 1) //发送两位子系统代码 //20(0x14)
#define CONTACTID_SEND_SUB_SYS1 (CONTACTID_SEND_SUB_SYS) //20(0x14)
#define CONTACTID_SEND_SUB_SYS2 (CONTACTID_SEND_SUB_SYS1 + 2) //22(0x16)
#define CONTACTID_SEND_SUB_SYS_END (CONTACTID_SEND_SUB_SYS2 + 1) //23(0x17)
///子系统干什么用的呢
#define CONTACTID_SEND_ZN_NUM (CONTACTID_SEND_SUB_SYS_END + 1) //发送三位防区号 //24(0x18)
#define CONTACTID_SEND_ZN_NUM1 (CONTACTID_SEND_ZN_NUM) //24(0x18)
#define CONTACTID_SEND_ZN_NUM2 (CONTACTID_SEND_ZN_NUM1 + 2) //26(0x1A)
#define CONTACTID_SEND_ZN_NUM3 (CONTACTID_SEND_ZN_NUM2 + 2) //28(0x1C)
#define CONTACTID_SEND_ZN_NUM_END (CONTACTID_SEND_ZN_NUM3 + 1) //29(0x1D)//(CONTACTID_SEND_ZN_NUM + 5)
///跟防区有何关系
#endif //#ifndef ADEMCO_STAGE
//24C04存放是否使用ContactID的位置定义为 EEPROM_ADD_CONTACT_ID_SEL
#ifdef AdemcoProtocol_C
unsigned int code c_auiContactIDCode[]=
{
0x0110, //火警 //火警 //0
0x0100, //医疗报警//求助防区 //1
0x0121, //挟持//挟持密码,挟持防区报警 //2
0x0131, //周边盗警//周边防区报警 //3 //防区类型3// !!! 修改时要修改报警时记录事件索引的程序
0x0132, //内部盗警//活动防区报警 //4 //防区类型2// !!! 修改时要修改报警时记录事件索引的程序
0x0134, //出入盗警//出入防区报警 //5 //防区类型1// !!! 修改时要修改报警时记录事件索引的程序
0x0137, //24小时盗警//主机防拆及防拆防区报警 //6
0x0151, //煤气泄漏//气警防区 //7
0x0301, //交流掉电 //8
0x0302, //系统电池电压低//电池欠压 //9
0x0382, //总线模块丢失//键盘掉线 //10(0x0A)
0x0145, //总线模块防拆//键盘防拆 //11(0x0B)
0x0401, //用户布撤防操作//键盘和遥控//撤防是新事件,布防是恢复 //12(0x0C)
0x0441, //留守布防 //13(0x0D)
0x0455, //自动布防失败//有报警或进入延时时会自动布防失败 //14(0x0E)
0x0521, //警号1旁路//取消警号 //15(0x0F)
0x0570, //旁路 //16(0x10)
};
/*
0x0311, //系统工程复位//恢复出厂值
0x0306, //编程防拆
*/
#else
extern unsigned int code c_auiContactIDCode[];
#endif
#ifndef CONTACTID_INDEX
#define CONTACTID_INDEX
//和事件标志码存放一切,新事件/撤防(01表示ContactID标志发1)还是新的恢复事件或布防(02表示,ContactID标志发3)
//g_ucAdemcoEvts 记录防区号/操作者
///ContactID事件代码在c_auiContactIDCode[]的指针(序号)
#define FIRE_CONTACTID_INDEX 0
#define EMG_CONTACTID_INDEX 1
#define HOLDUP_CONTACTID_INDEX 2
#define OUT_CONTACTID_INDEX 3
#define ROOM_CONTACTID_INDEX 4
#define DOOR_CONTACTID_INDEX 5
#define WHOLE_DAY_ZN_CTID_INDEX 6
#define GAS_CONTACTID_INDEX 7
#define AC_CONTACTID_INDEX 8
#define BATT_CONTACTID_INDEX 9
#define LOSE_KB_CTID_INDEX 10
#define KB_BREAK_CTID_INDEX 11//(0x0B)
#define CHANGE_GUARD_CTID_INDEX 12//(0x0C)
#define HOME_GUARD_CTID_INDEX 13//(0x0D)
#define AUTO_GD_FAIL_CTID_INDEX 14//(0x0E)
#define STOP_TRUMP_CTID_INDEX 15//(0x0F)
#define BYPASS_ZN_CTID_INDEX 16//(0x10)
#define MAX_CONTACTID_INDEX BYPASS_ZN_CTID_INDEX
//#define RMTR_OPERATR_CNTCTID 5//遥控器的操作员记为5
#define TEL_OPERATR_CNTCTID 0x20//报警时根据电话编号顺序,对应21~25,
//电话远程操作时操作员根据密码为1,2
#define AUTO_OPERATR_CNTCTID 0x99//自动撤布防操作员记为99
#endif //#ifndef CONTACTID_INDEX
#endif //#ifndef AdemcoProtocol_H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -