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

📄 path_switch.lst

📁 单片机程序代码,经过很详细的测试.呵呵,硬件相关.
💻 LST
📖 第 1 页 / 共 5 页
字号:
 271   4                                              }
 272   3                                              else bportid = 3;
 273   3                                              break;
 274   3                              case 5: if (bportid == 1){
 275   4                                                      bportid = 0;
 276   4                                              }
 277   3                                              else bportid = 1;
 278   3                                              break;
 279   3                              default: break;
 280   3                      }
 281   2      
 282   2                      switch (bboardid2){                                                                     //得到备用端口在1K50上的端口值
 283   3                              case 0: bportid2 = 0xff;
 284   3                                              break;
 285   3                              case 4: if (bportid2 == 1){
 286   4                                              bportid2 = 2;
 287   4                                              }
 288   3                                              else bportid2 = 3;
 289   3                                              break;
 290   3                              case 5: if (bportid2 == 1){
 291   4                                                      bportid2 = 0;
 292   4                                              }
 293   3                                              else bportid2 = 1;
 294   3                                              break;
 295   3                              default: break;
 296   3                      }
 297   2      
 298   2                      switch(boardid){                                                                        //将输出盘号端口号转换成为1K50中的输出端口号
 299   3                              case 1: port = 5;
 300   3                                              break;
 301   3                              case 2: port = 6;
 302   3                                              break;
 303   3                              case 3: port = 4;
 304   3                                              break;
 305   3                              case 4: if(portid == 1){
 306   4                                                      port = 2;
 307   4                                              }
 308   3                                              else port = 3;
 309   3                                              break;
 310   3                              case 5: if(portid == 1){
 311   4                                                      port = 0;
 312   4                                              }
 313   3                                              else port = 1;
 314   3                                              break;
 315   3                              default: break;
 316   3                      }       
C51 COMPILER V7.50   PATH_SWITCH                                                           03/10/2006 16:35:33 PAGE 7   

 317   2      
 318   2                      switch (mport){                                                                                                 //填写光口保护倒换表
 319   3                              case 0: path_switch_array[0][timeid - 1][0] = bportid;          //填写MCB光口1的供倒换光口
 320   3                                              path_switch_array[0][timeid - 1][1] = port;                     //填写MCB光口1的被保护光口
 321   3                                              path_switch_array[0][timeid - 1][2] = bportid2;         //填写被保护光口的上行并发光口
 322   3                                              path_switch_array[0][timeid - 1][3] = 1;                        //光口是否连接的标志位,1表示有连接
 323   3                                              if (bportid != 0xff){
 324   4                                                      path_switch_array[bportid][timeid - 1][0] = 0;          //填写供倒换光口
 325   4                                                      path_switch_array[bportid][timeid - 1][1] = port;
 326   4                                                      path_switch_array[bportid][timeid - 1][2] = 0;
 327   4                                                      path_switch_array[bportid][timeid - 1][3] = 0;
 328   4                                              }
 329   3                                              else {
 330   4                                                      path_switch_array[bportid2][timeid - 1][0] = 0xff;              //填写供倒换光口
 331   4                                                      path_switch_array[bportid2][timeid - 1][1] = port;
 332   4                                                      path_switch_array[bportid2][timeid - 1][2] = 0xff;
 333   4                                                      path_switch_array[bportid2][timeid - 1][3] = 0;
 334   4                                              }                                               
 335   3                                              break;
 336   3                              case 1: path_switch_array[1][timeid - 1][0] = bportid;          //填写MCB光口2的供倒换光口
 337   3                                              path_switch_array[1][timeid - 1][1] = port;                     //填写MCB光口2的被保护光口
 338   3                                              path_switch_array[1][timeid - 1][2] = bportid2;         //填写被保护光口的上行并发光口
 339   3                                              path_switch_array[1][timeid - 1][3] = 1;
 340   3                                              if (bportid != 0xff){
 341   4                                                      path_switch_array[bportid][timeid - 1][0] = 1;
 342   4                                                      path_switch_array[bportid][timeid - 1][1] = port;
 343   4                                                      path_switch_array[bportid][timeid - 1][2] = 1;
 344   4                                                      path_switch_array[bportid][timeid - 1][3] = 0;
 345   4                                              }
 346   3                                              else {
 347   4                                                      path_switch_array[bportid2][timeid - 1][0] = 0xff;              //填写供倒换光口
 348   4                                                      path_switch_array[bportid2][timeid - 1][1] = port;
 349   4                                                      path_switch_array[bportid2][timeid - 1][2] = 0xff;
 350   4                                                      path_switch_array[bportid2][timeid - 1][3] = 0;
 351   4                                              }                                               
 352   3                                              break;
 353   3                              case 2: path_switch_array[2][timeid - 1][0] = bportid;          //填写OTB光口1的供倒换光口
 354   3                                              path_switch_array[2][timeid - 1][1] = port;
 355   3                                              path_switch_array[2][timeid - 1][2] = bportid2;
 356   3                                              path_switch_array[2][timeid - 1][3] = 1;
 357   3                                              if (bportid != 0xff){
 358   4                                                      path_switch_array[bportid][timeid - 1][0] = 2;
 359   4                                                      path_switch_array[bportid][timeid - 1][1] = port;
 360   4                                                      path_switch_array[bportid][timeid - 1][2] = 2;
 361   4                                                      path_switch_array[bportid][timeid - 1][3] = 0;
 362   4                                              }
 363   3                                              else {
 364   4                                                      path_switch_array[bportid2][timeid - 1][0] = 0xff;              //填写供倒换光口
 365   4                                                      path_switch_array[bportid2][timeid - 1][1] = port;
 366   4                                                      path_switch_array[bportid2][timeid - 1][2] = 0xff;
 367   4                                                      path_switch_array[bportid2][timeid - 1][3] = 0;
 368   4                                              }                                               
 369   3                                              break;
 370   3                              case 3: path_switch_array[3][timeid - 1][0] = bportid;
 371   3                                              path_switch_array[3][timeid - 1][1] = port;
 372   3                                              path_switch_array[3][timeid - 1][2] = bportid2;
 373   3                                              path_switch_array[3][timeid - 1][3] = 1;
 374   3                                              if (bportid != 0xff){
 375   4                                                      path_switch_array[bportid][timeid - 1][0] = 3;
 376   4                                                      path_switch_array[bportid][timeid - 1][1] = port;
 377   4                                                      path_switch_array[bportid][timeid - 1][2] = 3;
 378   4                                                      path_switch_array[bportid][timeid - 1][3] = 0;
C51 COMPILER V7.50   PATH_SWITCH                                                           03/10/2006 16:35:33 PAGE 8   

 379   4                                              }
 380   3                                              else {
 381   4                                                      path_switch_array[bportid2][timeid - 1][0] = 0xff;              //填写供倒换光口
 382   4                                                      path_switch_array[bportid2][timeid - 1][1] = port;
 383   4                                                      path_switch_array[bportid2][timeid - 1][2] = 0xff;
 384   4                                                      path_switch_array[bportid2][timeid - 1][3] = 0;
 385   4                                              }                                               
 386   3                                              break;
 387   3                              default: break;
 388   3                      }
 389   2      
 390   2                      return_value = 0;
 391   2                      if (bportid2 >= 0 & bportid2 <= 3){
 392   3                              if (bportid != 0xff){
 393   4                                      PTUN(bportid2,btimeid2 - 1) = port;
 394   4                              }
 395   3                              else PTUN(bportid2,btimeid2 - 1) = 0xff;
 396   3                      }
 397   2              }
 398   1              else return_value = 2;
 399   1      
 400   1              if (!GetResRdyTbl(1))
 401   1                      SetResRdyTbl(1); 
 402   1              return (return_value);
 403   1      }
 404          
 405          
 406          unsigned char run_path_switch(struct cmd_para_save *path_switch){
 407   1      //C52运行通道倒换命令
 408   1      unsigned char xdata boardid;
 409   1      unsigned char xdata portid;
 410   1      unsigned char xdata timeid;
 411   1      unsigned char xdata sboard;
 412   1      unsigned char xdata sport;
 413   1      unsigned char xdata stime;
 414   1      unsigned char xdata bport;
 415   1      unsigned char xdata outport;
 416   1      unsigned char xdata mode;
 417   1      unsigned char xdata return_value;
 418   1      
 419   1              commandid = 0x00433532;
 420   1              boardid = path_switch -> path_swset_board;                              //输出盘号
 421   1              portid = path_switch -> path_swset_port;                                //输出端口号
 422   1              timeid = path_switch -> path_swset_slot;                                //输出时隙号
 423   1              sboard = path_switch -> path_stset_board;
 424   1              sport = path_switch -> path_stset_port;
 425   1              stime = path_switch -> path_stset_slot;
 426   1              mode = path_switch -> path_swset_mode;                                  //倒换模式
 427   1      
 428   1              switch (sboard){                                                                                //得到源端端口在1K50上的端口值
 429   2                      case 4: if (sport == 1){
 430   3                                              sport = 2;
 431   3                                      }
 432   2                                      else sport = 3;
 433   2                                      break;
 434   2                      case 5: if (sport == 1){
 435   3                                              sport = 0;

⌨️ 快捷键说明

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