📄 main.lst
字号:
264 3 while (1)
265 3 {
266 4 rev_length_video = syn_recvfrom(video_revhandle,1472,rev_addr_video);//UDP接收视频数据
267 4 if(rev_length_video == 1472)
268 4 {
269 5 dp_write_video();
270 5 rev_num++;
271 5 if(rev_num > 49950)
272 5 {
273 6 printf(" rev_num = %u\r\n",rev_num);
274 6 }
275 5 }
276 4 else
277 4 {
278 5 printf(" rev_length_video = %u\r\n",rev_length_video);
279 5 }
280 4 }
281 3 }
282 2 else
283 2 {
284 3 audio_result = task_fork(NORM_PRIORITY, ROM_SAVESIZE);//创建两个任务线程
285 3 if(audio_result == 0xffff)
286 3 {
287 4 puts("Attempt to fork failed\r\n");
288 4 return;
289 4 }
290 3 else if(audio_result == 0)//接收音频线程
291 3 {
292 4 while(1)
293 4 {
294 5 rev_length_audio = syn_recvfrom(g711_revhandle,1024,rev_addr_audio);//UDP音频接收
295 5 //rev_length_audio = recvfrom(g711_revhandle,rev_addr_audio,1024,0,&temp_addr,sizeof(struct sockaddr)
-);//UDP音频接收
296 5 if(rev_length_audio == 1024)
297 5 {
298 6 dp_write_audio();
299 6 //printf("IP : %bu \r\n", temp_addr.sin_addr[15]);
300 6 //temp_addr.sin_addr[15] = 0;
301 6 }
C51 COMPILER V7.07 MAIN 04/07/2006 09:39:09 PAGE 6
302 5 }
303 4 }
304 3 else//接收命令字线程
305 3 {
306 4 task_leavecritsection();
307 4 while (1)
308 4 {
309 5 rev_length_command = syn_recvfrom(command_revhandle,210, rev_addr_command);//UDP接收
310 5 if((rev_length_command < 210) && (rev_length_command > 0))
311 5 {
312 6 moveto_buf();//将网络接收到的命令字放入接收缓冲区
313 6 rev_length_command = 0;
314 6 while(head_r != tail_r)
315 6 {
316 7 send_command();
317 7 }
318 6 }
319 5 }
320 4 }
321 3 }
322 2 }
323 1 while(1)
324 1 {
325 2 }
326 1 }
327
328 void start_leave()
329 {
330 1 }
331
332 void wait_millis(unsigned int waitTime)//延时等待函数
333 {
334 1 unsigned int result;
335 1 struct TIME time1;
336 1 struct TIME time2;
337 1
338 1 task_entercritsection();
339 1
340 1 task_gettimemillis(&time1);
341 1 result = 0;
342 1 while (result < waitTime)
343 1 {
344 2 task_gettimemillis(&time2);
345 2 result = time2.millis - time1.millis;
346 2 }
347 1
348 1 task_leavecritsection();
349 1 printf("Waited for %ld msec\r\n", (time2.millis - time1.millis));
350 1 }
351
352 void do_static()//配置本端网络属性
353 {
354 1 unsigned int result;
355 1 unsigned char xdata config[56];
356 1 unsigned int i;
357 1 for (i=0;i<56;i++)
358 1 config[i] = 0;
359 1
360 1 //set the ip address
361 1 config[12] = static_ip[0];
362 1 config[13] = static_ip[1];
363 1 config[14] = static_ip[2];
C51 COMPILER V7.07 MAIN 04/07/2006 09:39:09 PAGE 7
364 1 config[15] = static_ip[3];
365 1
366 1 //set the subnet mask
367 1 config[16] = yan_ma[0];
368 1 config[17] = yan_ma[1];
369 1 config[18] = yan_ma[2];
370 1 config[19] = yan_ma[3];
371 1
372 1 //set the iP4 prefix
373 1 config[20] = STATIC_IPV4_PREFIX;
374 1
375 1 //set the gateway
376 1 config[33] = gate_ip[0];
377 1 config[34] = gate_ip[1];
378 1 config[35] = gate_ip[2];
379 1 config[36] = gate_ip[3];
380 1
381 1 result = setnetworkparams(config);
382 1 printf("Set network parameters result: %u\r\n", result);
383 1
384 1 }
385
386 void network_config()//读取本端网络属性
387 {
388 1 unsigned char result;
389 1 unsigned char xdata config[56];
390 1 unsigned int i;
391 1 for (i=0;i<56;i++)
392 1 config[i] = 0;
393 1
394 1 result = getnetworkparams(config);
395 1 printf("Network params result: %d\r\n", result);
396 1
397 1 printf("IP : %bu %bu %bu %bu\r\n", config[12], config[13], config[14], config[15]);
398 1 printf("Subnet: %bu %bu %bu %bu\r\n", config[16], config[17], config[18], config[19]);
399 1 printf("Prefix: %bu\r\n", config[20]);
400 1 printf("Gate : %bu %bu %bu %bu\r\n", config[33], config[34], config[35], config[36]);
401 1 }
402
403 void init()//初始化自己定义的量
404 {
405 1 send_addr_video = 0x050000;//视频发送地址指针
406 1 rev_addr_video = 0x051000;//视频接收地址指针
407 1 send_addr_audio = 0x052000;//音频发送地址指针
408 1 rev_addr_audio = 0x053000;//音频接收地址指针
409 1 send_addr_command = 0x054000;//命令字发送地址指针
410 1 rev_addr_command = 0x055000;//命令字接收地址指针
411 1 rd_fifo_hf = 0x280000;//读取音频发送FIFO半满地址指针
412 1 rd_fifo_ef = 0x2a0000;//读取视频发送FIFO空地址指针
413 1 dual_send = 0x240200;//双口RAM写地址指针
414 1 dual_rev = 0x240000;//双口RAM读地址指针
415 1 dual_ip = 0x240400;//网络参数配置地址指针
416 1 command_length = 0;
417 1 head_r = 0;
418 1 tail_r = 0;
419 1 rev_num = 0;
420 1 for(i = 0;i < 2048;i++)
421 1 {
422 2 rev_buf[i] = 0;
423 2 }
424 1
425 1 for(i = 0; i < 4;i++)
C51 COMPILER V7.07 MAIN 04/07/2006 09:39:09 PAGE 8
426 1 {
427 2 for(j = 0; j < 4;j++)
428 2 {
429 3 send_para[i][j] = 0;
430 3 }
431 2 }
432 1
433 1 for(i = 0; i < 3;i++)
434 1 {
435 2 for(j = 0; j < 4;j++)
436 2 {
437 3 rev_para_video[i][j] = 0;
438 3 rev_para_audio[i][j] = 0;
439 3 }
440 2 }
441 1
442 1 send_video_flag = 0xff;
443 1 rev_video_flag = 0xff;
444 1 send_audio_flag = 0xff;
445 1 rev_audio_flag = 0xff;
446 1
447 1 static_ip[0] = 192;
448 1 static_ip[1] = 168;
449 1 static_ip[2] = 0;
450 1 static_ip[3] = 201;
451 1
452 1 gate_ip[0] = 192;
453 1 gate_ip[1] = 168;
454 1 gate_ip[2] = 0;
455 1 gate_ip[3] = 1;
456 1
457 1 yan_ma[0] = 255;
458 1 yan_ma[1] = 255;
459 1 yan_ma[2] = 255;
460 1 yan_ma[3] = 0;
461 1
462 1 SEND_VIDEO_PORT = 10026;
463 1 REV_VIDEO_PORT = 10025;
464 1 SEND_G711_PORT = 10028;
465 1 REV_G711_PORT = 10027;
466 1 SEND_COMMAND_PORT = 10030;
467 1 REV_COMMAND_PORT = 10029;
468 1 }
469
470 void moveto_buf()//将收到的命令字转移到接收缓冲区
471 {
472 1 }
473
474
475 void send_command()//通过双口RAM发送命令字
476 {
477 1
478 1 }
479
480 void analyse_current_state(unsigned char state,unsigned num)
481 //根据8031提供的情况调整视频、音频的收发
482 {
483 1 }
*** WARNING C280 IN LINE 480 OF MAIN.C: 'state': unreferenced local variable
*** WARNING C280 IN LINE 480 OF MAIN.C: 'num': unreferenced local variable
484
485 void adjust_send_video(unsigned char num,unsigned char flag)
C51 COMPILER V7.07 MAIN 04/07/2006 09:39:09 PAGE 9
486 //调整视频的发送
487 {
488 1 }
*** WARNING C280 IN LINE 485 OF MAIN.C: 'num': unreferenced local variable
*** WARNING C280 IN LINE 485 OF MAIN.C: 'flag': unreferenced local variable
489
490 void adjust_send_audio(unsigned char num,unsigned char flag)
491 //调整音频的发送
492 {
493 1
494 1 }
*** WARNING C280 IN LINE 490 OF MAIN.C: 'num': unreferenced local variable
*** WARNING C280 IN LINE 490 OF MAIN.C: 'flag': unreferenced local variable
495
496 void adjust_rev_video(unsigned char num,unsigned char flag)
497 //调整视频的接收
498 {
499 1
500 1 }
*** WARNING C280 IN LINE 496 OF MAIN.C: 'num': unreferenced local variable
*** WARNING C280 IN LINE 496 OF MAIN.C: 'flag': unreferenced local variable
501
502 void adjust_rev_audio(unsigned char num,unsigned char flag)
503 //调整音频的接收
504 {
505 1
506 1 }
*** WARNING C280 IN LINE 502 OF MAIN.C: 'num': unreferenced local variable
*** WARNING C280 IN LINE 502 OF MAIN.C: 'flag': unreferenced local variable
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 2795 ----
CONSTANT SIZE = 1150 ----
XDATA SIZE = 2350 135
PDATA SIZE = ---- ----
DATA SIZE = 40 ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
EDATA SIZE = ---- ----
HDATA SIZE = ---- ----
XDATA CONST SIZE = ---- ----
FAR CONST SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 10 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -