📄 c_trkout.lst
字号:
C51 COMPILER V3.96, SN-83203013 C_TRKOUT 03/06/04 11:31:47 PAGE 1
DOS C51 COMPILER V3.96, COMPILATION OF MODULE C_TRKOUT
OBJECT MODULE PLACED IN C_TRKOUT.OBJ
COMPILER INVOKED BY: C:\C51\BIN\C51.EXE C_TRKOUT.C DB SYMBOLS LA
stmt level source
1 /***********主要完成数字中继的呼出处理和通知用户***********/
2
3 #pragma CODE DEBUG SYMBOLS OBJECTEXTEND
4 #include <reg51.h>
5 #include <absacc.h>
6 #include "Const.h"
7 #include "Extern.h"
8 extern unsigned char mfc_req(unsigned char trk_num,unsigned char send_type);//请求MFC通道
9 extern mfc_release(unsigned char mfc_num);//释放MFC通道
10
11 extern dtmf_release(unsigned char dtmf_num);//释放DTMF通道
12 extern unsigned char dtmf_req(unsigned char trk_num,unsigned char type);//请求DTMF通道
13
14 extern command(unsigned char x,unsigned char y,unsigned char z,unsigned char i,unsigned char j,unsigned ch
-ar k,unsigned char l,unsigned char m,
15 unsigned char n,unsigned char o,unsigned char p,unsigned char q,unsigned char r,unsigned char s,unsi
-gned char t,unsigned char u);
16
17 extern connect(unsigned char i_slot,unsigned char o_slot);//用于连接两个时隙
18 extern no_sound(unsigned char para1);//无音处理
19 extern sig_req(unsigned char para1, unsigned char para2);//发送线路信令
20
21 extern user_release(unsigned char user_num);//释放呼出资源
22
23 extern audio_play(unsigned char audio_num,unsigned char duan_num);//放音程序
24 extern audio_stop(unsigned char audio_num);//停止目前操作
25
26 send_mfc_out(unsigned char mfc_num,unsigned char mfc_data)//出中继MFC发送
27 {
28 1 unsigned char xdata temp;
29 1 temp = 1;
30 1 while(temp)
31 1 {
32 2 if(((MFC_W_R >> (2 * mfc_num + 4)) & 0x01) != 0x01)//判断此通道是否可写
33 2 {
34 3 XBYTE[chat_mfc_resource[mfc_num].addr] = 0x3d;//设置为发前项,收后项
35 3 temp = 0;
36 3 }
37 2 }
38 1 temp = 1;
39 1 mfc_data = (mfc_data & 0x0f);
40 1 while(temp)
41 1 {
42 2 if(((MFC_W_R >> (2 * mfc_num + 4)) & 0x01) != 0x01)//判断此通道是否可写
43 2 {
44 3 XBYTE[chat_mfc_resource[mfc_num].addr] = 0x80 + mfc_data;//发送要发的数据
45 3 temp = 0;
46 3 }
47 2 }
48 1 }
49
50 false_p(unsigned char user_num)//呼叫失败处理子程序
51 {
52 1 user_e1[user_num].false++;
53 1 dtmf_release(user_e1[user_num].dtmf);//释放DTMF资源
C51 COMPILER V3.96, SN-83203013 C_TRKOUT 03/06/04 11:31:47 PAGE 2
54 1 if((user_e1[user_num].false > 2) || (user_test_num == IDLE))
55 1 {
56 2 user_release(user_num);
57 2 }
58 1 user_e1[user_num].user_index = 0;
59 1 user_e1[user_num].mfc_state = IDLE;
60 1 }
61
62 out_mfc_line(unsigned char user_num)// 出中继MFC互控处理
63 {
64 1 unsigned char xdata trk_j,trk_k,temp[8];
65 1 switch(user_e1[user_num].mfc_state)//MFC状态
66 1 {
67 2 case MFC_START ://开始MFC互控
68 2 {
69 3 if(user_e1[user_num].telephone[0] == 0x0a)//如果第一位为0
70 3 {
71 4 user_e1[user_num].kd = 2;//长途自动呼叫
72 4 }
73 3 else
74 3 {
75 4 if(user_e1[user_num].telephone[1] == 1)//如果第二位为1
76 4 {
77 5 if((user_e1[user_num].telephone[2] == 0x0a) || (user_e1[user_num].telephone[2] == 7))
78 5 {//在第二位为1时,如果第三位为0或7
79 6 user_e1[user_num].kd = 2;//长途自动呼叫
80 6 }
81 5 else
82 5 {
83 6 user_e1[user_num].kd = 3;//市话业务
84 6 }
85 5 }
86 4 else
87 4 {
88 5 user_e1[user_num].kd = 3;//市话业务
89 5 }
90 4 }
91 3 if(user_e1[user_num].telephone[user_e1[user_num].user_index] != IDLE)//第一位号码为正常
92 3 {
93 4 send_mfc_out(user_e1[user_num].mfc,user_e1[user_num].telephone[user_e1[user_num].user_index]);//发送第
-一位号码
94 4 if((user_monitor_num == user_num) || (user_test_num == user_num))//判断此端口是否为呼出测试端口或监视
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -