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

📄 protocol.c

📁 这是一个
💻 C
📖 第 1 页 / 共 2 页
字号:
   	 	break;
               case (0x31):
                if(Rcv_Buf[Rcv_Rp+7]==Station)
                   {
                    House_R=Rcv_Buf[Rcv_Rp+9];
                    Alarm_Check=1;
                    if(House_R!=0xff)
                      {
                        if(Rcv_Buf[Rcv_Rp+10]!=0xff)
                        {
                          Hdd_En=Read1B(250+(House_R-1)/8,0);
                          Short_Bak=Read1B(170+(House_R-1)/8,0);
                          Break_Bak=Read1B(175+(House_R-1)/8,0);
                          if (Rcv_Buf[Rcv_Rp+10]&0x80)
                           {
                            Hdd_En|=(1<<((House_R-1)%8));
                           }
                           else
                           {
                            Hdd_En&=~(1<<((House_R-1)%8));
                            Short_Bak&=~(1<<((House_R-1)%8));
                            Break_Bak&=~(1<<((House_R-1)%8));
                            Short_New[(House_R-1)/8]=0;
                            Break_New[(House_R-1)/8]=0;
                           }
                          Write1B(Hdd_En,250+(House_R-1)/8,0);
                          Write1B(Short_Bak,170+(House_R-1)/8,0);
                          Write1B(Break_Bak,175+(House_R-1)/8,0);
                               //Type
                           Rcv_Tmp=Rcv_Buf[Rcv_Rp+10]&0x0f;
                           i=Read1B((House_R-1)+200,0);
                           i&=0xf0;
                           Rcv_Tmp|=i;
                           Write1B(Rcv_Tmp,(House_R-1)+200,0);
                        }
                        if(Rcv_Buf[Rcv_Rp+11]!=0xff)
                          {
                           Write1B(Rcv_Buf[Rcv_Rp+11],(House_R-1)*3,1);
                          }
                        if(Rcv_Buf[Rcv_Rp+12]!=0xff)
                          {
                            Write1B(Rcv_Buf[Rcv_Rp+12],(House_R-1)*3+1,1);
                          }
                        if(Rcv_Buf[Rcv_Rp+13]!=0xff)
                          {
                           Write1B(Rcv_Buf[Rcv_Rp+13],(House_R-1)*3+2,1);
                          }
                           //Point
                        if(Rcv_Buf[Rcv_Rp+16]!=0xff)
                          {
                           Rcv_Tmp=Rcv_Buf[Rcv_Rp+16];
                           Rcv_Tmp<<=4;
                           i=Read1B((House_R-1)+200,0);
                           i&=0x0f;
                           Rcv_Tmp|=i;
                           Write1B(Rcv_Tmp,(House_R-1)+200,0);
                          }

                            //CONST
                        if(Rcv_Buf[Rcv_Rp+14]!=0xff)
                        {
                         Rcv_Tmp=Rcv_Buf[Rcv_Rp+14];
                         Rcv_Tmp<<=4;
                         i=Read1B((House_R-1)+120,1);
                         i&=0x0f;
                         Rcv_Tmp|=i;
                          Write1B(Rcv_Tmp,(House_R-1)+120,1);
                         }
                           //RANGE
                         if(Rcv_Buf[Rcv_Rp+15]!=0xff)
                          {
                           Rcv_Tmp=Rcv_Buf[Rcv_Rp+15]&0x0f;
                           i=Read1B((House_R-1)+120,1);
                           i&=0xf0;
                           Rcv_Tmp|=i;
                           Write1B(Rcv_Tmp,(House_R-1)+120,1);
                          }
                        Rcv_Tmp=Rcv_Buf[Rcv_Rp+17];
                        if(Rcv_Tmp!=0xff)
                        {
                          Short_En=Read1B(240+(House_R-1)/8,0);
                          Short_Bak=Read1B(170+(House_R-1)/8,0);
                          if (Rcv_Tmp&0x04)
                           {
                             Short_En|=(1<<((House_R-1)%8));
                           }
                           else
                           {
                            Short_En&=~(1<<((House_R-1)%8));
                            Short_Bak&=~(1<<((House_R-1)%8));
                            Short_New[(House_R-1)/8]=0;
                           }
                           Write1B(Short_En,240+(House_R-1)/8,0);
                           Write1B(Short_Bak,170+(House_R-1)/8,0);

                           Break_En=Read1B(245+(House_R-1)/8,0);
                           Break_Bak=Read1B(175+(House_R-1)/8,0);
                           if (Rcv_Tmp&0x10)
                            {
                              Break_En|=(1<<((House_R-1)%8));
                            }
                            else
                            {
                              Break_En&=~(1<<((House_R-1)%8));
                              Break_Bak&=~(1<<((House_R-1)%8));
                              Break_New[(House_R-1)/8]=0;
                            }
                            Write1B(Break_En,245+(House_R-1)/8,0);
                            Write1B(Break_Bak,175+(House_R-1)/8,0);

                            Power_En=Read1B(160+(House_R-1)/8,1);
                            if (Rcv_Tmp&0x40)
                            {
                             Power_En|=(1<<((House_R-1)%8));
                            }
                            else  Power_En&=~(1<<((House_R-1)%8));
                            Write1B(Power_En,160+(House_R-1)/8,1);
                        }
                     }
                     else   //0xff
                      {
                       if(Rcv_Buf[Rcv_Rp+10]!=0xff)
                        {
                         if (Rcv_Buf[Rcv_Rp+10]&0x80) //Hdd_En
                           {
                            for(i=0;i<5;i++)
                            {
                             Write1B(0xff,250+i,0);
                            }
                           }
                         else
                           {
                            for(i=0;i<5;i++)
                            {
                             Write1B(0x0,250+i,0);
                            }
                           }
                           //Type
                           Rcv_Tmp=Rcv_Buf[Rcv_Rp+10]&0x0f;
                           for(i=0;i<40;i++)
                            {
                             Tmp=Read1B(200+i,0);
                             Tmp&=0xf0;
                             Rcv_Tmp|=Tmp;
                             Write1B(Rcv_Tmp,200+i,0);
                            }
                        }

                        if(Rcv_Buf[Rcv_Rp+16]!=0xff)          //Point
                          {
                           Rcv_Tmp=Rcv_Buf[Rcv_Rp+16];
                           Rcv_Tmp<<=4;
                           for(i=0;i<40;i++)
                            {
                             Tmp=Read1B(200+i,0);
                             Tmp&=0x0f;
                             Rcv_Tmp|=Tmp;
                             Write1B(Rcv_Tmp,200+i,0);
                            }
                          }
                             //CONST
                         if(Rcv_Buf[Rcv_Rp+14]!=0xff)
                         {
                          Rcv_Tmp=Rcv_Buf[Rcv_Rp+14];
                          Rcv_Tmp<<=4;
                          for(i=0;i<40;i++)
                           {
                            Tmp=Read1B(120+i,1);
                            Tmp&=0x0f;
                            Rcv_Tmp|=Tmp;
                            Write1B(Rcv_Tmp,120+i,1);
                           }
                         }
                           //RANGE
                         if(Rcv_Buf[Rcv_Rp+15]!=0xff)
                          {
                           Rcv_Tmp=Rcv_Buf[Rcv_Rp+15]&0x0f;
                           for(i=0;i<40;i++)
                            {
                             Tmp=Read1B(120+i,1);
                             Tmp&=0xf0;
                             Rcv_Tmp|=Tmp;
                             Write1B(Rcv_Tmp,120+Tmp,1);
                            }
                          }
                         Rcv_Tmp=Rcv_Buf[Rcv_Rp+17];
                        if(Rcv_Tmp!=0xff)
                        {
                            //Short_En
                          for(i=0;i<5;i++)
                           {
                            if (Rcv_Tmp&0x04)
                             {
                              Short_En=0xff;
                             }
                             else  Short_En=0;
                             Write1B(Short_En,240+i,0);
                           }
                           //Break_En
                           for(i=0;i<5;i++)
                           {
                            if (Rcv_Tmp&0x10)
                             {
                              Break_En=0xff;
                             }
                             else  Break_En=0;
                             Write1B(Break_En,245+i,0);
                            }
                            //Power_En
                           for(i=0;i<5;i++)
                            {
                             if (Rcv_Tmp&0x40)
                             {
                              Power_En=0xff;
                             }
                             else  Power_En=0;
                             Write1B(Power_En,160+i,1);
                            }
                        }

                      }
                    Trs_Comm=0xbb;
                    Trs_Comm_Bak=0xb1;
                    Trs_Flag=1;
                    HddEn_Count=1;
                  /*  HddEn_Sum=0;
                    for (i=0;i<5;i++)
                     {
                      Hdd_En=Read1B(250+i,0);
                      for(j=0;j<8;j++)
                       {
                        if((Hdd_En&(1<<j))!=0)
                          {
                            HddEn_Sum++;
                            House_Max=i*8+j+1;
                          }
                       }
                     }   */
                   }
   	 	break;
              case (0x32):
                 if(Rcv_Buf[Rcv_Rp+7]==Station)
                   {
                    Trs_Comm=0xb2;
                    House_R=Rcv_Buf[Rcv_Rp+9];
                    Trs_Flag=1;
                    B3=0;
                   }
   	 	break;
   	     case (0x33):
                 if(Rcv_Buf[Rcv_Rp+7]==Station)
                   {
                    House_R=Rcv_Buf[Rcv_Rp+9];
                    Hdd_Str.Hdd_B[3]=Rcv_Buf[Rcv_Rp+10];
                    Hdd_Str.Hdd_B[2]=Rcv_Buf[Rcv_Rp+11];
                    Hdd_Str.Hdd_B[1]=Rcv_Buf[Rcv_Rp+12];
                    Hdd_Str.Hdd_B[0]=Rcv_Buf[Rcv_Rp+13];
                    if(House_R==0xff)
                      {
                        for(i=0;i<40;i++)
                         {
                          Write_Hdd(i);
                         }
                      }
                      else
                      {
                          Write_Hdd(House_R-1);
                      }
                    Trs_Comm=0xbb;
                    Trs_Comm_Bak=0xb3;
                    Trs_Flag=1;
                   }
   	 	break;
                case (0x34):
                 if(Rcv_Buf[Rcv_Rp+7]==Station)
                   {
                    House_R=Rcv_Buf[Rcv_Rp+9];
                    Alarm_Select=Rcv_Buf[Rcv_Rp+10];
                    Trs_Comm=0xb4;
                    Trs_Flag=1;
                   }
   	 	break;
               case (0x35):        //Clear Alarm
                 if(Rcv_Buf[Rcv_Rp+7]==Station)
                   {
                    Trs_Comm=0xbb;
                    Trs_Comm_Bak=0xb5;
                    Trs_Flag=1;
                   }
                 if(Rcv_Buf[Rcv_Rp+7]==Station
                    ||(Rcv_Buf[Rcv_Rp+7]==0xff&&Rcv_Buf[Rcv_Rp+8]==0xff))
                   {
                    House_R=Rcv_Buf[Rcv_Rp+9];
                    Alarm_Check=1;
                    if(House_R!=0xff)
                      {

                        if (Rcv_Buf[Rcv_Rp+10]&0x04)         //Short
                         {
                           i=Read1B(170+(House_R-1)/8,0);
                           i&=~(1<<((House_R-1)%8));
                           Write1B(i,170+(House_R-1)/8,0);
                           Short_New[(House_R-1)/8]=i;
                         }
                         if (Rcv_Buf[Rcv_Rp+10]&0x10)       //Break
                         {
                           i=Read1B(175+(House_R-1)/8,0);
                           i&=~(1<<((House_R-1)%8));
                           Write1B(i,175+(House_R-1)/8,0);
                           Break_New[(House_R-1)/8]=i;
                         }

                      }
                      else
                      {
                       if (Rcv_Buf[Rcv_Rp+10]&0x04)
                         {
                          for(i=0;i<5;i++)
                           {
                            Write1B(0,170+i,0);
                           }
                         }
                         if (Rcv_Buf[Rcv_Rp+10]&0x10)
                         {
                          for(i=0;i<5;i++)
                           {
                            Write1B(0,175+i,0);
                           }
                         }

                      }
                   }
                 break;
/*        case (0x37):        //Yk TongDuan

                 if(Rcv_Buf[Rcv_Rp+7]==Relay_Station
                    ||(Rcv_Buf[Rcv_Rp+7]==0xff&&Rcv_Buf[Rcv_Rp+8]==0xff))
                   {
                    House_R=Rcv_Buf[Rcv_Rp+9];
                    RelayOffTimes[House_R-1]=0;
                   }


                 break;
                    */

        case (0x60):
                 if(Rcv_Buf[Rcv_Rp+7]==Station)
                   {
                    Trs_Comm=0xe0;
                    House_R=Rcv_Buf[Rcv_Rp+9];
                    Trs_Flag=1;

                   }
   	 	break;
         case (0x61):
                 if(Rcv_Buf[Rcv_Rp+7]==Station)
                   {
                    House_R=Rcv_Buf[Rcv_Rp+9];
                    Tmp=Rcv_Buf[Rcv_Rp+10];
                    if(House_R==0xff)
                      {
                        for(i=0;i<40;i++)
                         {
                          Write1B(Tmp,200+i,1);
                         }
                      }
                      else
                      {
                           Write1B(Tmp,200+House_R-1,1);
                      }
                    Trs_Comm=0xbb;
                    Trs_Comm_Bak=0xe1;
                    Trs_Flag=1;
                   }
   	 	break;

                default:
                break;

   	 }
     /* if(Rcv_Comm==0x37 || Rcv_Comm==0x53 || Rcv_Comm==0x58)
          {
           if(Rcv_Buf[Rcv_Rp+7]==Station
                    ||(Rcv_Buf[Rcv_Rp+7]==0xff&&Rcv_Buf[Rcv_Rp+8]==0xff))
                   {
                      DIR2=0;
                      long_delay();
                      PSendChar(0xeb);
                      PSendChar(0x90);
                     for(i=0;i<Rcv_Rp+5+Rcv_Length+1;i++)
                      {
                       PSendChar(Rcv_Buf[Rcv_Rp+i]);
                      }
                     DIR2=1;
                   }

          }      */
   }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -