📄 nbbclass.cpp
字号:
}//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 + -