📄 system.c
字号:
}
else if(uart_rcv_len == 10) //恢复记录指针
{
purview_timer = 0x4B0;
DataBuf[7] = 0x30;
DataBuf[8] = 0x30;
send_chk(18);
/*if(D0_flag)
{
if(LOADP == SAVEP)
{
purview_timer = 0x4B0;
DataBuf[7] = 0x45;
DataBuf[8] = 0x32;
send_chk(18);
}
else
{
LOADPP = DataBuf[6]*4096 + DataBuf[7]*256 + DataBuf[4]*16 + DataBuf[5] - 1;
if((LOADPP < LOADP) && (LOADPP >= SAVEP))
{
LOADP = LOADPP;
I2C_rcv[1] = (LOADP >> 8) & 0x00ff;
I2C_rcv[2] = LOADP& 0x00ff;
AT24C128_write(0x01,I2C_rcv + 1,2);
purview_timer = 0x4B0;
DataBuf[7] = 0x30;
DataBuf[8] = 0x30;
send_chk(18);
}
else
{
purview_timer = 0x4B0;
DataBuf[7] = 0x30;
DataBuf[8] = 0x36;
send_chk(18);
}
}
}
else
{
LOADPP = DataBuf[6]*4096 + DataBuf[7]*256 + DataBuf[4]*16 + DataBuf[5] - 1;
if((LOADPP < LOADP) || (LOADPP >= SAVEP))
{
LOADP = LOADPP;
if(LOADPP >= SAVEP)
{
D0_flag = 1;
I2C_rcv[0] |= 1;
AT24C128_write(0x05,I2C_rcv,1);
}
I2C_rcv[1] = (LOADP >> 8) & 0x00ff;
I2C_rcv[2] = LOADP& 0x00ff;
AT24C128_write(0x01,I2C_rcv + 1,2);
purview_timer = 0x4B0;
DataBuf[7] = 0x30;
DataBuf[8] = 0x30;
send_chk(18);
}
else
{
purview_timer = 0x4B0;
DataBuf[7] = 0x30;
DataBuf[8] = 0x36;
send_chk(18);
}
}*/
}
}
else if(DataBuf[2] == 0xE6) //门锁继电器执行时间(单独设定)
{
relay_timer1 = (DataBuf[4]<<4) + DataBuf[5];
if(relay_timer1 < 20)
relay_timer1 = 20;
if(relay_timer1 > 127)
relay_timer1 = 127;
I2C_rcv[0] = relay_timer1;
AT24C128_write(0x06,I2C_rcv,1);
purview_timer = 0x4B0;
DataBuf[7] = 0x30;
DataBuf[8] = 0x30;
send_chk(18);
}
else if(DataBuf[2] == 0xE7) //开门后等待进入的延时时间(单独设定)
{
open_timer1 = (DataBuf[4]<<4) + DataBuf[5];
if(open_timer1 < 20)
open_timer1 = 20;
I2C_rcv[0] = open_timer1;
AT24C128_write(0x07,I2C_rcv,1);
purview_timer = 0x4B0;
DataBuf[7] = 0x30;
DataBuf[8] = 0x30;
send_chk(18);
}
else if(DataBuf[2] == 0xE8) //红外报警输出的被确认时间(单独设定)
{
infrared_alarm_timer1 = (DataBuf[4]<<4) + DataBuf[5];
if(infrared_alarm_timer1 < 20)
infrared_alarm_timer1 = 20;
I2C_rcv[0] = infrared_alarm_timer1;
AT24C128_write(0x08,I2C_rcv,1);
purview_timer = 0x4B0;
DataBuf[7] = 0x30;
DataBuf[8] = 0x30;
send_chk(18);
}
else if(DataBuf[2] == 0xE9) //设定异地报警的延时时间(单独设定)
{
if(uart_rcv_len == 6)
{
exotic_alarm_timer1 = (DataBuf[4]<<4) + DataBuf[5];
if(exotic_alarm_timer1 < 20)
exotic_alarm_timer1 = 20;
I2C_rcv[0] = exotic_alarm_timer1;
AT24C128_write(0x09,I2C_rcv,1);
purview_timer = 0x4B0;
DataBuf[7] = 0x30;
DataBuf[8] = 0x30;
send_chk(18);
}
}
else if(DataBuf[2] == 0xEF) //开启红外监控后的等待延时
{
infrared_comm_timer1 = (DataBuf[6]<<4) + DataBuf[7];
if(infrared_comm_timer1 < 20)
infrared_comm_timer1 = 20;
I2C_rcv[0] = infrared_comm_timer1;
AT24C128_write(0x0A,I2C_rcv,1);
purview_timer = 0x4B0;
DataBuf[7] = 0x30;
DataBuf[8] = 0x30;
send_chk(18);
}
else if(DataBuf[2] == 0xFB) //门开关状态监控的布防与撤防
{ //D7
DataBuf[4] = (DataBuf[4]<<4) + DataBuf[5];
if(DataBuf[4] == 0)
{
col_flag1 &= 0x7F;
AT24C128_write(0x0B,&col_flag1,1);
purview_timer = 0x4B0;
DataBuf[7] = 0x30;
DataBuf[8] = 0x30;
send_chk(18);
}
else if(DataBuf[4] == 1)
{
col_flag1 |= 0x80;
AT24C128_write(0x0B,&col_flag1,1);
purview_timer = 0x4B0;
DataBuf[7] = 0x30;
DataBuf[8] = 0x30;
send_chk(18);
}
}
else if(DataBuf[2] == 0xFA) //红外监控的布防与撤防
{ //D6
DataBuf[4] = (DataBuf[4]<<4) + DataBuf[5];
if(DataBuf[4] == 0)
{
col_flag1 &= 0xBF;
AT24C128_write(0x0B,&col_flag1,1);
purview_timer = 0x4B0;
DataBuf[7] = 0x30;
DataBuf[8] = 0x30;
send_chk(18);
}
else if(DataBuf[4] == 1)
{
col_flag1 |= 0x40;
AT24C128_write(0x0B,&col_flag1,1);
purview_timer = 0x4B0;
DataBuf[7] = 0x30;
DataBuf[8] = 0x30;
send_chk(18);
}
}
else if(DataBuf[2] == 0xF9) //设定门控电磁锁的(种类)特性
{ //D5
DataBuf[4] = (DataBuf[4]<<4) + DataBuf[5];
if(DataBuf[4] == 0)
{
col_flag1 &= 0xDF;
AT24C128_write(0x0B,&col_flag1,1);
purview_timer = 0x4B0;
DataBuf[7] = 0x30;
DataBuf[8] = 0x30;
send_chk(18);
}
else if(DataBuf[4] == 1)
{
col_flag1 |= 0x20;
AT24C128_write(0x0B,&col_flag1,1);
purview_timer = 0x4B0;
DataBuf[7] = 0x30;
DataBuf[8] = 0x30;
send_chk(18);
}
}
else if(DataBuf[2] == 0xF7) //设定门开关感应器在开门状态时的有效电平(输出给门控器)
{ //D3
DataBuf[4] = (DataBuf[4]<<4) + DataBuf[5];
if(DataBuf[4] == 0)
{
col_flag1 &= 0xF7;
AT24C128_write(0x0B,&col_flag1,1);
purview_timer = 0x4B0;
DataBuf[7] = 0x30;
DataBuf[8] = 0x30;
send_chk(18);
}
else if(DataBuf[4] == 1)
{
col_flag1 |= 0x08;
AT24C128_write(0x0B,&col_flag1,1);
purview_timer = 0x4B0;
DataBuf[7] = 0x30;
DataBuf[8] = 0x30;
send_chk(18);
}
}
else if(DataBuf[2] == 0xF6) //设定红外感应器在报警时的有效电平(输出给门控器)
{ //D2
DataBuf[4] = (DataBuf[4]<<4) + DataBuf[5];
if(DataBuf[4] == 0)
{
col_flag1 &= 0xFB;
AT24C128_write(0x0B,&col_flag1,1);
purview_timer = 0x4B0;
DataBuf[7] = 0x30;
DataBuf[8] = 0x30;
send_chk(18);
}
else if(DataBuf[4] == 1)
{
col_flag1 |= 0x04;
AT24C128_write(0x0B,&col_flag1,1);
purview_timer = 0x4B0;
DataBuf[7] = 0x30;
DataBuf[8] = 0x30;
send_chk(18);
}
}
else if(DataBuf[2] == 0xF5) //设定是否刷卡加密码
{ //D1
DataBuf[4] = (DataBuf[4]<<4) + DataBuf[5];
if(DataBuf[4] == 0)
{
col_flag1 &= 0xFD;
AT24C128_write(0x0B,&col_flag1,1);
purview_timer = 0x4B0;
DataBuf[7] = 0x30;
DataBuf[8] = 0x30;
send_chk(18);
}
else if(DataBuf[4] == 1)
{
col_flag1 |= 0x02;
AT24C128_write(0x0B,&col_flag1,1);
purview_timer = 0x4B0;
DataBuf[7] = 0x30;
DataBuf[8] = 0x30;
send_chk(18);
}
}
else if(DataBuf[2] == 0xE5) //所有控制参数
{ //门磁、红外等感应器的特性(单独设定)
//整体设定(1) 整体设定(2) 整体设定(3)
if(uart_rcv_len == 6)
{
col_flag1 = (DataBuf[4]<<4) + DataBuf[5];
AT24C128_write(0x0B,&col_flag1,1);
purview_timer = 0x4B0;
DataBuf[7] = 0x30;
DataBuf[8] = 0x30;
send_chk(18);
}
else if(uart_rcv_len == 8)
{
col_flag1 = (DataBuf[4]<<4) + DataBuf[5];
AT24C128_write(0x0B,&col_flag1,1);
col_flag2 = (DataBuf[6]<<4) + DataBuf[7];
AT24C128_write(0x0C,&col_flag2,1);
purview_timer = 0x4B0;
DataBuf[7] = 0x30;
DataBuf[8] = 0x30;
send_chk(18);
}
else if(uart_rcv_len == 14)
{
col_flag1 = (DataBuf[4]<<4) + DataBuf[5];
AT24C128_write(0x0B,&col_flag1,1);
relay_timer1 = (DataBuf[6]<<4) + DataBuf[7];
if(relay_timer1 < 20)
relay_timer1 = 20;
else if(relay_timer1 > 127)
relay_timer1 = 127;
AT24C128_write(0x06,&relay_timer1,1);
open_timer1 = (DataBuf[8]<<4) + DataBuf[9];
if(open_timer1 < 20)
open_timer1 = 20;
AT24C128_write(0x07,&open_timer1,1);
infrared_alarm_timer1 = (DataBuf[10]<<4) + DataBuf[11];
if(infrared_alarm_timer1 < 20)
infrared_alarm_timer1 = 20;
AT24C128_write(0x08,&infrared_alarm_timer1,1);
exotic_alarm_timer1 = (DataBuf[12]<<4) + DataBuf[13];
if(exotic_alarm_timer1 < 20)
exotic_alarm_timer1 = 20;
AT24C128_write(0x09,&exotic_alarm_timer1,1);
purview_timer = 0x4B0;
DataBuf[7] = 0x30;
DataBuf[8] = 0x30;
send_chk(18);
}
else if(uart_rcv_len == 16)
{
col_flag1 = (DataBuf[4]<<4) + DataBuf[5];
AT24C128_write(0x0B,&col_flag1,1);
relay_timer1 = (DataBuf[6]<<4) + DataBuf[7];
if(relay_timer1 < 20)
relay_timer1 = 20;
else if(relay_timer1 > 127)
relay_timer1 = 127;
AT24C128_write(0x06,&relay_timer1,1);
open_timer1 = (DataBuf[8]<<4) + DataBuf[9];
if(open_timer1 < 20)
open_timer1 = 20;
AT24C128_write(0x07,&open_timer1,1);
infrared_alarm_timer1 = (DataBuf[10]<<4) + DataBuf[11];
if(infrared_alarm_timer1 < 20)
infrared_alarm_timer1 = 20;
AT24C128_write(0x08,&infrared_alarm_timer1,1);
exotic_alarm_timer1 = (DataBuf[12]<<4) + DataBuf[13];
if(exotic_alarm_timer1 < 20)
exotic_alarm_timer1 = 20;
AT24C128_write(0x09,&exotic_alarm_timer1,1);
col_flag2 = (DataBuf[14]<<4) + DataBuf[15];
AT24C128_write(0x0C,&col_flag2,1);
purview_timer = 0x4B0;
DataBuf[7] = 0x30;
DataBuf[8] = 0x30;
send_chk(18);
}
}
else if(DataBuf[2] == 0xEE) //设置系统支持维根感应头的种类及卡片编号的获取方法
{
purview_timer = 0x4B0;
DataBuf[7] = 0x30;
DataBuf[8] = 0x30;
send_chk(18);
}
else if(DataBuf[2] == 0xF2) //设定系统使用的感应卡种类
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -