📄 c_manage.lst
字号:
C51 COMPILER V3.96, SN-83203013 C_MANAGE 03/06/04 11:31:48 PAGE 1
DOS C51 COMPILER V3.96, COMPILATION OF MODULE C_MANAGE
OBJECT MODULE PLACED IN C_MANAGE.OBJ
COMPILER INVOKED BY: C:\C51\BIN\C51.EXE C_MANAGE.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
9 extern delay_time(unsigned int subtime);//延时子函数
10 extern read_warn();//读取告警信息
11 extern interface_init();//接口初始化
12 extern sig_req(unsigned char para1, unsigned char para2);//发送线路信令
13
14 void connect(unsigned char in_slot,unsigned char o_slot)//用于连接两个时隙
15 {
16 1 unsigned char i1;
17 1 XBYTE[CON_REG] = 0xb4;
18 1 i1 = o_slot >> 5;
19 1 o_slot = (o_slot & 0x1f);
20 1
21 1 XBYTE[CON_REG] = 0x0c;
22 1 XBYTE[WR_8980] = 0x18 + i1;
23 1 XBYTE[PORT_B] = 0;
24 1
25 1 XBYTE[CON_REG] = 0x0c;
26 1 XBYTE[WR_8980] = 1;
27 1 XBYTE[PORT_B] = 0x20 + o_slot;
28 1
29 1 XBYTE[CON_REG] = 0x0c;
30 1 XBYTE[WR_8980] = 0x10 + i1 ;
31 1 XBYTE[PORT_B] = 0x00;
32 1
33 1 XBYTE[CON_REG] = 0x0c;
34 1 XBYTE[WR_8980] = in_slot;
35 1 XBYTE[PORT_B] = 0x20 + o_slot;
36 1 XBYTE[CON_REG] = 0xb4;
37 1 }
38
39 no_sound(unsigned char o_slot)//无音处理
40 {
41 1 unsigned char i1;
42 1 XBYTE[CON_REG] = 0xb4;
43 1 i1 = o_slot >> 5;
44 1 o_slot = o_slot & 0x1f;
45 1 XBYTE[CON_REG] = 0x0c;
46 1 XBYTE[WR_8980] = 0x10 + i1;
47 1 XBYTE[PORT_B] = 0;
48 1
49 1 XBYTE[CON_REG] = 0x0c;
50 1 XBYTE[WR_8980] = 0x55;
51 1 XBYTE[PORT_B] = 0x20 + o_slot;
52 1
53 1 XBYTE[CON_REG] = 0x0c;
54 1 XBYTE[WR_8980] = 0x18 + i1;
55 1 XBYTE[PORT_B] = 0;
C51 COMPILER V3.96, SN-83203013 C_MANAGE 03/06/04 11:31:48 PAGE 2
56 1
57 1 XBYTE[CON_REG] = 0x0c;
58 1 XBYTE[WR_8980] = 0x05;
59 1 XBYTE[PORT_B] = 0x20 + o_slot;
60 1 }
61
62 i_net()//初始化为无音
63 {
64 1 unsigned int i;
65 1 for(i = 0; i < 256;i++)
66 1 {
67 2 no_sound(i);
68 2 }
69 1 }
70
71 user_e1_init()//数字中继用户初始化
72 {
73 1 unsigned char xdata temp,user_num;
74 1 user_monitor_num = IDLE;
75 1 user_test_num = IDLE;
76 1 for(user_num = 0;user_num < TRK_MAX;user_num++)
77 1 {
78 2 user_e1[user_num].type = CALL_CLOSE;
79 2 user_e1[user_num].mfc = IDLE;
80 2 user_e1[user_num].dtmf = IDLE;
81 2 user_e1[user_num].opp_num = IDLE;
82 2 user_e1[user_num].wait = 0;
83 2 user_e1[user_num].false = 0;
84 2 user_e1[user_num].backward_signal = RSD_IDLE;//闭塞、主叫挂机
85 2 user_e1[user_num].forward_signal = 0xbb;
86 2 user_e1[user_num].flag = LEISURE;
87 2 user_e1[user_num].back_flag = 0;
88 2 user_e1[user_num].user_age = IDLE;
89 2 user_e1[user_num].opp_age = IDLE;
90 2 user_e1[user_num].user_sex = MAN;
91 2 user_e1[user_num].opp_sex = WOMAN;
92 2 for(temp = 0;temp < 32;temp++)
93 2 {
94 3 user_e1[user_num].telephone[temp] = IDLE;
95 3 }
96 2 for(temp = 0;temp < 6;temp++)
97 2 {
98 3 user_e1[user_num].password[temp] = IDLE;
99 3 user_e1[user_num].number_chat[temp] = IDLE;
100 3 }
101 2 user_e1[user_num].first_select = IDLE;
102 2 user_e1[user_num].user_index = 0;
103 2 user_e1[user_num].a6_flag = 0;
104 2 user_e1[user_num].kd = 0;
105 2 user_e1[user_num].lc_state = 0;
106 2 user_e1[user_num].mfc_state = IDLE;
107 2 user_e1[user_num].user_state = IDLE;
108 2 user_e1[user_num].sub_status = IDLE;
109 2 user_e1[user_num].mfc_count = 0;
110 2 user_e1[user_num].delay = 0;
111 2 user_e1[user_num].chat_num = IDLE;
112 2 user_e1[user_num].chat_type = IDLE;
113 2 user_e1[user_num].user_mix = IDLE;
114 2 user_e1[user_num].user_num = IDLE;
115 2 user_e1[user_num].yukong_num = IDLE;
116 2 }
117 1 }
C51 COMPILER V3.96, SN-83203013 C_MANAGE 03/06/04 11:31:48 PAGE 3
118
119 void init_back()//初始化回呼用户
120 {
121 1 unsigned char xdata temp,i;
122 1 for(temp = 0;temp < 64;temp++)
123 1 {
124 2 chat_number[temp].user_num = IDLE;
125 2 chat_number[temp].user_sex = IDLE;
126 2 chat_number[temp].user_age = IDLE;
127 2 chat_number[temp].call_flag = 0;
128 2 for(i = 0;i < 6;i++)
129 2 {
130 3 chat_number[temp].telephone[i] = IDLE;
131 3 }
132 2 }
133 1 for(temp = 0;temp < 128;temp++)
134 1 {
135 2 user_back[temp].user_num = IDLE;
136 2 user_back[temp].user_sex = IDLE;
137 2 user_back[temp].user_age = IDLE;
138 2 user_back[temp].opp_sex = IDLE;
139 2 user_back[temp].opp_age = IDLE;
140 2 user_back[temp].chat_type = IDLE;
141 2 for(i = 0;i < 6;i++)
142 2 {
143 3 user_back[temp].telephone[i] = IDLE;
144 3 user_back[temp].password[i] = IDLE;
145 3 }
146 2 user_back[temp].call_flag = 0;
147 2 }
148 1 }
149
150 void command(unsigned char x,unsigned char y,unsigned char z,unsigned char i,unsigned char j,unsigned char
- k,unsigned char l,unsigned char m,
151 unsigned char n,unsigned char o,unsigned char p,unsigned char q,unsigned char r,unsigned char s,unsigne
-d char t,unsigned char u)
152 { //往后台发的命令字
153 1 unsigned int xdata word_tmp;
154 1 EA=0;
155 1 word_tmp = sdbt;
156 1 sdbuf[word_tmp] = x;
157 1 word_tmp++;
158 1 sdbuf[word_tmp] = y;
159 1 word_tmp++;
160 1 sdbuf[word_tmp] = z;
161 1 word_tmp++;
162 1 sdbuf[word_tmp] = i;
163 1 word_tmp++;
164 1 sdbuf[word_tmp] = j;
165 1 word_tmp++;
166 1 sdbuf[word_tmp] = k;
167 1 word_tmp++;
168 1 sdbuf[word_tmp] = l;
169 1 word_tmp++;
170 1 sdbuf[word_tmp] = m;
171 1 word_tmp++;
172 1 sdbuf[word_tmp] = n;
173 1 word_tmp++;
174 1 sdbuf[word_tmp] = o;
175 1 word_tmp++;
176 1 sdbuf[word_tmp] = p;
177 1 word_tmp++;
C51 COMPILER V3.96, SN-83203013 C_MANAGE 03/06/04 11:31:48 PAGE 4
178 1 sdbuf[word_tmp] = q;
179 1 word_tmp++;
180 1 sdbuf[word_tmp] = r;
181 1 word_tmp++;
182 1 sdbuf[word_tmp] = s;
183 1 word_tmp++;
184 1 sdbuf[word_tmp] = t;
185 1 word_tmp++;
186 1 sdbuf[word_tmp] = u;
187 1 word_tmp++;
188 1 sdbt = (sdbt + 16) & 0x7f8;
189 1 EA = 1;
190 1 }
191
192 void yukong_init()//语控资源初始化
193 {
194 1 unsigned char xdata temp;
195 1 yukong_count = 0;
196 1 for(temp = 0;temp < AUDIO_MAX;temp++)
197 1 {
198 2 yukong_resource[temp].flag = IDLE;
199 2 yukong_resource[temp].slot = IDLE;
200 2 yukong_resource[temp].addr = IDLE;
201 2 yukong_resource[temp].user = IDLE;
202 2 yukong_resource[temp].count = 0;
203 2 yukong_resource[temp].state = AUDIO_NO;
204 2 }
205 1 }
206
207 unsigned char yukong_req(unsigned char user_num)//语控资源申请
208 {
209 1 unsigned char xdata temp;
210 1 if(yukong_count == 0)
211 1 {
212 2 return(IDLE);
213 2 }
214 1 else
215 1 {
216 2 for(temp = 0;temp < AUDIO_MAX;temp++)
217 2 {
218 3 if(yukong_resource[temp].flag == LEISURE)
219 3 {
220 4 yukong_count--;
221 4 command(8,2,yukong_count,IDLE,IDLE,IDLE,IDLE,IDLE,IDLE,IDLE,IDLE,IDLE,IDLE,IDLE,IDLE,IDLE);
222 4 user_e1[user_num].yukong_num = temp;
223 4 yukong_resource[temp].flag = OCCUPY;
224 4 yukong_resource[temp].user = user_num;
225 4 yukong_resource[temp].count = 0;
226 4 yukong_resource[temp].state = AUDIO_NO;
227 4 connect(user_num,yukong_resource[temp].slot);
228 4 return(temp);
229 4 }
230 3 }
231 2 }
232 1 }
233
234 void yukong_release(unsigned char yukong_num)//语控资源释放
235 {
236 1 if((yukong_num != IDLE) && (yukong_resource[yukong_num].flag == OCCUPY))
237 1 {
238 2 yukong_count++;
239 2 command(8,2,yukong_count,IDLE,IDLE,IDLE,IDLE,IDLE,IDLE,IDLE,IDLE,IDLE,IDLE,IDLE,IDLE,IDLE);
C51 COMPILER V3.96, SN-83203013 C_MANAGE 03/06/04 11:31:48 PAGE 5
240 2 user_e1[yukong_resource[yukong_num].user].yukong_num = IDLE;
241 2 yukong_resource[yukong_num].flag = LEISURE;
242 2 yukong_resource[yukong_num].user = IDLE;
243 2 yukong_resource[yukong_num].count = 0;
244 2 yukong_resource[yukong_num].state = AUDIO_NO;
245 2 no_sound(yukong_resource[yukong_num].slot);
246 2 }
247 1 }
248
249 void chat_common_init()//公共聊天室初始化
250 {
251 1 unsigned char xdata i,temp;
252 1 chat_common_count = 8;
253 1 for(i = 0;i < GRP_MAX;i++)
254 1 {
255 2 chat_common_resource[i].flag = LEISURE;
256 2 chat_common_resource[i].user_count = 0;
257 2 chat_common_resource[i].type = IDLE;
258 2 for(temp = 0;temp < 4;temp++)
259 2 {
260 3 chat_common_resource[i].mt8924_slot[temp] = 0xe0 + i * 4 + temp;
261 3 chat_common_resource[i].mt8924_user[temp] = IDLE;
262 3 XBYTE[M_NET1] = 0x10 | (i + 1);
263 3 XBYTE[M_NET1] = i * 4 + temp;
264 3 XBYTE[M_NET2] = tone_set;
265 3 }
266 2 for(temp = 0;temp < 16;temp++)
267 2 {
268 3 chat_common_resource[i].user_num[temp] = IDLE;
269 3 }
270 2 for(temp = 0;temp < 6;temp++)
271 2 {
272 3 chat_common_resource[i].password[temp] = IDLE;
273 3 }
274 2 }
275 1 }
276
277 unsigned char chat_common_req(unsigned char user_num,unsigned char password[6],unsigned char chat_type)//
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -