📄 path_switch.lst
字号:
599 8 // break;
600 8 case 1: valueid = (quotient + 0x8AA6);
601 8 value = ((*valueid) >> residue) & 0x01;
602 8 if (value != 0){
603 9 PTUN(outport,temp) = 0;
604 9 value = 0;
605 9 }
606 8 else{
607 9 value = 2;
608 9 }
609 8 break;
610 8 case 2: value = f2rc7860_rd(quotient + 0x00A6);
611 8 value = (value >> residue) & 0x01;
612 8 if (value != 0){
613 9 PTUN(outport,temp) = 0;
614 9 value = 0;
615 9 }
616 8 else{
617 9 value = 2;
618 9 }
619 8 break;
620 8 case 3: value = f2rc7860_rd(quotient + 0x02A6);
621 8 value = (value >> residue) & 0x01;
622 8 if (value != 0){
623 9 PTUN(outport,temp) = 0;
624 9 value = 0;
625 9 }
626 8 else{
C51 COMPILER V7.50 PATH_SWITCH 03/10/2006 16:35:33 PAGE 12
627 9 value = 2;
628 9 }
629 8 break;
630 8 default: value = 2;
631 8 break;
632 8 }
633 7 if ((value == 0) & (outport < 4)){ //光口处于时隙的保换倒换状态
634 8 switch (outport){ //对光口进行并发配置
635 9 case 0: value = PTUN(1,temp) = 0;
636 9 // path_switch_function(0,temp,1);
637 9 break;
638 9 // case 1: value = path_switch_function(0,temp,0);
639 9 // break;
640 9 case 2: value = PTUN(3,temp) = 0;
641 9 // path_switch_function(0,temp,3);
642 9 break;
643 9 case 3: value = PTUN(2,temp) = 0;
644 9 // path_switch_function(0,temp,2);
645 9 break;
646 9 default:break;
647 9 }
648 8 }
649 7 if (value == 0){ //如果倒换成功
650 8 path_switch_array[tport][temp][3] = 0; //倒换成功改写当前时隙所用端口
651 8 path_switch_array[0][temp][3] = 1;
652 8 }
653 7 }
654 6 }
655 5 }
656 4 }
657 3 init_recover[0] = 0;
658 3 }
659 2 // if (init_recover[0] == 2){
660 2 // init_recover[0] = 1;
661 2 // }
662 2 // SetExtRdyTbl(15); //改写2M盘的AIS速率
663 2 }
664 1
665 1 if ((Ia0_b & 0xD0 | Ia2_b & 0xE0 | Ia3_b & 0x80) == 0){ //MCB B口全0
666 2 if (init_recover[1] == 1){
667 3 for (temp = 0; temp <= 62; temp++){
668 4 if (path_switch_state[temp] == 2){ //如果处于自动倒换状态
669 5 for (tport = 0; tport <= 3; tport++){ //轮循查找哪个光口的备用光口是MCB光口2
670 6 if (tport != 1){
671 7 if (path_switch_array[tport][temp][0] == 1){
672 8 quotient = temp >> 3; //得到该时隙所在的字节值(同timeid / 8运算)
673 8 residue = temp & 0x07; //同timeid % 8运算
674 8 residue = 7 - residue; //得到该时隙所在的bit位
675 8 outport = path_switch_array[tport][temp][1];
676 8 // value = path_switch_function(1,temp,outport); //进行该时隙的通道倒换
677 8 switch(tport){
678 9 case 0: valueid = (quotient + 0x88A6);
679 9 value = ((*valueid) >> residue) & 0x01; //如果该时隙出现AIS
680 9 if (value != 0){ //该时隙不能倒换
681 10 PTUN(outport,temp) = 1;
682 10 value = 0;
683 10 }
684 9 else{
685 10 value = 2;
686 10 }
687 9 break;
688 9 // case 1: valueid = (quotient + 0x8AA6);
C51 COMPILER V7.50 PATH_SWITCH 03/10/2006 16:35:33 PAGE 13
689 9 // value = ((*valueid) >> residue) & 0x01;
690 9 // if (value != 0){
691 9 // PTUN(outport,temp) = 1;
692 9 // value = 0;
693 9 // }
694 9 // else{
695 9 // value = 2;
696 9 // }
697 9 // break;
698 9 case 2: value = f2rc7860_rd(quotient + 0x00A6);
699 9 value = (value >> residue) & 0x01;
700 9 if (value != 0){
701 10 PTUN(outport,temp) = 1;
702 10 value = 0;
703 10 }
704 9 else{
705 10 value = 2;
706 10 }
707 9 break;
708 9 case 3: value = f2rc7860_rd(quotient + 0x02A6);
709 9 value = (value >> residue) & 0x01;
710 9 if (value != 0){
711 10 PTUN(outport,temp) = 1;
712 10 value = 0;
713 10 }
714 9 else{
715 10 value = 2;
716 10 }
717 9 break;
718 9 default: value = 2;
719 9 break;
720 9 }
721 8 if ((value == 0) & (outport < 4)){ //光口处于时隙的保换倒换状态
722 9 switch (outport){ //对光口进行并发配置
723 10 // case 0: value = path_switch_function(1,temp,1);
724 10 // break;
725 10 case 1: value = PTUN(0,temp) = 1;
726 10 // path_switch_function(1,temp,0);
727 10 break;
728 10 case 2: value = PTUN(3,temp) = 1;
729 10 // path_switch_function(1,temp,3);
730 10 break;
731 10 case 3: value = PTUN(2,temp) = 1;
732 10 // path_switch_function(1,temp,2);
733 10 break;
734 10 default:break;
735 10 }
736 9 }
737 8 if (value == 0){ //如果倒换成功
738 9 path_switch_array[tport][temp][3] = 0; //倒换成功改写当前时隙所用端口
739 9 path_switch_array[1][temp][3] = 1;
740 9 }
741 8 }
742 7 }
743 6 }
744 5 }
745 4 }
746 3 init_recover[1] = 0;
747 3 }
748 2 // if (init_recover[1] == 2){
749 2 // init_recover[1] = 1;
750 2 // }
C51 COMPILER V7.50 PATH_SWITCH 03/10/2006 16:35:33 PAGE 14
751 2 // SetExtRdyTbl(15); //改写2M盘的AIS速率
752 2 }
753 1
754 1 if(start_flg[0] == 0){
755 2 if ((f2rc7860_rd(F2Ia0_a) & 0xD0 | f2rc7860_rd(F2Ia2_a) & 0xE0 | f2rc7860_rd(F2Ia3_a) & 0x80) == 0){ /
-/OTB A口全0
756 3 if (init_recover[2] == 1){
757 4 for (temp = 0; temp <= 62; temp++){
758 5 if (path_switch_state[temp] == 2){ //如果处于自动倒换状态
759 6 for (tport =
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -