Page cardThermo
    Attributes
        Scope                               : local
        Dragging                            : 0
        Disable release event after dragging: 0
        Send Component ID                   : disabled
        Locked                              : no
        Swide up page ID                    : disabled
        Swide down page ID                  : disabled
        Swide left page ID                  : disabled
        Swide right page ID                 : disabled
    
    Events
        Preinitialize Event
            for(sys0=0;sys0<60;sys0++)
            {
                b[sys0].bco=defaultBcoColor
                b[sys0].pco=defaultFontColor
            }
            dim=dimValueNormal
            vis p0,0
            vis tSend,0
            vis tInstruction,0
            vis tTmp,0
            vis tId,0
            vis xTempMin1,0
            vis xTempMax1,0
            vis xTempStep1,0
            //tEntity.txt=tHeading.txt
            // disable all buttons
            vis bt0,0
            vis bt1,0
            vis bt2,0
            vis bt3,0
            vis bt4,0
            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 bPrev,0
            vis bNext,0
        
Variable (string) strCommand
    Attributes
        Scope         : local
        Text          : 
        Max. Text Size: 250
    
Variable (string) entn
    Attributes
        Scope         : local
        Text          : 
        Max. Text Size: 80
    
Variable (string) va0
    Attributes
        Scope         : local
        Text          : 
        Max. Text Size: 10
    
Variable (string) va1
    Attributes
        Scope         : local
        Text          : 
        Max. Text Size: 10
    
Variable (string) va2
    Attributes
        Scope         : local
        Text          : 
        Max. Text Size: 10
    
Variable (string) va3
    Attributes
        Scope         : local
        Text          : 
        Max. Text Size: 10
    
Variable (string) va4
    Attributes
        Scope         : local
        Text          : 
        Max. Text Size: 10
    
Variable (string) va5
    Attributes
        Scope         : local
        Text          : 
        Max. Text Size: 10
    
Variable (string) va6
    Attributes
        Scope         : local
        Text          : 
        Max. Text Size: 10
    
Variable (string) va7
    Attributes
        Scope         : local
        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
    Attributes
        Scope         : local
        Text          : 
        Max. Text Size: 10
    
Variable (string) tSend
    Attributes
        Scope         : local
        Text          : 
        Max. Text Size: 100
    
XFloat xTempDest1
    Attributes
        Scope                               : local
        Dragging                            : 0
        Disable release event after dragging: 0
        Send Component ID                   : disabled
        Associated Keyboard                 : none
        Value                               : 0
    
XFloat xTempMin1
    Attributes
        Scope                               : local
        Dragging                            : 0
        Disable release event after dragging: 0
        Send Component ID                   : disabled
        Associated Keyboard                 : none
        Value                               : 0
    
XFloat xTempMax1
    Attributes
        Scope                               : local
        Dragging                            : 0
        Disable release event after dragging: 0
        Send Component ID                   : disabled
        Associated Keyboard                 : none
        Value                               : 0
    
XFloat xTempStep1
    Attributes
        Scope                               : local
        Dragging                            : 0
        Disable release event after dragging: 0
        Send Component ID                   : disabled
        Associated Keyboard                 : none
        Value                               : 0
    
XFloat xTempDest2
    Attributes
        Scope                               : local
        Dragging                            : 0
        Disable release event after dragging: 0
        Send Component ID                   : disabled
        Associated Keyboard                 : none
        Value                               : 0
    
XFloat xTempDest
    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
        Dragging                            : 0
        Disable release event after dragging: 0
        Send Component ID                   : disabled
        Associated Keyboard                 : none
        Text                                : 
        Max. Text Size                      : 40
    
Text tStatus
    Attributes
        Scope                               : local
        Dragging                            : 0
        Disable release event after dragging: 0
        Send Component ID                   : disabled
        Associated Keyboard                 : none
        Text                                : 
        Max. Text Size                      : 40
    
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
    Attributes
        Scope                               : local
        Dragging                            : 0
        Disable release event after dragging: 0
        Send Component ID                   : disabled
        Associated Keyboard                 : none
        Text                                : î
        Max. Text Size                      : 10
    
Text tCurTemp
    Attributes
        Scope                               : local
        Dragging                            : 0
        Disable release event after dragging: 0
        Send Component ID                   : disabled
        Associated Keyboard                 : none
        Text                                : 
        Max. Text Size                      : 30
    
Picture p0
    Attributes
        Scope                               : local
        Dragging                            : 0
        Disable release event after dragging: 0
        Send Component ID                   : disabled
    
Button bNext
    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,cardThermo,bNext"
            //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 bPrev
    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,cardThermo,"
            if(bPrev.txt=="î¶")
            {
                tSend.txt+="bUp"
            }else
            {
                tSend.txt+="bPrev"
            }
            //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 bt0
    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
            //craft command
            tSend.txt="event,buttonPress2,"+entn.txt
            tSend.txt+=",hvac_action,"+va0.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 bt2
    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
            //craft command
            tSend.txt="event,buttonPress2,"+entn.txt
            tSend.txt+=",hvac_action,"+va2.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 bt4
    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
            //craft command
            tSend.txt="event,buttonPress2,"+entn.txt
            tSend.txt+=",hvac_action,"+va4.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 bt6
    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
            //craft command
            tSend.txt="event,buttonPress2,"+entn.txt
            tSend.txt+=",hvac_action,"+va6.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 bt1
    Attributes
        Scope                               : local
        Dragging                            : 0
        Disable release event after dragging: 0
        Send Component ID                   : disabled
        State                               : pressed
        Text                                : î
        Max. Text Size                      : 10
    
    Events
        Touch Press Event
            //craft command
            tSend.txt="event,buttonPress2,"+entn.txt
            tSend.txt+=",hvac_action,"+va1.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 bt3
    Attributes
        Scope                               : local
        Dragging                            : 0
        Disable release event after dragging: 0
        Send Component ID                   : disabled
        State                               : pressed
        Text                                : î
        Max. Text Size                      : 10
    
    Events
        Touch Press Event
            //craft command
            tSend.txt="event,buttonPress2,"+entn.txt
            tSend.txt+=",hvac_action,"+va3.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 bt5
    Attributes
        Scope                               : local
        Dragging                            : 0
        Disable release event after dragging: 0
        Send Component ID                   : disabled
        State                               : pressed
        Text                                : î
        Max. Text Size                      : 10
    
    Events
        Touch Press Event
            //craft command
            tSend.txt="event,buttonPress2,"+entn.txt
            tSend.txt+=",hvac_action,"+va5.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 bt7
    Attributes
        Scope                               : local
        Dragging                            : 0
        Disable release event after dragging: 0
        Send Component ID                   : disabled
        State                               : pressed
        Text                                : î
        Max. Text Size                      : 10
    
    Events
        Touch Press Event
            //craft command
            tSend.txt="event,buttonPress2,"+entn.txt
            tSend.txt+=",hvac_action,"+va7.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 btUp1
    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(xTempDest1.val<xTempMax1.val)
            {
                xTempDest1.val=xTempDest1.val+xTempStep1.val
            }
            // event,buttonPress2,entn,tempUpd,X
            //craft command
            tSend.txt="event,buttonPress2,"
            tSend.txt+=entn.txt+","
            tSend.txt+="tempUpdHighLow,"
            //convert temperature
            covx xTempDest1.val,tTmp.txt,0,0
            tSend.txt+=tTmp.txt
            tSend.txt+="|"
            covx xTempDest2.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 btDown1
    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(xTempDest1.val>xTempMin1.val)
            {
                xTempDest1.val=xTempDest1.val-xTempStep1.val
            }
            // event,buttonPress2,entn,tempUpd,X
            //craft command
            tSend.txt="event,buttonPress2,"
            tSend.txt+=entn.txt+","
            tSend.txt+="tempUpdHighLow,"
            //convert temperature
            covx xTempDest1.val,tTmp.txt,0,0
            tSend.txt+=tTmp.txt
            tSend.txt+="|"
            covx xTempDest2.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.val<xTempMax1.val)
            {
                xTempDest2.val=xTempDest2.val+xTempStep1.val
            }
            // event,buttonPress2,entn,tempUpd,X
            //craft command
            tSend.txt="event,buttonPress2,"
            tSend.txt+=entn.txt+","
            tSend.txt+="tempUpdHighLow,"
            //convert temperature
            covx xTempDest1.val,tTmp.txt,0,0
            tSend.txt+=tTmp.txt
            tSend.txt+="|"
            covx xTempDest2.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 bDown2
    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.val>xTempMin1.val)
            {
                xTempDest2.val=xTempDest2.val-xTempStep1.val
            }
            // event,buttonPress2,entn,tempUpd,X
            //craft command
            tSend.txt="event,buttonPress2,"
            tSend.txt+=entn.txt+","
            tSend.txt+="tempUpdHighLow,"
            //convert temperature
            covx xTempDest1.val,tTmp.txt,0,0
            tSend.txt+=tTmp.txt
            tSend.txt+="|"
            covx xTempDest2.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 btUp
    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(xTempDest.val<xTempMax1.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
            //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 btDown
    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(xTempDest.val>xTempMin1.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
            //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 mSwipeNext
    Attributes
        Scope                               : local
        Dragging                            : 0
        Disable release event after dragging: 0
        Send Component ID                   : disabled
    
    Events
        Touch Press Event
            click bNext,1
        
Hotspot mSwipeUp
    Attributes
        Scope                               : local
        Dragging                            : 0
        Disable release event after dragging: 0
        Send Component ID                   : disabled
    
    Events
        Touch Press Event
            click bPrev,1
        
Hotspot mSwipePrev
    Attributes
        Scope                               : local
        Dragging                            : 0
        Disable release event after dragging: 0
        Send Component ID                   : disabled
    
    Events
        Touch Press Event
            click bPrev,1
        
Timer tmSerial
    Attributes
        Scope      : local
        Period (ms): 50
        Enabled    : yes
    
    Events
        Timer Event
            // data available
            if(usize>1)
            {
                bufferPos=0
                while(bufferPos<usize)
                {
                    // check for 0x55 0xBB - Command Init Secuence
                    if(u[bufferPos]==187&&u[bufferPos-1]==85)
                    {
                        //remove garbage at the start of the buffer if there's any to free buffer for command
                        if(u[bufferPos]!=1)
                        {
                            udelete bufferPos-1
                        }
                        //instruction is now aligned with buffer, because we deleted garbage before instrcution
                        //get length after init sequence (check if there are more than to bytes in buffer)
                        if(3<usize)
                        {
                            // check if serial buffer has reached the announced length
                            ucopy payloadLength,2,2,0
                            // we are only checking payload length so we have to skip first 3 bytes (init+payload length) (-1 because of < instead of <=)
                            payloadLength+=3
                            // payload length does also not contain crc, so we are adding another 2 bytes for crc
                            payloadLength+=2
                            if(payloadLength<usize)
                            {
                                // calculate crc
                                crcrest 1,0xFFFF
                                // u[2] contains payload legth at 3rd pos in buffer, we are calculating crc from 3rd pos with number of bytes from payload length
                                //crcputu 3,u[2]
                                // u[2] cotnains payload length, we are calculating a crc over the whole message, so we have to add 3 to the length from u[2]
                                crcputu 0,payloadLength-1
                                // get recived crc to be able to compare it
                                ucopy recvCrc,payloadLength-1,2,0
                                // compare crc with recived value
                                if(crcval==recvCrc)
                                {
                                    // crc is okay
                                    // here is the location where acual code should be
                                    // write command to variable strCommand
                                    ucopy strCommand.txt,4,payloadLength-5,0
                                    // write instruction to tInstuction (debug output, but used as variable here, ui elements will be disabled by default)
                                    spstr strCommand.txt,tInstruction.txt,"~",0
                                    if(tInstruction.txt=="entityUpd")
                                    {
                                        //heading
                                        spstr strCommand.txt,tHeading.txt,"~",1
                                        // navigation icons
                                        spstr strCommand.txt,tId.txt,"~",2
                                        spstr tId.txt,tTmp.txt,"|",0
                                        if(tTmp.txt=="0")
                                        {
                                            vis bPrev,0
                                            tsw mSwipePrev,0
                                            tsw mSwipeUp,0
                                        }
                                        if(tTmp.txt=="1")
                                        {
                                            vis bPrev,1
                                            tsw mSwipePrev,1
                                            tsw mSwipeUp,0
                                            bPrev.txt="î°"
                                        }
                                        if(tTmp.txt=="2")
                                        {
                                            vis bPrev,1
                                            tsw mSwipePrev,0
                                            tsw mSwipeUp,1
                                            bPrev.txt="î¶"
                                        }
                                        spstr tId.txt,tTmp.txt,"|",1
                                        if(tTmp.txt=="0")
                                        {
                                            vis bNext,0
                                            tsw mSwipeNext,0
                                        }
                                        if(tTmp.txt=="1")
                                        {
                                            vis bNext,1
                                            tsw mSwipeNext,1
                                            bNext.txt="î³"
                                        }
                                        //entity name
                                        spstr strCommand.txt,entn.txt,"~",3
                                        //currentTemp
                                        spstr strCommand.txt,tCurTemp.txt,"~",4
                                        //dstTemp
                                        spstr strCommand.txt,tTmp.txt,"~",5
                                        covx tTmp.txt,xTempDest1.val,0,0
                                        xTempDest.val=xTempDest1.val
                                        //status
                                        spstr strCommand.txt,tStatus.txt,"~",6
                                        //minTemp
                                        spstr strCommand.txt,tTmp.txt,"~",7
                                        covx tTmp.txt,xTempMin1.val,0,0
                                        //maxTemp
                                        spstr strCommand.txt,tTmp.txt,"~",8
                                        covx tTmp.txt,xTempMax1.val,0,0
                                        //tempStep
                                        spstr strCommand.txt,tTmp.txt,"~",9
                                        covx tTmp.txt,xTempStep1.val,0,0
                                        // disable all buttons
                                        vis bt0,0
                                        vis bt1,0
                                        vis bt2,0
                                        vis bt3,0
                                        vis bt4,0
                                        vis bt5,0
                                        vis bt6,0
                                        vis bt7,0
                                        //bt0
                                        spstr strCommand.txt,bt0.txt,"~",10
                                        if(bt0.txt!="")
                                        {
                                            // set text color on active state
                                            spstr strCommand.txt,tTmp.txt,"~",11
                                            covx tTmp.txt,bt0.pco2,0,0
                                            // set state
                                            spstr strCommand.txt,tTmp.txt,"~",12
                                            covx tTmp.txt,bt0.val,0,0
                                            // save action
                                            spstr strCommand.txt,va0.txt,"~",13
                                            //enable
                                            vis bt0,1
                                        }
                                        //bt1
                                        spstr strCommand.txt,bt1.txt,"~",14
                                        if(bt1.txt!="")
                                        {
                                            // set text color on active state
                                            spstr strCommand.txt,tTmp.txt,"~",15
                                            covx tTmp.txt,bt1.pco2,0,0
                                            // set state
                                            spstr strCommand.txt,tTmp.txt,"~",16
                                            covx tTmp.txt,bt1.val,0,0
                                            // save action
                                            spstr strCommand.txt,va1.txt,"~",17
                                            //enable
                                            vis bt1,1
                                        }
                                        //bt2
                                        spstr strCommand.txt,bt2.txt,"~",18
                                        if(bt2.txt!="")
                                        {
                                            // set text color on active state
                                            spstr strCommand.txt,tTmp.txt,"~",19
                                            covx tTmp.txt,bt2.pco2,0,0
                                            // set state
                                            spstr strCommand.txt,tTmp.txt,"~",20
                                            covx tTmp.txt,bt2.val,0,0
                                            // save action
                                            spstr strCommand.txt,va2.txt,"~",21
                                            //enable
                                            vis bt2,1
                                        }
                                        //bt3
                                        spstr strCommand.txt,bt3.txt,"~",22
                                        if(bt3.txt!="")
                                        {
                                            // set text color on active state
                                            spstr strCommand.txt,tTmp.txt,"~",23
                                            covx tTmp.txt,bt3.pco2,0,0
                                            // set state
                                            spstr strCommand.txt,tTmp.txt,"~",24
                                            covx tTmp.txt,bt3.val,0,0
                                            // save action
                                            spstr strCommand.txt,va3.txt,"~",25
                                            //enable
                                            vis bt3,1
                                        }
                                        //bt4
                                        spstr strCommand.txt,bt4.txt,"~",26
                                        if(bt4.txt!="")
                                        {
                                            // set text color on active state
                                            spstr strCommand.txt,tTmp.txt,"~",27
                                            covx tTmp.txt,bt4.pco2,0,0
                                            // set state
                                            spstr strCommand.txt,tTmp.txt,"~",28
                                            covx tTmp.txt,bt4.val,0,0
                                            // save action
                                            spstr strCommand.txt,va4.txt,"~",29
                                            //enable
                                            vis bt4,1
                                        }
                                        //bt5
                                        spstr strCommand.txt,bt5.txt,"~",30
                                        if(bt5.txt!="")
                                        {
                                            // set text color on active state
                                            spstr strCommand.txt,tTmp.txt,"~",31
                                            covx tTmp.txt,bt5.pco2,0,0
                                            // set state
                                            spstr strCommand.txt,tTmp.txt,"~",32
                                            covx tTmp.txt,bt5.val,0,0
                                            // save action
                                            spstr strCommand.txt,va5.txt,"~",33
                                            //enable
                                            vis bt5,1
                                        }
                                        //bt6
                                        spstr strCommand.txt,bt6.txt,"~",34
                                        if(bt6.txt!="")
                                        {
                                            // set text color on active state
                                            spstr strCommand.txt,tTmp.txt,"~",35
                                            covx tTmp.txt,bt6.pco2,0,0
                                            // set state
                                            spstr strCommand.txt,tTmp.txt,"~",36
                                            covx tTmp.txt,bt6.val,0,0
                                            // save action
                                            spstr strCommand.txt,va6.txt,"~",37
                                            //enable
                                            vis bt6,1
                                        }
                                        //bt7
                                        spstr strCommand.txt,bt7.txt,"~",38
                                        if(bt7.txt!="")
                                        {
                                            // set text color on active state
                                            spstr strCommand.txt,tTmp.txt,"~",39
                                            covx tTmp.txt,bt7.pco2,0,0
                                            // set state
                                            spstr strCommand.txt,tTmp.txt,"~",40
                                            covx tTmp.txt,bt7.val,0,0
                                            // save action
                                            spstr strCommand.txt,va7.txt,"~",41
                                            //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
                                        }
                                    }
                                    if(tInstruction.txt=="pageType")
                                    {
                                        //command format pageType,specialPageName
                                        //write name of speical page to tId
                                        spstr strCommand.txt,tId.txt,"~",1
                                        //save second arg if there's one
                                        spstr strCommand.txt,tTmp.txt,"~",2
                                        //save third arg if there's one
                                        spstr strCommand.txt,pageIcons.tTmp2.txt,"~",3
                                        //we are going to exit this page with this command, so we have to clear the buffer, so we are not getting into a stupid loop ...
                                        udelete payloadLength-1
                                        bufferPos=0
                                        if(tId.txt=="pageStartup")
                                        {
                                            page pageStartup
                                        }
                                        if(tId.txt=="screensaver")
                                        {
                                            page screensaver
                                        }
                                        if(tId.txt=="cardEntities")
                                        {
                                            page cardEntities
                                        }
                                        if(tId.txt=="cardGrid")
                                        {
                                            page cardGrid
                                        }
                                        if(tId.txt=="popupLight")
                                        {
                                            pageIcons.tTmp1.txt=tTmp.txt
                                            page popupLight
                                        }
                                        if(tId.txt=="popupShutter")
                                        {
                                            pageIcons.tTmp1.txt=tTmp.txt
                                            page popupShutter
                                        }
                                        if(tId.txt=="popupNotify")
                                        {
                                            page popupNotify
                                        }
                                        if(tId.txt=="cardThermo")
                                        {
                                            page cardThermo
                                        }
                                        if(tId.txt=="cardMedia")
                                        {
                                            page cardMedia
                                        }
                                        if(tId.txt=="cardAlarm")
                                        {
                                            page cardAlarm
                                        }
                                        if(tId.txt=="cardQR")
                                        {
                                            page cardQR
                                        }
                                    }
                                    if(tInstruction.txt=="time")
                                    {
                                        // get set time to global variable
                                        spstr strCommand.txt,pageIcons.vaTime.txt,"~",1
                                    }
                                    if(tInstruction.txt=="date")
                                    {
                                        // get set date to global variable
                                        spstr strCommand.txt,pageIcons.vaDate.txt,"~",1
                                    }
                                    if(tInstruction.txt=="dimmode")
                                    {
                                        // get value
                                        spstr strCommand.txt,tTmp.txt,"~",1
                                        covx tTmp.txt,dimValue,0,0
                                        // get value normal
                                        spstr strCommand.txt,tTmp.txt,"~",2
                                        covx tTmp.txt,dimValueNormal,0,0
                                        dim=dimValueNormal
                                        // get background color
                                        spstr strCommand.txt,tTmp.txt,"~",3
                                        if(tTmp.txt!="")
                                        {
                                            covx tTmp.txt,defaultBcoColor,0,0
                                        }
                                        // get font color
                                        spstr strCommand.txt,tTmp.txt,"~",4
                                        if(tTmp.txt!="")
                                        {
                                            covx tTmp.txt,defaultFontColor,0,0
                                        }
                                    }
                                    if(tInstruction.txt=="timeout")
                                    {
                                        //set timeout to global var
                                        spstr strCommand.txt,tTmp.txt,"~",1
                                        covx tTmp.txt,sleepTimeout,0,0
                                    }
                                    // end of user code
                                    udelete payloadLength-1
                                    bufferPos=0
                                }
                            }
                        }
                    }
                    // next character
                    bufferPos++
                }
            }
        
Timer tmSleep
    Attributes
        Scope      : local
        Period (ms): 1000
        Enabled    : yes
    
    Events
        Timer Event
            if(sleepTimeout!=0&&dimValue!=dim)
            {
                sleepValue+=1
                if(sleepTimeout<=sleepValue)
                {
                    sleepValue=0
                    dim=dimValue
                    tSend.txt="event,sleepReached,cardThermo"
                    //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
                }
            }
        
TouchCap tc0
    Attributes
        Scope: local
        Value: 0
    
    Events
        Touch Press Event
            sleepValue=0
        
