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

📄 main.lst

📁 这是TCP/IP协议组播的实现代码
💻 LST
📖 第 1 页 / 共 3 页
字号:
 450   1          //set the ip address
 451   1          config[12] = static_ip[0];
 452   1          config[13] = static_ip[1];
 453   1          config[14] = static_ip[2];
 454   1          config[15] = static_ip[3];
 455   1      
 456   1          //set the subnet mask
 457   1          config[16] = yan_ma[0];
 458   1          config[17] = yan_ma[1];
 459   1          config[18] = yan_ma[2];
 460   1          config[19] = yan_ma[3];
 461   1      
 462   1          //set the iP4 prefix
 463   1          config[20] = STATIC_IPV4_PREFIX;
 464   1      
 465   1          //set the gateway
 466   1          config[33] = gate_ip[0];
 467   1          config[34] = gate_ip[1];
 468   1          config[35] = gate_ip[2];
 469   1          config[36] = gate_ip[3];
 470   1      
 471   1          result = setnetworkparams(config);
 472   1          printf("Set network parameters result: %u\r\n", result);
 473   1              
 474   1      }
 475          
 476          void network_config()//读取本端网络属性
 477          {
 478   1          unsigned char result;
 479   1          unsigned char xdata config[56];
 480   1          unsigned int i;
 481   1          for (i=0;i<56;i++)
 482   1              config[i] = 0;
 483   1      
 484   1          result = getnetworkparams(config);
 485   1          printf("Network params result: %d\r\n", result);
 486   1      
 487   1          printf("IP    : %bu %bu %bu %bu\r\n", config[12], config[13], config[14], config[15]);
C51 COMPILER V7.07   MAIN                                                                  04/07/2006 09:01:49 PAGE 9   

 488   1          printf("Subnet: %bu %bu %bu %bu\r\n", config[16], config[17], config[18], config[19]);
 489   1          printf("Prefix: %bu\r\n", config[20]);
 490   1          printf("Gate  : %bu %bu %bu %bu\r\n", config[33], config[34], config[35], config[36]);
 491   1      }
 492          
 493          void init()//初始化自己定义的量
 494          {
 495   1              send_addr_video         = 0x050000;//视频发送地址指针
 496   1              rev_addr_video          = 0x051000;//视频接收地址指针
 497   1              send_addr_audio         = 0x052000;//音频发送地址指针
 498   1              rev_addr_audio          = 0x053000;//音频接收地址指针
 499   1              send_addr_command       = 0x054000;//命令字发送地址指针
 500   1              rev_addr_command        = 0x055000;//命令字接收地址指针
 501   1              rd_fifo_hf                      = 0x280000;//读取音频发送FIFO半满地址指针
 502   1              rd_fifo_ef                      = 0x2a0000;//读取视频发送FIFO空地址指针
 503   1              dual_send                       = 0x240200;//双口RAM写地址指针
 504   1              dual_rev                        = 0x240000;//双口RAM读地址指针
 505   1              dual_ip                         = 0x240400;//网络参数配置地址指针
 506   1              command_length  = 0;
 507   1              head_r                  = 0;
 508   1              tail_r                  = 0;
 509   1              trans_num               = 0;
 510   1              for(i = 0;i < 2048;i++)
 511   1              {
 512   2                      rev_buf[i] = 0;
 513   2              }
 514   1              
 515   1              for(i = 0; i < 4;i++)
 516   1              {
 517   2                      for(j = 0; j < 4;j++)
 518   2                      {
 519   3                              send_para[i][j] = 0;
 520   3                      }
 521   2              }
 522   1      
 523   1              for(i = 0; i < 3;i++)
 524   1              {
 525   2                      for(j = 0; j < 4;j++)
 526   2                      {
 527   3                              rev_para_video[i][j] = 0;
 528   3                              rev_para_audio[i][j] = 0;
 529   3                      }
 530   2              }
 531   1      
 532   1              send_video_flag = 0xff;
 533   1              rev_video_flag = 0xff;
 534   1              send_audio_flag = 0xff;
 535   1              rev_audio_flag = 0xff;
 536   1      
 537   1              static_ip[0]    = 192;
 538   1              static_ip[1]    = 168;
 539   1              static_ip[2]    = 0;
 540   1              static_ip[3]    = 200;
 541   1              
 542   1              gate_ip[0]              = 192;
 543   1              gate_ip[1]              = 168;
 544   1              gate_ip[2]              = 0;
 545   1              gate_ip[3]              = 1;
 546   1      
 547   1              yan_ma[0]               = 255;
 548   1              yan_ma[1]               = 255;
 549   1              yan_ma[2]               = 255;
C51 COMPILER V7.07   MAIN                                                                  04/07/2006 09:01:49 PAGE 10  

 550   1              yan_ma[3]               = 0;
 551   1      
 552   1              SEND_VIDEO_PORT         = 10025;
 553   1              REV_VIDEO_PORT          = 10026;
 554   1              SEND_G711_PORT          = 10027;
 555   1              REV_G711_PORT           = 10028;
 556   1          SEND_COMMAND_PORT   = 10029;
 557   1              REV_COMMAND_PORT        = 10030;
 558   1      }
 559          
 560          void moveto_buf()//将收到的命令字转移到接收缓冲区
 561          {
 562   1              unsigned char tem,length;
 563   1              length = rev_length_command - 1;
 564   1      
 565   1              for(tem = 0;tem < length;tem++)
 566   1              {
 567   2                      rev_buf[head_r] = *(rev_addr_command + tem + 1);
 568   2                      head_r = (head_r + 1) & 0x7ff;  
 569   2              }
 570   1      }
 571          
 572          
 573          void send_command()//通过双口RAM发送命令字
 574          {
 575   1              unsigned char flag,length,total;
 576   1      
 577   1              flag = (*dual_send) & 0x01;     
 578   1      
 579   1              if(flag == 0)//文景顺已经读走了命令字,可以写
 580   1              {
 581   2                      total = 0;
 582   2                      length = rev_buf[tail_r];
 583   2      
 584   2                      if((length < 2) || (length > 30))
 585   2                      {
 586   3                              head_r = 0;
 587   3                              tail_r = 0;
 588   3                              for(i = 0;i < 2048;i++)
 589   3                              {
 590   4                                      rev_buf[i] = 0;
 591   4                              }
 592   3                              total = 0;
 593   3                      }
 594   2                      while((head_r != tail_r) && ((total + length) < 120))
 595   2                      {
 596   3                              for(i = 0;i < length;i++)
 597   3                              {
 598   4                                      temp = rev_buf[tail_r];
 599   4                                      *(dual_send + total + 2) = temp;
 600   4                                      tail_r = (tail_r + 1) & 0x7ff;
 601   4                                      total++;
 602   4                              }
 603   3                              length = rev_buf[tail_r];
 604   3                              if(head_r != tail_r)
 605   3                              {
 606   4                                      if((length < 2) || (length > 30))
 607   4                                      {
 608   5                                              head_r = 0;
 609   5                                              tail_r = 0;
 610   5                                              for(i = 0;i < 2048;i++)
 611   5                                              {
C51 COMPILER V7.07   MAIN                                                                  04/07/2006 09:01:49 PAGE 11  

 612   6                                                      rev_buf[i] = 0;
 613   6                                              }
 614   5                                              total = 0;
 615   5                                      }
 616   4                              }                       
 617   3                      }
 618   2                      if((total > 0) && (total < 128))
 619   2                      {
 620   3                              *(dual_send + 1) = total;
 621   3                              *dual_send = 0x01;
 622   3                      }
 623   2              }
 624   1      }
 625          
 626          void analyse_current_state(unsigned char state,unsigned num)
 627          //根据8031提供的情况调整视频、音频的收发
 628          {
 629   1      }
*** WARNING C280 IN LINE 626 OF MAIN.C: 'state': unreferenced local variable
*** WARNING C280 IN LINE 626 OF MAIN.C: 'num': unreferenced local variable
 630          
 631          void adjust_send_video(unsigned char num,unsigned char flag)
 632          //调整视频的发送
 633          {
 634   1      }
*** WARNING C280 IN LINE 631 OF MAIN.C: 'num': unreferenced local variable
*** WARNING C280 IN LINE 631 OF MAIN.C: 'flag': unreferenced local variable
 635          
 636          void adjust_send_audio(unsigned char num,unsigned char flag)
 637          //调整音频的发送
 638          {
 639   1      }
*** WARNING C280 IN LINE 636 OF MAIN.C: 'num': unreferenced local variable
*** WARNING C280 IN LINE 636 OF MAIN.C: 'flag': unreferenced local variable
 640          
 641          void adjust_rev_video(unsigned char num,unsigned char flag)
 642          //调整视频的接收
 643          {
 644   1      }
*** WARNING C280 IN LINE 641 OF MAIN.C: 'num': unreferenced local variable
*** WARNING C280 IN LINE 641 OF MAIN.C: 'flag': unreferenced local variable
 645          
 646          void adjust_rev_audio(unsigned char num,unsigned char flag)
 647          //调整音频的接收
 648          {
 649   1      } 
*** WARNING C280 IN LINE 646 OF MAIN.C: 'num': unreferenced local variable
*** WARNING C280 IN LINE 646 OF MAIN.C: 'flag': unreferenced local variable


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   4150    ----
   CONSTANT SIZE    =   1523    ----
   XDATA SIZE       =   2350     139
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     40    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
   EDATA SIZE       =   ----    ----
   HDATA SIZE       =   ----    ----
   XDATA CONST SIZE =   ----    ----
   FAR CONST SIZE   =   ----    ----
C51 COMPILER V7.07   MAIN                                                                  04/07/2006 09:01:49 PAGE 12  

END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  10 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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