📄 path_switch.lst
字号:
109 1 unsigned char xdata port; //1K50中的输出端口
110 1 unsigned char xdata mport; //1K50中的输入端口
111 1
112 1 switch(out_board){ //将输出盘号端口号转换成为1K50中的输出端口号
113 2 case 1: port = 5;
114 2 break;
115 2 case 2: port = 6;
116 2 break;
117 2 case 3: port = 4;
118 2 break;
119 2 case 4: if(out_port == 1){
120 3 port = 2;
121 3 }
122 2 else port = 3;
123 2 break;
124 2 case 5: if(out_port == 1){
125 3 port = 0;
126 3 }
127 2 else port = 1;
128 2 break;
129 2 default: break;
130 2 }
131 1 switch (port){ //得到1K50中的当前输入端口
C51 COMPILER V7.50 PATH_SWITCH 03/10/2006 16:35:33 PAGE 4
132 2 case 0: mport = XBYTE[0x8C00 + out_time - 1];
133 2 break;
134 2 case 1: mport = XBYTE[0x8C40 + out_time - 1];
135 2 break;
136 2 case 2: mport = XBYTE[0x8C80 + out_time - 1];
137 2 break;
138 2 case 3: mport = XBYTE[0x8CC0 + out_time - 1];
139 2 break;
140 2 case 4: mport = XBYTE[0x8D00 + out_time - 1];
141 2 break;
142 2 case 5: mport = XBYTE[0x8D40 + out_time - 1];
143 2 break;
144 2 case 6: mport = XBYTE[0x8D80 + out_time - 1];
145 2 break;
146 2 default: break;
147 2 }
148 1 return (mport);
149 1 }
150
151
152 unsigned char get_path_switch(struct cmd_para_save *path_switch){
153 1 //C50 MCP读取通道倒换情况
154 1 unsigned char xdata boardid;
155 1 unsigned char xdata portid;
156 1 unsigned char xdata timeid;
157 1 unsigned char xdata mport;
158 1 unsigned char xdata return_value;
159 1
160 1 boardid = path_switch -> path_table_swget_board; //输出盘号
161 1 portid = path_switch -> path_table_swget_port; //输出端口号
162 1 timeid = path_switch -> path_table_swget_slot; //输出时隙
163 1 btimeid = timeid;
164 1
165 1 if (timeid > 0 & timeid < 64){
166 2 mport = get_solt_working(boardid,portid,timeid); //得到所保护的输出时隙的输入端口
167 2 switch (path_switch_array[mport][timeid - 1][0]){ //转换主用表中的端口信息上报MCP
168 3 case 0: bboardid = 5;
169 3 bportid = 1;
170 3 return_value = 0;
171 3 break;
172 3 case 1: bboardid = 5;
173 3 bportid = 2;
174 3 return_value = 0;
175 3 break;
176 3 case 2: bboardid = 4;
177 3 bportid = 1;
178 3 return_value = 0;
179 3 break;
180 3 case 3: bboardid = 4;
181 3 bportid = 2;
182 3 return_value = 0;
183 3 break;
184 3 case 0xff: bboardid = 0;
185 3 bportid = 0;
186 3 return_value = 0;
187 3 break;
188 3 default:bboardid = 0;
189 3 bportid = 0;
190 3 return_value = 0;
191 3 break;
192 3 }
193 2 }
C51 COMPILER V7.50 PATH_SWITCH 03/10/2006 16:35:33 PAGE 5
194 1 else return_value = 2;
195 1 if (!GetResRdyTbl(21))
196 1 SetResRdyTbl(21);
197 1 return (return_value);
198 1 }
199
200 void report_path_switch_table(unsigned char value,unsigned char bboard,unsigned char bport,unsigned char b
-time){
201 1 //C50回应函数
202 1 tx_buf[0] = '$';
203 1 tx_buf[1] = '2';
204 1 tx_buf[2] = '1';
205 1 tx_buf[3] = 0x43;
206 1 tx_buf[4] = 0x35;
207 1 tx_buf[5] = 0x30;
208 1 tx_buf[6] = '0';
209 1 tx_buf[7] = '0';
210 1 tx_buf[8] = '0';
211 1 tx_buf[9] = '7';
212 1 tx_buf[10] = value + 0x30;
213 1 tx_buf[11] = bboard + 0x30;
214 1 if (bboard == 5){
215 2 tx_buf[12] = '1';
216 2 }
217 1 else if(bboard == 4){
218 2 tx_buf[12] = '4';
219 2 }
220 1 else tx_buf[12] = '0';
221 1 tx_buf[13] = '0';
222 1 tx_buf[14] = bport + 0x30;
223 1 tx_buf[15] = (btime / 10) + 0x30;
224 1 tx_buf[16] = (btime % 10) + 0x30;
225 1 tx_buf[17] = '*';
226 1 tx_buf_pointer = 0;
227 1 while(tx_buf[tx_buf_pointer] != '*'){
228 2 SBUF = tx_buf[tx_buf_pointer];
229 2 while(tx_done == 0);
230 2 tx_done = 0;
231 2 tx_buf_pointer++;
232 2 }
233 1 SBUF = tx_buf[tx_buf_pointer]; //发送最后一个字符'*'
234 1 while(tx_done == 0);
235 1 tx_done = 0;
236 1
237 1 }
238
239
240 unsigned char set_path_switch(struct cmd_para_save *path_switch){
241 1 //C51 设置通道倒换表
242 1 unsigned char xdata boardid;
243 1 unsigned char xdata portid;
244 1 unsigned char xdata timeid;
245 1 unsigned char xdata port;
246 1 unsigned char xdata bboardid2;
247 1 unsigned char xdata bportid2;
248 1 unsigned char xdata btimeid2;
249 1 unsigned char xdata mport;
250 1 unsigned char xdata return_value;
251 1
252 1 commandid = 0x00433531;
253 1 boardid = path_switch -> path_table_swset_board; //输出盘号
254 1 portid = path_switch -> path_table_swset_port; //输出端口号
C51 COMPILER V7.50 PATH_SWITCH 03/10/2006 16:35:33 PAGE 6
255 1 timeid = path_switch -> path_table_swset_slot; //输出时隙号
256 1 bboardid = path_switch -> path_table_swset_Bboard; //备用盘号(下行光口发2M收)
257 1 bportid = path_switch -> path_table_swset_Bport; //备用端口号(下行光口发2M收)
258 1 btimeid = path_switch -> path_table_swset_Bslot; //备用时隙号(下行光口发2M收)
259 1 bboardid2 = path_switch -> path_table_swset_Bboard2; //备用盘号(上行2M发光口收)
260 1 bportid2 = path_switch -> path_table_swset_Bport2; //备用端口号(上行2M发光口收)
261 1 btimeid2 = path_switch -> path_table_swset_Bslot2; //备用时隙号(上行2M发光口收)
262 1
263 1 if (timeid > 0 & timeid < 64){
264 2 mport = get_solt_working(boardid,portid,timeid); //得到所保护的输出时隙的输入端口
265 2
266 2 switch (bboardid){ //得到备用端口在1K50上的端口值
267 3 case 0: bportid = 0xff;
268 3 break;
269 3 case 4: if (bportid == 1){
270 4 bportid = 2;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -