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

📄 nbbclass.cpp

📁 基于PC104平台
💻 CPP
📖 第 1 页 / 共 4 页
字号:
    }//if(tmp>=save_len[nportno])
    yxfuncode[nportno]++;
    save_count[nportno]=tmp;
    return;
  }//if(step_7[nportno]==ON)
  return;
}//void CNbb::sendd1()
void CNbb::sendd2()
{
  int tmp;
  if(isstepoff())step_1[nportno]=ON;
  if(step_1[nportno]==ON)
  {
    save_len[nportno]=port_set[nportno].len_d2;
    ymfuncode[nportno]=0xa0;
    save_count[nportno]=0;
    send_packet(sync_code);
    step_1[nportno]=OFF;
    step_2[nportno]=ON;
    return;
  }//if(step_1[nportno]==ON)
  if(step_2[nportno]==ON)
  {
    send_control_packet(0x71,0x85,save_len[nportno],0,0);
    step_2[nportno]=OFF;
    step_3[nportno]=ON;
	return;
  }//if(step_2[nportno]==ON)
  if(step_3[nportno]==ON)
  {
	tmp=save_count[nportno];
	if(tmp<save_len[nportno])
	{
	  if((isyxbw(nportno)==TRUE)&&(save_len[nportno]>=(tmp+3)))
      {
	send_yx_bw();
	step_3[nportno]=OFF;
	step_4[nportno]=ON;
	tmp++;
	if(tmp>=save_len[nportno])
	{
	  stepoff();
	  framed2[nportno]=OFF;
	}//if(tmp>=save_len[nportno])
	ymfuncode[nportno]++;
	save_count[nportno]=tmp;
	return;
      }//if((yx_bw_log[nportno].count!=0)&&(save_len[nportno]>=(tmp+3)))
      if((ykret.ykretflag[nportno]==TRUE)&&(save_len[nportno]>=(tmp+3)))
	  {
	send_yk_return();
	step_3[nportno]=OFF;
	step_6[nportno]=ON;
	tmp++;
	if(tmp>=save_len[nportno])
	{
	  stepoff();
	  framed2[nportno]=OFF;
	}//if(tmp>=save_len[nportno])
	ymfuncode[nportno]++;
	save_count[nportno]=tmp;
	return;
      }//if((ykret.ykretflag[nportno]==TRUE)&&(save_len[nportno]>=(tmp+3)))
      send_ym_packet();
      tmp++;
	  if(tmp>=save_len[nportno])
      {
	stepoff();
	framed2[nportno]=OFF;
      }//if(tmp>=save_len[nportno])
      save_count[nportno]=tmp;
      return;
    }//if(tmp<save_len[nportno])
    return;
  }//if(step_3[nportno]==ON)
  if(step_4[nportno]==ON)
  {
    tmp=save_count[nportno];
    send_yx_bw();
    step_4[nportno]=OFF;
    step_5[nportno]=ON;
	tmp++;
    if(tmp>=save_len[nportno])
    {
      stepoff();
      framed2[nportno]=OFF;
    }//if(tmp>=save_len[nportno])
    ymfuncode[nportno]++;
    save_count[nportno]=tmp;
    return;
  }//if(step_4[nportno]==ON)
  if(step_5[nportno]==ON)
  {
    tmp=save_count[nportno];
    send_yx_bw();
    step_5[nportno]=OFF;
    step_3[nportno]=ON;
	tmp++;
    if(tmp>=save_len[nportno])
    {
      stepoff();
      framed2[nportno]=OFF;
    }//if(tmp>=save_len[nportno])
    ymfuncode[nportno]++;
    save_count[nportno]=tmp;
    return;
  }//if(step_5[nportno]==ON)
  if(step_6[nportno]==ON)
  {
    tmp=save_count[nportno];
    send_yk_return();
    step_6[nportno]=OFF;
    step_7[nportno]=ON;
	tmp++;
    if(tmp>=save_len[nportno])
    {
      stepoff();
      framed2[nportno]=OFF;
    }//if(tmp>=save_len[nportno])
    ymfuncode[nportno]++;
    save_count[nportno]=tmp;
    return;
  }//if(step_6[nportno]==ON)
  if(step_7[nportno]==ON)
  {
    tmp=save_count[nportno];
    send_yk_return();
    step_7[nportno]=OFF;
    step_3[nportno]=ON;
	ykret.ykretflag[nportno]=FALSE;
    tmp++;
    if(tmp>=save_len[nportno])
    {
      stepoff();
      framed2[nportno]=OFF;
    }//if(tmp>=save_len[nportno])
    ymfuncode[nportno]++;
    save_count[nportno]=tmp;
    return;
  }//if(step_7[nportno]==ON)
  return;
}//void CNbb::sendd2()
void CNbb::sende()
{
  int tmp;
  if(isstepoff())step_1[nportno]=ON;
  if(step_1[nportno]==ON)
  {
	if((soe_ctl.count[nportno]*6)<port_set[nportno].len_a)
	  save_len[nportno]=soe_ctl.count[nportno]*6;
	else save_len[nportno]=port_set[nportno].len_a/6*6;
	save_count[nportno]=0;
	send_packet(sync_code);
	step_1[nportno]=OFF;
	step_2[nportno]=ON;
	return;
  }//if(step_1[nportno]==ON)
  if(step_2[nportno]==ON)
  {
	send_control_packet(0x71,0x26,save_len[nportno],0,0);
	step_2[nportno]=OFF;
	step_3[nportno]=ON;
	return;
  }//if(step_2[nportno]==ON)
  if(step_3[nportno]==ON)
  {
	tmp=save_count[nportno];
//	if(yx_bw_log[nportno].count!=0)
	if( isyxbw(nportno) == TRUE )
	{
	  send_yx_bw();
	  step_3[nportno]=OFF;
	  step_4[nportno]=ON;
	  return;
	}//if(yx_bw_log[nportno].count!=0)
	if((ykret.ykretflag[nportno]==TRUE))
	{
	  send_yk_return();
	  step_3[nportno]=OFF;
	  step_6[nportno]=ON;
	  return;
	}//if((ykret.ykretflag[nportno]==TRUE))
	if(tmp<save_len[nportno])
	{
	  send_soe_packet(1);
	  step_3[nportno]=OFF;
	  step_8[nportno]=ON;
	  return;
	}//if(tmp<save_len[nportno])
	return;
  }//if(step_3[nportno]==ON)
  if(step_4[nportno]==ON)
  {
	send_yx_bw();
	step_4[nportno]=OFF;
	step_5[nportno]=ON;
	return;
  }//if(step_4[nportno]==ON)
  if(step_5[nportno]==ON)
  {
	send_yx_bw();
	step_5[nportno]=OFF;
	step_3[nportno]=ON;
	return;
  }//if(step_5[nportno]==ON)
  if(step_6[nportno]==ON)
  {
	send_yk_return();
	step_6[nportno]=OFF;
	step_7[nportno]=ON;
	return;
  }//if(step_6[nportno]==ON)
  if(step_7[nportno]==ON)
  {
	send_yk_return();
	step_7[nportno]=OFF;
	step_3[nportno]=ON;
	ykret.ykretflag[nportno]=FALSE;
	return;
  }//if(step_7[nportno]==ON)
  if(step_8[nportno]==ON)
  {
	tmp=save_count[nportno];
	send_soe_packet(2);
	step_3[nportno]=ON;
	step_8[nportno]=OFF;
	tmp+=2;
	save_count[nportno]=tmp;
	if(tmp>=save_len[nportno])
	{
	  stepoff();
	  framee[nportno]=OFF;
	}//if(tmp>=save_len[nportno])
	return;
  }//if(step_8[nportno]==ON)
  return;
}//void CNbb::sende()
void CNbb::sendp()
{
  unsigned int temp,temp1;
  BYTE tmp=0;
  if((isstepoff())&&(framep[nportno]==ON))
  {
    temp=protectbuf[0].tbuf[mod(protectbuf[0].tstart+1,protectbuf[0].tsize)]&0xff;
    if((temp!=0x40)&&(temp!=0x53)&&(temp!=0x41)&&(temp!=0x51)&&(temp!=0x54))
    {
      protectbuf[0].tstart=0;
      protectbuf[0].tnext=0;
      protectbuf[0].tcount=0;
      framep[nportno]=OFF;
      return;
    }//if((temp!=0x40)&&(temp!=0x53)&&(temp!=0x4d)&&(temp!=0x51)&&(temp!=0x54))
  }//if((isstepoff())&&(framep[nportno]==ON))
  if(isstepoff())step_1[nportno]=ON;
  if(step_1[nportno]==ON)
  {
	if(protectbuf[0].tcount>protectbuf[0].tcount/4*4)
	{
	  save_len[nportno]=protectbuf[0].tcount/4+1;
	  if(save_len[nportno]>0x7f)save_len[nportno]=0x7f;
	}
	else save_len[nportno]=protectbuf[0].tcount/4;
    protfuncode[nportno]=0;
    save_count[nportno]=0;
    send_packet(sync_code);
    step_1[nportno]=OFF;
    step_2[nportno]=ON;
    return;
  }//if(step_1[nportno]==ON)
  if(step_2[nportno]==ON)
  {
    switch(protectbuf[0].tbuf[mod(protectbuf[0].tstart+1,protectbuf[0].tsize)])
    {
      case 0x40:	   temp=0xf8;	   break;
      case 0x53:	   temp=0xfc;	   break;
      case 0x41:	   temp=0xf9;	   break;
      case 0x51:	   temp=0xfa;	   break;
      case 0x54:	   temp=0xfe;	   break;
    }//switch(protectbuf[0].tbuf[mod(protectbuf[0].tstart+1,protectbuf[0].tsize)])
    send_control_packet(0x71,temp,save_len[nportno],0,0);
    step_2[nportno]=OFF;
    step_3[nportno]=ON;
    return;
  }//if(step_2[nportno]==ON)
  if(step_3[nportno]==ON)
  {
    tmp=save_count[nportno];
    if((yx_bw_log.count[nportno]!=0)&&(save_len[nportno]>=(tmp+3)))
    {
      send_yx_bw();
      step_3[nportno]=OFF;
      step_4[nportno]=ON;
	return;
    }//if((yx_bw_log[nportno].count!=0)&&(save_len[nportno]>=(tmp+3)))
    if((ykret.ykretflag[nportno]==TRUE)&&(save_len[nportno]>=(tmp+3)))
    {
      send_yk_return();
      step_3[nportno]=OFF;
      step_6[nportno]=ON;
      return;
    }//if((ykret.ykretflag[nportno]==TRUE)&&(save_len[nportno]>=(tmp+3)))
    if(tmp<save_len[nportno])
    {
      send_prot_packet();
      tmp++;
      if(tmp>=save_len[nportno])
      {
	stepoff();
	framep[nportno]=OFF;
      }//if(tmp>=save_len[nportno])
      save_count[nportno]=tmp;
      return;
    }//if(tmp<save_len[nportno])
    return;
  }//if(step_3[nportno]==ON)
  if(step_4[nportno]==ON)
  {
    send_yx_bw();
    step_4[nportno]=OFF;
    step_5[nportno]=ON;
    return;
  }//if(step_4[nportno]==ON)

  if(step_5[nportno]==ON)
  {
    send_yx_bw();
    step_5[nportno]=OFF;
    step_3[nportno]=ON;
    return;
  }//if(step_5[nportno]==ON)
  if(step_6[nportno]==ON)
  {
    send_yk_return();
    step_6[nportno]=OFF;
    step_7[nportno]=ON;
    return;
  }//if(step_6[nportno]==ON)
  if(step_7[nportno]==ON)
  {
    send_yk_return();
    step_7[nportno]=OFF;
    step_3[nportno]=ON;
    ykret.ykretflag[nportno]=FALSE;
    return;
  }//if(step_7[nportno]==ON)
  return;
}//void CNbb::sendp()

BOOLEAN CNbb::isframeoff()
{
  if((framea[nportno]==OFF)&&(frameb[nportno]==OFF)
	 &&(framec[nportno]==OFF)&&(framed1[nportno]==OFF)
	 &&(framed2[nportno]==OFF)&&(framee[nportno]==OFF)
	 &&(framep[nportno]==OFF)&&(port_free(nportno)))
	return(TRUE);
  else return(FALSE);
}//BOOLEAN CNbb::isframeoff()
void CNbb::sendframe()
{
  if((isframeoff())&&(port_set[nportno].ext_flag==TRUE)
	 &&(protectbuf[0].tcount!=0))
    framep[nportno]=ON;
  if((framep[nportno]==ON)&&(protectbuf[0].tcount!=0)
    &&(port_free(nportno))) sendp();
  if((framep[nportno]==ON)&&(protectbuf[0].tcount!=0)
    &&(port_free(nportno))) sendp();

  if((isframeoff())&&(d1count[nportno]<6)&&(d2count[nportno]<8)
	&&(bcount[nportno]<2)&&(ccount[nportno]<4)&&(port_set[nportno].len_a>0)
	&& ( issoe( nportno ) == FALSE ) )//(soe_ctl[nportno].count==0))
  {
	framea[nportno]=ON;
	if(port_set[nportno].len_b>0)bcount[nportno]++;   else bcount[nportno]=0;
	if(port_set[nportno].len_c>0)ccount[nportno]++;   else ccount[nportno]=0;
	if(port_set[nportno].len_d1>0)d1count[nportno]++; else d1count[nportno]=0;
	if(port_set[nportno].len_d2>0)d2count[nportno]++; else d2count[nportno]=0;
  }//if(isframeoff()&&(d1count[nportno]<6)&&(d2count[nportno]<8)
  if((framea[nportno]==ON)&&(port_free(nportno)))senda();
  if((framea[nportno]==ON)&&(port_free(nportno)))senda();

  if((isframeoff())&&(bcount[nportno]>=2)&&(port_set[nportno].len_b>0)
	&& ( issoe( nportno ) == FALSE ) ) //(soe_ctl[nportno].count==0))
  {  frameb[nportno]=ON;	  bcount[nportno]=0;	}
  if((frameb[nportno]==ON)&&(port_free(nportno)))sendb();
  if((frameb[nportno]==ON)&&(port_free(nportno)))sendb();

  if((isframeoff())&&(ccount[nportno]>=4)&&(port_set[nportno].len_c>0)
	&& ( issoe( nportno ) == FALSE ) ) //(soe_ctl[nportno].count==0))
  {  framec[nportno]=ON;	  ccount[nportno]=0;	}
  if((framec[nportno]==ON)&&(port_free(nportno)))sendc();
  if((framec[nportno]==ON)&&(port_free(nportno)))sendc();

  if((isframeoff())&&(d1count[nportno]>=6)&&(port_set[nportno].len_d1>0)
	&& ( issoe( nportno ) == FALSE ) ) //(soe_ctl[nportno].count==0))
  {  framed1[nportno]=ON;	  d1count[nportno]=0;	}
  if((framed1[nportno]==ON)&&(port_free(nportno)))sendd1();
  if((framed1[nportno]==ON)&&(port_free(nportno)))sendd1();

  if((isframeoff())&&(d2count[nportno]>=7)&&(port_set[nportno].len_d2>0)
	&& ( issoe( nportno ) == FALSE ) ) //(soe_ctl[nportno].count==0))
  {  framed2[nportno]=ON;	  d2count[nportno]=0;	}
  if((framed2[nportno]==ON)&&(port_free(nportno)))sendd2();
  if((framed2[nportno]==ON)&&(port_free(nportno)))sendd2();

  if((isframeoff())&& ( issoe( nportno ) == TRUE ) ) //(soe_ctl[nportno].count!=0))
	framee[nportno]=ON;
  if((framee[nportno]==ON)&& ( ( issoe( nportno ) == TRUE ) //((soe_ctl[nportno].count!=0)
	||(step_8[nportno]==ON))&&(port_free(nportno))) sende();
  if((framee[nportno]==ON)&& ( ( issoe( nportno ) == TRUE ) //((soe_ctl[nportno].count!=0)
	||(step_8[nportno]==ON))&&(port_free(nportno))) sende();
}//void CNbb::sendframe()

/*void CNbb::send()
{



}*/
void CNbb::deal()
{
  if(port_set[nportno].AC_sample!=Xon)
  {
	getportcmd();
	sendframe();
  }//if(port_set[nportno].AC_sample!=Xon)
  else getACsample();
}//void CNbb::deal()
//////////////////////////////////////////////////////////////////////////////////////
//The end of nbbclass.cpp
//////////////////////////////////////////////////////////////////////////////////////

⌨️ 快捷键说明

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