📄 sctruct.h
字号:
/*常用标号*/
#define TRUE 1
#define FALSE 0
#define byte unsigned char
#define word unsigned int
/* 设备配置表标号,作为配置函数的输入参数,用来明确要求配置函数完成的工作 */
#define DEVICE_ADDR 0
#define GUARD 1
#define ALARM_CONDITION 2
#define ALARM_MODE 3
#define WRITE_KEY 4
#define CLR_KEY 5
#define CLR_ALLKEY 6
#define READ_ALLKEY 7
#define SECURY 8
#define TEL_1 9
#define TEL_2 10
#define TEL_3 11
#define PARAM 12
#define FORTIFY_STATUS 13
#define CANCEL_STATUS 14
#define TELE_RING_TIMES 15
#define ONGUARDTIME 16
#define ALARMDELAY 17
#define LOCAL_ALARM_SET 18
#define RING 19
#define BACKCOLOR 20
#define VOLUM 21
#define ALARMCLOCK 22
#define PBTIME 23
#define SAVEIDNUM 24
#define LOCALALARMSAVED 25
#define EMPTY 0xff
#define NOEMPTY 0
/************************************************************************
并行口寻址
p4.0~p4.3 ------ SCAN2、SCAN3、SCAN4、SCAN5;普通IO,用于触摸屏的C2-C5,低有效,开漏输出。
p4.4 ----- VREST普通IO,连接视频单元的复位,低有效,推挽输出
p4.5 ----- JRX4普通IO,控制视频模组电源的继电器,低有效,开漏输出
p4.6 ----- JRX2普通IO,控制音频总线的继电器,高绳路与拖机相连,低绳路与本机相连,开漏输出
p4.7 ----- DEFENCE设防指示灯控制脚。普通IO,低有效,推挽输出
p5.0 ----- UNDEFENCE撤防指示灯控制脚。普通IO,低有效,推挽输出
p5.1 ----- P_MESSAGE_REV个人信息接收指示灯控制脚。普通IO,低有效,推挽输出
p5.2 ----- SCAN1用于触摸屏的C1,低有效,开漏输出。
p5.3 ----- G_MESSAGE_REV公共信息接收指示灯控制脚。普通IO,低有效,推挽输出
p5.4~p5.6 ----- SCAN6、SCAN7、SCAN8;普通IO,控制触摸屏的C6~C8,低有效,开漏输出
p5.7 ----- MIC_MUTE普通IO,控制MIC继电器,高断开、低闭合,开漏输出
p6.0 ----- SP_MUTE普通IO,控制SPEAKER继电器,高断开、低闭合,开漏输出
p6.1~p6.6 ------ 普通IO,连接触摸屏的数据线,低有效,开漏输入
p6.7 ----- 普通IO,连接撬壳开关,低有效,开漏输入
p7.0~p7.5 ------ 普通IO,报警传感器状态输入,低有效,开漏输入。
p7.6 ------ TJTX普通IO,拖机通信发送脚,开漏输出
p7.7 ------ JRX5普通IO,小门口机电源和音频总线控制继电器的控制脚,高断开小门口机的电源和小门口音频。绳路与外网相连。
低闭合小门口的电源和小门口的音频总线。绳路与小门口音频相连。开漏输出。
****************************************************************************/
#define SET_SCAN1 SFRPAGE_BAK=SFRPAGE;SFRPAGE=0x0f;P5|=0x04;SFRPAGE=SFRPAGE_BAK
#define CLR_SCAN1 SFRPAGE_BAK=SFRPAGE;SFRPAGE=0x0f;P5&=0xfb;SFRPAGE=SFRPAGE_BAK
#define SET_SCAN2 SFRPAGE_BAK=SFRPAGE;SFRPAGE=0x0f;P4|=0x01;SFRPAGE=SFRPAGE_BAK
#define CLR_SCAN2 SFRPAGE_BAK=SFRPAGE;SFRPAGE=0x0f;P4&=0xfe;SFRPAGE=SFRPAGE_BAK
#define SET_SCAN3 SFRPAGE_BAK=SFRPAGE;SFRPAGE=0x0f;P4|=0x02;SFRPAGE=SFRPAGE_BAK
#define CLR_SCAN3 SFRPAGE_BAK=SFRPAGE;SFRPAGE=0x0f;P4&=0xfd;SFRPAGE=SFRPAGE_BAK
#define SET_SCAN4 SFRPAGE_BAK=SFRPAGE;SFRPAGE=0x0f;P4|=0x04;SFRPAGE=SFRPAGE_BAK
#define CLR_SCAN4 SFRPAGE_BAK=SFRPAGE;SFRPAGE=0x0f;P4&=0xfb;SFRPAGE=SFRPAGE_BAK
#define SET_SCAN5 SFRPAGE_BAK=SFRPAGE;SFRPAGE=0x0f;P4|=0x08;SFRPAGE=SFRPAGE_BAK
#define CLR_SCAN5 SFRPAGE_BAK=SFRPAGE;SFRPAGE=0x0f;P4&=0xf7;SFRPAGE=SFRPAGE_BAK
#define SET_SCAN6 SFRPAGE_BAK=SFRPAGE;SFRPAGE=0x0f;P5|=0x10;SFRPAGE=SFRPAGE_BAK
#define CLR_SCAN6 SFRPAGE_BAK=SFRPAGE;SFRPAGE=0x0f;P5&=0xef;SFRPAGE=SFRPAGE_BAK
#define SET_SCAN7 SFRPAGE_BAK=SFRPAGE;SFRPAGE=0x0f;P5|=0x20;SFRPAGE=SFRPAGE_BAK
#define CLR_SCAN7 SFRPAGE_BAK=SFRPAGE;SFRPAGE=0x0f;P5&=0xdf;SFRPAGE=SFRPAGE_BAK
#define SET_SCAN8 SFRPAGE_BAK=SFRPAGE;SFRPAGE=0x0f;P5|=0x40;SFRPAGE=SFRPAGE_BAK
#define CLR_SCAN8 SFRPAGE_BAK=SFRPAGE;SFRPAGE=0x0f;P5&=0xbf;SFRPAGE=SFRPAGE_BAK
#define SET_VREST SFRPAGE_BAK=SFRPAGE;SFRPAGE=0x0f;P4|=0x10;SFRPAGE=SFRPAGE_BAK
#define CLR_VREST SFRPAGE_BAK=SFRPAGE;SFRPAGE=0x0f;P4&=0xef;SFRPAGE=SFRPAGE_BAK
#define SET_JRX4 SFRPAGE_BAK=SFRPAGE;SFRPAGE=0x0f;P4|=0x20;SFRPAGE=SFRPAGE_BAK
#define CLR_JRX4 SFRPAGE_BAK=SFRPAGE;SFRPAGE=0x0f;P4&=0xdf;SFRPAGE=SFRPAGE_BAK
#define SET_JRX2 SFRPAGE_BAK=SFRPAGE;SFRPAGE=0x0f;P4|=0x40;SFRPAGE=SFRPAGE_BAK
#define CLR_JRX2 SFRPAGE_BAK=SFRPAGE;SFRPAGE=0x0f;P4&=0xbf;SFRPAGE=SFRPAGE_BAK
#define SET_DEFENCE SFRPAGE_BAK=SFRPAGE;SFRPAGE=0x0f;P4|=0x80;SFRPAGE=SFRPAGE_BAK
#define CLR_DEFENCE SFRPAGE_BAK=SFRPAGE;SFRPAGE=0x0f;P4&=0x7f;SFRPAGE=SFRPAGE_BAK
#define SET_UNDEFENCE SFRPAGE_BAK=SFRPAGE;SFRPAGE=0x0f;P5|=0x01;SFRPAGE=SFRPAGE_BAK
#define CLR_UNDEFENCE SFRPAGE_BAK=SFRPAGE;SFRPAGE=0x0f;P5&=0xfe;SFRPAGE=SFRPAGE_BAK
#define SET_P_MESSAGE SFRPAGE_BAK=SFRPAGE;SFRPAGE=0x0f;P5|=0x02;SFRPAGE=SFRPAGE_BAK
#define CLR_P_MESSAGE SFRPAGE_BAK=SFRPAGE;SFRPAGE=0x0f;P5&=0xfd;SFRPAGE=SFRPAGE_BAK
#define SET_G_MESSAGE SFRPAGE_BAK=SFRPAGE;SFRPAGE=0x0f;P5|=0x08;SFRPAGE=SFRPAGE_BAK
#define CLR_G_MESSAGE SFRPAGE_BAK=SFRPAGE;SFRPAGE=0x0f;P5&=0xF7;SFRPAGE=SFRPAGE_BAK
#define SET_MIC_MUTE SFRPAGE_BAK=SFRPAGE;SFRPAGE=0x0f;P5|=0x80;SFRPAGE=SFRPAGE_BAK
#define CLR_MIC_MUTE SFRPAGE_BAK=SFRPAGE;SFRPAGE=0x0f;P5&=0x7f;SFRPAGE=SFRPAGE_BAK
#define SET_SP_MUTE SFRPAGE_BAK=SFRPAGE;SFRPAGE=0x0f;P6|=0x01;SFRPAGE=SFRPAGE_BAK
#define CLR_SP_MUTE SFRPAGE_BAK=SFRPAGE;SFRPAGE=0x0f;P6&=0xfe;SFRPAGE=SFRPAGE_BAK
#define SET_TJTX SFRPAGE_BAK=SFRPAGE;SFRPAGE=0x0f;P7|=0x40;SFRPAGE=SFRPAGE_BAK
#define CLR_TJTX SFRPAGE_BAK=SFRPAGE;SFRPAGE=0x0f;P7&=0xbf;SFRPAGE=SFRPAGE_BAK
#define SET_JRX5 SFRPAGE_BAK=SFRPAGE;SFRPAGE=0x0f;P7|=0x80;SFRPAGE=SFRPAGE_BAK
#define CLR_JRX5 SFRPAGE_BAK=SFRPAGE;SFRPAGE=0x0f;P7&=0x7f;SFRPAGE=SFRPAGE_BAK
#define CLR_RI1 RI1=0
//SCON1&=0xfe
#define SET_RI1 RI1=1
//SCON1|=0x01
#define CLR_TI1 TI1=0
//SCON1&=0xfd
#define SET_TI1 TI1=1
//SCON1|=0x02
#define CLR_RB81 RB81=0
//SCON1&=0xfb
#define SET_RB81 RB81=1
//SCON1|=0x04
#define CLR_TB81 TB81=0
//SCON1&=0xf7
#define SET_TB81 TB81=1
//SCON1|=0x08
#define SETTR4 TR4=1
//T4CON|=0x04
#define CLRTR4 TR4=0
//T4CON&=~0x04
/*****************************************
射频读卡标号定义
******************************************/
#define RFID_READING 0
#define RFID_OVERTIME_ERR 1
#define RFID_RECEIVED 2
#define RFID_SUCCESS 3
#define RFID_CRC_ERR 4
#define RFID_STARTBIT_ERR 5
#define RFID_ENDBIT_ERR 6
/*******************************************
颜色定义
********************************************/
#define C_BLACK 0x0000
#define C_BLUE 0x0010
#define C_RED 0x0020
#define C_MAGENTA 0x0030
#define C_GREEN 0x0040
#define C_CYAN 0x0050
#define C_YELLOW 0x0060
#define C_WHITE 0x0070
#define B_BLACK 0x0000
#define B_BLUE 0x0001
#define B_RED 0x0002
#define B_MAGENTA 0x0003
#define B_GREEN 0x0004
#define B_CYAN 0x0005
#define B_YELLOW 0x0006
#define B_WHITE 0x0007
/****************************************
通信标志定义
******************************************/
#define DOWN_COMMUNICATION_PROCESSING 0
#define DOWN_COMMUNICATION_OK 1
#define DOWN_COMMUNICATION_ERR 2
#define DOWN_COMMUNICATION_OVER_TIME 3
/****************************************
电话标志
*****************************************/
/*一个电话振铃的脉冲数,交换机送来的25Hz 90V铃流*/
#define CONST_TIME 25
/*****************************************
信息类型定义
******************************************/
#define PUBLIC_MESSAGE 1
#define PERSONAL_MESSAGE 2
/*********************************
结构类型定义
**********************************/
typedef struct
{
unsigned char systime[11];
unsigned char alarmclock[10];
unsigned char pbtime;
}TIME_SET;
#define KEY_NUM 15
typedef struct /*开关命令*/
{
byte comm[2][14];
}SWITCH_COM;
#define PARAM_LEN 224
typedef struct/*配置表结构*/
{
byte device_addr;/*设备号*/
struct/*报警结构*/
{
byte guard;/*部防状态,0x41-撤防,0x42-设防*/
byte condition;/*分区设撤防控制,允许那些报警,分别对应8防区的每位D7-D0,1bit-允许在撤防状态时报警,0bit-禁止撤防状态时报警*/
byte mode;/*报警传感器的报警方式,分别对应8防区的每位D7-D0,1-常闭,0-常开*/
byte OnGuardDelay;/*设防延时单位秒*/
byte AlarmDelay;/*误报自解除延时单位秒*/
byte LocalAlarmPeng;/*本地报警屏蔽,分别对应8防区的每位D7-D0,1bit-允许本地报警输出,0bit-禁止本地报警输出*/
word LocalAlarmTime;/*本地报警持续时间单位秒*/
}alarm;
byte key_code[KEY_NUM][9];/*5个钥匙码,前1字节为标志,后8字节为钥匙码*/
char ring[10];/*当前的铃音文件名*/
int backcolor;/*当前的背景色*/
byte volum;/*当前音量*/
byte secury[8];/*8位密码*/
byte tel1[20];/*第1个报警电话号码,以#号结束*/
byte tel2[20];/*第2个报警电话号码,以#号结束*/
byte tel3[20];/*第3个报警电话号码,以#号结束*/
byte tele_ring_times;/*电话振铃次数*/
byte status[9];/*可以记录9个外带的家居安防设防状态,起始地址为*/
unsigned char alarmclock[10];/*闹钟定时时间*/
unsigned char pbtime;/*屏保时间*/
union
{
SWITCH_COM param[2][4];/*网络房屋的配置关系*/
char param_array[PARAM_LEN];
}param_un;
byte ID_NUM;/*本地报警索引*/
} CONFIG_TABLE;/*占用512字节*/
//-------------------------------------------------------------------
typedef struct/*NHB2.0通信帧结构*/
{
byte adr;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -