📄 performance.c
字号:
temp = (temp << 8) + f2rc7860_rd(F2SohB1e_countl8_a); //得到B1的低8位计数值
B1[2] = temp; //将B1计数器值存入变量
if ((f2rc7860_rd(F2Intmask0_a) & 0xDA) | (f2rc7860_rd(F2Intmask2_a) & 0xE0) | (f2rc7860_rd(F2Intmask3_a) & 0x80)){ //判断告警是否存在
dflg = 1;
}
else dflg = 0;
if (dflg | intflg_OTBA){ //判断该秒是否误块秒
default_155M[2] = 1;
}
else default_155M[2] = 0;
intflg_OTBA = 0;
temp = f2rc7860_rd(F2SohB2e_counth8_a); //得到B2的高8位计数值
temp = (temp << 8) + f2rc7860_rd(F2SohB2e_countl8_a); //得到B2的低8位计数值
B2[2] = temp; //将B2的计数值存入变量
temp = f2rc7860_rd(F2SohM1e_counth8_a); //得到M1即MS-REI的高8位计数值
temp = (temp << 8) + f2rc7860_rd(F2SohM1e_countl8_a); //得到M1即MS-REI的低8位计数值
REI_MS[2] += temp; //将M1即MS-REI的计数值存入变量
REI_MS_15min[2] += temp;
check_alarm_otb[1] &= 0xBF; //清除告警字
if (REI_MS_15min[2] > REI_MS_MAX[2]){ //判断MS-REI是否过限
check_alarm_otb[1] |= 0x40; //写告警字
}
temp = f2rc7860_rd(F2PohB3e_counth7_a) & 0x7F; //得到B3的高7位计数值
temp = (temp << 8) + f2rc7860_rd(F2PohB3e_countl8_a); //得到B3的低8位计数值
B3[2] = temp; //将B3的计数值存入变量
temp = f2rc7860_rd(F2Pohrei_counth7_a) & 0x7F; //得到HP的REI高7位计数值
temp = (temp << 8) + f2rc7860_rd(F2Pohrei_countl8_a); //得到HP的REI低8位计数值
REI_HP[2] += temp; //将HP_REI的值存入变量
REI_HP_15min[2] += temp;
check_alarm_otb[1] &= 0xDF; //清除告警字
if (REI_HP_15min[2] > REI_HP_MAX[2]){ //判断HP-REI是否过限
check_alarm_otb[1] |= 0x20; //写告警字
}
temp = f2rc7860_rd(F2Sohpfm_rx_a) & 0x80; //得到OFS的标志位
OFS[2] += temp >> 7; //对OFS变量进行累加
OFS_15min[2] += temp >> 7;
check_alarm_otb[1] &= 0x7F; //清除告警字
if (OFS_15min[2] > OFS_MAX[2]){ //判断OFS是否过限
check_alarm_otb[1] |= 0x80; //写告警字
}
temp = f2rc7860_rd(F2Pjerx_count_a);
PJC_HP[2] += temp; //将正指针调整事件计数存入变量
PJC_HP_15min[2] += temp;
check_alarm_otb[1] &= 0xEF; //清除告警字
if (PJC_HP_15min[2] > PJC_HP_MAX[2]){ //判断PJC是否过限
check_alarm_otb[1] |= 0x10; //写告警字
}
temp = f2rc7860_rd(F2Njerx_count_a);
NJC_HP[2] += temp; //将负指针调整事件计数存入变量
NJC_HP_15min[2] += temp;
check_alarm_otb[1] &= 0xF7; //清除告警字
if (NJC_HP_15min[2] > NJC_HP_MAX[2]){ //判断NJC是否过限
check_alarm_otb[1] |= 0x08; //写告警字
}
//收集OTB盘B口的性能值
temp = f2rc7860_rd(F2SohB1e_counth8_b); //得到B1的高8位计数值
temp = (temp << 8) + f2rc7860_rd(F2SohB1e_countl8_b); //得到B1的低8位计数值
B1[3] = temp; //将B1计数器值存入变量
if ((f2rc7860_rd(F2Intmask0_b) & 0xDA) | (f2rc7860_rd(F2Intmask2_b) & 0xE0) | (f2rc7860_rd(F2Intmask3_b) & 0x80)){ //判断告警是否存在
dflg = 1;
}
else dflg = 0;
if (dflg | intflg_OTBB){ //判断该秒是否误块秒
default_155M[3] = 1;
}
else default_155M[3] = 0;
intflg_OTBB = 0;
temp = f2rc7860_rd(F2SohB2e_counth8_b); //得到B2的高8位计数值
temp = (temp << 8) + f2rc7860_rd(F2SohB2e_countl8_b); //得到B2的低8位计数值
B2[3] = temp; //将B2的计数值存入变量
temp = f2rc7860_rd(F2SohM1e_counth8_b); //得到M1即MS-REI的高8位计数值
temp = (temp << 8) + f2rc7860_rd(F2SohM1e_countl8_b); //得到M1即MS-REI的低8位计数值
REI_MS[3] += temp; //将M1即MS-REI的计数值存入变量
REI_MS_15min[3] += temp;
check_alarm_otb[2] &= 0xBF; //清除告警字
if (REI_MS_15min[3] > REI_MS_MAX[3]){ //判断MS-REI是否过限
check_alarm_otb[2] |= 0x40; //写告警字
}
temp = f2rc7860_rd(F2PohB3e_counth7_b) & 0x7F; //得到B3的高7位计数值
temp = (temp << 8) + f2rc7860_rd(F2PohB3e_countl8_b); //得到B3的低8位计数值
B3[3] = temp; //将B3的计数值存入变量
temp = f2rc7860_rd(F2Pohrei_counth7_b) & 0x7F; //得到HP的REI高7位计数值
temp = (temp << 8) + f2rc7860_rd(F2Pohrei_countl8_b); //得到HP的REI低8位计数值
REI_HP[3] += temp; //将HP_REI的值存入变量
REI_HP_15min[3] += temp;
check_alarm_otb[2] &= 0xDF; //清除告警字
if (REI_HP_15min[3] > REI_HP_MAX[3]){ //判断HP-REI是否过限
check_alarm_otb[2] |= 0x20; //写告警字
}
temp = f2rc7860_rd(F2Sohpfm_rx_b) & 0x80; //得到OFS的标志位
OFS[3] += temp >> 7; //对OFS变量进行累加
OFS_15min[3] += temp >> 7;
check_alarm_otb[2] &= 0x7F; //清除告警字
if (OFS_15min[3] > OFS_MAX[3]){ //判断OFS是否过限
check_alarm_otb[2] |= 0x80; //写告警字
}
temp = f2rc7860_rd(F2Pjerx_count_b);
PJC_HP[3] += temp; //将正指针调整事件计数存入变量
PJC_HP_15min[3] += temp;
check_alarm_otb[2] &= 0xEF; //清除告警字
if (PJC_HP_15min[3] > PJC_HP_MAX[3]){ //判断PJC是否过限
check_alarm_otb[2] |= 0x10; //写告警字
}
temp = f2rc7860_rd(F2Njerx_count_b);
NJC_HP[3] += temp; //将负指针调整事件计数存入变量
NJC_HP_15min[3] += temp;
check_alarm_otb[2] &= 0xF7; //清除告警字
if (NJC_HP_15min[3] > NJC_HP_MAX[3]){ //判断NJC是否过限
check_alarm_otb[2] |= 0x08; //写告警字
}
f2rc7860_wr(F2Rdint_clr,0x80); //清除OTB一些计数器的值
}
//收集3个2M盘的性能值
for (num = 0; num <= 2; num++){ //设置2M盘的循环体,num表示盘号
if (start_flg[num + 1] == 0){
// if (timeslot_2M[num][0])
k = 0;
for (i = 0; i < 5; i++)///批注:此处循环需要改正,(i<3,j<7)
{
for (j = 0; j < 4; j++)
{
EB_2M[num][k] = se0111_reg_rd(Bip2_Arx_count_0H + (i * 8),Bip2_Arx_count_0L + (j * 0x30),num + 1);//??此循环要重写。另外,需处理8位的Bip2_Arx_count对应16位数据问题 //取得支路的BIP-2的计数值
temp = se0111_reg_rd(Rei_Arx_count_0H + (i * 8),Rei_Arx_count_0L + (j * 0x30),num + 1); //取得支路的REI计数值
REI_2M[num][k] += temp;
REI_2M_15min[num][k] += temp;
temp = se0111_reg_rd(Pj_Arx_count_0H + (i * 8),Pj_Arx_count_0L + (j * 0x30),num + 1); //得到支路1的指针调整计数值
NJC_2M[num][k] += temp & 0x000F;
NJC_2M_15min[num][k] += temp & 0x000F;
PJC_2M[num][k] += temp >> 4;
PJC_2M_15min[num][k] += temp >> 4;
k += 1;
}
}
EB_2M[num][20] = se0111_reg_rd(Bip2_Arx_count_20H,Bip2_Arx_count_20L,num + 1);//??(同上)Bip2_Arx_count_20H的对应问题 //取得支路21的BIP-2的计数值
temp = se0111_reg_rd(Rei_Arx_count_20H,Rei_Arx_count_20L,num + 1);
REI_2M[num][20] += temp;
REI_2M_15min[num][20] += temp;
temp = se0111_reg_rd(Pj_Arx_count_20H,Pj_Arx_count_20L,num + 1);
NJC_2M[num][20] += temp & 0x000F;
NJC_2M_15min[num][20] += temp & 0x000F;
PJC_2M[num][20] += temp >> 4;
PJC_2M_15min[num][20] += temp >> 4;
/************************************************************************************************
EB_2M[num][0] = se0111_reg_rd(Bip2_Arx_count_0H,Bip2_Arx_count_0L,num + 1); //取得支路1的BIP-2的计数值
// else EB_2M[num][0] = 0;
// if (timeslot_2M[num][1])
EB_2M[num][1] = se0111_reg_rd(Bip2_Arx_count_1H,Bip2_Arx_count_1L,num + 1); //取得支路2的BIP-2的计数值
// else EB_2M[num][1] = 0;
// if (timeslot_2M[num][2])
EB_2M[num][2] = se0111_reg_rd(Bip2_Arx_count_2H,Bip2_Arx_count_2L,num + 1);
// else EB_2M[num][2] = 0;
// if (timeslot_2M[num][3])
EB_2M[num][3] = se0111_reg_rd(Bip2_Arx_count_3H,Bip2_Arx_count_3L,num + 1);
// else EB_2M[num][3] = 0;
// if (timeslot_2M[num][4])
EB_2M[num][4] = se0111_reg_rd(Bip2_Arx_count_4H,Bip2_Arx_count_4L,num + 1);
// else EB_2M[num][4] = 0;
// if (timeslot_2M[num][5])
EB_2M[num][5] = se0111_reg_rd(Bip2_Arx_count_5H,Bip2_Arx_count_5L,num + 1);
// else EB_2M[num][5] = 0;
// if (timeslot_2M[num][6])
EB_2M[num][6] = se0111_reg_rd(Bip2_Arx_count_6H,Bip2_Arx_count_6L,num + 1);
// else EB_2M[num][6] = 0;
// if (timeslot_2M[num][7])
EB_2M[num][7] = se0111_reg_rd(Bip2_Arx_count_7H,Bip2_Arx_count_7L,num + 1);
// else EB_2M[num][7] = 0;
// if (timeslot_2M[num][8])
EB_2M[num][8] = se0111_reg_rd(Bip2_Arx_count_8H,Bip2_Arx_count_8L,num + 1);
// else EB_2M[num][8] = 0;
// if (timeslot_2M[num][9])
EB_2M[num][9] = se0111_reg_rd(Bip2_Arx_count_9H,Bip2_Arx_count_9L,num + 1);
// else EB_2M[num][9] = 0;
// if (timeslot_2M[num][10])
EB_2M[num][10] = se0111_reg_rd(Bip2_Arx_count_10H,Bip2_Arx_count_10L,num + 1);
// else EB_2M[num][10] = 0;
// if (timeslot_2M[num][11])
EB_2M[num][11] = se0111_reg_rd(Bip2_Arx_count_11H,Bip2_Arx_count_11L,num + 1);
// else EB_2M[num][11] = 0;
// if (timeslot_2M[num][12])
EB_2M[num][12] = se0111_reg_rd(Bip2_Arx_count_12H,Bip2_Arx_count_12L,num + 1);
// else EB_2M[num][12] = 0;
// if (timeslot_2M[num][13])
EB_2M[num][13] = se0111_reg_rd(Bip2_Arx_count_13H,Bip2_Arx_count_13L,num + 1);
// else EB_2M[num][13] = 0;
// if (timeslot_2M[num][14])
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -