1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | // BigArray:Shift(BigArray) // BigArray(adrs) function BigAry(a){ this .adrs=a; // EEPROM Address this .length=0; // Length this .set= function (idx,n){ // Set Data var adrs= this .adrs+idx*4; // EEPROM Address+Index i2cw(0x50|(((adrs>>16)&1)<<2), (adrs&0xff00)>>8,adrs&0xff, (n&0xFF000000)>>24,(n&0xFF0000)>>16,(n&0xFF00)>>8,n&0xFF); if ((idx+1)> this .length){ this .length=idx+1; } }; this .get= function (idx){ // Get Data var adrs= this .adrs+idx*4; // EEPROM Address+Index var t1,t2,t3,t4,d=0x50|(((adrs>>16)&1)<<2); i2cw(d,(adrs&0xff00)>>8,adrs&255); i2cr(d,t1,t2,t3,t4); return (t1<<24)|(t2<<16)|(t3<<8)|t4; }; } // BigArray Shift function shift(ary){ if (ary.length<1){ return 0;} var d=ary.get(0);sleep(10); var s=0; while (s<ary.length){ var n=ary.get(s+1);sleep(10); ary.set(s,n);sleep(10); s=s+1; } ary.length=ary.length-1; return d; } // Sample Code var myAry= new BigAry(0); myAry.set(0, 253);sleep(9); myAry.set(1, 2);sleep(9); myAry.set(2, 120);sleep(9); myAry.set(3, 9);sleep(9); var d=shift(myAry); log( "data:" ,d, "\nlength:" ,myAry.length, "\n" ); d=shift(myAry); log( "data:" ,d, "\nlength:" ,myAry.length, "\n" ); |