znak=COM_recv()&0x7F; if (znak) { switch(stan_k) { case 1: if(znak==':') stan_k=2; else stan_k=1; break; case 2: if(znak>='0'&&znak<='1') {a=znak-'0'; stan_k=3;} else if(znak>='4'&&znak<='7') {a=znak-'0'; stan_k=7;} else if(znak=='3') {a=znak-'0'; stan_k=9;} else if(znak=='A'||znak=='B'||znak=='T') {a=znak; stan_k=12;} else stan_k=1; break; case 3: if(znak>='0'&&znak<='1') {b=znak-'0'; stan_k=4;} else stan_k=1; break; case 4: if(znak>='0'&&znak<='1') {c=znak-'0'; stan_k=5;} else stan_k=1; break; case 5: if(znak>='0'&&znak<='1') {d=znak-'0'; stan_k=6;} else stan_k=1; break; case 6: if(znak=='#') { X7=a; X6=b; X5=c; T=d; stan_k=1; } else stan_k=1; break; case 7: if(znak>='0'&&znak<='1') {b=znak-'0'; stan_k=8;} else stan_k=1; break; case 8: if(znak=='#') { if(a==4) { T=b; stan_k=1; } else if(a==5) { X5=b; stan_k=1; } else if(a==6) { X6=b; stan_k=1; } else if(a==7) { X7=b; stan_k=1; } } else stan_k=1; break; case 9: if(znak>='1'&&znak<='9') {b=znak-'0'; stan_k=10;} else stan_k=1; break; case 10: if(znak>='1'&&znak<='9') {c=znak-'0'; stan_k=11;} else stan_k=1; break; case 11: if(znak=='#') { T1=b; T2=c; stan_k=1; } else stan_k=1; break; case 12: if(znak=='#') { if(a=='A') { COM_send(':'); COM_send(Z3+'0'); COM_send(Z4+'0'); COM_send(Z5+'0'); COM_send(G+'0'); COM_send('#'); stan_k=1;} else if(a=='B') { COM_send(':'); COM_send(Z5+'0'); COM_send('#'); stan_k=1;} else if(a=='T') { COM_send(':'); COM_send(T1+'0'); COM_send(T2+'0'); COM_send('#'); stan_k=1;} } else stan_k=1; break; } } switch(stan){ case 1: Z3=1; Z4=1; Z5=M=G=0; if(X7){stan=2; tim3=T1*10;}break; case 2: Z3=1; Z4=Z5=M=G=0; if(!tim3){stan=3;tim3= T2*10;} else if(X6){stan=4;tim3= T2*10;}break; case 3: Z3=0; Z4=1; Z5=M=G=0; if(!tim3){stan=2; tim3= T1*10;} else if(X6){stan=4; tim3= T2*10;}break; case 4:Z3=1;Z4=Z5=M=G=0; if(!tim3){stan=5;tim3= T1*10;} else if(X5){stan=6; tim3=100;}break; case 5: Z3=0; Z4=1; Z5=M=G=0; if(!tim3){stan=4;tim3= T2*10;} else if(X5){stan=6; tim3=100;} break; case 6: Z3=Z4=Z5=M=0; G=1; if(T||!tim3)stan=7; break; case 7: Z3=Z4=0; Z5=M=1; G=0; if(!X6)stan=8; break; case 8: Z3=Z4=0; Z5=1; G=M=0; if(!X7)stan=1;break; } L1=Z3; L2=Z4; L3=Z5; L4=G; L5=M; if(tim3)tim3--;