📄 protocol.lst
字号:
253 2 i=Read1B(240+(House_R-1)/8);
254 2 if(i & (1<<((House_R-1)%8)) )
255 2 Trs_Buf[13]|=0x04; //Short
256 2 i=Read1B(245+(House_R-1)/8);
257 2 if(i & (1<<((House_R-1)%8)) )
258 2 Trs_Buf[13]|=0x10; //Break
259 2 i=Read1B(160+(House_R-1)/8+0x100);
260 2 if(i & (1<<((House_R-1)%8)) )
261 2 Trs_Buf[13]|=0x40; //Power
262 2 Trs_Buf[14]=0;
263 2 Trs_Buf[15]=0;
264 2 if(Alarm_Select&0x04)
265 2 {
266 3 i=Short_New[(House_R-1)/8];
267 3 if(i & (1<<((House_R-1)%8)) )
268 3 Trs_Buf[15]|=0x04; //Short
269 3 i=Read1B(170+(House_R-1)/8);
270 3 if(i & (1<<((House_R-1)%8)) )
271 3 Trs_Buf[15]|=0x08; //Short_Bak
272 3 }
273 2 if(Alarm_Select&0x10)
274 2 {
275 3 i=Break_New[(House_R-1)/8];
276 3 if(i & (1<<((House_R-1)%8)) )
277 3 Trs_Buf[15]|=0x10; //Break
278 3 i=Read1B(175+(House_R-1)/8);
279 3 if(i & (1<<((House_R-1)%8)) )
280 3 Trs_Buf[15]|=0x20; //Break
281 3 }
282 2 Trs_Buf[16]=0;
283 2 Trs_Check=0;
284 2 for(i=8;i<17;i++)
285 2 {
286 3 Trs_Check+=Trs_Buf[i];
287 3 }
288 2 Trs_Buf[17]=Trs_Check;
289 2 Trs_Wp=18;
290 2
291 2 break;
292 2
293 2 case (0xc0):
294 2 eb90();
295 2 Trs_Length=7;
296 2 Trs_Buf[6]=Trs_Length;
297 2 Trs_Buf[7]=0;
298 2 Trs_Buf[8]=Trs_Comm;
299 2 Trs_Buf[9]=Station;
300 2 Trs_Buf[10]=0;
301 2 Trs_Buf[11]=Relay_Station;
302 2 Trs_Buf[12]=0;
303 2 Trs_Buf[13]=Start;
C51 COMPILER V7.50 PROTOCOL 07/20/2005 09:16:48 PAGE 6
304 2 Trs_Check=0;
305 2 for(i=8;i<14;i++)
306 2 {
307 3 Trs_Check+=Trs_Buf[i];
308 3 }
309 2 Trs_Buf[14]=Trs_Check;
310 2 Trs_Wp=15;
311 2
312 2 break;
313 2
314 2
315 2
316 2 case (0xc1):
317 2 eb90();
318 2 Trs_Length=5;
319 2 Trs_Buf[6]=Trs_Length;
320 2 Trs_Buf[7]=0;
321 2 Trs_Buf[8]=Trs_Comm;
322 2 Trs_Buf[9]=Station;
323 2 Trs_Buf[10]=0;
324 2 Trs_Buf[11]=Trs_Comm_Bak;
325 2 Trs_Check=0;
326 2 for(i=8;i<12;i++)
327 2 {
328 3 Trs_Check+=Trs_Buf[i];
329 3 }
330 2 Trs_Buf[12]=Trs_Check;
331 2 Trs_Wp=13;
332 2
333 2 break;
334 2 case (0xc4):
335 2 eb90();
336 2 //Trs_Length=5;
337 2 //Trs_Buf[6]=Trs_Length;
338 2 Trs_Buf[7]=0;
339 2 Trs_Buf[8]=Trs_Comm;
340 2 Trs_Buf[9]=Station;
341 2 Trs_Buf[10]=0;
342 2 Trs_Buf[11]=House_R;
343 2 if(Start&0x80)
344 2 {
345 3 Trs_Length=12;
346 3 Trs_Buf[6]=Trs_Length;
347 3 Trs_Buf[12]=0x81;
348 3 Trs_Buf[13]=Read1B(159+House_R*2+0x100);
349 3 Trs_Buf[14]=Read1B(158+House_R*2+0x100);
350 3 Trs_Buf[15]=Read1B(79+House_R*2+0x100);
351 3 Trs_Buf[16]=Read1B(78+House_R*2+0x100);
352 3 Trs_Buf[17]=Read1B(House_R*2-1+0x100);
353 3 Trs_Buf[18]=Read1B(House_R*2-2+0x100);
354 3 Trs_Check=0;
355 3 for(i=8;i<19;i++)
356 3 {
357 4 Trs_Check+=Trs_Buf[i];
358 4 }
359 3 Trs_Buf[19]=Trs_Check;
360 3 Trs_Wp=20;
361 3 }
362 2 else
363 2 {
364 3 Trs_Length=6;
365 3 Trs_Buf[6]=Trs_Length;
C51 COMPILER V7.50 PROTOCOL 07/20/2005 09:16:48 PAGE 7
366 3 Trs_Buf[12]=0x80 ;
367 3 for(i=8;i<13;i++)
368 3 {
369 4 Trs_Check+=Trs_Buf[i];
370 4 }
371 3 Trs_Buf[13]=Trs_Check;
372 3 Trs_Wp=14;
373 3 }
374 2
375 2
376 2 //Trs_Check=0;
377 2 //for(i=8;i<18;i++)
378 2 // {
379 2 // Trs_Check+=Trs_Buf[i];
380 2 // }
381 2 //Trs_Buf[18]=Trs_Check;
382 2 //Trs_Wp=19;
383 2
384 2 break;
385 2 case (0xc5):
386 2 eb90();
387 2 Trs_Length=5;
388 2 Trs_Buf[6]=Trs_Length;
389 2 Trs_Buf[7]=0;
390 2 Trs_Buf[8]=Trs_Comm_Bak;
391 2 Trs_Buf[9]=Station;
392 2 Trs_Buf[10]=0;
393 2 Trs_Buf[11]=House_R;
394 2
395 2 Trs_Check=0;
396 2 for(i=8;i<12;i++)
397 2 {
398 3 Trs_Check+=Trs_Buf[i];
399 3 }
400 2 Trs_Buf[12]=Trs_Check;
401 2 Trs_Wp=13;
402 2
403 2 case (0xe0):
404 2
405 2 eb90();
406 2 Trs_Length=6;
407 2 Trs_Buf[6]=Trs_Length;
408 2 Trs_Buf[7]=0;
409 2 Trs_Buf[8]=Trs_Comm;
410 2 Trs_Buf[9]=Station;
411 2 Trs_Buf[10]=0;
412 2 Trs_Buf[11]=House_R;
413 2 Trs_Buf[12]=Read1B(200+(House_R-1)+0x100);
414 2 Trs_Check=0;
415 2 for(i=8;i<13;i++)
416 2 {
417 3 Trs_Check+=Trs_Buf[i];
418 3 }
419 2 Trs_Buf[13]=Trs_Check;
420 2 Trs_Wp=14;
421 2
422 2
423 2 default:
424 2 break;
425 2 }
426 1 DIR485=0;
427 1 if(Trs_Buf[0]==0xeb && Trs_Buf[1]==0x90)
C51 COMPILER V7.50 PROTOCOL 07/20/2005 09:16:48 PAGE 8
428 1 {
429 2 SBUF=0xfe;
430 2 Trs_Rp=0;
431 2 }
432 1 else
433 1 {
434 2 SBUF=Trs_Buf[0];
435 2 Trs_Rp=1;
436 2 }
437 1 }
438
439 void Rcv_Pro(void)
440 {
441 1 BYTE i;//,YkNo,YkHf;
442 1 BYTE Rcv_Check,Rcv_Length,Rcv_Tmp,Tmp;
443 1 if((Rcv_Wp-Rcv_Rp)>(Rcv_Buf[Rcv_Rp+4]+5) && Rcv_Wp>11)
444 1 {
445 2 Rcv_Flag=0;
446 2 Rcv_Wp=0;
447 2 Rcv_Length=Rcv_Buf[Rcv_Rp+4];
448 2 Rcv_Check=0;
449 2 for(i=Rcv_Rp+6;i<Rcv_Rp+Rcv_Length+5;i++)
450 2 {
451 3 Rcv_Check+=Rcv_Buf[i];
452 3 }
453 2 Rcv_Comm=0;
454 2 if(Rcv_Check==Rcv_Buf[Rcv_Rp+5+Rcv_Length])
455 2 {
456 3 Rcv_Comm=Rcv_Buf[Rcv_Rp+6];
457 3
458 3 }
459 2 switch (Rcv_Comm)
460 2 {
461 3 case (0x20):
462 3 if(Rcv_Buf[Rcv_Rp+7]==Station
463 3 ||(Rcv_Buf[Rcv_Rp+7]==0xff&&Rcv_Buf[Rcv_Rp+8]==0xff)&&(!Key))
464 3
465 3 {
466 4
467 4 Trs_Comm=0xaa;
468 4 Trs_Comm_Bak=0xa0;
469 4 Trs_Flag=1;
470 4
471 4 }
472 3 break;
473 3 case (0x21):
474 3 if(!Key)
475 3 {
476 4 Station=Rcv_Buf[Rcv_Rp+7];
477 4 Write1B(Station,164);
478 4 Trs_Comm=0xaa;
479 4 Trs_Comm_Bak=0xa1;
480 4 Trs_Flag=1;
481 4 }
482 3 break;
483 3 case (0x24):
484 3 if(Rcv_Buf[Rcv_Rp+7]==Station
485 3 ||(Rcv_Buf[Rcv_Rp+7]==0xff&&Rcv_Buf[Rcv_Rp+8]==0xff))
486 3 {
487 4 Start=Rcv_Buf[Rcv_Rp+9];
488 4 if((Start&0x80)==0x80)
489 4 Write1B(0x80,255);
C51 COMPILER V7.50 PROTOCOL 07/20/2005 09:16:48 PAGE 9
490 4 else
491 4 Write1B(0x00,255);
492 4 Flash=0;
493 4 for(i=0;i<5;i++)
494 4 {
495 5 Short_New[i]=0;
496 5 Break_New[i]=0;
497 5 }
498 4 Alarm_Check=1;
499 4 }
500 3 if(Rcv_Buf[Rcv_Rp+7]==Station)
501 3 {
502 4 Trs_Comm=0xaa;
503 4 Trs_Comm_Bak=0xa4;
504 4 Trs_Flag=1;
505 4 }
506 3
507 3 break;
508 3 case (0x30):
509 3 if(Rcv_Buf[Rcv_Rp+7]==Station)
510 3 {
511 4 Trs_Comm=0xb0;
512 4 House_R=Rcv_Buf[Rcv_Rp+9];
513 4 Trs_Flag=1;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -