📄 head.h
字号:
#ifndef LHD6KHEAD_H
#define LHD6KHEAD_H
//自定义 watchdog
/********************************************/
//看门狗宏定义设置
#if 1 // !!! .
#define EnWdt(); WDTC |= 0x80;
#define DisWdt(); WDTC &= 0x7F;
//低三位是预分频,默认2分频
#define ClrWdt(); WDTC |= (0x01 << 6);
//16分频
#define ClrWdt16(); {WDTC |= (0x01 << 6);_nop_();WDTC |= 0x03;}
//256分频
#define ClrWdt256(); {WDTC |= (0x01 << 6);_nop_();WDTC |= 0x07;}
#else
#define EnWdt();
#define DisWdt();
#define ClrWdt();
#define ClrWdt16();
#define ClrWdt256();
#endif
/********************************************/
/********************************************/
//宏常量定义:
//返回值定义
//通用
#define ERR_RTN 1
#define SUCC_RTN 0
//执行旁路命令是否成功
#define BYPASS_FAIL 1
#define UNBYP_FAIL 1
#define BYPASS_SUCC 0
#define UNBYP_SUCC 0
//设置防区类型,实际使用 24C04.C 里 WriteByte 的返回值
#define SET_ZN_TYPE_SUCC 0
#define SET_ZN_TYPE_FAIL 1
//恢复防区类型出厂值
#define RST_ZN_TYPE_SUCC 0
#define RST_ZN_TYPE_FAIL 1
#define LED_ON 0
#define LED_OFF 1
#define CENTURY_DEFAULT 0x20 //HT1380/1381 默认年份高两位
/*//位变量记录方式
#define YES 0x55
#define NO 0xAA*/
/*********************************************/
/*********************************************/
//数值定义
//通讯等待定义,测试时需要改变
#define TIME_WAIT_KB_1_PKG 41 //发送/接收一个包运行的时间,以 10ms 为单位, //默认60 (=40ms)
#define TIME_WAIT_KB_1_BYTE 11 //收到令牌后,最短反应时间,以 10ms 为单位, //默认20 (=10ms)(T0定时1ms就可以为2ms或3ms)
#define TIME_KB_LOSE 150 //认为键盘掉线时间,默认1.5s
#define TIME_KB_PROC_MSG 101 //等待键盘处理数据的时间,即一个信息重复发送后的延时,单位ms //默认 101==>100ms
#define TIME_Aux_PROC_MSG 101
#define TIMES_KB_CMD_REPEAT 1 //键盘命令重复次数,不需要重复的设为0,实际发送次数为 n+1
#define TIMES_AUX_CMD_REPEAT 2 //发送两次有时辅助CPU收不到
//#define MAX_TIMES_AUX_CMD_REPEAT 9
#define MIN_WRZN_ALM_INTVAL 60 //200 //单位10ms
#define TIME_LED_CHG 30 //LED灯闪烁定时,10ms为单位,无符号字符型变量使用
//#define MAX_TIMES_WRONG_PWD_STG 9
#define HOURS_LCK_PWD 8 //密码允许输错次数的最大值
#define TIME_AUX_ERR 11 //辅助CPU通讯出错时间 ,单位 s //默认11s
#define TIME_WAIT_AUX_1_PKG 11 //辅助CPU通讯定时长度,单位 10ms //默认10ms
//连续两条重复信息之间的间隔,单位ms //默认2ms
#define TIME_SERIES_PAUSE_KB 6 //2ms//2006-8-23 清无线时需延时长键盘才能响.
#define TIME_SERIES_PAUSE_AUX 3
#define TIME_AUX_MSG_DUP 28 //辅助CPU重复信息的最小间隔
#define TIME_NO_SER_INT 8 //进入串口中断间隔的初始值,单位 10ms //默认80ms
//电话相关
#define TIME_RECV_RM_EMI 5 //接收电话按键的去抖延时.没有加电容有的机器有干扰,报警时用户摘机立即按键,主机收到两次.
#define TIME_DIAL_PAUSE 5 //2006-12-15 17:15 //拨两个号码之间的延时时间,单位 s //默认5 //以秒为单位不要大于20,该值不大于19,大于19需重新挂机再拨号
#define TIME_DIAL_ROUND 45 //2006-12-15 17:15
#define TIME_DIAL_DIGITE 4 //向HT9200发送两个数字之间的延时,单位 10ms //默认50ms
#define TIME_HT9200CE_DELAY 50 //开始拨号前抢线摘机将9200DTMF发生器CE置低后,与开始拨号之间的延时,单位 10ms //默认500ms
///继电器动作需要时间
#define TIME_HANG_UP 100 //挂断电话需要的时间,g_ucDialNextDigit 计时,单位10ms
#define MAX_TIMES_CALL 31 //2006-12-15 17:15//一直无人接听需要拨打遍数,实际遍数为 MAX_TIMES_CALL-1 次,只有接警中心信息时初次会多加一次
#define TIME_BEEP_INTERVAL_SHRT 50 //电话控制撤布防回复音间隔,单位10ms //默认500ms//赋值给整形常量范围0~0xFF
#define TIME_BEEP_INTERVAL_LONG 150
#define MAX_TIME_PHONE_KEY 30 //用户拨入进行远程控制时,允许的按键时间间隔,超时挂机,单位 s //默认30s
#define TIME_VOICE_BLANK 5 //电话报警语音两遍之间的间隔,单位s //默认5s
#define MAX_TIMES_VOICE_ONCE 4 //自动挂机前报警音连续播放遍数,即连续播放 MAX_TIMES_VOICE_ONCE+1 遍后用户仍没有按键,自动挂机,拨下一电话
//默认5遍
#define MAX_PHONE_PWD_TIMES 3 //密码允许输入错误的次数//变量与语音播放遍数共用,后修改不再共用//密码正确后不需重新输入,所以用户重听报警不会影响
//实际允许次数为 MAX_PHONE_PWD_TIMES + 1 次
//电话回铃音
#define BACK_RING_BUSY 5 //忙音
#define BACK_RING_RINGING 6 //振铃音
#define BACK_RING_NOISE 7 //回铃噪音或接收错误
#define BACK_RING_ANSWD 8 //对方摘机有噪音
//电话控制相关
#define PHONE_CMD_RECV_END 6
#define PHONE_CMD_ERR 7
#define PHONE_CMD_OK PHONE_CMD_ERR + 2
#define PHONE_CMD_MAX_PNT PHONE_CMD_OK + 1
//防区类型定义
#define ALARM_TYPE_NUM_DOOR 0x01 //出入
#define ALARM_TYPE_NUM_ROOM 0x02 //活动
#define ALARM_TYPE_NUM_OUT 0x03 //周边
#define ALARM_TYPE_NUM_EMG 0x04 //紧急求助
#define ALARM_TYPE_NUM_FIRE 0x05 //火灾
#define ALARM_TYPE_NUM_GAS 0x06 //毒气
#define ALARM_TYPE_NUM_BRK 0x07 //防拆
#define ALARM_TYPE_NUM_FORC 0x08 //胁持
//默认防区类型
#define EX_ZN_TYPE_DFLT ALARM_TYPE_NUM_OUT
#define WRLS_ZN_TYPE_DFLT ALARM_TYPE_NUM_EMG
#define KB_ZN_TYPE_DFLT ALARM_TYPE_NUM_OUT
//撤布防状态定义
#define OUT_GUARDING 0x01 ///外出布防
#define HOME_GUARDING 0x02 ///留守布防
#define LAX_GUARDING 0x03 ///撤防
//#define OUTING 0x04
//#define COMING_IN 0x05
#define MAX_ARM_STATUS 0x03 ///???
#define IS_OUT_GUARDING (OUT_GUARDING == g_ucArmStatus) ///是否外出布防
#define IS_HOME_GUARDING (HOME_GUARDING == g_ucArmStatus) ///是否留守布防
#define IS_LAX_GUARDING (LAX_GUARDING == g_ucArmStatus) ///是否撤防
#define IS_OUTING (g_FlagOutDelaying) ///是否退出延时
#define IS_COMING_IN (g_FlagInDelaying) ///是否进入延时
//HT1380寄存器定义
#define REG_SEC 0
#define REG_MIN 1
#define REG_HR 2
#define REG_DATE 3
#define REG_MONTH 4
#define REG_DAY 5
#define REG_YR 6
#define REG_WP 7
#define YR_DEFAULT 0x00
#define MONTH_DEFAULT 0x01
#define DAT_DEFAULT 0x01
#define MAX485_SEND 1
#define MAX485_RECV 0
//定义在键盘接收缓存中地址和长度的位置
#define LOCATN_KB
#define LOCATN_KB_ID 0 ///本地键盘ID号
#define LOCATN_KB_PKG_LEN 1 ///数据长度
#define LOCATN_KB_CMDH 2 ///键盘命令高字节
#define LOCATN_KB_CMDL 3 ///键盘命令低字节
#define KB_RECV_BUFF_LEN 13 //电话号码为16位 ///键盘接收缓存长度
#define KB_SEND_BUFF_LEN 12 ///键盘发送缓存长度
#define KB_USING_BUFF_LEN (KB_RECV_BUFF_LEN > KB_SEND_BUFF_LEN ? KB_RECV_BUFF_LEN : KB_SEND_BUFF_LEN)
///键盘使用缓存
#define AUX_RECV_BUFF_LEN 2 ///辅助CPU接收缓存长度
#define AUX_SEND_BUFF_LEN 2 ///辅助CPU发送缓存长度
///两个字节,这么短,不对吧
/************************************************
* 发送到键盘的命令定义开始,键盘协议按11月底重定协议
************************************************/
#ifndef KB_OUT_CMD
#define KB_OUT_CMD
#define KB_CMD
#define KB_BC_ID 0xAA //键盘广播地址
#define KB_CMD_PKG_LEN 0x03 //没有参数的数据包长度值
#define KB_CMD_HIST_H 0x38 //发送历史纪录
#define KB_CMD_HIST_L 0x01
#define KB_CMD_RECV_ERR_H 0x49 ///键盘命令接收错误
#define KB_CMD_RECV_ERR_L 0x01
#define KB_CMD_EXE_ERR_H 0x49 ///键盘命令执行错误
#define KB_CMD_EXE_ERR_L 0x05
#define KB_CMD_RECV_OK_H 0x48 ///键盘命令接收OK
#define KB_CMD_RECV_OK_L 0x01
#define KB_CMD_EXE_OK_H 0x48 ///键盘命令执行OK
#define KB_CMD_EXE_OK_L 0x05
#define KB_CMD_OUT_GUARD_H 0x35 //外出布防
#define KB_CMD_OUT_GUARD_L 0x01
#define KB_CMD_HOME_GD_H 0x35 //留守(夜间)布防
#define KB_CMD_HOME_GD_L 0x02
#define KB_CMD_DISGUARD_H 0x35 //撤防
#define KB_CMD_DISGUARD_L 0x03
#define KB_CMD_GUARD_FAIL_H 0x35 //遥控布防失败
#define KB_CMD_GUARD_FAIL_L 0x81
#endif //#ifndef KB_OUT_CMD 结束
/************发送到键盘的命令定义结束**************/
/*************************
* 发送到辅助CPU的命令定义开始
*************************/
#ifndef AUX_CMD
#define AUX_CMD
#define AUX_CMD_RECV_OK_H 0x18 ///辅助处理器命令接收OK
#define AUX_CMD_RECV_OK_L 0x08
#define AUX_CMD_RECV_ERR_H 0x19 ///辅助处理器命令接收失败
#define AUX_CMD_RECV_ERR_L 0x09
#define AUX_CMD_ADD_RMT_H 0x11 ///遥控器对码
#define AUX_CMD_RMV_RMT_H 0x12 ///清除遥控器对码
#define AUX_CMD_ADD_ZN_H 0x13 ///无线防区对码
#define AUX_CMD_RM_ZN_L 0x14 ///清除无线防区对码
#endif //#ifndef AUX_CMD 结束
/*************************************
* 发送到辅助CPU的命令定义结束
*************************************/
#endif //#ifndef LHD6KHEAD_H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -