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

📄 setbid.bak

📁 最先进的信号机程序,经过很多重要场合测试通过
💻 BAK
📖 第 1 页 / 共 2 页
字号:
        head=0;tail=0;
         EA=1;
         tran_fpag(0x98);
}
//设置日计划调度表
set_datadis()
{
  unsigned char *p;
  unsigned short check_temp;
  unsigned int i;
  unsigned int j;
  data_final_number=0;
  datanumber=0;
  //设置日计划调度表

  for(i=0;i<60;i++)XBYTE[0X6ce2+i]=checkdata[5+i];  //一个日计划调度表写入

  //应答
  answer_data[0]=0X00;
  answer_data[1]=0X43;
  answer_data[2]=0Xcc;
  answer_data[3]=0XC1;
  answer_data[4]=0XD9;
  p=&answer_data[0];
  check_temp=cal_crc(p,5);
  answer_data[5]=(check_temp>>8);    //crc
  answer_data[6]=check_temp;         //crc
  answer_data[7]=0x7e;

  for(i=0;i<8;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!=7))data_final_number++;
           if(data_final_number==8){
                 data_final[datanumber++]=tempdata;
		 data_final_number=0;
		 tempdata=0;
                                    }

                           }
                    }
        if(data_final_number!=0)data_final[datanumber++]=tempdata;
        SBUF=0X7E;
        while(!TI);TI=0;
	for(i=0;i<datanumber;i++)
	{
	    SBUF=data_final[i];
            while(!TI);TI=0;
	}EA=0;
        head=0;tail=0;
         EA=1;
         tran_fpag(0x99);
}
//设置当前控制方案
set_nowsch()
{
}
//设置统计周期
set_caperiod()
{
}
//查询信号机标志
bid_flag()
{
}
//查询信号机特征参数
bid_mark()
{


}
//查询时间
bid_time()
{
  unsigned char *p;
  unsigned short check_temp;

  unsigned char i;
  unsigned char j;

  data_final_number=0;
  datanumber=0;
  //设置时间后用
  answer_data[0]=0xaa;
  answer_data[1]=0xdd;
  answer_data[2]=0xcc;
  answer_data[3]=0xc1;
  answer_data[4]=0xc3;
  answer_data[5]=XBYTE[0XC009];  //year
  answer_data[6]=XBYTE[0XC008];  //month
  answer_data[7]=XBYTE[0XC007];  //date
  answer_data[8]=XBYTE[0XC004];  //hour
  answer_data[9]=XBYTE[0XC002];  //min
  answer_data[10]=XBYTE[0XC000];  //sec
  answer_data[11]=XBYTE[0XC006];  //day
  //应答
  p=&answer_data[0];
  check_temp=cal_crc(p,12);
  answer_data[12]=(check_temp>>8);    //crc
  answer_data[13]=check_temp;         //crc
  answer_data[14]=0x7e;

  for(i=0;i<15;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!=14))data_final_number++;
           if(data_final_number==8){
                 data_final[datanumber++]=tempdata;
		 data_final_number=0;
		 tempdata=0;
                                    }
                         }
                    }
        if(data_final_number!=0)data_final[datanumber++]=tempdata;
        SBUF=0X7E;
        while(!TI);TI=0;
	for(i=0;i<datanumber;i++)
	{
	    SBUF=data_final[i];
            while(!TI);TI=0;
	}EA=0;
        head=0;tail=0;
         EA=1;
}
//查询相位时间
bid_phase()
{
  unsigned char *p;
  unsigned short check_temp;
  unsigned int i;
  unsigned int j;

  datanumber=0;
  data_final_number=0;
  answer_data[0]=0xaa;
  answer_data[1]=0xdd;
  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;

  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))data_final_number++;
           if(data_final_number==8){
                 data_final[datanumber++]=tempdata;
		 data_final_number=0;
		 tempdata=0;
                                    }
                         }
                    }
        if(data_final_number!=0)data_final[datanumber++]=tempdata;
        SBUF=0X7E;
        while(!TI);TI=0;
	for(i=0;i<datanumber;i++)
	{
	    SBUF=data_final[i];
            while(!TI);TI=0;
                     }EA=0;
            head=0;tail=0;
         EA=1;



}
//查询阶段表
bid_stage()
{
  unsigned char *p;
  unsigned short check_temp;
  unsigned int i;
  unsigned int j;

  data_final_number=0;
  datanumber=0;
  //应答
  answer_data[0]=0xaa;
  answer_data[1]=0xdd;
  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;

  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))data_final_number++;
           if(data_final_number==8){
                 data_final[datanumber++]=tempdata;
		 data_final_number=0;
		 tempdata=0;
                                    }
                         }
                    }
        if(data_final_number!=0)data_final[datanumber++]=tempdata;
        SBUF=0X7E;
        while(!TI);TI=0;
	for(i=0;i<datanumber;i++)
	{
	    SBUF=data_final[i];
            while(!TI);TI=0;
                     }EA=0;
        head=0;tail=0;
         EA=1;
}
//查询当前控制方案信息
bid_consch()
{
  unsigned char *p;
  unsigned short check_temp;
  unsigned int i;
  unsigned int j;

  data_final_number=0;
  datanumber=0;
  answer_data[0]=0xaa;
  answer_data[1]=0xdd;
  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;

  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))data_final_number++;
           if(data_final_number==8){
                 lin=answer_data[i];
                 data_final[datanumber++]=tempdata;
		 data_final_number=0;
		 tempdata=0;
                                    }
                         }
                    }
        if( data_final_number!=0)data_final[datanumber++]=tempdata;
        SBUF=0X7E;
        while(!TI);TI=0;
	for(i=0;i<datanumber;i++)
	{
	    SBUF=data_final[i];
            while(!TI);TI=0;
                     }EA=0;
        head=0;tail=0;
         EA=1;
}
//查询日计划
bid_datesch()
{
  unsigned char *p;
  unsigned short check_temp;
  unsigned int i;
  unsigned int j;

  data_final_number=0;
  datanumber=0;

  answer_data[0]=0xaa;
  answer_data[1]=0xdd;
  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;

  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))data_final_number++;
           if(data_final_number==8){
                 data_final[datanumber++]=tempdata;
		 data_final_number=0;
		 tempdata=0;
                                    }

                         }
                    }
        if(data_final_number!=0)data_final[datanumber++]=tempdata;
        SBUF=0X7E;
        while(!TI);TI=0;
	for(i=0;i<datanumber;i++)
	{
	    SBUF=data_final[i];
            while(!TI);TI=0;
                     }EA=0;
        head=0;tail=0;
         EA=1;
}
//查询日计划调度表
bid_datadis()
{
  unsigned char *p;
  unsigned short check_temp;
  unsigned int i;
  unsigned int j;

  data_final_number=0;
  datanumber=0;
  answer_data[0]=0xaa;
  answer_data[1]=0xdd;
  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;

  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))data_final_number++;
           if(data_final_number==8){
                 data_final[datanumber++]=tempdata;
		 data_final_number=0;
		 tempdata=0;
                                    }
                         }
                    }
        if(data_final_number!=0)data_final[datanumber++]=tempdata;
        SBUF=0X7E;
        while(!TI);TI=0;
	for(i=0;i<datanumber;i++)
	{
	    SBUF=data_final[i];
            while(!TI);TI=0;
                     }EA=0;
        head=0;tail=0;
         EA=1;
}
//查询当前控制方案信息

bid_nowsch()
{
}
//查询当前状态
bid_nowstae()
{
}
//查询统计周期
bid_caperiod()
{
}
//查询统计周期
bid_inform()
{
}
com_receive_deal()
{
 
  switch(receive_flag){       //设置

    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 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;    //查询统计数据
    default:break;
           }

}

⌨️ 快捷键说明

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