⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 system.c

📁 一体化锁主程序
💻 C
📖 第 1 页 / 共 5 页
字号:
             }
             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 + -