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

📄 setbid.c

📁 ASC 信号机控制程序,国内最先进的信号机控制程序
💻 C
📖 第 1 页 / 共 3 页
字号:
           if(data_final_number>=8){             /////////////////////////////////
               if(beginbit==1){                  ////////////////////
                          data_final_number=1;   ////////////////////////
                          beginbit=0;            ////////////////////
                               }else{
                          data_final_number=0;
                                     }
                 data_final[datanumber++]=tempdata; 	  /////////////////////
	        tempdata=0;
                                    }
                         }
                    }
        if( data_final_number!=0)data_final[datanumber++]=tempdata;
        EA=0;
        SBUF=0X7E;
        while(!TI);TI=0;
	for(i=0;i<datanumber;i++)
	{
	    SBUF=data_final[i];
            while(!TI);TI=0;
	}
        EA=1;
}
//查询相位时间
bid_phase()
{
  unsigned char *p;
  unsigned short check_temp;
  unsigned int i;
  unsigned int j;
  unsigned char beginbit=0;
  datanumber=0;
  data_final_number=0;
  answer_data[0]=h_address;
  answer_data[1]=l_address;
  answer_data[2]=0xcc;
  answer_data[3]=0xc1;
  answer_data[4]=0xc4;
  if(checkdata[5]==0){//应答相位表1
         for(i=0;i<289;i++)answer_data[5+i]=XBYTE[0x5000+i];
                      }else{       //应答相位表2
                for(i=0;i<289;i++)answer_data[5+i]=XBYTE[0x5121+i];
                          }
  //应答
  p=&answer_data[0];
  check_temp=cal_crc(p,294);
//  check_temp=(check_temp>>8);
  answer_data[294]=(check_temp>>8);    //crc
  answer_data[295]=check_temp;         //crc
  answer_data[296]=0x7e;
  tempdata=0;
  for(i=0;i<297;i++){
        for(j=0;j<8;j++){
           add_bit=(answer_data[i]>>(7-j))%2;
           add_transparences();
           tempdata=tempdata+(add_bit<<(7-data_final_number++));
           if((add_transparence_valid==1) && (i!=296)){ ///////////////////////////////////
                   if(data_final_number==8)beginbit=1;
                                      else data_final_number++;
                                          }      ///////////////////////////////////
           if(data_final_number>=8){             /////////////////////////////////
               if(beginbit==1){                  ////////////////////
                          data_final_number=1;   ////////////////////////
                          beginbit=0;            ////////////////////
                               }else{
                          data_final_number=0;
                                     }
                 data_final[datanumber++]=tempdata; 	  /////////////////////
	        tempdata=0;
                                    }
                         }
                    }
        if( data_final_number!=0)data_final[datanumber++]=tempdata;
        EA=0;
        SBUF=0X7E;
        while(!TI);TI=0;
	for(i=0;i<datanumber;i++)
	{
	    SBUF=data_final[i];
            while(!TI);TI=0;
	}
        EA=1;



}
//查询阶段表
bid_stage()
{
  unsigned char *p;
  unsigned short check_temp;
  unsigned int i;
  unsigned int j;
  unsigned char beginbit=0;
  data_final_number=0;
  datanumber=0;
  //应答
  answer_data[0]=h_address;
  answer_data[1]=l_address;
  answer_data[2]=0xcc;
  answer_data[3]=0xc1;
  answer_data[4]=0xc5;

  j=checkdata[5];
  j=(j-1)*98;
  for(i=0;i<98;i++){
         answer_data[5+i]=XBYTE[0X5242+i+j];
                    }
  p=&answer_data[0];
  check_temp=cal_crc(p,103);
  answer_data[103]=(check_temp>>8);    //crc
  answer_data[104]=check_temp;         //crc
  answer_data[105]=0x7e;
  tempdata=0;
  for(i=0;i<106;i++){
        for(j=0;j<8;j++){
           add_bit=(answer_data[i]>>(7-j))%2;
           add_transparences();
           tempdata=tempdata+(add_bit<<(7-data_final_number++));
           if((add_transparence_valid==1) && (i!=105)){ ///////////////////////////////////
                   if(data_final_number==8)beginbit=1;
                                      else data_final_number++;
                                          }      ///////////////////////////////////
           if(data_final_number>=8){             /////////////////////////////////
               if(beginbit==1){                  ////////////////////
                          data_final_number=1;   ////////////////////////
                          beginbit=0;            ////////////////////
                               }else{
                          data_final_number=0;
                                     }
                 data_final[datanumber++]=tempdata; 	  /////////////////////
	        tempdata=0;
                                    }
                         }
                    }
        if( data_final_number!=0)data_final[datanumber++]=tempdata;
        EA=0;
        SBUF=0X7E;
        while(!TI);TI=0;
	for(i=0;i<datanumber;i++)
	{
	    SBUF=data_final[i];
            while(!TI);TI=0;
	}
        EA=1;
}
//查询当前控制方案信息
bid_consch()
{
  unsigned char *p;
  unsigned short check_temp;
  unsigned int i;
  unsigned int j;
  unsigned char beginbit=0;
  data_final_number=0;
  datanumber=0;
  answer_data[0]=h_address;
  answer_data[1]=l_address;
  answer_data[2]=0xcc;
  answer_data[3]=0xc1;
  answer_data[4]=0xc6;

  j=(checkdata[5]-1)*41;
  for(i=0;i<41;i++){
         answer_data[5+i]=XBYTE[0X5e82+i+j];
                    }

  //应答
  p=&answer_data[0];
  check_temp=cal_crc(p,46);
  answer_data[46]=(check_temp>>8);    //crc
  answer_data[47]=check_temp;         //crc
  answer_data[48]=0x7e;
  tempdata=0;
  for(i=0;i<49;i++){
        for(j=0;j<8;j++){
           add_bit=(answer_data[i]>>(7-j))%2;
           add_transparences();
           tempdata=tempdata+(add_bit<<(7-data_final_number++));
           if((add_transparence_valid==1) && (i!=48)){ ///////////////////////////////////
                   if(data_final_number==8)beginbit=1;
                                      else data_final_number++;
                                          }      ///////////////////////////////////
           if(data_final_number>=8){             /////////////////////////////////
               if(beginbit==1){                  ////////////////////
                          data_final_number=1;   ////////////////////////
                          beginbit=0;            ////////////////////
                               }else{
                          data_final_number=0;
                                     }
                 data_final[datanumber++]=tempdata; 	  /////////////////////
	        tempdata=0;
                                    }
                         }
                    }
        if( data_final_number!=0)data_final[datanumber++]=tempdata;
        EA=0;
        SBUF=0X7E;
        while(!TI);TI=0;
	for(i=0;i<datanumber;i++)
	{
	    SBUF=data_final[i];
            while(!TI);TI=0;
	}
        EA=1;
}
//查询日计划
bid_datesch()
{
  unsigned char *p;
  unsigned short check_temp;
  unsigned int i;
  unsigned int j;
  unsigned char beginbit=0;
  data_final_number=0;
  datanumber=0;

  answer_data[0]=h_address;
  answer_data[1]=l_address;
  answer_data[2]=0xcc;
  answer_data[3]=0xc1;
  answer_data[4]=0xc8;

  j=checkdata[5];
  j=(j-1)*74;
  for(i=0;i<74;i++){
         answer_data[5+i]=XBYTE[0X63a2+i+j];
                    }

  //应答
  p=&answer_data[0];
  check_temp=cal_crc(p,79);
  answer_data[79]=(check_temp>>8);    //crc
  answer_data[80]=check_temp;         //crc
  answer_data[81]=0x7e;
  tempdata=0;
  for(i=0;i<82;i++){
        for(j=0;j<8;j++){
           add_bit=(answer_data[i]>>(7-j))%2;
           add_transparences();
           tempdata=tempdata+(add_bit<<(7-data_final_number++));
           if((add_transparence_valid==1) && (i!=81)){ ///////////////////////////////////
                   if(data_final_number==8)beginbit=1;
                                      else data_final_number++;
                                          }      ///////////////////////////////////
           if(data_final_number>=8){             /////////////////////////////////
               if(beginbit==1){                  ////////////////////
                          data_final_number=1;   ////////////////////////
                          beginbit=0;            ////////////////////
                               }else{
                          data_final_number=0;
                                     }
                 data_final[datanumber++]=tempdata; 	  /////////////////////
	        tempdata=0;
                                    }
                         }
                    }
        if( data_final_number!=0)data_final[datanumber++]=tempdata;
        EA=0;
        SBUF=0X7E;
        while(!TI);TI=0;
	for(i=0;i<datanumber;i++)
	{
	    SBUF=data_final[i];
             while(!TI);TI=0;
	}
        EA=1;
}
//查询日计划调度表
bid_datadis()
{
  unsigned char *p;
  unsigned short check_temp;
  unsigned int i;
  unsigned int j;
  unsigned char beginbit=0;
  data_final_number=0;
  datanumber=0;
  answer_data[0]=h_address;
  answer_data[1]=l_address;
  answer_data[2]=0xcc;
  answer_data[3]=0xc1;
  answer_data[4]=0xc9;

  for(i=0;i<60;i++){
         answer_data[5+i]=XBYTE[0X6Ce2+i];
                    }

  //应答
  p=&answer_data[0];
  check_temp=cal_crc(p,65);
  answer_data[65]=(check_temp>>8);    //crc
  answer_data[66]=check_temp;         //crc
  answer_data[67]=0x7e;
  tempdata=0;
  for(i=0;i<68;i++){
        for(j=0;j<8;j++){
           add_bit=(answer_data[i]>>(7-j))%2;
           add_transparences();
           tempdata=tempdata+(add_bit<<(7-data_final_number++));
           if((add_transparence_valid==1) && (i!=67)){ ///////////////////////////////////
                   if(data_final_number==8)beginbit=1;
                                      else data_final_number++;
                                          }      ///////////////////////////////////
           if(data_final_number>=8){             /////////////////////////////////
               if(beginbit==1){                  ////////////////////
                          data_final_number=1;   ////////////////////////
                          beginbit=0;            ////////////////////
                               }else{
                          data_final_number=0;
                                     }
                 data_final[datanumber++]=tempdata; 	  /////////////////////
	        tempdata=0;
                                    }
                         }
                    }
        if( data_final_number!=0)data_final[datanumber++]=tempdata;
        EA=0;
        SBUF=0X7E;
        while(!TI);TI=0;
	for(i=0;i<datanumber;i++)
	{
	    SBUF=data_final[i];
            while(!TI);TI=0;
	}
        EA=1;
}  //查询遥控设置
bid_remote()
{
  unsigned char *p;
  unsigned short check_temp;
  unsigned int i;
  unsigned int j;
  unsigned char beginbit=0;
  data_final_number=0;
  datanumber=0;
  answer_data[0]=h_address;
  answer_data[1]=l_address;
  answer_data[2]=0xcc;
  answer_data[3]=0xc1;
  answer_data[4]=0xcf;  //应答遥控设置

  for(i=0;i<8;i++){
         answer_data[5+i]=XBYTE[0X6d20+i];
                    }

  //应答
  p=&answer_data[0];
  check_temp=cal_crc(p,13);
  answer_data[13]=(check_temp>>8);    //crc
  answer_data[14]=check_temp;         //crc
  answer_data[15]=0x7e;
  tempdata=0;
  for(i=0;i<16;i++){
        for(j=0;j<8;j++){
           add_bit=(answer_data[i]>>(7-j))%2;
           add_transparences();
           tempdata=tempdata+(add_bit<<(7-data_final_number++));
           if((add_transparence_valid==1) && (i!=15)){ ///////////////////////////////////
                   if(data_final_number==8)beginbit=1;
                                      else data_final_number++;
                                          }      ///////////////////////////////////
           if(data_final_number>=8){             /////////////////////////////////
               if(beginbit==1){                  ////////////////////
                          data_final_number=1;   ////////////////////////
                          beginbit=0;            ////////////////////
                               }else{
                          data_final_number=0;
                                     }
                 data_final[datanumber++]=tempdata; 	  /////////////////////
	        tempdata=0;
                                    }
                         }
                    }
        if( data_final_number!=0)data_final[datanumber++]=tempdata;
        EA=0;
        SBUF=0X7E;
        while(!TI);TI=0;
	for(i=0;i<datanumber;i++)
	{
	    SBUF=data_final[i];
             while(!TI);TI=0;
	}
        EA=1;
}

//查询当前控制方案信息

bid_nowsch()
{
}
//查询当前状态
bid_nowstae()
{
}
//查询统计周期
bid_caperiod()
{
}
//查询统计周期
bid_inform()
{
}
com_receive_deal()
{
    tempdata=0;
  switch(receive_flag){       //设置
     WatchDog = !WatchDog;
    case 0x93:set_time();     break;    //设置时间
    case 0x94:set_phase();    break;    //设置相位
    case 0x95:set_stage();    break;   //设置阶段表
    case 0x96:set_project();  break;    //设置控制方案
    case 0x97:set_uppc();     break;    //上位机直接控制
    case 0x98:set_datesch();  break;   //设置日计划
    case 0x99:set_datadis();  break;    //设置日计划调度表
    case 0x9a:set_nowsch();   break;    //设置当前控制方案
    case 0x9c:set_caperiod(); break;   //设置统计周期
    case 0x9f:switch(second_flag){     //新中新增补协议设置区
               case 0x02: break;
               case 0x0d: set_remote();  break;
               default:break;
                                  }
                  break;   //遥控设置  0D

    //查询
     case 0x81:bid_flag();    break;    //查询信号机标识
    case 0x82:bid_mark();    break;    //查询信号机特征参数
    case 0x83:bid_time();    break;    //查询信号机时间
    case 0x84:bid_phase();   break;    //查询相位配置
    case 0x85:bid_stage();   break;    //查询阶段表
    case 0x86:bid_consch();  break;    //查询控制方案
    case 0x88:bid_datesch(); break;    //查询日计划
    case 0x89:bid_datadis(); break;    //查询日计划调度表信息
    case 0x8a:bid_nowsch();  break;    //查询当前控制方案信息
    case 0x8b:bid_nowstae(); break;    //查询信号机当前状态
    case 0x8c:bid_caperiod();break;    //查询统计周期
    case 0x8d:bid_inform();  break;    //查询统计数据
   // case 0x8f:bid_remote();  break;    //查询遥控状态//此处增加  0D
    case 0x8f:switch(second_flag){       //新中新增补协议查询区
               case 0x02: break;
               case 0x0d: bid_remote();  break;
               default:break;
                                  }
               break;    //查询遥控状态//此处增加  0D

    default:break;
           }

}

⌨️ 快捷键说明

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