diff --git a/displayclienthtml/demo.html b/displayclienthtml/demo.html index c28802c..9a607de 100644 --- a/displayclienthtml/demo.html +++ b/displayclienthtml/demo.html @@ -107,18 +107,44 @@ function printChar(display, c, r, g, b) { } } } +var path = new Array ( + 0, 0,255, + 0, 1,255, + 0, 2,255, + 0, 3,255, + 1, 3,255, + 2, 3,255, + 3, 3,255, + 4, 3,255, + 4, 2,255, + 4, 1,255, + 4, 0,255, + 3, 0,255, + 2, 0,255, + 1, 0,255, + 0, 0,255, + 0, 0,100, + 0, 0,255, + 0, 0,100, + 0, 0,255, + 0, 0,100, + 0, 0,255, + -1,-1,-1); var state7=0; -var j=0; +var counter=0; var myclock=0; +var wi=0; +var wj=0; +lastpos=pos=0 +patternSwitcher=3 function loop() { // 7 segments colorful sequence switch(state7) { case 0: { // init of counter rout - j=2560; - j=22; + counter=2560; state7++; } case 1: { @@ -128,13 +154,14 @@ function loop() { if(myclock == myclock) { nextdclock=myclock+5; var dataOut; - dataOut=j.toString(); + temp=counter.toString(); + dataOut=("0000"+temp).substring(temp.length,temp.length+4); for(var i=0; i<4; i++) { - // printChar(i,dataOut.substring(i,i+1),255*(i%2),255*(i%3),Math.sin(j/200)*100)+55; - printChar(i,dataOut.substring(i,i+1),255*(i%2),255*(i%3),Math.floor(Math.sin(j/200)*100)+55); + // printChar(i,dataOut.substring(i,i+1),255*(i%2),255*(i%3),Math.sin(counter/200)*100)+55; + printChar(i,dataOut.substring(i,i+1),255*(i%2),255*(i%3),Math.floor(Math.sin(counter/200)*100)+55); } - j--; - if(j<0) {state7++ ; } + counter-=11; + if(counter<0) {state7++ ; } } break; } @@ -149,7 +176,7 @@ function loop() { if(myclock == myclock) { nextdclock=myclock+200; for(sj=0;sj<12;sj++) { - printChar(sj,scrolltext.substring(si+sj,si+sj+1),255*((si+1)%3),255*((si+1)%2),200); + printChar(sj,scrolltext.substring(si+sj,si+sj+1),Math.floor(Math.sin(si/50)*200)+55,si%255,255); } if(scrolltext.substring(si+5) == 'รง') { state7++ ; } si++; @@ -163,22 +190,49 @@ function loop() { } // esac - //lightSegment(oldd,olds,0,0,0); - // printChar( d, "A", 255,0,0); - //lightSegment(d,s,255,Math.floor((Math.sin(colwave/30)+1)*127),Math.floor((Math.cos(colwave/17)+1)*127)); -colwave++; - // windows sliding light -console.log("wi=",wi,"wj=",wj); - lightWindow(oldi,oldj,0) // switch off previous window - lightWindow(wi,wj,Math.floor((Math.sin(colwave/77)+1)*127)) // switch on new window - oldi=wi; - oldj=wj; - wi++; - if(wi>=12) { - wi=0; - wj++; - if(wj>=8) { - wi=wj=0 + switch(patternSwitcher) { + case 0: + case 1: // this will repeat the following patterns 3 times + case 2: { + // scan through line by line from top to bottom + + colwave++; + lightWindow(oldi,oldj,0) // switch off previous window + lightWindow(wi,wj,Math.floor((Math.sin(colwave/77)+1)*127)) // switch on new window + oldi=wi; + oldj=wj; + wi++; + if(wi>=12) { + wi=0; + wj++; + if(wj>=8) { + wi=wj=0; + patternSwitcher++; + } + } + break; + } + case 3: { + lightWindow(oldi,oldj,0); // switch off previous window + patternSwitcher++; + break; + } + case 4: + case 5: + case 6: + case 7: { + // move a pixel around a path + lightWindow(path[lastpos],path[lastpos+1], 0); +console.log("p=",pos,"x=",path[pos],"y=",path[pos+1],"b=",path[pos+3]) + lightWindow(path[pos], path[pos+1], path[pos+2]); + lastpos=pos; + pos+=3; + if(path[pos]==-1) { pos=0; patternSwitcher++; } + break; + + } + default: { + patternSwitcher=0 } } }