📄 protocol.lst
字号:
188 2 {
189 3 case (0x20):
190 3 if(Rcv_Buf[Rcv_Rp+7]==Station
191 3 ||(Rcv_Buf[Rcv_Rp+7]==0xff&&Rcv_Buf[Rcv_Rp+8]==0xff)&&(!Key))
192 3
193 3 {
194 4
195 4 Trs_Comm=0xaa;
196 4 Trs_Comm_Bak=0xa0;
197 4 Trs_Flag=1;
198 4
199 4 }
200 3 break;
201 3 case (0x21):
202 3 if(!Key)
203 3 {
204 4 Station=Rcv_Buf[Rcv_Rp+7];
205 4 Write1B(Station,0,0);
206 4 Trs_Comm=0xaa;
207 4 Trs_Comm_Bak=0xa1;
208 4 Trs_Flag=1;
209 4 }
210 3 break;
211 3 case (0x31):
212 3 if(Rcv_Buf[Rcv_Rp+7]==Station)
213 3 {
214 4 House_R=Rcv_Buf[Rcv_Rp+9];
215 4 if(House_R!=0xff)
216 4 {
217 5 Yk_En=Read1B(15+(House_R-1)/8,0);
218 5 if (Rcv_Buf[Rcv_Rp+10]&0x80)
219 5 {
220 6 Yk_En|=(1<<((House_R-1)%8));
221 6 YkStatus=0x81;
222 6 }
223 5 else
224 5 {
225 6 Yk_En&=~(1<<((House_R-1)%8));
226 6 YkStatus=0x80;
227 6 }
228 5 Write1B(Yk_En,15+(House_R-1)/8,0);
229 5
230 5 }
231 4
232 4 else //0xff
233 4 {
234 5 if (Rcv_Buf[Rcv_Rp+10]&0x80)
235 5 {
236 6 YkStatus=0x81;
237 6 for(i=0;i<5;i++)
238 6 {
239 7 Write1B(0xff,15+i,0);
240 7 }
241 6 }
C51 COMPILER V6.12 PROTOCOL 10/22/2004 10:22:31 PAGE 5
242 5 else
243 5 {
244 6 YkStatus=0x80;
245 6 for(i=0;i<5;i++)
246 6 {
247 7 Write1B(0x0,15+i,0);
248 7 }
249 6 }
250 5 }
251 4 Trs_Comm=0xbb;
252 4 Trs_Comm_Bak=0xb1;
253 4 Trs_Flag=1;
254 4 Disp_Flag=1;
255 4 }
256 3 break;
257 3
258 3 case (0x36): // TongDuan Status
259 3 if(Rcv_Buf[Rcv_Rp+7]==Station)
260 3 {
261 4 Trs_Comm=0xbb;
262 4 Trs_Comm_Bak=0xb6;
263 4 Trs_Flag=1;
264 4 House_R=Rcv_Buf[Rcv_Rp+9];
265 4 i=(House_R-1)/8;
266 4 Tmp=Read1B(15+i,0);
267 4 i=(House_R-1)%8;
268 4 Tmp=Tmp>>i;
269 4 if(Tmp&1) //yk enable
270 4 {
271 5 i=(House_R-1)/8;
272 5 Tmp=Read1B(10+i,0);
273 5 i=(House_R-1)%8;
274 5 Tmp=Tmp>>i;
275 5 if(Tmp&1)
276 5 {
277 6 YkStatus=0xcc;
278 6 }
279 5 else
280 5 {
281 6 YkStatus=0x33;
282 6 }
283 5 }
284 4 else // yk disable
285 4 {
286 5 YkStatus=0x55;
287 5 }
288 4 }
289 3 break;
290 3 case (0x37): //Yk TongDuan
291 3
292 3 if(Rcv_Buf[Rcv_Rp+7]==Station
293 3 ||(Rcv_Buf[Rcv_Rp+7]==0xff&&Rcv_Buf[Rcv_Rp+8]==0xff))
294 3 {
295 4 House_R=Rcv_Buf[Rcv_Rp+9];
296 4 YkNo=House_R-1; //YkNo
297 4 YkHf=Rcv_Buf[Rcv_Rp+10]; //YkHf
298 4 if(House_R==0xff)
299 4 {
300 5 Yk_All=1;
301 5 YkNo=0;
302 5 }
303 4 else
C51 COMPILER V6.12 PROTOCOL 10/22/2004 10:22:31 PAGE 6
304 4 {
305 5 Yk_All=0;
306 5 i=YkNo/8;
307 5 Tmp=Read1B(15+i,0);
308 5 i=YkNo%8;
309 5 Tmp=(Tmp>>i)&1;
310 5 {
311 6 YkPro(YkNo,YkHf);
312 6 Trs_Comm=0xbb;
313 6 Trs_Comm_Bak=0xb7;
314 6 YkStatus=0xaa;
315 6 Trs_Flag=1;
316 6 }
317 5 }
318 4 }
319 3
320 3 break;
321 3
322 3 case (0x52): //供电时段查询
323 3
324 3 if(Rcv_Buf[Rcv_Rp+7]==Station)
325 3
326 3 {
327 4 Week_Tmp=Rcv_Buf[Rcv_Rp+12];
328 4 No_Tmp=Rcv_Buf[Rcv_Rp+13];
329 4 Trs_Comm=0xD2;
330 4 Trs_Flag=1;
331 4 }
332 3
333 3 break;
334 3 case (0x53): //供电时段设置
335 3
336 3 if(Rcv_Buf[Rcv_Rp+7]==Station
337 3 ||(Rcv_Buf[Rcv_Rp+7]==0xff&&Rcv_Buf[Rcv_Rp+8]==0xff))
338 3 {
339 4 i=Rcv_Buf[Rcv_Rp+12]-1; //WEEK
340 4 Tmp=Rcv_Buf[Rcv_Rp+13]-1; //序号
341 4 if(i<7 && Tmp<5)
342 4 {
343 5 Tmp1=Rcv_Buf[Rcv_Rp+14];
344 5 Write1B(Tmp1,20+10*i+2*Tmp,0); //开始 时
345 5 Tmp1=Rcv_Buf[Rcv_Rp+15];
346 5 Write1B(Tmp1,20+10*i+2*Tmp+1,0); //开始 分
347 5
348 5 Tmp1=Rcv_Buf[Rcv_Rp+16];
349 5 Write1B(Tmp1,90+10*i+2*Tmp,0); //结束 时
350 5 Tmp1=Rcv_Buf[Rcv_Rp+17];
351 5 Write1B(Tmp1,90+10*i+2*Tmp+1,0); //结束 分
352 5 Trs_Comm=0xaa;
353 5 Trs_Comm_Bak=0xD3;
354 5 Trs_Flag=1;
355 5 }
356 4 }
357 3
358 3 break;
359 3
360 3 case (0x58): //查询时钟
361 3
362 3 if(Rcv_Buf[Rcv_Rp+7]==Station)
363 3
364 3 {
365 4 Trs_Comm=0xd8;
C51 COMPILER V6.12 PROTOCOL 10/22/2004 10:22:31 PAGE 7
366 4 Trs_Flag=1;
367 4
368 4 }
369 3
370 3 break;
371 3
372 3 case (0x59): //对钟
373 3
374 3 if(Rcv_Buf[Rcv_Rp+7]==Station
375 3 ||(Rcv_Buf[Rcv_Rp+7]==0xff&&Rcv_Buf[Rcv_Rp+8]==0xff))
376 3 {
377 4 Cs12887=0;
378 4 RegB|=0x80;
379 4 Year=Rcv_Buf[Rcv_Rp+9];
380 4 Month=Rcv_Buf[Rcv_Rp+10];
381 4 Day=Rcv_Buf[Rcv_Rp+11];
382 4 Hour=Rcv_Buf[Rcv_Rp+12];
383 4 Minute=Rcv_Buf[Rcv_Rp+13];
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -