diff -bur HMI/n2t-out/Program.s.txt HMI/US/portrait/n2t-out/Program.s.txt --- HMI/n2t-out/Program.s.txt 2022-05-14 20:08:22.302573663 +0000 +++ HMI/US/portrait/n2t-out/Program.s.txt 2022-05-14 20:08:22.698580145 +0000 @@ -11,6 +11,6 @@ // dim value int dimValue=40 int dimValueNormal=100 - // fix touch offset - lcd_dev fffb 0002 0000 0020 + // fix touch offset (Removed for US version) + //lcd_dev fffb 0002 0000 0020 page pageStartup diff -bur HMI/n2t-out/cardAlarm.txt HMI/US/portrait/n2t-out/cardAlarm.txt --- HMI/n2t-out/cardAlarm.txt 2022-05-14 20:08:22.302573663 +0000 +++ HMI/US/portrait/n2t-out/cardAlarm.txt 2022-05-14 20:08:22.698580145 +0000 @@ -466,7 +466,7 @@ prints crcval,2 tCode.txt="" -Hotspot mSwipeNext +Hotspot mSwipePrev Attributes Scope : local Dragging : 0 @@ -486,15 +486,15 @@ //x & y coordinates where the swipe is first detected.) //--------------------------- //The navigation text is stored as local variable within tld.txt - //Pressing right button if swiped on the right side of the screen + //Pressing left button if swiped on the left side of the screen // - spstr tId.txt,tTmp.txt,"|",1 + spstr tId.txt,tTmp.txt,"|",0 if(tTmp.txt=="1") { - click bNext,1 + click bPrev,1 } -Hotspot mSwipeUp +Hotspot mSwipeNext Attributes Scope : local Dragging : 0 @@ -514,15 +514,15 @@ //x & y coordinates where the swipe is first detected.) //--------------------------- //The navigation text is stored as local variable within tld.txt - //Pressing up button if swiped on the top side of the screen + //Pressing right button if swiped on the right side of the screen // - spstr tId.txt,tTmp.txt,"|",0 - if(tTmp.txt=="2") + spstr tId.txt,tTmp.txt,"|",1 + if(tTmp.txt=="1") { - click bPrev,1 + click bNext,1 } -Hotspot mSwipePrev +Hotspot mSwipeUp Attributes Scope : local Dragging : 0 @@ -542,10 +542,10 @@ //x & y coordinates where the swipe is first detected.) //--------------------------- //The navigation text is stored as local variable within tld.txt - //Pressing left button if swiped on the left side of the screen + //Pressing up button if swiped on the top side of the screen // spstr tId.txt,tTmp.txt,"|",0 - if(tTmp.txt=="1") + if(tTmp.txt=="2") { click bPrev,1 } diff -bur HMI/n2t-out/cardEntities.txt HMI/US/portrait/n2t-out/cardEntities.txt --- HMI/n2t-out/cardEntities.txt 2022-05-14 20:08:22.302573663 +0000 +++ HMI/US/portrait/n2t-out/cardEntities.txt 2022-05-14 20:08:22.698580145 +0000 @@ -62,6 +62,16 @@ vis bText4,0 vis hSlider4,0 vis nNum4,0 + //ui e5 + vis btOnOff5,0 + vis bUp5,0 + vis bStop5,0 + vis bDown5,0 + vis tIcon5,0 + vis tEntity5,0 + vis bText5,0 + vis hSlider5,0 + vis nNum5,0 vis bPrev,0 vis bNext,0 @@ -119,6 +129,18 @@ Text : Max. Text Size: 80 +Variable (string) entn5 + Attributes + Scope : local + Text : + Max. Text Size: 80 + +Variable (string) type5 + Attributes + Scope : local + Text : + Max. Text Size: 10 + Number nNum1 Attributes Scope : local @@ -155,6 +177,15 @@ Associated Keyboard : none Value : 0 +Number nNum5 + Attributes + Scope : local + Dragging : 0 + Disable release event after dragging: 0 + Send Component ID : disabled + Associated Keyboard : none + Value : 0 + Text tHeading Attributes Scope : local @@ -285,6 +316,26 @@ Text : Max. Text Size : 50 +Text tEntity5 + Attributes + Scope : local + Dragging : 0 + Disable release event after dragging: 0 + Send Component ID : disabled + Associated Keyboard : none + Text : tEntity5 + Max. Text Size : 30 + +Text tIcon5 + Attributes + Scope : local + Dragging : 0 + Disable release event after dragging: 0 + Send Component ID : disabled + Associated Keyboard : none + Text :  + Max. Text Size : 5 + Picture p0 Attributes Scope : local @@ -404,6 +455,34 @@ prints tSend.txt,0 prints crcval,2 +Slider hSlider5 + Attributes + Scope : local + Dragging : 0 + Disable release event after dragging: 0 + Send Component ID : disabled + Position : 50 + Upper range limit : 100 + Lower range limit : 0 + + Events + Touch Release Event + nNum5.val=hSlider5.val + tSend.txt="event,buttonPress2,"+entn5.txt+",number-set," + covx nNum5.val,tTmp.txt,0,0 + tSend.txt+=tTmp.txt + //send calc crc + btlen tSend.txt,sys0 + crcrest 1,0xffff // reset CRC + crcputh 55 bb + crcputs sys0,2 + crcputs tSend.txt,0 + //send cmd + printh 55 bb + prints sys0,2 + prints tSend.txt,0 + prints crcval,2 + Button bDown1 Attributes Scope : local @@ -861,6 +940,106 @@ prints tSend.txt,0 prints crcval,2 +Button bStop5 + Attributes + Scope : local + Dragging : 0 + Disable release event after dragging: 0 + Send Component ID : disabled + State : unpressed + Text :  + Max. Text Size : 10 + + Events + Touch Press Event + tSend.txt="event,buttonPress2,"+entn5.txt+",stop" + //send calc crc + btlen tSend.txt,sys0 + crcrest 1,0xffff // reset CRC + crcputh 55 bb + crcputs sys0,2 + crcputs tSend.txt,0 + //send cmd + printh 55 bb + prints sys0,2 + prints tSend.txt,0 + prints crcval,2 + +Button bDown5 + Attributes + Scope : local + Dragging : 0 + Disable release event after dragging: 0 + Send Component ID : disabled + State : unpressed + Text :  + Max. Text Size : 10 + + Events + Touch Press Event + tSend.txt="event,buttonPress2,"+entn5.txt+",down" + //send calc crc + btlen tSend.txt,sys0 + crcrest 1,0xffff // reset CRC + crcputh 55 bb + crcputs sys0,2 + crcputs tSend.txt,0 + //send cmd + printh 55 bb + prints sys0,2 + prints tSend.txt,0 + prints crcval,2 + +Button bUp5 + Attributes + Scope : local + Dragging : 0 + Disable release event after dragging: 0 + Send Component ID : disabled + State : unpressed + Text :  + Max. Text Size : 10 + + Events + Touch Press Event + tSend.txt="event,buttonPress2,"+entn5.txt+",up" + //send calc crc + btlen tSend.txt,sys0 + crcrest 1,0xffff // reset CRC + crcputh 55 bb + crcputs sys0,2 + crcputs tSend.txt,0 + //send cmd + printh 55 bb + prints sys0,2 + prints tSend.txt,0 + prints crcval,2 + +Button bText5 + Attributes + Scope : local + Dragging : 0 + Disable release event after dragging: 0 + Send Component ID : disabled + State : unpressed + Text : newtxt + Max. Text Size : 10 + + Events + Touch Press Event + tSend.txt="event,buttonPress2,"+entn5.txt+",button" + //send calc crc + btlen tSend.txt,sys0 + crcrest 1,0xffff // reset CRC + crcputh 55 bb + crcputs sys0,2 + crcputs tSend.txt,0 + //send cmd + printh 55 bb + prints sys0,2 + prints tSend.txt,0 + prints crcval,2 + Dual-state Button btOnOff1 Attributes Scope : local @@ -969,6 +1148,33 @@ prints tSend.txt,0 prints crcval,2 +Dual-state Button btOnOff5 + Attributes + Scope : local + Dragging : 0 + Disable release event after dragging: 0 + Send Component ID : disabled + State : unpressed + Text : + Max. Text Size : 10 + + Events + Touch Press Event + tSend.txt="event,buttonPress2,"+entn5.txt+",OnOff," + covx btOnOff5.val,tTmp.txt,0,0 + tSend.txt+=tTmp.txt + //send calc crc + btlen tSend.txt,sys0 + crcrest 1,0xffff // reset CRC + crcputh 55 bb + crcputs sys0,2 + crcputs tSend.txt,0 + //send cmd + printh 55 bb + prints sys0,2 + prints tSend.txt,0 + prints crcval,2 + Hotspot mSpecial Attributes Scope : local @@ -1074,6 +1280,28 @@ page popupLight } +Hotspot m4 + Attributes + Scope : local + Dragging : 0 + Disable release event after dragging: 0 + Send Component ID : disabled + + Events + Touch Press Event + pageIcons.tTmp1.txt=tEntity5.txt + pageIcons.tTmp2.txt=entn5.txt + if(type5.txt=="shutter") + { + //popupShutter.tHeading.txt=tEntity5.txt + page popupShutter + } + if(type5.txt=="light") + { + //popupLight.tEntity.txt=tEntity5.txt + page popupLight + } + Hotspot mSwipeNext Attributes Scope : local @@ -1728,6 +1956,128 @@ covx tTmp.txt,sys0,0,0 hSlider4.maxval=sys0 } + // get Type + spstr strCommand.txt,type5.txt,"~",27 + // get internal name + spstr strCommand.txt,entn5.txt,"~",28 + if(type5.txt=="delete"||type5.txt=="") + { + vis bUp5,0 + vis bStop5,0 + vis bDown5,0 + vis btOnOff5,0 + vis tEntity5,0 + vis tIcon5,0 + vis bText5,0 + vis hSlider5,0 + vis nNum5,0 + }else + { + // change icon + spstr strCommand.txt,tIcon5.txt,"~",29 + vis tIcon5,1 + // change icon color + spstr strCommand.txt,tTmp.txt,"~",30 + covx tTmp.txt,sys0,0,0 + tIcon5.pco=sys0 + // set name + spstr strCommand.txt,tEntity5.txt,"~",31 + vis tEntity5,1 + } + if(type5.txt=="shutter") + { + vis bUp5,1 + vis bStop5,1 + vis bDown5,1 + vis btOnOff5,0 + vis bText5,0 + vis hSlider5,0 + vis nNum5,0 + } + if(type5.txt=="light") + { + vis bUp5,0 + vis bStop5,0 + vis bDown5,0 + vis btOnOff5,1 + vis bText5,0 + vis hSlider5,0 + vis nNum5,0 + // get Button State (optional Value) + spstr strCommand.txt,tTmp.txt,"~",32 + covx tTmp.txt,sys0,0,0 + btOnOff5.val=sys0 + } + if(type5.txt=="switch") + { + vis bUp5,0 + vis bStop5,0 + vis bDown5,0 + vis btOnOff5,1 + vis bText5,0 + vis hSlider5,0 + vis nNum5,0 + // get Button State (optional Value) + spstr strCommand.txt,tTmp.txt,"~",32 + covx tTmp.txt,sys0,0,0 + btOnOff5.val=sys0 + } + if(type5.txt=="text") + { + vis bUp5,0 + vis bStop5,0 + vis bDown5,0 + vis btOnOff5,0 + vis bText5,1 + tsw bText5,0 + vis hSlider5,0 + vis nNum5,0 + bText5.pco=65535 + bText5.pco2=65535 + // get Text (optional Value) + spstr strCommand.txt,bText5.txt,"~",32 + } + if(type5.txt=="button") + { + vis bUp5,0 + vis bStop5,0 + vis bDown5,0 + vis btOnOff5,0 + vis bText5,1 + tsw bText5,1 + vis hSlider5,0 + vis nNum5,0 + bText5.pco=1374 + bText5.pco2=1374 + // get Text (optional Value) + spstr strCommand.txt,bText5.txt,"~",32 + } + if(type5.txt=="number") + { + vis bUp5,0 + vis bStop5,0 + vis bDown5,0 + vis btOnOff5,0 + vis bText5,0 + tsw bText5,0 + vis hSlider5,1 + vis nNum5,1 + // get config (optional Value) (use bText as variable) + spstr strCommand.txt,bText5.txt,"~",32 + //first value is current value + spstr bText5.txt,tTmp.txt,"|",0 + covx tTmp.txt,sys0,0,0 + hSlider5.val=sys0 + nNum5.val=sys0 + //second value is min value + spstr bText5.txt,tTmp.txt,"|",1 + covx tTmp.txt,sys0,0,0 + hSlider5.minval=sys0 + //third value is max value + spstr bText5.txt,tTmp.txt,"|",2 + covx tTmp.txt,sys0,0,0 + hSlider5.maxval=sys0 + } } if(tInstruction.txt=="pageType") { diff -bur HMI/n2t-out/cardThermo.txt HMI/US/portrait/n2t-out/cardThermo.txt --- HMI/n2t-out/cardThermo.txt 2022-05-14 20:08:22.302573663 +0000 +++ HMI/US/portrait/n2t-out/cardThermo.txt 2022-05-14 20:08:22.698580145 +0000 @@ -17,12 +17,9 @@ vis tInstruction,0 vis tTmp,0 vis tId,0 - vis xTempMin1,0 - vis xTempMax1,0 - vis xTempStep1,0 - vis xTempMin2,0 - vis xTempMax2,0 - vis xTempStep2,0 + vis xTempMin,0 + vis xTempMax,0 + vis xTempStep,0 //tEntity.txt=tHeading.txt // disable all buttons vis bt0,0 @@ -33,14 +30,7 @@ vis bt5,0 vis bt6,0 vis bt7,0 - vis tCF2,0 - vis bUp2,0 - vis bDown2,0 - vis xTempDest2,0 - vis tCF1,0 - vis btUp1,0 - vis btDown1,0 - vis xTempDest1,0 + vis bt8,0 vis bPrev,0 vis bNext,0 @@ -104,30 +94,12 @@ Text : Max. Text Size: 10 -Variable (string) tInstruction - Attributes - Scope : local - Text : - Max. Text Size: 20 - -Variable (string) tId - Attributes - Scope : local - Text : - Max. Text Size: 20 - -Variable (string) tTmp +Variable (string) va8 Attributes Scope : local Text : Max. Text Size: 10 -Variable (string) tSend - Attributes - Scope : local - Text : - Max. Text Size: 100 - XFloat xTempCurr Attributes Scope : local @@ -137,16 +109,7 @@ Associated Keyboard : none Value : 0 -XFloat xTempDest1 - Attributes - Scope : local - Dragging : 0 - Disable release event after dragging: 0 - Send Component ID : disabled - Associated Keyboard : none - Value : 0 - -XFloat xTempMin1 +XFloat xTempDest Attributes Scope : local Dragging : 0 @@ -155,7 +118,7 @@ Associated Keyboard : none Value : 0 -XFloat xTempMax1 +XFloat xTempMin Attributes Scope : local Dragging : 0 @@ -164,7 +127,7 @@ Associated Keyboard : none Value : 0 -XFloat xTempStep1 +XFloat xTempMax Attributes Scope : local Dragging : 0 @@ -173,7 +136,7 @@ Associated Keyboard : none Value : 0 -XFloat xTempDest2 +XFloat xTempStep Attributes Scope : local Dragging : 0 @@ -182,41 +145,45 @@ Associated Keyboard : none Value : 0 -XFloat xTempMin2 +Text tSend Attributes Scope : local Dragging : 0 Disable release event after dragging: 0 Send Component ID : disabled Associated Keyboard : none - Value : 0 + Text : newtxt + Max. Text Size : 100 -XFloat xTempMax2 +Text tTmp Attributes Scope : local Dragging : 0 Disable release event after dragging: 0 Send Component ID : disabled Associated Keyboard : none - Value : 0 + Text : + Max. Text Size : 10 -XFloat xTempStep2 +Text tInstruction Attributes Scope : local Dragging : 0 Disable release event after dragging: 0 Send Component ID : disabled Associated Keyboard : none - Value : 0 + Text : + Max. Text Size : 20 -XFloat xTempDest +Text tId Attributes Scope : local Dragging : 0 Disable release event after dragging: 0 Send Component ID : disabled Associated Keyboard : none - Value : 0 + Text : + Max. Text Size : 20 Text tHeading Attributes @@ -238,57 +205,7 @@ Text : Max. Text Size : 10 -Text tCF1 - Attributes - Scope : local - Dragging : 0 - Disable release event after dragging: 0 - Send Component ID : disabled - Associated Keyboard : none - Text :  - Max. Text Size : 10 - -Text tCurTempLbl - Attributes - Scope : local - Dragging : 0 - Disable release event after dragging: 0 - Send Component ID : disabled - Associated Keyboard : none - Text : Currently - Max. Text Size : 30 - -Text tStateLbl - Attributes - Scope : local - Dragging : 0 - Disable release event after dragging: 0 - Send Component ID : disabled - Associated Keyboard : none - Text : State - Max. Text Size : 30 - -Text tCF2 - Attributes - Scope : local - Dragging : 0 - Disable release event after dragging: 0 - Send Component ID : disabled - Associated Keyboard : none - Text :  - Max. Text Size : 10 - -Text tALbl - Attributes - Scope : local - Dragging : 0 - Disable release event after dragging: 0 - Send Component ID : disabled - Associated Keyboard : none - Text : Action - Max. Text Size : 30 - -Text tCF +Text t2 Attributes Scope : local Dragging : 0 @@ -330,26 +247,30 @@ prints tSend.txt,0 prints crcval,2 -Button bPrev +Button bDown Attributes Scope : local Dragging : 0 Disable release event after dragging: 0 Send Component ID : disabled State : unpressed - Text :  + Text : Max. Text Size : 10 Events Touch Press Event - tSend.txt="event,buttonPress2,cardThermo," - if(bPrev.txt=="") + if(xTempDest.val>xTempMin.val) { - tSend.txt+="bUp" - }else - { - tSend.txt+="bPrev" + xTempDest.val=xTempDest.val-xTempStep.val } + // event,buttonPress2,entn,tempUpd,X + //craft command + tSend.txt="event,buttonPress2," + tSend.txt+=entn.txt+"," + tSend.txt+="tempUpd," + //convert temperature + covx xTempDest.val,tTmp.txt,0,0 + tSend.txt+=tTmp.txt //send calc crc btlen tSend.txt,sys0 crcrest 1,0xffff // reset CRC @@ -362,21 +283,30 @@ prints tSend.txt,0 prints crcval,2 -Dual-state Button bt0 +Button bUp Attributes Scope : local Dragging : 0 Disable release event after dragging: 0 Send Component ID : disabled State : unpressed - Text :  + Text : Max. Text Size : 10 Events Touch Press Event + if(xTempDest.valxTempMin1.val) - { - xTempDest1.val=xTempDest1.val-xTempStep1.val - } - // event,buttonPress2,entn,tempUpd,X - //craft command - tSend.txt="event,buttonPress2," - tSend.txt+=entn.txt+"," - tSend.txt+="tempUpdHigh," - //convert temperature - covx xTempDest1.val,tTmp.txt,0,0 - tSend.txt+=tTmp.txt - //send calc crc - btlen tSend.txt,sys0 - crcrest 1,0xffff // reset CRC - crcputh 55 bb - crcputs sys0,2 - crcputs tSend.txt,0 - //send cmd - printh 55 bb - prints sys0,2 - prints tSend.txt,0 - prints crcval,2 - -Dual-state Button bUp2 - Attributes - Scope : local - Dragging : 0 - Disable release event after dragging: 0 - Send Component ID : disabled - State : unpressed - Text :  - Max. Text Size : 10 - - Events - Touch Press Event - if(xTempDest2.valxTempMin2.val) - { - xTempDest2.val=xTempDest2.val-xTempStep2.val - } - // event,buttonPress2,entn,tempUpd,X //craft command - tSend.txt="event,buttonPress2," - tSend.txt+=entn.txt+"," - tSend.txt+="tempUpdLow," - //convert temperature - covx xTempDest2.val,tTmp.txt,0,0 - tSend.txt+=tTmp.txt + tSend.txt="event,buttonPress2,"+entn.txt + tSend.txt+=",hvac_action,"+va6.txt //send calc crc btlen tSend.txt,sys0 crcrest 1,0xffff // reset CRC @@ -722,30 +540,21 @@ prints tSend.txt,0 prints crcval,2 -Dual-state Button btUp +Dual-state Button bt7 Attributes Scope : local Dragging : 0 Disable release event after dragging: 0 Send Component ID : disabled - State : unpressed - Text :  + State : pressed + Text :  Max. Text Size : 10 Events Touch Press Event - if(xTempDest.valxTempMin1.val) - { - xTempDest.val=xTempDest.val-xTempStep1.val - } - // event,buttonPress2,entn,tempUpd,X //craft command - tSend.txt="event,buttonPress2," - tSend.txt+=entn.txt+"," - tSend.txt+="tempUpd," - //convert temperature - covx xTempDest.val,tTmp.txt,0,0 - tSend.txt+=tTmp.txt + tSend.txt="event,buttonPress2,"+entn.txt + tSend.txt+=",hvac_action,"+va8.txt //send calc crc btlen tSend.txt,sys0 crcrest 1,0xffff // reset CRC @@ -967,19 +767,18 @@ covx tTmp.txt,xTempCurr.val,0,0 //dstTemp spstr strCommand.txt,tTmp.txt,"~",5 - covx tTmp.txt,xTempDest1.val,0,0 - xTempDest.val=xTempDest1.val + covx tTmp.txt,xTempDest.val,0,0 //status spstr strCommand.txt,tStatus.txt,"~",6 //minTemp spstr strCommand.txt,tTmp.txt,"~",7 - covx tTmp.txt,xTempMin1.val,0,0 + covx tTmp.txt,xTempMin.val,0,0 //maxTemp spstr strCommand.txt,tTmp.txt,"~",8 - covx tTmp.txt,xTempMax1.val,0,0 + covx tTmp.txt,xTempMax.val,0,0 //tempStep spstr strCommand.txt,tTmp.txt,"~",9 - covx tTmp.txt,xTempStep1.val,0,0 + covx tTmp.txt,xTempStep.val,0,0 // disable all buttons vis bt0,0 vis bt1,0 @@ -989,6 +788,7 @@ vis bt5,0 vis bt6,0 vis bt7,0 + vis bt8,0 //bt0 spstr strCommand.txt,bt0.txt,"~",10 if(bt0.txt!="") @@ -1109,33 +909,20 @@ //enable vis bt7,1 } - //Text tCurTempLbl - spstr strCommand.txt,tCurTempLbl.txt,"~",42 - //Text tStateLbl - spstr strCommand.txt,tStateLbl.txt,"~",43 - //Text tALbl - spstr strCommand.txt,tALbl.txt,"~",44 - //Text tCF - spstr strCommand.txt,tCF.txt,"~",45 - tCF1.txt=tCF.txt - tCF2.txt=tCF.txt - //Second Temperature - spstr strCommand.txt,tTmp.txt,"~",46 - if(tTmp.txt!="") - { - covx tTmp.txt,xTempDest2.val,0,0 - vis btUp,0 - vis xTempDest,0 - vis btDown,0 - vis tCF,0 - vis btUp1,1 - vis xTempDest1,1 - vis btDown1,1 - vis tCF1,1 - vis bUp2,1 - vis xTempDest2,1 - vis bDown2,1 - vis tCF2,1 + //bt8 + spstr strCommand.txt,bt8.txt,"~",42 + if(bt8.txt!="") + { + // set text color on active state + spstr strCommand.txt,tTmp.txt,"~",43 + covx tTmp.txt,bt8.pco2,0,0 + // set state + spstr strCommand.txt,tTmp.txt,"~",44 + covx tTmp.txt,bt8.val,0,0 + // save action + spstr strCommand.txt,va8.txt,"~",45 + //enable + vis bt8,1 } } if(tInstruction.txt=="pageType") diff -bur HMI/n2t-out/pageStartup.txt HMI/US/portrait/n2t-out/pageStartup.txt --- HMI/n2t-out/pageStartup.txt 2022-05-14 20:08:22.302573663 +0000 +++ HMI/US/portrait/n2t-out/pageStartup.txt 2022-05-14 20:08:22.698580145 +0000 @@ -142,7 +142,7 @@ Disable release event after dragging: 0 Send Component ID : disabled Associated Keyboard : none - Text : please check your backend configuration + Text : pls check your backend configuration Max. Text Size : 100 Text tVersion @@ -177,7 +177,7 @@ recmod=1 bauds=115200 // startup event - tSend.txt="event,startup,"+tVersion.txt+",eu" + tSend.txt="event,startup,"+tVersion.txt+",us-p" //send calc crc btlen tSend.txt,sys0 crcrest 1,0xffff // reset CRC @@ -351,7 +351,7 @@ Events Timer Event - xpic mSpinner.x,mSpinner.y,spinner_w.val,140,frame_ptr.val,0,9 // draw the current frame + xpic mSpinner.x,mSpinner.y,spinner_w.val,140,frame_ptr.val,0,11 // draw the current frame frame_ptr.val+=spinner_w.val%frapic_w.val // advance the pointer to the next frame in the pic resource and roll over at the end doevents // finish drawing before next timer event triggers if(frame_ptr.val==1820)