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

📄 user.h

📁 这是TCP/IP协议组播的实现代码
💻 H
字号:

/***** 此程序为IP视频会议终端C400程序 ******/

/*********** user.h 为系统所需变量 *********/

/*********** designed by wangxq    *********/

/***********      2006-02-23       *********/

/*************** 以下为常量区 **************/

// leave 4000h bytes for function parameters
#define RAM_START             0x14000          
#define RAM_END               0x5FFFF

#define STATIC_IPV4_PREFIX      24

#define USE_KMEM_LIB
#define USE_XNETSTACK_LIB

/*************** 以上为常量区 **************/

/*************** 以下为函数区 **************/

//C 程序中汇编函数的申明 

extern void dp_write_video(void);	 			
//完成写视频数据

extern void dp_read_video(void);
//完成读视频数据

extern void dp_read_audio(void);
//完成读音频数据

extern void dp_write_audio(void);
//完成写音频数据

void network_config();		 			
//配置网络参数

void do_static();			 			
//设置静态网络参数

void wait_millis(unsigned int waitTime);
//等待函数

void init();         					
//完成变量的初始化

void moveto_buf();						
//将接收到的命令字放入接收缓冲区

void send_command(); 					
//完成命令字的发送

void adjust_send_video(unsigned char num,unsigned char flag);
//调整视频的发送

void adjust_send_audio(unsigned char num,unsigned char flag);
//调整音频发送

void adjust_rev_video(unsigned char num,unsigned char flag);
//调整视频接收

void adjust_rev_audio(unsigned char num,unsigned char flag);
//调整音频接收

void analyse_current_state(unsigned char state,unsigned num);
//根据8031提供的情况调整视频、音频的收发

void start_leave();
//系统初始化离开所有组

/*************** 以上为函数区 **************/

/*************** 以下为连接区 **************/

unsigned char send_para[4][4];
//记录上行的四组发送参数

unsigned char rev_para_video[3][4];
//记录下行的三组视频接收参数

unsigned char rev_para_audio[3][4];
//记录下行的三组音频接收参数

unsigned char send_video_flag;
//记录视频是否需要发送

unsigned char rev_video_flag;
//记录视频是否需要接收

unsigned char send_audio_flag;
//记录音频是否需要发送

unsigned char rev_audio_flag;
//记录音频是否需要接收

/*************** 以上为连接区 **************/

/************* 以下为指针变量区 ************/

data unsigned char far *send_addr_video;	  
//UDP视频发送缓冲区地址指针

data unsigned char far *rev_addr_video;	  
//UDP视频接收发缓冲区地址指针

data unsigned char far *send_addr_audio;	  
//UDP音频发送缓冲区地址指针

data unsigned char far *rev_addr_audio;	  
//UDP音频接收缓冲区地址指针

data unsigned char far *send_addr_command;
//命令字发送缓冲区地址指针

data unsigned char far *rev_addr_command; 
//UDP接收命令字缓冲区地址指针

data unsigned char far *rd_fifo_hf;
//读取音频发送FIFO半满地址指针

data unsigned char far *rd_fifo_ef;
//检测音频FIFO是否为空

data unsigned char far *dual_send;        
//双口RAM写地址

data unsigned char far *dual_rev;         
//双口RAM读地址

data unsigned char far *dual_ip;          
//IP配置地址

/************* 以上为指针变量区 ************/

/************* 以下为句柄变量区 ************/

unsigned int video_sendhandle;                  
//UDP视频发送句柄

unsigned int video_revhandle;                  
//UDP视频接收句柄   

unsigned int g711_sendhandle;
//711音频发送句柄

unsigned int g711_revhandle;
//711音频接收句柄

unsigned int command_sendhandle;                  
//UDP命令子发送句柄

unsigned int command_revhandle;                   
//UDP命令子接收句柄

/************* 以上为句柄变量区 ************/

/*********** 以下为任务调度变量区 **********/

data unsigned int result;                 
//任务调度句柄   

data unsigned int audio_result;
//任务调度句柄

data unsigned int command_result;                 
//任务调度句柄  

data unsigned char time_switch;                
//UDP发送线程等待时间,大小决定了网络的发送速度

/*********** 以上为任务调度变量区 **********/

/************ 以下为SOCKET变量区 ***********/

struct sockaddr send_udp_video;                
//UDP视频发送地址  

struct sockaddr send_udp_audio;                
//UDP音频发送地址

struct sockaddr send_udp_command;                
//UDP命令字发送地址

struct sockaddr rev_udp_video;                
//UDP视频接收地址   

struct sockaddr rev_udp_audio;                
//UDP音频接收地址   

struct sockaddr rev_udp_command;                
//UDP命令字接收地址   

struct sockaddr rev_multi_video;                
//UDP视频组播接收地址   

struct sockaddr rev_multi_audio;                
//UDP音频组播接收地址  

struct sockaddr temp_addr;

unsigned int SEND_VIDEO_PORT;
//发送视频数据端口号

unsigned int REV_VIDEO_PORT; 
//接收视频数据端口号

unsigned int SEND_G711_PORT;
//发送G711音频端口号

unsigned int REV_G711_PORT;
//接收G711音频端口号

unsigned int SEND_COMMAND_PORT;
//发送命令字端口号

unsigned int REV_COMMAND_PORT;
//接收命令字端口号

unsigned int rev_length_video;              
//UDP视频接收长度 

unsigned int rev_length_audio;
//UDP音频接收长度

int rev_length_command;              
//UDP命令字接收长度 

/************ 以上为SOCKET变量区 ***********/

/************* 以下为其他变量区 ************/

unsigned char rev_buf[2048];               
//接收命令字缓冲区

unsigned int head_r;                     
//接收命令字缓冲头指针

unsigned int tail_r;                     
//接收命令字缓冲尾指针

unsigned char static_ip[4];               
//本端静态IP

unsigned char yan_ma[4];                  
//本端子网掩码 

unsigned char gate_ip[4];                 
//本端网关

unsigned int command_length;
//命令字长度

unsigned char temp;
//临时变量

unsigned char para_l;
//参数变量

unsigned char para_h;
//参数变量

unsigned char verify[3];

unsigned int i,j;
unsigned int trans_num;
/************* 以上为其他变量区 ************/

⌨️ 快捷键说明

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