📄 alarm.c
字号:
}
void report_int_alarm(unsigned char portid,unsigned char bufnum){
//发送某一光口的中断告警函数
unsigned char xdata value;
unsigned char xdata num;
for (num = 0; num <= 3; num++){
value = (int_alarm[portid][num] >> 4) & 0x0F;
if (value > 9){
tx_buf[bufnum + 2 * num] = value + 0x37;
}
else tx_buf[bufnum + 2 * num] = value + 0x30;
value = int_alarm[portid][num] & 0x0F;
if (value > 9){
tx_buf[bufnum + 2 * num + 1] = value + 0x37;
}
else tx_buf[bufnum + 2 * num + 1] = value + 0x30;
}
}
void report_int_mcb0(void){
//发送MCB盘的光口1 中断告警函数
tx_buf[0] = '$';
tx_buf[1] = '2';
tx_buf[2] = '1';
tx_buf[3] = 0x46; //送命令符F00
tx_buf[4] = 0x30;
tx_buf[5] = 0x30;
tx_buf[6] = '0'; //信息域长度11
tx_buf[7] = '0';
tx_buf[8] = '0';
tx_buf[9] = 'B';
tx_buf[10] = '5';
tx_buf[11] = '1';
tx_buf[12] = '1';
report_int_alarm(0,13);
tx_buf[21] = '*';
tx_buf_pointer = 0;
while(tx_buf[tx_buf_pointer] != '*'){
SBUF = tx_buf[tx_buf_pointer];
while(tx_done == 0);
tx_done = 0;
tx_buf_pointer++;
}
SBUF = tx_buf[tx_buf_pointer]; //发送最后一个字符'*'
while(tx_done == 0);
tx_done = 0;
}
void report_int_mcb1(void){
//发送MCB盘的光口2中断告警函数
tx_buf[0] = '$';
tx_buf[1] = '2';
tx_buf[2] = '1';
tx_buf[3] = 0x46; //送命令符F00
tx_buf[4] = 0x30;
tx_buf[5] = 0x30;
tx_buf[6] = '0'; //信息域长度11
tx_buf[7] = '0';
tx_buf[8] = '0';
tx_buf[9] = 'B';
tx_buf[10] = '5';
tx_buf[11] = '1';
tx_buf[12] = '2';
report_int_alarm(1,13);
tx_buf[21] = '*';
tx_buf_pointer = 0;
while(tx_buf[tx_buf_pointer] != '*'){
SBUF = tx_buf[tx_buf_pointer];
while(tx_done == 0);
tx_done = 0;
tx_buf_pointer++;
}
SBUF = tx_buf[tx_buf_pointer]; //发送最后一个字符'*'
while(tx_done == 0);
tx_done = 0;
}
void report_int_otb2(void){
//发送OTB盘光口1的中断告警函数
tx_buf[0] = '$';
tx_buf[1] = '2';
tx_buf[2] = '1';
tx_buf[3] = 0x46; //送命令符F00
tx_buf[4] = 0x30;
tx_buf[5] = 0x30;
tx_buf[6] = '0'; //信息域长度11
tx_buf[7] = '0';
tx_buf[8] = '0';
tx_buf[9] = 'B';
tx_buf[10] = '4';
tx_buf[11] = '4';
tx_buf[12] = '1';
report_int_alarm(2,13);
tx_buf[21] = '*';
tx_buf_pointer = 0;
while(tx_buf[tx_buf_pointer] != '*'){
SBUF = tx_buf[tx_buf_pointer];
while(tx_done == 0);
tx_done = 0;
tx_buf_pointer++;
}
SBUF = tx_buf[tx_buf_pointer]; //发送最后一个字符'*'
while(tx_done == 0);
tx_done = 0;
}
void report_int_otb3(void){
//发送OTB盘的光口2中断告警函数
tx_buf[0] = '$';
tx_buf[1] = '2';
tx_buf[2] = '1';
tx_buf[3] = 0x46; //送命令符F00
tx_buf[4] = 0x30;
tx_buf[5] = 0x30;
tx_buf[6] = '0'; //信息域长度11
tx_buf[7] = '0';
tx_buf[8] = '0';
tx_buf[9] = 'B';
tx_buf[10] = '4';
tx_buf[11] = '4';
tx_buf[12] = '2';
report_int_alarm(3,13);
tx_buf[21] = '*';
tx_buf_pointer = 0;
while(tx_buf[tx_buf_pointer] != '*'){
SBUF = tx_buf[tx_buf_pointer];
while(tx_done == 0);
tx_done = 0;
tx_buf_pointer++;
}
SBUF = tx_buf[tx_buf_pointer]; //发送最后一个字符'*'
while(tx_done == 0);
tx_done = 0;
}
void report_check_mcb(void){
//发送MCB盘的非中断告警函数
unsigned char xdata value;
unsigned char xdata num;
tx_buf[0] = '$';
tx_buf[1] = '2';
tx_buf[2] = '1';
tx_buf[3] = 0x46; //送命令符F00
tx_buf[4] = 0x30;
tx_buf[5] = 0x30;
tx_buf[6] = '0'; //信息域长度13
tx_buf[7] = '0';
tx_buf[8] = '0';
tx_buf[9] = 'D';
tx_buf[10] = '5';
tx_buf[11] = '1';
tx_buf[12] = '0';
for (num = 0; num <= 4; num++){
value = (check_alarm_mcb[num] >> 4) & 0x0F;
if (value > 9){
tx_buf[13 + 2 * num] = value + 0x37;
}
else tx_buf[13 + 2 * num] = value + 0x30;
value = check_alarm_mcb[num] & 0x0F;
if (value > 9){
tx_buf[13 + 2 * num + 1] = value + 0x37;
}
else tx_buf[13 + 2 * num + 1] = value + 0x30;
}
tx_buf[23] = '*';
tx_buf_pointer = 0;
while(tx_buf[tx_buf_pointer] != '*'){
SBUF = tx_buf[tx_buf_pointer];
while(tx_done == 0);
tx_done = 0;
tx_buf_pointer++;
}
SBUF = tx_buf[tx_buf_pointer]; //发送最后一个字符'*'
while(tx_done == 0);
tx_done = 0;
}
void report_check_otb(void){
//发送OTB盘非中断告警函数
unsigned char xdata value;
unsigned char xdata num;
tx_buf[0] = '$';
tx_buf[1] = '2';
tx_buf[2] = '1';
tx_buf[3] = 0x46; //送命令符F00
tx_buf[4] = 0x30;
tx_buf[5] = 0x30;
tx_buf[6] = '0'; //信息域长度9
tx_buf[7] = '0';
tx_buf[8] = '0';
tx_buf[9] = '9';
tx_buf[10] = '4';
tx_buf[11] = '4';
tx_buf[12] = '0';
for (num = 0; num <= 2; num++){
value = (check_alarm_otb[num] >> 4) & 0x0F;
if (value > 9){
tx_buf[13 + 2 * num] = value + 0x37;
}
else tx_buf[13 + 2 * num] = value + 0x30;
value = check_alarm_otb[num] & 0x0F;
if (value > 9){
tx_buf[13 + 2 * num + 1] = value + 0x37;
}
else tx_buf[13 + 2 * num + 1] = value + 0x30;
}
tx_buf[19] = '*';
tx_buf_pointer = 0;
while(tx_buf[tx_buf_pointer] != '*'){
SBUF = tx_buf[tx_buf_pointer];
while(tx_done == 0);
tx_done = 0;
tx_buf_pointer++;
}
SBUF = tx_buf[tx_buf_pointer]; //发送最后一个字符'*'
while(tx_done == 0);
tx_done = 0;
}
void report_check_TU(unsigned char boardid,unsigned char portid,unsigned char bufnum){
//发送2M盘的某一支路函数
unsigned char xdata value;
unsigned char xdata num;
for (num = 0; num <= 1; num++){
value = (check_alarm_2M[boardid - 1][portid - 1][num] >> 4) &0x0F;
if (value > 9){
tx_buf[bufnum + 2 * num] = value + 0x37;
}
else tx_buf[bufnum + 2 * num] = value + 0x30;
value = check_alarm_2M[boardid - 1][portid - 1][num] &0x0F;
if (value > 9){
tx_buf[bufnum + 2 * num + 1] = value + 0x37;
}
else tx_buf[bufnum + 2 * num + 1] = value + 0x30;
}
}
void report_check_TU_group(unsigned char boardid,unsigned char groupid){
//发送2M盘7个支路的告警函数
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -