Merge branch 'joBr99:main' into main

This commit is contained in:
Armilar
2022-05-23 23:58:12 +02:00
committed by GitHub
42 changed files with 904 additions and 1538 deletions

View File

@@ -47,7 +47,7 @@ jobs:
# Initializes the CodeQL tools for scanning. # Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL - name: Initialize CodeQL
uses: github/codeql-action/init@v1 uses: github/codeql-action/init@v2
with: with:
languages: ${{ matrix.language }} languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file. # If you wish to specify custom queries, you can do so here or in a config file.
@@ -58,7 +58,7 @@ jobs:
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java). # Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below) # If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild - name: Autobuild
uses: github/codeql-action/autobuild@v1 uses: github/codeql-action/autobuild@v2
# Command-line programs to run using the OS shell. # Command-line programs to run using the OS shell.
# 📚 https://git.io/JvXDl # 📚 https://git.io/JvXDl
@@ -72,4 +72,4 @@ jobs:
# make release # make release
- name: Perform CodeQL Analysis - name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v1 uses: github/codeql-action/analyze@v2

View File

@@ -111,7 +111,7 @@ The following message can be used to update the content on the cardEntities Page
### popupShutter Page ### popupShutter Page
`entityUpdateDetail~*ignored*~*sliderPos*~2ndrow~textPosition~icon1~iconUp~iconStop~iconDown` `entityUpdateDetail~*ignored*~*sliderPos*~2ndrow~textPosition~icon1~iconUp~iconStop~iconDown~iconUpStatus~iconStopStatus~iconDownStatus
`entityUpdateDetail~1~77` `entityUpdateDetail~1~77`

View File

@@ -1,6 +1,6 @@
diff -bur HMI/n2t-out/Program.s.txt HMI/US/landscape/n2t-out/Program.s.txt diff -bur HMI/n2t-out/Program.s.txt HMI/US/landscape/n2t-out/Program.s.txt
--- HMI/n2t-out/Program.s.txt 2022-05-22 08:52:05.367816736 +0000 --- HMI/n2t-out/Program.s.txt 2022-05-23 06:20:44.296447221 +0000
+++ HMI/US/landscape/n2t-out/Program.s.txt 2022-05-22 08:52:06.663941704 +0000 +++ HMI/US/landscape/n2t-out/Program.s.txt 2022-05-23 06:20:45.196459256 +0000
@@ -11,6 +11,4 @@ @@ -11,6 +11,4 @@
// dim value // dim value
int dimValue=40 int dimValue=40
@@ -8,9 +8,21 @@ diff -bur HMI/n2t-out/Program.s.txt HMI/US/landscape/n2t-out/Program.s.txt
- // fix touch offset - // fix touch offset
- lcd_dev fffb 0002 0000 0020 - lcd_dev fffb 0002 0000 0020
page pageStartup page pageStartup
diff -bur HMI/n2t-out/cardQR.txt HMI/US/landscape/n2t-out/cardQR.txt
--- HMI/n2t-out/cardQR.txt 2022-05-23 06:20:44.300447274 +0000
+++ HMI/US/landscape/n2t-out/cardQR.txt 2022-05-23 06:20:45.196459256 +0000
@@ -34,7 +34,7 @@
Attributes
Scope : local
Text :
- Max. Text Size: 275
+ Max. Text Size: 270
Variable (string) entn
Attributes
diff -bur HMI/n2t-out/pageStartup.txt HMI/US/landscape/n2t-out/pageStartup.txt diff -bur HMI/n2t-out/pageStartup.txt HMI/US/landscape/n2t-out/pageStartup.txt
--- HMI/n2t-out/pageStartup.txt 2022-05-22 08:52:05.367816736 +0000 --- HMI/n2t-out/pageStartup.txt 2022-05-23 06:20:44.300447274 +0000
+++ HMI/US/landscape/n2t-out/pageStartup.txt 2022-05-22 08:52:06.667941783 +0000 +++ HMI/US/landscape/n2t-out/pageStartup.txt 2022-05-23 06:20:45.196459256 +0000
@@ -177,7 +177,7 @@ @@ -177,7 +177,7 @@
recmod=1 recmod=1
bauds=115200 bauds=115200

View File

@@ -2252,39 +2252,42 @@ Timer tmSerial
// get Button State (optional Value) // get Button State (optional Value)
spstr strCommand.txt,tId.txt,"~",8 spstr strCommand.txt,tId.txt,"~",8
// up button // up button
spstr tId.txt,tTmp.txt,"|",0 spstr tId.txt,tTmp.txt,"|",3
if(tTmp.txt=="disable") if(tTmp.txt=="disable")
{ {
bUp1.pco=27501 bUp1.pco=27501
spstr tId.txt,bUp1.txt,"|",0
tsw bUp1,0 tsw bUp1,0
}else if(tTmp.txt!="") }else if(tTmp.txt=="enable")
{ {
bUp1.pco=65535 bUp1.pco=65535
bUp1.txt=tTmp.txt spstr tId.txt,bUp1.txt,"|",0
tsw bUp1,1 tsw bUp1,1
} }
// stop button // stop button
spstr tId.txt,tTmp.txt,"|",1 spstr tId.txt,tTmp.txt,"|",4
if(tTmp.txt=="disable") if(tTmp.txt=="disable")
{ {
bStop1.pco=27501 bStop1.pco=27501
spstr tId.txt,bStop1.txt,"|",1
tsw bStop1,0 tsw bStop1,0
}else if(tTmp.txt!="") }else if(tTmp.txt=="enable")
{ {
bStop1.pco=65535 bStop1.pco=65535
bStop1.txt=tTmp.txt spstr tId.txt,bStop1.txt,"|",1
tsw bStop1,1 tsw bStop1,1
} }
// down button // down button
spstr tId.txt,tTmp.txt,"|",2 spstr tId.txt,tTmp.txt,"|",5
if(tTmp.txt=="disable") if(tTmp.txt=="disable")
{ {
bDown1.pco=27501 bDown1.pco=27501
spstr tId.txt,bDown1.txt,"|",2
tsw bDown1,0 tsw bDown1,0
}else if(tTmp.txt!="") }else if(tTmp.txt=="enable")
{ {
bDown1.pco=65535 bDown1.pco=65535
bDown1.txt=tTmp.txt spstr tId.txt,bDown1.txt,"|",2
tsw bDown1,1 tsw bDown1,1
} }
} }
@@ -2412,39 +2415,42 @@ Timer tmSerial
// get Button State (optional Value) // get Button State (optional Value)
spstr strCommand.txt,tId.txt,"~",14 spstr strCommand.txt,tId.txt,"~",14
// up button // up button
spstr tId.txt,tTmp.txt,"|",0 spstr tId.txt,tTmp.txt,"|",3
if(tTmp.txt=="disable") if(tTmp.txt=="disable")
{ {
bUp2.pco=27501 bUp2.pco=27501
spstr tId.txt,bUp2.txt,"|",0
tsw bUp2,0 tsw bUp2,0
}else if(tTmp.txt!="") }else if(tTmp.txt=="enable")
{ {
bUp2.pco=65535 bUp2.pco=65535
bUp2.txt=tTmp.txt spstr tId.txt,bUp2.txt,"|",0
tsw bUp2,1 tsw bUp2,1
} }
// stop button // stop button
spstr tId.txt,tTmp.txt,"|",1 spstr tId.txt,tTmp.txt,"|",4
if(tTmp.txt=="disable") if(tTmp.txt=="disable")
{ {
bStop2.pco=27501 bStop2.pco=27501
spstr tId.txt,bStop2.txt,"|",1
tsw bStop2,0 tsw bStop2,0
}else if(tTmp.txt!="") }else if(tTmp.txt=="enable")
{ {
bStop2.pco=65535 bStop2.pco=65535
bStop2.txt=tTmp.txt spstr tId.txt,bStop2.txt,"|",1
tsw bStop2,1 tsw bStop2,1
} }
// down button // down button
spstr tId.txt,tTmp.txt,"|",2 spstr tId.txt,tTmp.txt,"|",5
if(tTmp.txt=="disable") if(tTmp.txt=="disable")
{ {
bDown2.pco=27501 bDown2.pco=27501
spstr tId.txt,bDown2.txt,"|",2
tsw bDown2,0 tsw bDown2,0
}else if(tTmp.txt!="") }else if(tTmp.txt=="enable")
{ {
bDown2.pco=65535 bDown2.pco=65535
bDown2.txt=tTmp.txt spstr tId.txt,bDown2.txt,"|",2
tsw bDown2,1 tsw bDown2,1
} }
} }
@@ -2572,39 +2578,42 @@ Timer tmSerial
// get Button State (optional Value) // get Button State (optional Value)
spstr strCommand.txt,tId.txt,"~",20 spstr strCommand.txt,tId.txt,"~",20
// up button // up button
spstr tId.txt,tTmp.txt,"|",0 spstr tId.txt,tTmp.txt,"|",3
if(tTmp.txt=="disable") if(tTmp.txt=="disable")
{ {
bUp3.pco=27501 bUp3.pco=27501
spstr tId.txt,bUp3.txt,"|",0
tsw bUp3,0 tsw bUp3,0
}else if(tTmp.txt!="") }else if(tTmp.txt=="enable")
{ {
bUp3.pco=65535 bUp3.pco=65535
bUp3.txt=tTmp.txt spstr tId.txt,bUp3.txt,"|",0
tsw bUp3,1 tsw bUp3,1
} }
// stop button // stop button
spstr tId.txt,tTmp.txt,"|",1 spstr tId.txt,tTmp.txt,"|",4
if(tTmp.txt=="disable") if(tTmp.txt=="disable")
{ {
bStop3.pco=27501 bStop3.pco=27501
spstr tId.txt,bStop3.txt,"|",1
tsw bStop3,0 tsw bStop3,0
}else if(tTmp.txt!="") }else if(tTmp.txt=="enable")
{ {
bStop3.pco=65535 bStop3.pco=65535
bStop3.txt=tTmp.txt spstr tId.txt,bStop3.txt,"|",1
tsw bStop3,1 tsw bStop3,1
} }
// down button // down button
spstr tId.txt,tTmp.txt,"|",2 spstr tId.txt,tTmp.txt,"|",5
if(tTmp.txt=="disable") if(tTmp.txt=="disable")
{ {
bDown3.pco=27501 bDown3.pco=27501
spstr tId.txt,bDown3.txt,"|",2
tsw bDown3,0 tsw bDown3,0
}else if(tTmp.txt!="") }else if(tTmp.txt=="enable")
{ {
bDown3.pco=65535 bDown3.pco=65535
bDown3.txt=tTmp.txt spstr tId.txt,bDown3.txt,"|",2
tsw bDown3,1 tsw bDown3,1
} }
} }
@@ -2732,39 +2741,42 @@ Timer tmSerial
// get Button State (optional Value) // get Button State (optional Value)
spstr strCommand.txt,tId.txt,"~",26 spstr strCommand.txt,tId.txt,"~",26
// up button // up button
spstr tId.txt,tTmp.txt,"|",0 spstr tId.txt,tTmp.txt,"|",3
if(tTmp.txt=="disable") if(tTmp.txt=="disable")
{ {
bUp4.pco=27501 bUp4.pco=27501
spstr tId.txt,bUp4.txt,"|",0
tsw bUp4,0 tsw bUp4,0
}else if(tTmp.txt!="") }else if(tTmp.txt=="enable")
{ {
bUp4.pco=65535 bUp4.pco=65535
bUp4.txt=tTmp.txt spstr tId.txt,bUp4.txt,"|",0
tsw bUp4,1 tsw bUp4,1
} }
// stop button // stop button
spstr tId.txt,tTmp.txt,"|",1 spstr tId.txt,tTmp.txt,"|",4
if(tTmp.txt=="disable") if(tTmp.txt=="disable")
{ {
bStop4.pco=27501 bStop4.pco=27501
spstr tId.txt,bStop4.txt,"|",1
tsw bStop4,0 tsw bStop4,0
}else if(tTmp.txt!="") }else if(tTmp.txt=="enable")
{ {
bStop4.pco=65535 bStop4.pco=65535
bStop4.txt=tTmp.txt spstr tId.txt,bStop4.txt,"|",1
tsw bStop4,1 tsw bStop4,1
} }
// down button // down button
spstr tId.txt,tTmp.txt,"|",2 spstr tId.txt,tTmp.txt,"|",5
if(tTmp.txt=="disable") if(tTmp.txt=="disable")
{ {
bDown4.pco=27501 bDown4.pco=27501
spstr tId.txt,bDown4.txt,"|",2
tsw bDown4,0 tsw bDown4,0
}else if(tTmp.txt!="") }else if(tTmp.txt=="enable")
{ {
bDown4.pco=65535 bDown4.pco=65535
bDown4.txt=tTmp.txt spstr tId.txt,bDown4.txt,"|",2
tsw bDown4,1 tsw bDown4,1
} }
} }

View File

@@ -592,9 +592,9 @@ Button bEntity1
Disable release event after dragging: 0 Disable release event after dragging: 0
Send Component ID : disabled Send Component ID : disabled
Opacity : 127 Opacity : 127
x coordinate : 53 x coordinate : 23
y coordinate : 75 y coordinate : 75
Width : 80 Width : 140
Height : 80 Height : 80
Effect : load Effect : load
Effect Priority : 0 Effect Priority : 0
@@ -650,9 +650,9 @@ Button bEntity2
Disable release event after dragging: 0 Disable release event after dragging: 0
Send Component ID : disabled Send Component ID : disabled
Opacity : 127 Opacity : 127
x coordinate : 204 x coordinate : 174
y coordinate : 75 y coordinate : 75
Width : 80 Width : 140
Height : 80 Height : 80
Effect : load Effect : load
Effect Priority : 0 Effect Priority : 0
@@ -708,9 +708,9 @@ Button bEntity3
Disable release event after dragging: 0 Disable release event after dragging: 0
Send Component ID : disabled Send Component ID : disabled
Opacity : 127 Opacity : 127
x coordinate : 354 x coordinate : 324
y coordinate : 75 y coordinate : 75
Width : 80 Width : 140
Height : 80 Height : 80
Effect : load Effect : load
Effect Priority : 0 Effect Priority : 0
@@ -766,9 +766,9 @@ Button bEntity4
Disable release event after dragging: 0 Disable release event after dragging: 0
Send Component ID : disabled Send Component ID : disabled
Opacity : 127 Opacity : 127
x coordinate : 37 x coordinate : 24
y coordinate : 194 y coordinate : 194
Width : 80 Width : 140
Height : 80 Height : 80
Effect : load Effect : load
Effect Priority : 0 Effect Priority : 0
@@ -824,9 +824,9 @@ Button bEntity5
Disable release event after dragging: 0 Disable release event after dragging: 0
Send Component ID : disabled Send Component ID : disabled
Opacity : 127 Opacity : 127
x coordinate : 204 x coordinate : 174
y coordinate : 194 y coordinate : 194
Width : 80 Width : 140
Height : 80 Height : 80
Effect : load Effect : load
Effect Priority : 0 Effect Priority : 0
@@ -882,9 +882,9 @@ Button bEntity6
Disable release event after dragging: 0 Disable release event after dragging: 0
Send Component ID : disabled Send Component ID : disabled
Opacity : 127 Opacity : 127
x coordinate : 354 x coordinate : 324
y coordinate : 194 y coordinate : 194
Width : 80 Width : 140
Height : 80 Height : 80
Effect : load Effect : load
Effect Priority : 0 Effect Priority : 0

View File

@@ -43,7 +43,7 @@ Variable (string) strCommand
ID : 6 ID : 6
Scope : local Scope : local
Text : Text :
Max. Text Size: 200 Max. Text Size: 270
Variable (string) entn Variable (string) entn
Attributes Attributes
@@ -292,7 +292,7 @@ QR Code qr0
Effect Time : 300 Effect Time : 300
Logo overlay : no Logo overlay : no
Text : Text :
Max. Text Size : 105 Max. Text Size : 100
Button bNext Button bNext
Attributes Attributes
@@ -422,7 +422,7 @@ Button bText1
Vertical Alignment : center Vertical Alignment : center
State : unpressed State : unpressed
Text : Text :
Max. Text Size : 10 Max. Text Size : 30
Word wrap : disabled Word wrap : disabled
Horizontal Spacing : 0 Horizontal Spacing : 0
Vertical Spacing : 0 Vertical Spacing : 0
@@ -469,7 +469,7 @@ Button bText2
Vertical Alignment : center Vertical Alignment : center
State : unpressed State : unpressed
Text : Text :
Max. Text Size : 10 Max. Text Size : 30
Word wrap : disabled Word wrap : disabled
Horizontal Spacing : 0 Horizontal Spacing : 0
Vertical Spacing : 0 Vertical Spacing : 0
@@ -564,8 +564,8 @@ Dual-state Button btOnOff2
Events Events
Touch Press Event Touch Press Event
tSend.txt="event,buttonPress2,"+entn1.txt+",OnOff," tSend.txt="event,buttonPress2,"+entn2.txt+",OnOff,"
covx btOnOff1.val,tTmp.txt,0,0 covx btOnOff2.val,tTmp.txt,0,0
tSend.txt+=tTmp.txt tSend.txt+=tTmp.txt
//send calc crc //send calc crc
btlen tSend.txt,sys0 btlen tSend.txt,sys0

View File

@@ -26,9 +26,13 @@ cardAlarm
38 Component(s) 38 Component(s)
364 Line(s) of event code 364 Line(s) of event code
224 Unique line(s) of event code 224 Unique line(s) of event code
cardGrid
42 Component(s)
439 Line(s) of event code
254 Unique line(s) of event code
popupShutter popupShutter
20 Component(s) 20 Component(s)
241 Line(s) of event code 244 Line(s) of event code
138 Unique line(s) of event code 138 Unique line(s) of event code
popupLight popupLight
27 Component(s) 27 Component(s)
@@ -42,21 +46,17 @@ cardMedia
33 Component(s) 33 Component(s)
350 Line(s) of event code 350 Line(s) of event code
179 Unique line(s) of event code 179 Unique line(s) of event code
cardGrid
42 Component(s)
439 Line(s) of event code
254 Unique line(s) of event code
cardQR cardQR
30 Component(s) 30 Component(s)
363 Line(s) of event code 363 Line(s) of event code
205 Unique line(s) of event code 207 Unique line(s) of event code
cardEntities cardEntities
65 Component(s) 65 Component(s)
1121 Line(s) of event code 1133 Line(s) of event code
491 Unique line(s) of event code 491 Unique line(s) of event code
Total Total
13 Page(s) 13 Page(s)
402 Component(s) 402 Component(s)
4443 Line(s) of event code 4458 Line(s) of event code
1167 Unique line(s) of event code 1167 Unique line(s) of event code

View File

@@ -646,38 +646,41 @@ Timer tmSerial
tIcon1.txt=tTmp.txt tIcon1.txt=tTmp.txt
} }
// set icon bUp // set icon bUp
spstr strCommand.txt,tTmp.txt,"~",5 spstr strCommand.txt,tTmp.txt,"~",8
if(tTmp.txt=="disable") if(tTmp.txt=="disable")
{ {
tsw bUp1,0 tsw bUp1,0
spstr strCommand.txt,bUp1.txt,"~",5
bUp1.pco=27501 bUp1.pco=27501
}else if(tTmp.txt!="") }else if(tTmp.txt=="enable")
{ {
bUp1.txt=tTmp.txt spstr strCommand.txt,bUp1.txt,"~",5
tsw bUp1,1 tsw bUp1,1
bUp1.pco=65535 bUp1.pco=65535
} }
// set icon bStop // set icon bStop
spstr strCommand.txt,tTmp.txt,"~",6 spstr strCommand.txt,tTmp.txt,"~",9
if(tTmp.txt=="disable") if(tTmp.txt=="disable")
{ {
tsw bStop1,0 tsw bStop1,0
spstr strCommand.txt,bStop1.txt,"~",6
bStop1.pco=27501 bStop1.pco=27501
}else if(tTmp.txt!="") }else if(tTmp.txt=="enable")
{ {
bStop1.txt=tTmp.txt spstr strCommand.txt,bStop1.txt,"~",6
tsw bStop1,1 tsw bStop1,1
bStop1.pco=65535 bStop1.pco=65535
} }
// set icon bDown // set icon bDown
spstr strCommand.txt,tTmp.txt,"~",7 spstr strCommand.txt,tTmp.txt,"~",10
if(tTmp.txt=="disable") if(tTmp.txt=="disable")
{ {
spstr strCommand.txt,bDown1.txt,"~",7
tsw bDown1,0 tsw bDown1,0
bDown1.pco=27501 bDown1.pco=27501
}else if(tTmp.txt!="") }else if(tTmp.txt=="enable")
{ {
bDown1.txt=tTmp.txt spstr strCommand.txt,bDown1.txt,"~",7
tsw bDown1,1 tsw bDown1,1
bDown1.pco=65535 bDown1.pco=65535
} }

View File

@@ -1280,39 +1280,42 @@ Timer tmSerial
// get Button State (optional Value) // get Button State (optional Value)
spstr strCommand.txt,tId.txt,"~",8 spstr strCommand.txt,tId.txt,"~",8
// up button // up button
spstr tId.txt,tTmp.txt,"|",0 spstr tId.txt,tTmp.txt,"|",3
if(tTmp.txt=="disable") if(tTmp.txt=="disable")
{ {
bUp1.pco=27501 bUp1.pco=27501
spstr tId.txt,bUp1.txt,"|",0
tsw bUp1,0 tsw bUp1,0
}else if(tTmp.txt!="") }else if(tTmp.txt=="enable")
{ {
bUp1.pco=65535 bUp1.pco=65535
bUp1.txt=tTmp.txt spstr tId.txt,bUp1.txt,"|",0
tsw bUp1,1 tsw bUp1,1
} }
// stop button // stop button
spstr tId.txt,tTmp.txt,"|",1 spstr tId.txt,tTmp.txt,"|",4
if(tTmp.txt=="disable") if(tTmp.txt=="disable")
{ {
bStop1.pco=27501 bStop1.pco=27501
spstr tId.txt,bStop1.txt,"|",1
tsw bStop1,0 tsw bStop1,0
}else if(tTmp.txt!="") }else if(tTmp.txt=="enable")
{ {
bStop1.pco=65535 bStop1.pco=65535
bStop1.txt=tTmp.txt spstr tId.txt,bStop1.txt,"|",1
tsw bStop1,1 tsw bStop1,1
} }
// down button // down button
spstr tId.txt,tTmp.txt,"|",2 spstr tId.txt,tTmp.txt,"|",5
if(tTmp.txt=="disable") if(tTmp.txt=="disable")
{ {
bDown1.pco=27501 bDown1.pco=27501
spstr tId.txt,bDown1.txt,"|",2
tsw bDown1,0 tsw bDown1,0
}else if(tTmp.txt!="") }else if(tTmp.txt=="enable")
{ {
bDown1.pco=65535 bDown1.pco=65535
bDown1.txt=tTmp.txt spstr tId.txt,bDown1.txt,"|",2
tsw bDown1,1 tsw bDown1,1
} }
} }
@@ -1440,39 +1443,42 @@ Timer tmSerial
// get Button State (optional Value) // get Button State (optional Value)
spstr strCommand.txt,tId.txt,"~",14 spstr strCommand.txt,tId.txt,"~",14
// up button // up button
spstr tId.txt,tTmp.txt,"|",0 spstr tId.txt,tTmp.txt,"|",3
if(tTmp.txt=="disable") if(tTmp.txt=="disable")
{ {
bUp2.pco=27501 bUp2.pco=27501
spstr tId.txt,bUp2.txt,"|",0
tsw bUp2,0 tsw bUp2,0
}else if(tTmp.txt!="") }else if(tTmp.txt=="enable")
{ {
bUp2.pco=65535 bUp2.pco=65535
bUp2.txt=tTmp.txt spstr tId.txt,bUp2.txt,"|",0
tsw bUp2,1 tsw bUp2,1
} }
// stop button // stop button
spstr tId.txt,tTmp.txt,"|",1 spstr tId.txt,tTmp.txt,"|",4
if(tTmp.txt=="disable") if(tTmp.txt=="disable")
{ {
bStop2.pco=27501 bStop2.pco=27501
spstr tId.txt,bStop2.txt,"|",1
tsw bStop2,0 tsw bStop2,0
}else if(tTmp.txt!="") }else if(tTmp.txt=="enable")
{ {
bStop2.pco=65535 bStop2.pco=65535
bStop2.txt=tTmp.txt spstr tId.txt,bStop2.txt,"|",1
tsw bStop2,1 tsw bStop2,1
} }
// down button // down button
spstr tId.txt,tTmp.txt,"|",2 spstr tId.txt,tTmp.txt,"|",5
if(tTmp.txt=="disable") if(tTmp.txt=="disable")
{ {
bDown2.pco=27501 bDown2.pco=27501
spstr tId.txt,bDown2.txt,"|",2
tsw bDown2,0 tsw bDown2,0
}else if(tTmp.txt!="") }else if(tTmp.txt=="enable")
{ {
bDown2.pco=65535 bDown2.pco=65535
bDown2.txt=tTmp.txt spstr tId.txt,bDown2.txt,"|",2
tsw bDown2,1 tsw bDown2,1
} }
} }
@@ -1600,39 +1606,42 @@ Timer tmSerial
// get Button State (optional Value) // get Button State (optional Value)
spstr strCommand.txt,tId.txt,"~",20 spstr strCommand.txt,tId.txt,"~",20
// up button // up button
spstr tId.txt,tTmp.txt,"|",0 spstr tId.txt,tTmp.txt,"|",3
if(tTmp.txt=="disable") if(tTmp.txt=="disable")
{ {
bUp3.pco=27501 bUp3.pco=27501
spstr tId.txt,bUp3.txt,"|",0
tsw bUp3,0 tsw bUp3,0
}else if(tTmp.txt!="") }else if(tTmp.txt=="enable")
{ {
bUp3.pco=65535 bUp3.pco=65535
bUp3.txt=tTmp.txt spstr tId.txt,bUp3.txt,"|",0
tsw bUp3,1 tsw bUp3,1
} }
// stop button // stop button
spstr tId.txt,tTmp.txt,"|",1 spstr tId.txt,tTmp.txt,"|",4
if(tTmp.txt=="disable") if(tTmp.txt=="disable")
{ {
bStop3.pco=27501 bStop3.pco=27501
spstr tId.txt,bStop3.txt,"|",1
tsw bStop3,0 tsw bStop3,0
}else if(tTmp.txt!="") }else if(tTmp.txt=="enable")
{ {
bStop3.pco=65535 bStop3.pco=65535
bStop3.txt=tTmp.txt spstr tId.txt,bStop3.txt,"|",1
tsw bStop3,1 tsw bStop3,1
} }
// down button // down button
spstr tId.txt,tTmp.txt,"|",2 spstr tId.txt,tTmp.txt,"|",5
if(tTmp.txt=="disable") if(tTmp.txt=="disable")
{ {
bDown3.pco=27501 bDown3.pco=27501
spstr tId.txt,bDown3.txt,"|",2
tsw bDown3,0 tsw bDown3,0
}else if(tTmp.txt!="") }else if(tTmp.txt=="enable")
{ {
bDown3.pco=65535 bDown3.pco=65535
bDown3.txt=tTmp.txt spstr tId.txt,bDown3.txt,"|",2
tsw bDown3,1 tsw bDown3,1
} }
} }
@@ -1760,39 +1769,42 @@ Timer tmSerial
// get Button State (optional Value) // get Button State (optional Value)
spstr strCommand.txt,tId.txt,"~",26 spstr strCommand.txt,tId.txt,"~",26
// up button // up button
spstr tId.txt,tTmp.txt,"|",0 spstr tId.txt,tTmp.txt,"|",3
if(tTmp.txt=="disable") if(tTmp.txt=="disable")
{ {
bUp4.pco=27501 bUp4.pco=27501
spstr tId.txt,bUp4.txt,"|",0
tsw bUp4,0 tsw bUp4,0
}else if(tTmp.txt!="") }else if(tTmp.txt=="enable")
{ {
bUp4.pco=65535 bUp4.pco=65535
bUp4.txt=tTmp.txt spstr tId.txt,bUp4.txt,"|",0
tsw bUp4,1 tsw bUp4,1
} }
// stop button // stop button
spstr tId.txt,tTmp.txt,"|",1 spstr tId.txt,tTmp.txt,"|",4
if(tTmp.txt=="disable") if(tTmp.txt=="disable")
{ {
bStop4.pco=27501 bStop4.pco=27501
spstr tId.txt,bStop4.txt,"|",1
tsw bStop4,0 tsw bStop4,0
}else if(tTmp.txt!="") }else if(tTmp.txt=="enable")
{ {
bStop4.pco=65535 bStop4.pco=65535
bStop4.txt=tTmp.txt spstr tId.txt,bStop4.txt,"|",1
tsw bStop4,1 tsw bStop4,1
} }
// down button // down button
spstr tId.txt,tTmp.txt,"|",2 spstr tId.txt,tTmp.txt,"|",5
if(tTmp.txt=="disable") if(tTmp.txt=="disable")
{ {
bDown4.pco=27501 bDown4.pco=27501
spstr tId.txt,bDown4.txt,"|",2
tsw bDown4,0 tsw bDown4,0
}else if(tTmp.txt!="") }else if(tTmp.txt=="enable")
{ {
bDown4.pco=65535 bDown4.pco=65535
bDown4.txt=tTmp.txt spstr tId.txt,bDown4.txt,"|",2
tsw bDown4,1 tsw bDown4,1
} }
} }

View File

@@ -34,7 +34,7 @@ Variable (string) strCommand
Attributes Attributes
Scope : local Scope : local
Text : Text :
Max. Text Size: 200 Max. Text Size: 270
Variable (string) entn Variable (string) entn
Attributes Attributes
@@ -154,7 +154,7 @@ QR Code qr0
Disable release event after dragging: 0 Disable release event after dragging: 0
Send Component ID : disabled Send Component ID : disabled
Text : Text :
Max. Text Size : 105 Max. Text Size : 100
Button bNext Button bNext
Attributes Attributes
@@ -221,7 +221,7 @@ Button bText1
Send Component ID : disabled Send Component ID : disabled
State : unpressed State : unpressed
Text : Text :
Max. Text Size : 10 Max. Text Size : 30
Events Events
Touch Press Event Touch Press Event
@@ -246,7 +246,7 @@ Button bText2
Send Component ID : disabled Send Component ID : disabled
State : unpressed State : unpressed
Text : Text :
Max. Text Size : 10 Max. Text Size : 30
Events Events
Touch Press Event Touch Press Event
@@ -302,8 +302,8 @@ Dual-state Button btOnOff2
Events Events
Touch Press Event Touch Press Event
tSend.txt="event,buttonPress2,"+entn1.txt+",OnOff," tSend.txt="event,buttonPress2,"+entn2.txt+",OnOff,"
covx btOnOff1.val,tTmp.txt,0,0 covx btOnOff2.val,tTmp.txt,0,0
tSend.txt+=tTmp.txt tSend.txt+=tTmp.txt
//send calc crc //send calc crc
btlen tSend.txt,sys0 btlen tSend.txt,sys0

View File

@@ -361,38 +361,41 @@ Timer tmSerial
tIcon1.txt=tTmp.txt tIcon1.txt=tTmp.txt
} }
// set icon bUp // set icon bUp
spstr strCommand.txt,tTmp.txt,"~",5 spstr strCommand.txt,tTmp.txt,"~",8
if(tTmp.txt=="disable") if(tTmp.txt=="disable")
{ {
tsw bUp1,0 tsw bUp1,0
spstr strCommand.txt,bUp1.txt,"~",5
bUp1.pco=27501 bUp1.pco=27501
}else if(tTmp.txt!="") }else if(tTmp.txt=="enable")
{ {
bUp1.txt=tTmp.txt spstr strCommand.txt,bUp1.txt,"~",5
tsw bUp1,1 tsw bUp1,1
bUp1.pco=65535 bUp1.pco=65535
} }
// set icon bStop // set icon bStop
spstr strCommand.txt,tTmp.txt,"~",6 spstr strCommand.txt,tTmp.txt,"~",9
if(tTmp.txt=="disable") if(tTmp.txt=="disable")
{ {
tsw bStop1,0 tsw bStop1,0
spstr strCommand.txt,bStop1.txt,"~",6
bStop1.pco=27501 bStop1.pco=27501
}else if(tTmp.txt!="") }else if(tTmp.txt=="enable")
{ {
bStop1.txt=tTmp.txt spstr strCommand.txt,bStop1.txt,"~",6
tsw bStop1,1 tsw bStop1,1
bStop1.pco=65535 bStop1.pco=65535
} }
// set icon bDown // set icon bDown
spstr strCommand.txt,tTmp.txt,"~",7 spstr strCommand.txt,tTmp.txt,"~",10
if(tTmp.txt=="disable") if(tTmp.txt=="disable")
{ {
spstr strCommand.txt,bDown1.txt,"~",7
tsw bDown1,0 tsw bDown1,0
bDown1.pco=27501 bDown1.pco=27501
}else if(tTmp.txt!="") }else if(tTmp.txt=="enable")
{ {
bDown1.txt=tTmp.txt spstr strCommand.txt,bDown1.txt,"~",7
tsw bDown1,1 tsw bDown1,1
bDown1.pco=65535 bDown1.pco=65535
} }

Binary file not shown.

Binary file not shown.

View File

@@ -1,6 +1,6 @@
diff -bur HMI/n2t-out/Program.s.txt HMI/US/portrait/n2t-out/Program.s.txt diff -bur HMI/n2t-out/Program.s.txt HMI/US/portrait/n2t-out/Program.s.txt
--- HMI/n2t-out/Program.s.txt 2022-05-22 08:52:05.367816736 +0000 --- HMI/n2t-out/Program.s.txt 2022-05-23 06:20:44.296447221 +0000
+++ HMI/US/portrait/n2t-out/Program.s.txt 2022-05-22 08:52:05.927852627 +0000 +++ HMI/US/portrait/n2t-out/Program.s.txt 2022-05-23 06:20:44.736453105 +0000
@@ -11,6 +11,6 @@ @@ -11,6 +11,6 @@
// dim value // dim value
int dimValue=40 int dimValue=40
@@ -11,8 +11,8 @@ diff -bur HMI/n2t-out/Program.s.txt HMI/US/portrait/n2t-out/Program.s.txt
+ //lcd_dev fffb 0002 0000 0020 + //lcd_dev fffb 0002 0000 0020
page pageStartup page pageStartup
diff -bur HMI/n2t-out/cardEntities.txt HMI/US/portrait/n2t-out/cardEntities.txt diff -bur HMI/n2t-out/cardEntities.txt HMI/US/portrait/n2t-out/cardEntities.txt
--- HMI/n2t-out/cardEntities.txt 2022-05-22 08:52:05.367816736 +0000 --- HMI/n2t-out/cardEntities.txt 2022-05-23 06:20:44.300447274 +0000
+++ HMI/US/portrait/n2t-out/cardEntities.txt 2022-05-22 08:52:05.927852627 +0000 +++ HMI/US/portrait/n2t-out/cardEntities.txt 2022-05-23 06:20:44.736453105 +0000
@@ -62,6 +62,16 @@ @@ -62,6 +62,16 @@
vis bText4,0 vis bText4,0
vis hSlider4,0 vis hSlider4,0
@@ -297,7 +297,7 @@ diff -bur HMI/n2t-out/cardEntities.txt HMI/US/portrait/n2t-out/cardEntities.txt
Hotspot mSwipeNext Hotspot mSwipeNext
Attributes Attributes
Scope : local Scope : local
@@ -1880,6 +2108,166 @@ @@ -1892,6 +2120,169 @@
covx tTmp.txt,sys0,0,0 covx tTmp.txt,sys0,0,0
hSlider4.maxval=sys0 hSlider4.maxval=sys0
} }
@@ -341,39 +341,42 @@ diff -bur HMI/n2t-out/cardEntities.txt HMI/US/portrait/n2t-out/cardEntities.txt
+ // get Button State (optional Value) + // get Button State (optional Value)
+ spstr strCommand.txt,tId.txt,"~",32 + spstr strCommand.txt,tId.txt,"~",32
+ // up button + // up button
+ spstr tId.txt,tTmp.txt,"|",0 + spstr tId.txt,tTmp.txt,"|",3
+ if(tTmp.txt=="disable") + if(tTmp.txt=="disable")
+ { + {
+ bUp5.pco=27501 + bUp5.pco=27501
+ spstr tId.txt,bUp5.txt,"|",0
+ tsw bUp5,0 + tsw bUp5,0
+ }else if(tTmp.txt!="") + }else if(tTmp.txt=="enable")
+ { + {
+ bUp5.pco=65535 + bUp5.pco=65535
+ bUp5.txt=tTmp.txt + spstr tId.txt,bUp5.txt,"|",0
+ tsw bUp5,1 + tsw bUp5,1
+ } + }
+ // stop button + // stop button
+ spstr tId.txt,tTmp.txt,"|",1 + spstr tId.txt,tTmp.txt,"|",4
+ if(tTmp.txt=="disable") + if(tTmp.txt=="disable")
+ { + {
+ bStop5.pco=27501 + bStop5.pco=27501
+ spstr tId.txt,bStop5.txt,"|",1
+ tsw bStop5,0 + tsw bStop5,0
+ }else if(tTmp.txt!="") + }else if(tTmp.txt=="enable")
+ { + {
+ bStop5.pco=65535 + bStop5.pco=65535
+ bStop5.txt=tTmp.txt + spstr tId.txt,bStop5.txt,"|",1
+ tsw bStop5,1 + tsw bStop5,1
+ } + }
+ // down button + // down button
+ spstr tId.txt,tTmp.txt,"|",2 + spstr tId.txt,tTmp.txt,"|",5
+ if(tTmp.txt=="disable") + if(tTmp.txt=="disable")
+ { + {
+ bDown5.pco=27501 + bDown5.pco=27501
+ spstr tId.txt,bDown5.txt,"|",2
+ tsw bDown5,0 + tsw bDown5,0
+ }else if(tTmp.txt!="") + }else if(tTmp.txt=="enable")
+ { + {
+ bDown5.pco=65535 + bDown5.pco=65535
+ bDown5.txt=tTmp.txt + spstr tId.txt,bDown5.txt,"|",2
+ tsw bDown5,1 + tsw bDown5,1
+ } + }
+ } + }
@@ -464,9 +467,21 @@ diff -bur HMI/n2t-out/cardEntities.txt HMI/US/portrait/n2t-out/cardEntities.txt
} }
if(tInstruction.txt=="pageType") if(tInstruction.txt=="pageType")
{ {
diff -bur HMI/n2t-out/cardQR.txt HMI/US/portrait/n2t-out/cardQR.txt
--- HMI/n2t-out/cardQR.txt 2022-05-23 06:20:44.300447274 +0000
+++ HMI/US/portrait/n2t-out/cardQR.txt 2022-05-23 06:20:44.736453105 +0000
@@ -34,7 +34,7 @@
Attributes
Scope : local
Text :
- Max. Text Size: 275
+ Max. Text Size: 270
Variable (string) entn
Attributes
diff -bur HMI/n2t-out/pageStartup.txt HMI/US/portrait/n2t-out/pageStartup.txt diff -bur HMI/n2t-out/pageStartup.txt HMI/US/portrait/n2t-out/pageStartup.txt
--- HMI/n2t-out/pageStartup.txt 2022-05-22 08:52:05.367816736 +0000 --- HMI/n2t-out/pageStartup.txt 2022-05-23 06:20:44.300447274 +0000
+++ HMI/US/portrait/n2t-out/pageStartup.txt 2022-05-22 08:52:05.927852627 +0000 +++ HMI/US/portrait/n2t-out/pageStartup.txt 2022-05-23 06:20:44.736453105 +0000
@@ -142,7 +142,7 @@ @@ -142,7 +142,7 @@
Disable release event after dragging: 0 Disable release event after dragging: 0
Send Component ID : disabled Send Component ID : disabled

View File

@@ -1,30 +1,47 @@
+++ HMI/US/portrait/diff-eu-version.txt 2022-05-22 08:52:06.071870294 +0000 +++ HMI/US/portrait/diff-eu-version.txt 2022-05-23 06:20:44.752453318 +0000
+--- HMI/n2t-out/Program.s.txt 2022-05-22 08:52:05.367816736 +0000 +--- HMI/n2t-out/Program.s.txt 2022-05-23 06:20:44.296447221 +0000
++++ HMI/US/portrait/n2t-out/Program.s.txt 2022-05-22 08:52:05.927852627 +0000 ++++ HMI/US/portrait/n2t-out/Program.s.txt 2022-05-23 06:20:44.736453105 +0000
+--- HMI/n2t-out/cardEntities.txt 2022-05-22 08:52:05.367816736 +0000 +--- HMI/n2t-out/cardEntities.txt 2022-05-23 06:20:44.300447274 +0000
++++ HMI/US/portrait/n2t-out/cardEntities.txt 2022-05-22 08:52:05.927852627 +0000 ++++ HMI/US/portrait/n2t-out/cardEntities.txt 2022-05-23 06:20:44.736453105 +0000
+ Hotspot mSwipeNext + Hotspot mSwipeNext
+ Scope : local + Scope : local
+@@ -1880,6 +2108,166 @@ +@@ -1892,6 +2120,169 @@
++ // up button ++ // up button
++ spstr tId.txt,tTmp.txt,"|",3
++ if(tTmp.txt=="disable") ++ if(tTmp.txt=="disable")
++ }else if(tTmp.txt!="") ++ spstr tId.txt,bUp5.txt,"|",0
++ bUp5.txt=tTmp.txt ++ }else if(tTmp.txt=="enable")
++ spstr tId.txt,bUp5.txt,"|",0
++ // stop button ++ // stop button
++ spstr tId.txt,tTmp.txt,"|",4
++ if(tTmp.txt=="disable") ++ if(tTmp.txt=="disable")
++ { ++ {
++ bStop5.pco=27501 ++ bStop5.pco=27501
++ spstr tId.txt,bStop5.txt,"|",1
++ tsw bStop5,0 ++ tsw bStop5,0
++ }else if(tTmp.txt!="") ++ }else if(tTmp.txt=="enable")
++ { ++ {
++ bStop5.pco=65535 ++ bStop5.pco=65535
++ bStop5.txt=tTmp.txt ++ spstr tId.txt,bStop5.txt,"|",1
++ tsw bStop5,1 ++ tsw bStop5,1
++ } ++ }
++ // down button ++ // down button
++ spstr tId.txt,tTmp.txt,"|",2 ++ spstr tId.txt,tTmp.txt,"|",5
++ if(tTmp.txt=="disable") ++ if(tTmp.txt=="disable")
++ }else if(tTmp.txt!="") ++ spstr tId.txt,bDown5.txt,"|",2
++ bDown5.txt=tTmp.txt ++ }else if(tTmp.txt=="enable")
+--- HMI/n2t-out/pageStartup.txt 2022-05-22 08:52:05.367816736 +0000 ++ spstr tId.txt,bDown5.txt,"|",2
++++ HMI/US/portrait/n2t-out/pageStartup.txt 2022-05-22 08:52:05.927852627 +0000 +diff -bur HMI/n2t-out/cardQR.txt HMI/US/portrait/n2t-out/cardQR.txt
+--- HMI/n2t-out/cardQR.txt 2022-05-23 06:20:44.300447274 +0000
++++ HMI/US/portrait/n2t-out/cardQR.txt 2022-05-23 06:20:44.736453105 +0000
+@@ -34,7 +34,7 @@
+ Attributes
+ Scope : local
+ Text :
+- Max. Text Size: 275
++ Max. Text Size: 270
+
+ Variable (string) entn
+ Attributes
+--- HMI/n2t-out/pageStartup.txt 2022-05-23 06:20:44.300447274 +0000
++++ HMI/US/portrait/n2t-out/pageStartup.txt 2022-05-23 06:20:44.736453105 +0000

View File

@@ -2673,39 +2673,42 @@ Timer tmSerial
// get Button State (optional Value) // get Button State (optional Value)
spstr strCommand.txt,tId.txt,"~",8 spstr strCommand.txt,tId.txt,"~",8
// up button // up button
spstr tId.txt,tTmp.txt,"|",0 spstr tId.txt,tTmp.txt,"|",3
if(tTmp.txt=="disable") if(tTmp.txt=="disable")
{ {
bUp1.pco=27501 bUp1.pco=27501
spstr tId.txt,bUp1.txt,"|",0
tsw bUp1,0 tsw bUp1,0
}else if(tTmp.txt!="") }else if(tTmp.txt=="enable")
{ {
bUp1.pco=65535 bUp1.pco=65535
bUp1.txt=tTmp.txt spstr tId.txt,bUp1.txt,"|",0
tsw bUp1,1 tsw bUp1,1
} }
// stop button // stop button
spstr tId.txt,tTmp.txt,"|",1 spstr tId.txt,tTmp.txt,"|",4
if(tTmp.txt=="disable") if(tTmp.txt=="disable")
{ {
bStop1.pco=27501 bStop1.pco=27501
spstr tId.txt,bStop1.txt,"|",1
tsw bStop1,0 tsw bStop1,0
}else if(tTmp.txt!="") }else if(tTmp.txt=="enable")
{ {
bStop1.pco=65535 bStop1.pco=65535
bStop1.txt=tTmp.txt spstr tId.txt,bStop1.txt,"|",1
tsw bStop1,1 tsw bStop1,1
} }
// down button // down button
spstr tId.txt,tTmp.txt,"|",2 spstr tId.txt,tTmp.txt,"|",5
if(tTmp.txt=="disable") if(tTmp.txt=="disable")
{ {
bDown1.pco=27501 bDown1.pco=27501
spstr tId.txt,bDown1.txt,"|",2
tsw bDown1,0 tsw bDown1,0
}else if(tTmp.txt!="") }else if(tTmp.txt=="enable")
{ {
bDown1.pco=65535 bDown1.pco=65535
bDown1.txt=tTmp.txt spstr tId.txt,bDown1.txt,"|",2
tsw bDown1,1 tsw bDown1,1
} }
} }
@@ -2833,39 +2836,42 @@ Timer tmSerial
// get Button State (optional Value) // get Button State (optional Value)
spstr strCommand.txt,tId.txt,"~",14 spstr strCommand.txt,tId.txt,"~",14
// up button // up button
spstr tId.txt,tTmp.txt,"|",0 spstr tId.txt,tTmp.txt,"|",3
if(tTmp.txt=="disable") if(tTmp.txt=="disable")
{ {
bUp2.pco=27501 bUp2.pco=27501
spstr tId.txt,bUp2.txt,"|",0
tsw bUp2,0 tsw bUp2,0
}else if(tTmp.txt!="") }else if(tTmp.txt=="enable")
{ {
bUp2.pco=65535 bUp2.pco=65535
bUp2.txt=tTmp.txt spstr tId.txt,bUp2.txt,"|",0
tsw bUp2,1 tsw bUp2,1
} }
// stop button // stop button
spstr tId.txt,tTmp.txt,"|",1 spstr tId.txt,tTmp.txt,"|",4
if(tTmp.txt=="disable") if(tTmp.txt=="disable")
{ {
bStop2.pco=27501 bStop2.pco=27501
spstr tId.txt,bStop2.txt,"|",1
tsw bStop2,0 tsw bStop2,0
}else if(tTmp.txt!="") }else if(tTmp.txt=="enable")
{ {
bStop2.pco=65535 bStop2.pco=65535
bStop2.txt=tTmp.txt spstr tId.txt,bStop2.txt,"|",1
tsw bStop2,1 tsw bStop2,1
} }
// down button // down button
spstr tId.txt,tTmp.txt,"|",2 spstr tId.txt,tTmp.txt,"|",5
if(tTmp.txt=="disable") if(tTmp.txt=="disable")
{ {
bDown2.pco=27501 bDown2.pco=27501
spstr tId.txt,bDown2.txt,"|",2
tsw bDown2,0 tsw bDown2,0
}else if(tTmp.txt!="") }else if(tTmp.txt=="enable")
{ {
bDown2.pco=65535 bDown2.pco=65535
bDown2.txt=tTmp.txt spstr tId.txt,bDown2.txt,"|",2
tsw bDown2,1 tsw bDown2,1
} }
} }
@@ -2993,39 +2999,42 @@ Timer tmSerial
// get Button State (optional Value) // get Button State (optional Value)
spstr strCommand.txt,tId.txt,"~",20 spstr strCommand.txt,tId.txt,"~",20
// up button // up button
spstr tId.txt,tTmp.txt,"|",0 spstr tId.txt,tTmp.txt,"|",3
if(tTmp.txt=="disable") if(tTmp.txt=="disable")
{ {
bUp3.pco=27501 bUp3.pco=27501
spstr tId.txt,bUp3.txt,"|",0
tsw bUp3,0 tsw bUp3,0
}else if(tTmp.txt!="") }else if(tTmp.txt=="enable")
{ {
bUp3.pco=65535 bUp3.pco=65535
bUp3.txt=tTmp.txt spstr tId.txt,bUp3.txt,"|",0
tsw bUp3,1 tsw bUp3,1
} }
// stop button // stop button
spstr tId.txt,tTmp.txt,"|",1 spstr tId.txt,tTmp.txt,"|",4
if(tTmp.txt=="disable") if(tTmp.txt=="disable")
{ {
bStop3.pco=27501 bStop3.pco=27501
spstr tId.txt,bStop3.txt,"|",1
tsw bStop3,0 tsw bStop3,0
}else if(tTmp.txt!="") }else if(tTmp.txt=="enable")
{ {
bStop3.pco=65535 bStop3.pco=65535
bStop3.txt=tTmp.txt spstr tId.txt,bStop3.txt,"|",1
tsw bStop3,1 tsw bStop3,1
} }
// down button // down button
spstr tId.txt,tTmp.txt,"|",2 spstr tId.txt,tTmp.txt,"|",5
if(tTmp.txt=="disable") if(tTmp.txt=="disable")
{ {
bDown3.pco=27501 bDown3.pco=27501
spstr tId.txt,bDown3.txt,"|",2
tsw bDown3,0 tsw bDown3,0
}else if(tTmp.txt!="") }else if(tTmp.txt=="enable")
{ {
bDown3.pco=65535 bDown3.pco=65535
bDown3.txt=tTmp.txt spstr tId.txt,bDown3.txt,"|",2
tsw bDown3,1 tsw bDown3,1
} }
} }
@@ -3153,39 +3162,42 @@ Timer tmSerial
// get Button State (optional Value) // get Button State (optional Value)
spstr strCommand.txt,tId.txt,"~",26 spstr strCommand.txt,tId.txt,"~",26
// up button // up button
spstr tId.txt,tTmp.txt,"|",0 spstr tId.txt,tTmp.txt,"|",3
if(tTmp.txt=="disable") if(tTmp.txt=="disable")
{ {
bUp4.pco=27501 bUp4.pco=27501
spstr tId.txt,bUp4.txt,"|",0
tsw bUp4,0 tsw bUp4,0
}else if(tTmp.txt!="") }else if(tTmp.txt=="enable")
{ {
bUp4.pco=65535 bUp4.pco=65535
bUp4.txt=tTmp.txt spstr tId.txt,bUp4.txt,"|",0
tsw bUp4,1 tsw bUp4,1
} }
// stop button // stop button
spstr tId.txt,tTmp.txt,"|",1 spstr tId.txt,tTmp.txt,"|",4
if(tTmp.txt=="disable") if(tTmp.txt=="disable")
{ {
bStop4.pco=27501 bStop4.pco=27501
spstr tId.txt,bStop4.txt,"|",1
tsw bStop4,0 tsw bStop4,0
}else if(tTmp.txt!="") }else if(tTmp.txt=="enable")
{ {
bStop4.pco=65535 bStop4.pco=65535
bStop4.txt=tTmp.txt spstr tId.txt,bStop4.txt,"|",1
tsw bStop4,1 tsw bStop4,1
} }
// down button // down button
spstr tId.txt,tTmp.txt,"|",2 spstr tId.txt,tTmp.txt,"|",5
if(tTmp.txt=="disable") if(tTmp.txt=="disable")
{ {
bDown4.pco=27501 bDown4.pco=27501
spstr tId.txt,bDown4.txt,"|",2
tsw bDown4,0 tsw bDown4,0
}else if(tTmp.txt!="") }else if(tTmp.txt=="enable")
{ {
bDown4.pco=65535 bDown4.pco=65535
bDown4.txt=tTmp.txt spstr tId.txt,bDown4.txt,"|",2
tsw bDown4,1 tsw bDown4,1
} }
} }
@@ -3313,39 +3325,42 @@ Timer tmSerial
// get Button State (optional Value) // get Button State (optional Value)
spstr strCommand.txt,tId.txt,"~",32 spstr strCommand.txt,tId.txt,"~",32
// up button // up button
spstr tId.txt,tTmp.txt,"|",0 spstr tId.txt,tTmp.txt,"|",3
if(tTmp.txt=="disable") if(tTmp.txt=="disable")
{ {
bUp5.pco=27501 bUp5.pco=27501
spstr tId.txt,bUp5.txt,"|",0
tsw bUp5,0 tsw bUp5,0
}else if(tTmp.txt!="") }else if(tTmp.txt=="enable")
{ {
bUp5.pco=65535 bUp5.pco=65535
bUp5.txt=tTmp.txt spstr tId.txt,bUp5.txt,"|",0
tsw bUp5,1 tsw bUp5,1
} }
// stop button // stop button
spstr tId.txt,tTmp.txt,"|",1 spstr tId.txt,tTmp.txt,"|",4
if(tTmp.txt=="disable") if(tTmp.txt=="disable")
{ {
bStop5.pco=27501 bStop5.pco=27501
spstr tId.txt,bStop5.txt,"|",1
tsw bStop5,0 tsw bStop5,0
}else if(tTmp.txt!="") }else if(tTmp.txt=="enable")
{ {
bStop5.pco=65535 bStop5.pco=65535
bStop5.txt=tTmp.txt spstr tId.txt,bStop5.txt,"|",1
tsw bStop5,1 tsw bStop5,1
} }
// down button // down button
spstr tId.txt,tTmp.txt,"|",2 spstr tId.txt,tTmp.txt,"|",5
if(tTmp.txt=="disable") if(tTmp.txt=="disable")
{ {
bDown5.pco=27501 bDown5.pco=27501
spstr tId.txt,bDown5.txt,"|",2
tsw bDown5,0 tsw bDown5,0
}else if(tTmp.txt!="") }else if(tTmp.txt=="enable")
{ {
bDown5.pco=65535 bDown5.pco=65535
bDown5.txt=tTmp.txt spstr tId.txt,bDown5.txt,"|",2
tsw bDown5,1 tsw bDown5,1
} }
} }

View File

@@ -592,9 +592,9 @@ Button bEntity1
Disable release event after dragging: 0 Disable release event after dragging: 0
Send Component ID : disabled Send Component ID : disabled
Opacity : 127 Opacity : 127
x coordinate : 43 x coordinate : 13
y coordinate : 75 y coordinate : 75
Width : 80 Width : 140
Height : 80 Height : 80
Effect : load Effect : load
Effect Priority : 0 Effect Priority : 0
@@ -650,9 +650,9 @@ Button bEntity2
Disable release event after dragging: 0 Disable release event after dragging: 0
Send Component ID : disabled Send Component ID : disabled
Opacity : 127 Opacity : 127
x coordinate : 198 x coordinate : 168
y coordinate : 75 y coordinate : 75
Width : 80 Width : 140
Height : 80 Height : 80
Effect : load Effect : load
Effect Priority : 0 Effect Priority : 0
@@ -708,9 +708,9 @@ Button bEntity3
Disable release event after dragging: 0 Disable release event after dragging: 0
Send Component ID : disabled Send Component ID : disabled
Opacity : 127 Opacity : 127
x coordinate : 38 x coordinate : 8
y coordinate : 210 y coordinate : 210
Width : 80 Width : 140
Height : 80 Height : 80
Effect : load Effect : load
Effect Priority : 0 Effect Priority : 0
@@ -766,9 +766,9 @@ Button bEntity4
Disable release event after dragging: 0 Disable release event after dragging: 0
Send Component ID : disabled Send Component ID : disabled
Opacity : 127 Opacity : 127
x coordinate : 198 x coordinate : 168
y coordinate : 210 y coordinate : 210
Width : 80 Width : 140
Height : 80 Height : 80
Effect : load Effect : load
Effect Priority : 0 Effect Priority : 0
@@ -824,9 +824,9 @@ Button bEntity5
Disable release event after dragging: 0 Disable release event after dragging: 0
Send Component ID : disabled Send Component ID : disabled
Opacity : 127 Opacity : 127
x coordinate : 38 x coordinate : 8
y coordinate : 340 y coordinate : 340
Width : 80 Width : 140
Height : 80 Height : 80
Effect : load Effect : load
Effect Priority : 0 Effect Priority : 0
@@ -882,9 +882,9 @@ Button bEntity6
Disable release event after dragging: 0 Disable release event after dragging: 0
Send Component ID : disabled Send Component ID : disabled
Opacity : 127 Opacity : 127
x coordinate : 198 x coordinate : 168
y coordinate : 340 y coordinate : 340
Width : 80 Width : 140
Height : 80 Height : 80
Effect : load Effect : load
Effect Priority : 0 Effect Priority : 0

View File

@@ -43,7 +43,7 @@ Variable (string) strCommand
ID : 6 ID : 6
Scope : local Scope : local
Text : Text :
Max. Text Size: 200 Max. Text Size: 270
Variable (string) entn Variable (string) entn
Attributes Attributes
@@ -292,7 +292,7 @@ QR Code qr0
Effect Time : 300 Effect Time : 300
Logo overlay : no Logo overlay : no
Text : Text :
Max. Text Size : 105 Max. Text Size : 100
Button bNext Button bNext
Attributes Attributes
@@ -422,7 +422,7 @@ Button bText1
Vertical Alignment : center Vertical Alignment : center
State : unpressed State : unpressed
Text : Text :
Max. Text Size : 10 Max. Text Size : 30
Word wrap : disabled Word wrap : disabled
Horizontal Spacing : 0 Horizontal Spacing : 0
Vertical Spacing : 0 Vertical Spacing : 0
@@ -469,7 +469,7 @@ Button bText2
Vertical Alignment : center Vertical Alignment : center
State : unpressed State : unpressed
Text : Text :
Max. Text Size : 10 Max. Text Size : 30
Word wrap : disabled Word wrap : disabled
Horizontal Spacing : 0 Horizontal Spacing : 0
Vertical Spacing : 0 Vertical Spacing : 0
@@ -564,8 +564,8 @@ Dual-state Button btOnOff2
Events Events
Touch Press Event Touch Press Event
tSend.txt="event,buttonPress2,"+entn1.txt+",OnOff," tSend.txt="event,buttonPress2,"+entn2.txt+",OnOff,"
covx btOnOff1.val,tTmp.txt,0,0 covx btOnOff2.val,tTmp.txt,0,0
tSend.txt+=tTmp.txt tSend.txt+=tTmp.txt
//send calc crc //send calc crc
btlen tSend.txt,sys0 btlen tSend.txt,sys0

View File

@@ -18,10 +18,10 @@ pageStartup
19 Component(s) 19 Component(s)
154 Line(s) of event code 154 Line(s) of event code
115 Unique line(s) of event code 115 Unique line(s) of event code
popupShutter cardGrid
20 Component(s) 42 Component(s)
241 Line(s) of event code 439 Line(s) of event code
138 Unique line(s) of event code 254 Unique line(s) of event code
popupLight popupLight
27 Component(s) 27 Component(s)
345 Line(s) of event code 345 Line(s) of event code
@@ -29,7 +29,7 @@ popupLight
cardQR cardQR
30 Component(s) 30 Component(s)
363 Line(s) of event code 363 Line(s) of event code
205 Unique line(s) of event code 207 Unique line(s) of event code
cardThermo cardThermo
56 Component(s) 56 Component(s)
546 Line(s) of event code 546 Line(s) of event code
@@ -42,21 +42,21 @@ cardMedia
33 Component(s) 33 Component(s)
350 Line(s) of event code 350 Line(s) of event code
179 Unique line(s) of event code 179 Unique line(s) of event code
cardGrid
42 Component(s)
439 Line(s) of event code
254 Unique line(s) of event code
screensaver screensaver
35 Component(s) 35 Component(s)
296 Line(s) of event code 296 Line(s) of event code
237 Unique line(s) of event code 237 Unique line(s) of event code
popupShutter
20 Component(s)
244 Line(s) of event code
138 Unique line(s) of event code
cardEntities cardEntities
77 Component(s) 77 Component(s)
1348 Line(s) of event code 1363 Line(s) of event code
576 Unique line(s) of event code 576 Unique line(s) of event code
Total Total
13 Page(s) 13 Page(s)
414 Component(s) 414 Component(s)
4670 Line(s) of event code 4688 Line(s) of event code
1239 Unique line(s) of event code 1239 Unique line(s) of event code

View File

@@ -247,8 +247,8 @@ Text tPosHeading
Disable release event after dragging: 0 Disable release event after dragging: 0
Send Component ID : disabled Send Component ID : disabled
Opacity : 127 Opacity : 127
x coordinate : 8 x coordinate : 106
y coordinate : 168 y coordinate : 273
Width : 100 Width : 100
Height : 30 Height : 30
Effect : load Effect : load
@@ -324,8 +324,8 @@ Slider hPosition
Disable release event after dragging: 0 Disable release event after dragging: 0
Send Component ID : disabled Send Component ID : disabled
Opacity : 127 Opacity : 127
x coordinate : 9 x coordinate : 35
y coordinate : 198 y coordinate : 304
Width : 250 Width : 250
Height : 43 Height : 43
Effect : load Effect : load
@@ -415,10 +415,10 @@ Button bDown1
Disable release event after dragging: 0 Disable release event after dragging: 0
Send Component ID : disabled Send Component ID : disabled
Opacity : 127 Opacity : 127
x coordinate : 112 x coordinate : 199
y coordinate : 88 y coordinate : 156
Width : 50 Width : 70
Height : 50 Height : 70
Effect : load Effect : load
Effect Priority : 0 Effect Priority : 0
Effect Time : 300 Effect Time : 300
@@ -462,10 +462,10 @@ Button bStop1
Disable release event after dragging: 0 Disable release event after dragging: 0
Send Component ID : disabled Send Component ID : disabled
Opacity : 127 Opacity : 127
x coordinate : 60 x coordinate : 125
y coordinate : 88 y coordinate : 156
Width : 50 Width : 70
Height : 50 Height : 70
Effect : load Effect : load
Effect Priority : 0 Effect Priority : 0
Effect Time : 300 Effect Time : 300
@@ -509,10 +509,10 @@ Button bUp1
Disable release event after dragging: 0 Disable release event after dragging: 0
Send Component ID : disabled Send Component ID : disabled
Opacity : 127 Opacity : 127
x coordinate : 8 x coordinate : 51
y coordinate : 88 y coordinate : 156
Width : 50 Width : 70
Height : 50 Height : 70
Effect : load Effect : load
Effect Priority : 0 Effect Priority : 0
Effect Time : 300 Effect Time : 300
@@ -646,38 +646,41 @@ Timer tmSerial
tIcon1.txt=tTmp.txt tIcon1.txt=tTmp.txt
} }
// set icon bUp // set icon bUp
spstr strCommand.txt,tTmp.txt,"~",5 spstr strCommand.txt,tTmp.txt,"~",8
if(tTmp.txt=="disable") if(tTmp.txt=="disable")
{ {
tsw bUp1,0 tsw bUp1,0
spstr strCommand.txt,bUp1.txt,"~",5
bUp1.pco=27501 bUp1.pco=27501
}else if(tTmp.txt!="") }else if(tTmp.txt=="enable")
{ {
bUp1.txt=tTmp.txt spstr strCommand.txt,bUp1.txt,"~",5
tsw bUp1,1 tsw bUp1,1
bUp1.pco=65535 bUp1.pco=65535
} }
// set icon bStop // set icon bStop
spstr strCommand.txt,tTmp.txt,"~",6 spstr strCommand.txt,tTmp.txt,"~",9
if(tTmp.txt=="disable") if(tTmp.txt=="disable")
{ {
tsw bStop1,0 tsw bStop1,0
spstr strCommand.txt,bStop1.txt,"~",6
bStop1.pco=27501 bStop1.pco=27501
}else if(tTmp.txt!="") }else if(tTmp.txt=="enable")
{ {
bStop1.txt=tTmp.txt spstr strCommand.txt,bStop1.txt,"~",6
tsw bStop1,1 tsw bStop1,1
bStop1.pco=65535 bStop1.pco=65535
} }
// set icon bDown // set icon bDown
spstr strCommand.txt,tTmp.txt,"~",7 spstr strCommand.txt,tTmp.txt,"~",10
if(tTmp.txt=="disable") if(tTmp.txt=="disable")
{ {
spstr strCommand.txt,bDown1.txt,"~",7
tsw bDown1,0 tsw bDown1,0
bDown1.pco=27501 bDown1.pco=27501
}else if(tTmp.txt!="") }else if(tTmp.txt=="enable")
{ {
bDown1.txt=tTmp.txt spstr strCommand.txt,bDown1.txt,"~",7
tsw bDown1,1 tsw bDown1,1
bDown1.pco=65535 bDown1.pco=65535
} }

View File

@@ -1508,39 +1508,42 @@ Timer tmSerial
// get Button State (optional Value) // get Button State (optional Value)
spstr strCommand.txt,tId.txt,"~",8 spstr strCommand.txt,tId.txt,"~",8
// up button // up button
spstr tId.txt,tTmp.txt,"|",0 spstr tId.txt,tTmp.txt,"|",3
if(tTmp.txt=="disable") if(tTmp.txt=="disable")
{ {
bUp1.pco=27501 bUp1.pco=27501
spstr tId.txt,bUp1.txt,"|",0
tsw bUp1,0 tsw bUp1,0
}else if(tTmp.txt!="") }else if(tTmp.txt=="enable")
{ {
bUp1.pco=65535 bUp1.pco=65535
bUp1.txt=tTmp.txt spstr tId.txt,bUp1.txt,"|",0
tsw bUp1,1 tsw bUp1,1
} }
// stop button // stop button
spstr tId.txt,tTmp.txt,"|",1 spstr tId.txt,tTmp.txt,"|",4
if(tTmp.txt=="disable") if(tTmp.txt=="disable")
{ {
bStop1.pco=27501 bStop1.pco=27501
spstr tId.txt,bStop1.txt,"|",1
tsw bStop1,0 tsw bStop1,0
}else if(tTmp.txt!="") }else if(tTmp.txt=="enable")
{ {
bStop1.pco=65535 bStop1.pco=65535
bStop1.txt=tTmp.txt spstr tId.txt,bStop1.txt,"|",1
tsw bStop1,1 tsw bStop1,1
} }
// down button // down button
spstr tId.txt,tTmp.txt,"|",2 spstr tId.txt,tTmp.txt,"|",5
if(tTmp.txt=="disable") if(tTmp.txt=="disable")
{ {
bDown1.pco=27501 bDown1.pco=27501
spstr tId.txt,bDown1.txt,"|",2
tsw bDown1,0 tsw bDown1,0
}else if(tTmp.txt!="") }else if(tTmp.txt=="enable")
{ {
bDown1.pco=65535 bDown1.pco=65535
bDown1.txt=tTmp.txt spstr tId.txt,bDown1.txt,"|",2
tsw bDown1,1 tsw bDown1,1
} }
} }
@@ -1668,39 +1671,42 @@ Timer tmSerial
// get Button State (optional Value) // get Button State (optional Value)
spstr strCommand.txt,tId.txt,"~",14 spstr strCommand.txt,tId.txt,"~",14
// up button // up button
spstr tId.txt,tTmp.txt,"|",0 spstr tId.txt,tTmp.txt,"|",3
if(tTmp.txt=="disable") if(tTmp.txt=="disable")
{ {
bUp2.pco=27501 bUp2.pco=27501
spstr tId.txt,bUp2.txt,"|",0
tsw bUp2,0 tsw bUp2,0
}else if(tTmp.txt!="") }else if(tTmp.txt=="enable")
{ {
bUp2.pco=65535 bUp2.pco=65535
bUp2.txt=tTmp.txt spstr tId.txt,bUp2.txt,"|",0
tsw bUp2,1 tsw bUp2,1
} }
// stop button // stop button
spstr tId.txt,tTmp.txt,"|",1 spstr tId.txt,tTmp.txt,"|",4
if(tTmp.txt=="disable") if(tTmp.txt=="disable")
{ {
bStop2.pco=27501 bStop2.pco=27501
spstr tId.txt,bStop2.txt,"|",1
tsw bStop2,0 tsw bStop2,0
}else if(tTmp.txt!="") }else if(tTmp.txt=="enable")
{ {
bStop2.pco=65535 bStop2.pco=65535
bStop2.txt=tTmp.txt spstr tId.txt,bStop2.txt,"|",1
tsw bStop2,1 tsw bStop2,1
} }
// down button // down button
spstr tId.txt,tTmp.txt,"|",2 spstr tId.txt,tTmp.txt,"|",5
if(tTmp.txt=="disable") if(tTmp.txt=="disable")
{ {
bDown2.pco=27501 bDown2.pco=27501
spstr tId.txt,bDown2.txt,"|",2
tsw bDown2,0 tsw bDown2,0
}else if(tTmp.txt!="") }else if(tTmp.txt=="enable")
{ {
bDown2.pco=65535 bDown2.pco=65535
bDown2.txt=tTmp.txt spstr tId.txt,bDown2.txt,"|",2
tsw bDown2,1 tsw bDown2,1
} }
} }
@@ -1828,39 +1834,42 @@ Timer tmSerial
// get Button State (optional Value) // get Button State (optional Value)
spstr strCommand.txt,tId.txt,"~",20 spstr strCommand.txt,tId.txt,"~",20
// up button // up button
spstr tId.txt,tTmp.txt,"|",0 spstr tId.txt,tTmp.txt,"|",3
if(tTmp.txt=="disable") if(tTmp.txt=="disable")
{ {
bUp3.pco=27501 bUp3.pco=27501
spstr tId.txt,bUp3.txt,"|",0
tsw bUp3,0 tsw bUp3,0
}else if(tTmp.txt!="") }else if(tTmp.txt=="enable")
{ {
bUp3.pco=65535 bUp3.pco=65535
bUp3.txt=tTmp.txt spstr tId.txt,bUp3.txt,"|",0
tsw bUp3,1 tsw bUp3,1
} }
// stop button // stop button
spstr tId.txt,tTmp.txt,"|",1 spstr tId.txt,tTmp.txt,"|",4
if(tTmp.txt=="disable") if(tTmp.txt=="disable")
{ {
bStop3.pco=27501 bStop3.pco=27501
spstr tId.txt,bStop3.txt,"|",1
tsw bStop3,0 tsw bStop3,0
}else if(tTmp.txt!="") }else if(tTmp.txt=="enable")
{ {
bStop3.pco=65535 bStop3.pco=65535
bStop3.txt=tTmp.txt spstr tId.txt,bStop3.txt,"|",1
tsw bStop3,1 tsw bStop3,1
} }
// down button // down button
spstr tId.txt,tTmp.txt,"|",2 spstr tId.txt,tTmp.txt,"|",5
if(tTmp.txt=="disable") if(tTmp.txt=="disable")
{ {
bDown3.pco=27501 bDown3.pco=27501
spstr tId.txt,bDown3.txt,"|",2
tsw bDown3,0 tsw bDown3,0
}else if(tTmp.txt!="") }else if(tTmp.txt=="enable")
{ {
bDown3.pco=65535 bDown3.pco=65535
bDown3.txt=tTmp.txt spstr tId.txt,bDown3.txt,"|",2
tsw bDown3,1 tsw bDown3,1
} }
} }
@@ -1988,39 +1997,42 @@ Timer tmSerial
// get Button State (optional Value) // get Button State (optional Value)
spstr strCommand.txt,tId.txt,"~",26 spstr strCommand.txt,tId.txt,"~",26
// up button // up button
spstr tId.txt,tTmp.txt,"|",0 spstr tId.txt,tTmp.txt,"|",3
if(tTmp.txt=="disable") if(tTmp.txt=="disable")
{ {
bUp4.pco=27501 bUp4.pco=27501
spstr tId.txt,bUp4.txt,"|",0
tsw bUp4,0 tsw bUp4,0
}else if(tTmp.txt!="") }else if(tTmp.txt=="enable")
{ {
bUp4.pco=65535 bUp4.pco=65535
bUp4.txt=tTmp.txt spstr tId.txt,bUp4.txt,"|",0
tsw bUp4,1 tsw bUp4,1
} }
// stop button // stop button
spstr tId.txt,tTmp.txt,"|",1 spstr tId.txt,tTmp.txt,"|",4
if(tTmp.txt=="disable") if(tTmp.txt=="disable")
{ {
bStop4.pco=27501 bStop4.pco=27501
spstr tId.txt,bStop4.txt,"|",1
tsw bStop4,0 tsw bStop4,0
}else if(tTmp.txt!="") }else if(tTmp.txt=="enable")
{ {
bStop4.pco=65535 bStop4.pco=65535
bStop4.txt=tTmp.txt spstr tId.txt,bStop4.txt,"|",1
tsw bStop4,1 tsw bStop4,1
} }
// down button // down button
spstr tId.txt,tTmp.txt,"|",2 spstr tId.txt,tTmp.txt,"|",5
if(tTmp.txt=="disable") if(tTmp.txt=="disable")
{ {
bDown4.pco=27501 bDown4.pco=27501
spstr tId.txt,bDown4.txt,"|",2
tsw bDown4,0 tsw bDown4,0
}else if(tTmp.txt!="") }else if(tTmp.txt=="enable")
{ {
bDown4.pco=65535 bDown4.pco=65535
bDown4.txt=tTmp.txt spstr tId.txt,bDown4.txt,"|",2
tsw bDown4,1 tsw bDown4,1
} }
} }
@@ -2148,39 +2160,42 @@ Timer tmSerial
// get Button State (optional Value) // get Button State (optional Value)
spstr strCommand.txt,tId.txt,"~",32 spstr strCommand.txt,tId.txt,"~",32
// up button // up button
spstr tId.txt,tTmp.txt,"|",0 spstr tId.txt,tTmp.txt,"|",3
if(tTmp.txt=="disable") if(tTmp.txt=="disable")
{ {
bUp5.pco=27501 bUp5.pco=27501
spstr tId.txt,bUp5.txt,"|",0
tsw bUp5,0 tsw bUp5,0
}else if(tTmp.txt!="") }else if(tTmp.txt=="enable")
{ {
bUp5.pco=65535 bUp5.pco=65535
bUp5.txt=tTmp.txt spstr tId.txt,bUp5.txt,"|",0
tsw bUp5,1 tsw bUp5,1
} }
// stop button // stop button
spstr tId.txt,tTmp.txt,"|",1 spstr tId.txt,tTmp.txt,"|",4
if(tTmp.txt=="disable") if(tTmp.txt=="disable")
{ {
bStop5.pco=27501 bStop5.pco=27501
spstr tId.txt,bStop5.txt,"|",1
tsw bStop5,0 tsw bStop5,0
}else if(tTmp.txt!="") }else if(tTmp.txt=="enable")
{ {
bStop5.pco=65535 bStop5.pco=65535
bStop5.txt=tTmp.txt spstr tId.txt,bStop5.txt,"|",1
tsw bStop5,1 tsw bStop5,1
} }
// down button // down button
spstr tId.txt,tTmp.txt,"|",2 spstr tId.txt,tTmp.txt,"|",5
if(tTmp.txt=="disable") if(tTmp.txt=="disable")
{ {
bDown5.pco=27501 bDown5.pco=27501
spstr tId.txt,bDown5.txt,"|",2
tsw bDown5,0 tsw bDown5,0
}else if(tTmp.txt!="") }else if(tTmp.txt=="enable")
{ {
bDown5.pco=65535 bDown5.pco=65535
bDown5.txt=tTmp.txt spstr tId.txt,bDown5.txt,"|",2
tsw bDown5,1 tsw bDown5,1
} }
} }

View File

@@ -34,7 +34,7 @@ Variable (string) strCommand
Attributes Attributes
Scope : local Scope : local
Text : Text :
Max. Text Size: 200 Max. Text Size: 270
Variable (string) entn Variable (string) entn
Attributes Attributes
@@ -154,7 +154,7 @@ QR Code qr0
Disable release event after dragging: 0 Disable release event after dragging: 0
Send Component ID : disabled Send Component ID : disabled
Text : Text :
Max. Text Size : 105 Max. Text Size : 100
Button bNext Button bNext
Attributes Attributes
@@ -221,7 +221,7 @@ Button bText1
Send Component ID : disabled Send Component ID : disabled
State : unpressed State : unpressed
Text : Text :
Max. Text Size : 10 Max. Text Size : 30
Events Events
Touch Press Event Touch Press Event
@@ -246,7 +246,7 @@ Button bText2
Send Component ID : disabled Send Component ID : disabled
State : unpressed State : unpressed
Text : Text :
Max. Text Size : 10 Max. Text Size : 30
Events Events
Touch Press Event Touch Press Event
@@ -302,8 +302,8 @@ Dual-state Button btOnOff2
Events Events
Touch Press Event Touch Press Event
tSend.txt="event,buttonPress2,"+entn1.txt+",OnOff," tSend.txt="event,buttonPress2,"+entn2.txt+",OnOff,"
covx btOnOff1.val,tTmp.txt,0,0 covx btOnOff2.val,tTmp.txt,0,0
tSend.txt+=tTmp.txt tSend.txt+=tTmp.txt
//send calc crc //send calc crc
btlen tSend.txt,sys0 btlen tSend.txt,sys0

View File

@@ -361,38 +361,41 @@ Timer tmSerial
tIcon1.txt=tTmp.txt tIcon1.txt=tTmp.txt
} }
// set icon bUp // set icon bUp
spstr strCommand.txt,tTmp.txt,"~",5 spstr strCommand.txt,tTmp.txt,"~",8
if(tTmp.txt=="disable") if(tTmp.txt=="disable")
{ {
tsw bUp1,0 tsw bUp1,0
spstr strCommand.txt,bUp1.txt,"~",5
bUp1.pco=27501 bUp1.pco=27501
}else if(tTmp.txt!="") }else if(tTmp.txt=="enable")
{ {
bUp1.txt=tTmp.txt spstr strCommand.txt,bUp1.txt,"~",5
tsw bUp1,1 tsw bUp1,1
bUp1.pco=65535 bUp1.pco=65535
} }
// set icon bStop // set icon bStop
spstr strCommand.txt,tTmp.txt,"~",6 spstr strCommand.txt,tTmp.txt,"~",9
if(tTmp.txt=="disable") if(tTmp.txt=="disable")
{ {
tsw bStop1,0 tsw bStop1,0
spstr strCommand.txt,bStop1.txt,"~",6
bStop1.pco=27501 bStop1.pco=27501
}else if(tTmp.txt!="") }else if(tTmp.txt=="enable")
{ {
bStop1.txt=tTmp.txt spstr strCommand.txt,bStop1.txt,"~",6
tsw bStop1,1 tsw bStop1,1
bStop1.pco=65535 bStop1.pco=65535
} }
// set icon bDown // set icon bDown
spstr strCommand.txt,tTmp.txt,"~",7 spstr strCommand.txt,tTmp.txt,"~",10
if(tTmp.txt=="disable") if(tTmp.txt=="disable")
{ {
spstr strCommand.txt,bDown1.txt,"~",7
tsw bDown1,0 tsw bDown1,0
bDown1.pco=27501 bDown1.pco=27501
}else if(tTmp.txt!="") }else if(tTmp.txt=="enable")
{ {
bDown1.txt=tTmp.txt spstr strCommand.txt,bDown1.txt,"~",7
tsw bDown1,1 tsw bDown1,1
bDown1.pco=65535 bDown1.pco=65535
} }

Binary file not shown.

Binary file not shown.

View File

@@ -49,47 +49,50 @@ for i in range(1,6):
vis hSlider{i},0 vis hSlider{i},0
vis nNum{i},0 vis nNum{i},0
// get Button State (optional Value) // get Button State (optional Value)
spstr strCommand.txt,tId.txt,"~",{idxstart+5} spstr strCommand.txt,tId.txt,"~",{idxstart+5}
// up button // up button
spstr tId.txt,tTmp.txt,"|",0 spstr tId.txt,tTmp.txt,"|",3
if(tTmp.txt=="disable") if(tTmp.txt=="disable")
{{ {{
bUp{i}.pco=27501 bUp{i}.pco=27501
spstr tId.txt,bUp{i}.txt,"|",0
tsw bUp{i},0 tsw bUp{i},0
}} }}
else if(tTmp.txt!="") else if(tTmp.txt=="enable")
{{ {{
bUp{i}.pco=65535 bUp{i}.pco=65535
bUp{i}.txt=tTmp.txt spstr tId.txt,bUp{i}.txt,"|",0
tsw bUp{i},1 tsw bUp{i},1
}} }}
// stop button // stop button
spstr tId.txt,tTmp.txt,"|",1 spstr tId.txt,tTmp.txt,"|",4
if(tTmp.txt=="disable") if(tTmp.txt=="disable")
{{ {{
bStop{i}.pco=27501 bStop{i}.pco=27501
spstr tId.txt,bStop{i}.txt,"|",1
tsw bStop{i},0 tsw bStop{i},0
}} }}
else if(tTmp.txt!="") else if(tTmp.txt=="enable")
{{ {{
bStop{i}.pco=65535 bStop{i}.pco=65535
bStop{i}.txt=tTmp.txt spstr tId.txt,bStop{i}.txt,"|",1
tsw bStop{i},1 tsw bStop{i},1
}} }}
// down button // down button
spstr tId.txt,tTmp.txt,"|",2 spstr tId.txt,tTmp.txt,"|",5
if(tTmp.txt=="disable") if(tTmp.txt=="disable")
{{ {{
bDown{i}.pco=27501 bDown{i}.pco=27501
spstr tId.txt,bDown{i}.txt,"|",2
tsw bDown{i},0 tsw bDown{i},0
}} }}
else if(tTmp.txt!="") else if(tTmp.txt=="enable")
{{ {{
bDown{i}.pco=65535 bDown{i}.pco=65535
bDown{i}.txt=tTmp.txt spstr tId.txt,bDown{i}.txt,"|",2
tsw bDown{i},1 tsw bDown{i},1
}} }}
}} }}

File diff suppressed because it is too large Load Diff

View File

@@ -2252,39 +2252,42 @@ Timer tmSerial
// get Button State (optional Value) // get Button State (optional Value)
spstr strCommand.txt,tId.txt,"~",8 spstr strCommand.txt,tId.txt,"~",8
// up button // up button
spstr tId.txt,tTmp.txt,"|",0 spstr tId.txt,tTmp.txt,"|",3
if(tTmp.txt=="disable") if(tTmp.txt=="disable")
{ {
bUp1.pco=27501 bUp1.pco=27501
spstr tId.txt,bUp1.txt,"|",0
tsw bUp1,0 tsw bUp1,0
}else if(tTmp.txt!="") }else if(tTmp.txt=="enable")
{ {
bUp1.pco=65535 bUp1.pco=65535
bUp1.txt=tTmp.txt spstr tId.txt,bUp1.txt,"|",0
tsw bUp1,1 tsw bUp1,1
} }
// stop button // stop button
spstr tId.txt,tTmp.txt,"|",1 spstr tId.txt,tTmp.txt,"|",4
if(tTmp.txt=="disable") if(tTmp.txt=="disable")
{ {
bStop1.pco=27501 bStop1.pco=27501
spstr tId.txt,bStop1.txt,"|",1
tsw bStop1,0 tsw bStop1,0
}else if(tTmp.txt!="") }else if(tTmp.txt=="enable")
{ {
bStop1.pco=65535 bStop1.pco=65535
bStop1.txt=tTmp.txt spstr tId.txt,bStop1.txt,"|",1
tsw bStop1,1 tsw bStop1,1
} }
// down button // down button
spstr tId.txt,tTmp.txt,"|",2 spstr tId.txt,tTmp.txt,"|",5
if(tTmp.txt=="disable") if(tTmp.txt=="disable")
{ {
bDown1.pco=27501 bDown1.pco=27501
spstr tId.txt,bDown1.txt,"|",2
tsw bDown1,0 tsw bDown1,0
}else if(tTmp.txt!="") }else if(tTmp.txt=="enable")
{ {
bDown1.pco=65535 bDown1.pco=65535
bDown1.txt=tTmp.txt spstr tId.txt,bDown1.txt,"|",2
tsw bDown1,1 tsw bDown1,1
} }
} }
@@ -2412,39 +2415,42 @@ Timer tmSerial
// get Button State (optional Value) // get Button State (optional Value)
spstr strCommand.txt,tId.txt,"~",14 spstr strCommand.txt,tId.txt,"~",14
// up button // up button
spstr tId.txt,tTmp.txt,"|",0 spstr tId.txt,tTmp.txt,"|",3
if(tTmp.txt=="disable") if(tTmp.txt=="disable")
{ {
bUp2.pco=27501 bUp2.pco=27501
spstr tId.txt,bUp2.txt,"|",0
tsw bUp2,0 tsw bUp2,0
}else if(tTmp.txt!="") }else if(tTmp.txt=="enable")
{ {
bUp2.pco=65535 bUp2.pco=65535
bUp2.txt=tTmp.txt spstr tId.txt,bUp2.txt,"|",0
tsw bUp2,1 tsw bUp2,1
} }
// stop button // stop button
spstr tId.txt,tTmp.txt,"|",1 spstr tId.txt,tTmp.txt,"|",4
if(tTmp.txt=="disable") if(tTmp.txt=="disable")
{ {
bStop2.pco=27501 bStop2.pco=27501
spstr tId.txt,bStop2.txt,"|",1
tsw bStop2,0 tsw bStop2,0
}else if(tTmp.txt!="") }else if(tTmp.txt=="enable")
{ {
bStop2.pco=65535 bStop2.pco=65535
bStop2.txt=tTmp.txt spstr tId.txt,bStop2.txt,"|",1
tsw bStop2,1 tsw bStop2,1
} }
// down button // down button
spstr tId.txt,tTmp.txt,"|",2 spstr tId.txt,tTmp.txt,"|",5
if(tTmp.txt=="disable") if(tTmp.txt=="disable")
{ {
bDown2.pco=27501 bDown2.pco=27501
spstr tId.txt,bDown2.txt,"|",2
tsw bDown2,0 tsw bDown2,0
}else if(tTmp.txt!="") }else if(tTmp.txt=="enable")
{ {
bDown2.pco=65535 bDown2.pco=65535
bDown2.txt=tTmp.txt spstr tId.txt,bDown2.txt,"|",2
tsw bDown2,1 tsw bDown2,1
} }
} }
@@ -2572,39 +2578,42 @@ Timer tmSerial
// get Button State (optional Value) // get Button State (optional Value)
spstr strCommand.txt,tId.txt,"~",20 spstr strCommand.txt,tId.txt,"~",20
// up button // up button
spstr tId.txt,tTmp.txt,"|",0 spstr tId.txt,tTmp.txt,"|",3
if(tTmp.txt=="disable") if(tTmp.txt=="disable")
{ {
bUp3.pco=27501 bUp3.pco=27501
spstr tId.txt,bUp3.txt,"|",0
tsw bUp3,0 tsw bUp3,0
}else if(tTmp.txt!="") }else if(tTmp.txt=="enable")
{ {
bUp3.pco=65535 bUp3.pco=65535
bUp3.txt=tTmp.txt spstr tId.txt,bUp3.txt,"|",0
tsw bUp3,1 tsw bUp3,1
} }
// stop button // stop button
spstr tId.txt,tTmp.txt,"|",1 spstr tId.txt,tTmp.txt,"|",4
if(tTmp.txt=="disable") if(tTmp.txt=="disable")
{ {
bStop3.pco=27501 bStop3.pco=27501
spstr tId.txt,bStop3.txt,"|",1
tsw bStop3,0 tsw bStop3,0
}else if(tTmp.txt!="") }else if(tTmp.txt=="enable")
{ {
bStop3.pco=65535 bStop3.pco=65535
bStop3.txt=tTmp.txt spstr tId.txt,bStop3.txt,"|",1
tsw bStop3,1 tsw bStop3,1
} }
// down button // down button
spstr tId.txt,tTmp.txt,"|",2 spstr tId.txt,tTmp.txt,"|",5
if(tTmp.txt=="disable") if(tTmp.txt=="disable")
{ {
bDown3.pco=27501 bDown3.pco=27501
spstr tId.txt,bDown3.txt,"|",2
tsw bDown3,0 tsw bDown3,0
}else if(tTmp.txt!="") }else if(tTmp.txt=="enable")
{ {
bDown3.pco=65535 bDown3.pco=65535
bDown3.txt=tTmp.txt spstr tId.txt,bDown3.txt,"|",2
tsw bDown3,1 tsw bDown3,1
} }
} }
@@ -2732,39 +2741,42 @@ Timer tmSerial
// get Button State (optional Value) // get Button State (optional Value)
spstr strCommand.txt,tId.txt,"~",26 spstr strCommand.txt,tId.txt,"~",26
// up button // up button
spstr tId.txt,tTmp.txt,"|",0 spstr tId.txt,tTmp.txt,"|",3
if(tTmp.txt=="disable") if(tTmp.txt=="disable")
{ {
bUp4.pco=27501 bUp4.pco=27501
spstr tId.txt,bUp4.txt,"|",0
tsw bUp4,0 tsw bUp4,0
}else if(tTmp.txt!="") }else if(tTmp.txt=="enable")
{ {
bUp4.pco=65535 bUp4.pco=65535
bUp4.txt=tTmp.txt spstr tId.txt,bUp4.txt,"|",0
tsw bUp4,1 tsw bUp4,1
} }
// stop button // stop button
spstr tId.txt,tTmp.txt,"|",1 spstr tId.txt,tTmp.txt,"|",4
if(tTmp.txt=="disable") if(tTmp.txt=="disable")
{ {
bStop4.pco=27501 bStop4.pco=27501
spstr tId.txt,bStop4.txt,"|",1
tsw bStop4,0 tsw bStop4,0
}else if(tTmp.txt!="") }else if(tTmp.txt=="enable")
{ {
bStop4.pco=65535 bStop4.pco=65535
bStop4.txt=tTmp.txt spstr tId.txt,bStop4.txt,"|",1
tsw bStop4,1 tsw bStop4,1
} }
// down button // down button
spstr tId.txt,tTmp.txt,"|",2 spstr tId.txt,tTmp.txt,"|",5
if(tTmp.txt=="disable") if(tTmp.txt=="disable")
{ {
bDown4.pco=27501 bDown4.pco=27501
spstr tId.txt,bDown4.txt,"|",2
tsw bDown4,0 tsw bDown4,0
}else if(tTmp.txt!="") }else if(tTmp.txt=="enable")
{ {
bDown4.pco=65535 bDown4.pco=65535
bDown4.txt=tTmp.txt spstr tId.txt,bDown4.txt,"|",2
tsw bDown4,1 tsw bDown4,1
} }
} }

View File

@@ -324,7 +324,7 @@ Text tEntity2
Disable release event after dragging: 0 Disable release event after dragging: 0
Send Component ID : disabled Send Component ID : disabled
Opacity : 127 Opacity : 127
x coordinate : 157 x coordinate : 153
y coordinate : 155 y coordinate : 155
Width : 140 Width : 140
Height : 30 Height : 30
@@ -354,7 +354,7 @@ Text tEntity3
Disable release event after dragging: 0 Disable release event after dragging: 0
Send Component ID : disabled Send Component ID : disabled
Opacity : 127 Opacity : 127
x coordinate : 307 x coordinate : 299
y coordinate : 155 y coordinate : 155
Width : 140 Width : 140
Height : 30 Height : 30
@@ -414,7 +414,7 @@ Text tEntity5
Disable release event after dragging: 0 Disable release event after dragging: 0
Send Component ID : disabled Send Component ID : disabled
Opacity : 127 Opacity : 127
x coordinate : 157 x coordinate : 153
y coordinate : 274 y coordinate : 274
Width : 140 Width : 140
Height : 30 Height : 30
@@ -444,7 +444,7 @@ Text tEntity6
Disable release event after dragging: 0 Disable release event after dragging: 0
Send Component ID : disabled Send Component ID : disabled
Opacity : 127 Opacity : 127
x coordinate : 307 x coordinate : 299
y coordinate : 274 y coordinate : 274
Width : 140 Width : 140
Height : 30 Height : 30
@@ -592,9 +592,9 @@ Button bEntity1
Disable release event after dragging: 0 Disable release event after dragging: 0
Send Component ID : disabled Send Component ID : disabled
Opacity : 127 Opacity : 127
x coordinate : 36 x coordinate : 6
y coordinate : 75 y coordinate : 75
Width : 80 Width : 140
Height : 80 Height : 80
Effect : load Effect : load
Effect Priority : 0 Effect Priority : 0
@@ -650,9 +650,9 @@ Button bEntity2
Disable release event after dragging: 0 Disable release event after dragging: 0
Send Component ID : disabled Send Component ID : disabled
Opacity : 127 Opacity : 127
x coordinate : 187 x coordinate : 153
y coordinate : 75 y coordinate : 75
Width : 80 Width : 140
Height : 80 Height : 80
Effect : load Effect : load
Effect Priority : 0 Effect Priority : 0
@@ -708,9 +708,9 @@ Button bEntity3
Disable release event after dragging: 0 Disable release event after dragging: 0
Send Component ID : disabled Send Component ID : disabled
Opacity : 127 Opacity : 127
x coordinate : 337 x coordinate : 299
y coordinate : 75 y coordinate : 75
Width : 80 Width : 140
Height : 80 Height : 80
Effect : load Effect : load
Effect Priority : 0 Effect Priority : 0
@@ -766,9 +766,9 @@ Button bEntity4
Disable release event after dragging: 0 Disable release event after dragging: 0
Send Component ID : disabled Send Component ID : disabled
Opacity : 127 Opacity : 127
x coordinate : 36 x coordinate : 6
y coordinate : 194 y coordinate : 194
Width : 80 Width : 140
Height : 80 Height : 80
Effect : load Effect : load
Effect Priority : 0 Effect Priority : 0
@@ -824,9 +824,9 @@ Button bEntity5
Disable release event after dragging: 0 Disable release event after dragging: 0
Send Component ID : disabled Send Component ID : disabled
Opacity : 127 Opacity : 127
x coordinate : 187 x coordinate : 153
y coordinate : 194 y coordinate : 194
Width : 80 Width : 140
Height : 80 Height : 80
Effect : load Effect : load
Effect Priority : 0 Effect Priority : 0
@@ -882,9 +882,9 @@ Button bEntity6
Disable release event after dragging: 0 Disable release event after dragging: 0
Send Component ID : disabled Send Component ID : disabled
Opacity : 127 Opacity : 127
x coordinate : 337 x coordinate : 299
y coordinate : 194 y coordinate : 194
Width : 80 Width : 140
Height : 80 Height : 80
Effect : load Effect : load
Effect Priority : 0 Effect Priority : 0

View File

@@ -43,7 +43,7 @@ Variable (string) strCommand
ID : 6 ID : 6
Scope : local Scope : local
Text : Text :
Max. Text Size: 200 Max. Text Size: 275
Variable (string) entn Variable (string) entn
Attributes Attributes
@@ -292,7 +292,7 @@ QR Code qr0
Effect Time : 300 Effect Time : 300
Logo overlay : no Logo overlay : no
Text : Text :
Max. Text Size : 105 Max. Text Size : 100
Button bNext Button bNext
Attributes Attributes
@@ -422,7 +422,7 @@ Button bText1
Vertical Alignment : center Vertical Alignment : center
State : unpressed State : unpressed
Text : Text :
Max. Text Size : 10 Max. Text Size : 30
Word wrap : disabled Word wrap : disabled
Horizontal Spacing : 0 Horizontal Spacing : 0
Vertical Spacing : 0 Vertical Spacing : 0
@@ -469,7 +469,7 @@ Button bText2
Vertical Alignment : center Vertical Alignment : center
State : unpressed State : unpressed
Text : Text :
Max. Text Size : 10 Max. Text Size : 30
Word wrap : disabled Word wrap : disabled
Horizontal Spacing : 0 Horizontal Spacing : 0
Vertical Spacing : 0 Vertical Spacing : 0
@@ -564,8 +564,8 @@ Dual-state Button btOnOff2
Events Events
Touch Press Event Touch Press Event
tSend.txt="event,buttonPress2,"+entn1.txt+",OnOff," tSend.txt="event,buttonPress2,"+entn2.txt+",OnOff,"
covx btOnOff1.val,tTmp.txt,0,0 covx btOnOff2.val,tTmp.txt,0,0
tSend.txt+=tTmp.txt tSend.txt+=tTmp.txt
//send calc crc //send calc crc
btlen tSend.txt,sys0 btlen tSend.txt,sys0

View File

@@ -22,10 +22,6 @@ popupNotify
17 Component(s) 17 Component(s)
200 Line(s) of event code 200 Line(s) of event code
125 Unique line(s) of event code 125 Unique line(s) of event code
popupShutter
20 Component(s)
241 Line(s) of event code
138 Unique line(s) of event code
screensaver screensaver
35 Component(s) 35 Component(s)
296 Line(s) of event code 296 Line(s) of event code
@@ -37,7 +33,11 @@ popupLight
cardQR cardQR
30 Component(s) 30 Component(s)
363 Line(s) of event code 363 Line(s) of event code
205 Unique line(s) of event code 207 Unique line(s) of event code
popupShutter
20 Component(s)
244 Line(s) of event code
138 Unique line(s) of event code
cardGrid cardGrid
42 Component(s) 42 Component(s)
439 Line(s) of event code 439 Line(s) of event code
@@ -52,11 +52,11 @@ cardThermo
290 Unique line(s) of event code 290 Unique line(s) of event code
cardEntities cardEntities
65 Component(s) 65 Component(s)
1121 Line(s) of event code 1133 Line(s) of event code
491 Unique line(s) of event code 491 Unique line(s) of event code
Total Total
13 Page(s) 13 Page(s)
402 Component(s) 402 Component(s)
4444 Line(s) of event code 4459 Line(s) of event code
1168 Unique line(s) of event code 1168 Unique line(s) of event code

View File

@@ -646,38 +646,41 @@ Timer tmSerial
tIcon1.txt=tTmp.txt tIcon1.txt=tTmp.txt
} }
// set icon bUp // set icon bUp
spstr strCommand.txt,tTmp.txt,"~",5 spstr strCommand.txt,tTmp.txt,"~",8
if(tTmp.txt=="disable") if(tTmp.txt=="disable")
{ {
tsw bUp1,0 tsw bUp1,0
spstr strCommand.txt,bUp1.txt,"~",5
bUp1.pco=27501 bUp1.pco=27501
}else if(tTmp.txt!="") }else if(tTmp.txt=="enable")
{ {
bUp1.txt=tTmp.txt spstr strCommand.txt,bUp1.txt,"~",5
tsw bUp1,1 tsw bUp1,1
bUp1.pco=65535 bUp1.pco=65535
} }
// set icon bStop // set icon bStop
spstr strCommand.txt,tTmp.txt,"~",6 spstr strCommand.txt,tTmp.txt,"~",9
if(tTmp.txt=="disable") if(tTmp.txt=="disable")
{ {
tsw bStop1,0 tsw bStop1,0
spstr strCommand.txt,bStop1.txt,"~",6
bStop1.pco=27501 bStop1.pco=27501
}else if(tTmp.txt!="") }else if(tTmp.txt=="enable")
{ {
bStop1.txt=tTmp.txt spstr strCommand.txt,bStop1.txt,"~",6
tsw bStop1,1 tsw bStop1,1
bStop1.pco=65535 bStop1.pco=65535
} }
// set icon bDown // set icon bDown
spstr strCommand.txt,tTmp.txt,"~",7 spstr strCommand.txt,tTmp.txt,"~",10
if(tTmp.txt=="disable") if(tTmp.txt=="disable")
{ {
spstr strCommand.txt,bDown1.txt,"~",7
tsw bDown1,0 tsw bDown1,0
bDown1.pco=27501 bDown1.pco=27501
}else if(tTmp.txt!="") }else if(tTmp.txt=="enable")
{ {
bDown1.txt=tTmp.txt spstr strCommand.txt,bDown1.txt,"~",7
tsw bDown1,1 tsw bDown1,1
bDown1.pco=65535 bDown1.pco=65535
} }

View File

@@ -1280,39 +1280,42 @@ Timer tmSerial
// get Button State (optional Value) // get Button State (optional Value)
spstr strCommand.txt,tId.txt,"~",8 spstr strCommand.txt,tId.txt,"~",8
// up button // up button
spstr tId.txt,tTmp.txt,"|",0 spstr tId.txt,tTmp.txt,"|",3
if(tTmp.txt=="disable") if(tTmp.txt=="disable")
{ {
bUp1.pco=27501 bUp1.pco=27501
spstr tId.txt,bUp1.txt,"|",0
tsw bUp1,0 tsw bUp1,0
}else if(tTmp.txt!="") }else if(tTmp.txt=="enable")
{ {
bUp1.pco=65535 bUp1.pco=65535
bUp1.txt=tTmp.txt spstr tId.txt,bUp1.txt,"|",0
tsw bUp1,1 tsw bUp1,1
} }
// stop button // stop button
spstr tId.txt,tTmp.txt,"|",1 spstr tId.txt,tTmp.txt,"|",4
if(tTmp.txt=="disable") if(tTmp.txt=="disable")
{ {
bStop1.pco=27501 bStop1.pco=27501
spstr tId.txt,bStop1.txt,"|",1
tsw bStop1,0 tsw bStop1,0
}else if(tTmp.txt!="") }else if(tTmp.txt=="enable")
{ {
bStop1.pco=65535 bStop1.pco=65535
bStop1.txt=tTmp.txt spstr tId.txt,bStop1.txt,"|",1
tsw bStop1,1 tsw bStop1,1
} }
// down button // down button
spstr tId.txt,tTmp.txt,"|",2 spstr tId.txt,tTmp.txt,"|",5
if(tTmp.txt=="disable") if(tTmp.txt=="disable")
{ {
bDown1.pco=27501 bDown1.pco=27501
spstr tId.txt,bDown1.txt,"|",2
tsw bDown1,0 tsw bDown1,0
}else if(tTmp.txt!="") }else if(tTmp.txt=="enable")
{ {
bDown1.pco=65535 bDown1.pco=65535
bDown1.txt=tTmp.txt spstr tId.txt,bDown1.txt,"|",2
tsw bDown1,1 tsw bDown1,1
} }
} }
@@ -1440,39 +1443,42 @@ Timer tmSerial
// get Button State (optional Value) // get Button State (optional Value)
spstr strCommand.txt,tId.txt,"~",14 spstr strCommand.txt,tId.txt,"~",14
// up button // up button
spstr tId.txt,tTmp.txt,"|",0 spstr tId.txt,tTmp.txt,"|",3
if(tTmp.txt=="disable") if(tTmp.txt=="disable")
{ {
bUp2.pco=27501 bUp2.pco=27501
spstr tId.txt,bUp2.txt,"|",0
tsw bUp2,0 tsw bUp2,0
}else if(tTmp.txt!="") }else if(tTmp.txt=="enable")
{ {
bUp2.pco=65535 bUp2.pco=65535
bUp2.txt=tTmp.txt spstr tId.txt,bUp2.txt,"|",0
tsw bUp2,1 tsw bUp2,1
} }
// stop button // stop button
spstr tId.txt,tTmp.txt,"|",1 spstr tId.txt,tTmp.txt,"|",4
if(tTmp.txt=="disable") if(tTmp.txt=="disable")
{ {
bStop2.pco=27501 bStop2.pco=27501
spstr tId.txt,bStop2.txt,"|",1
tsw bStop2,0 tsw bStop2,0
}else if(tTmp.txt!="") }else if(tTmp.txt=="enable")
{ {
bStop2.pco=65535 bStop2.pco=65535
bStop2.txt=tTmp.txt spstr tId.txt,bStop2.txt,"|",1
tsw bStop2,1 tsw bStop2,1
} }
// down button // down button
spstr tId.txt,tTmp.txt,"|",2 spstr tId.txt,tTmp.txt,"|",5
if(tTmp.txt=="disable") if(tTmp.txt=="disable")
{ {
bDown2.pco=27501 bDown2.pco=27501
spstr tId.txt,bDown2.txt,"|",2
tsw bDown2,0 tsw bDown2,0
}else if(tTmp.txt!="") }else if(tTmp.txt=="enable")
{ {
bDown2.pco=65535 bDown2.pco=65535
bDown2.txt=tTmp.txt spstr tId.txt,bDown2.txt,"|",2
tsw bDown2,1 tsw bDown2,1
} }
} }
@@ -1600,39 +1606,42 @@ Timer tmSerial
// get Button State (optional Value) // get Button State (optional Value)
spstr strCommand.txt,tId.txt,"~",20 spstr strCommand.txt,tId.txt,"~",20
// up button // up button
spstr tId.txt,tTmp.txt,"|",0 spstr tId.txt,tTmp.txt,"|",3
if(tTmp.txt=="disable") if(tTmp.txt=="disable")
{ {
bUp3.pco=27501 bUp3.pco=27501
spstr tId.txt,bUp3.txt,"|",0
tsw bUp3,0 tsw bUp3,0
}else if(tTmp.txt!="") }else if(tTmp.txt=="enable")
{ {
bUp3.pco=65535 bUp3.pco=65535
bUp3.txt=tTmp.txt spstr tId.txt,bUp3.txt,"|",0
tsw bUp3,1 tsw bUp3,1
} }
// stop button // stop button
spstr tId.txt,tTmp.txt,"|",1 spstr tId.txt,tTmp.txt,"|",4
if(tTmp.txt=="disable") if(tTmp.txt=="disable")
{ {
bStop3.pco=27501 bStop3.pco=27501
spstr tId.txt,bStop3.txt,"|",1
tsw bStop3,0 tsw bStop3,0
}else if(tTmp.txt!="") }else if(tTmp.txt=="enable")
{ {
bStop3.pco=65535 bStop3.pco=65535
bStop3.txt=tTmp.txt spstr tId.txt,bStop3.txt,"|",1
tsw bStop3,1 tsw bStop3,1
} }
// down button // down button
spstr tId.txt,tTmp.txt,"|",2 spstr tId.txt,tTmp.txt,"|",5
if(tTmp.txt=="disable") if(tTmp.txt=="disable")
{ {
bDown3.pco=27501 bDown3.pco=27501
spstr tId.txt,bDown3.txt,"|",2
tsw bDown3,0 tsw bDown3,0
}else if(tTmp.txt!="") }else if(tTmp.txt=="enable")
{ {
bDown3.pco=65535 bDown3.pco=65535
bDown3.txt=tTmp.txt spstr tId.txt,bDown3.txt,"|",2
tsw bDown3,1 tsw bDown3,1
} }
} }
@@ -1760,39 +1769,42 @@ Timer tmSerial
// get Button State (optional Value) // get Button State (optional Value)
spstr strCommand.txt,tId.txt,"~",26 spstr strCommand.txt,tId.txt,"~",26
// up button // up button
spstr tId.txt,tTmp.txt,"|",0 spstr tId.txt,tTmp.txt,"|",3
if(tTmp.txt=="disable") if(tTmp.txt=="disable")
{ {
bUp4.pco=27501 bUp4.pco=27501
spstr tId.txt,bUp4.txt,"|",0
tsw bUp4,0 tsw bUp4,0
}else if(tTmp.txt!="") }else if(tTmp.txt=="enable")
{ {
bUp4.pco=65535 bUp4.pco=65535
bUp4.txt=tTmp.txt spstr tId.txt,bUp4.txt,"|",0
tsw bUp4,1 tsw bUp4,1
} }
// stop button // stop button
spstr tId.txt,tTmp.txt,"|",1 spstr tId.txt,tTmp.txt,"|",4
if(tTmp.txt=="disable") if(tTmp.txt=="disable")
{ {
bStop4.pco=27501 bStop4.pco=27501
spstr tId.txt,bStop4.txt,"|",1
tsw bStop4,0 tsw bStop4,0
}else if(tTmp.txt!="") }else if(tTmp.txt=="enable")
{ {
bStop4.pco=65535 bStop4.pco=65535
bStop4.txt=tTmp.txt spstr tId.txt,bStop4.txt,"|",1
tsw bStop4,1 tsw bStop4,1
} }
// down button // down button
spstr tId.txt,tTmp.txt,"|",2 spstr tId.txt,tTmp.txt,"|",5
if(tTmp.txt=="disable") if(tTmp.txt=="disable")
{ {
bDown4.pco=27501 bDown4.pco=27501
spstr tId.txt,bDown4.txt,"|",2
tsw bDown4,0 tsw bDown4,0
}else if(tTmp.txt!="") }else if(tTmp.txt=="enable")
{ {
bDown4.pco=65535 bDown4.pco=65535
bDown4.txt=tTmp.txt spstr tId.txt,bDown4.txt,"|",2
tsw bDown4,1 tsw bDown4,1
} }
} }

View File

@@ -34,7 +34,7 @@ Variable (string) strCommand
Attributes Attributes
Scope : local Scope : local
Text : Text :
Max. Text Size: 200 Max. Text Size: 275
Variable (string) entn Variable (string) entn
Attributes Attributes
@@ -154,7 +154,7 @@ QR Code qr0
Disable release event after dragging: 0 Disable release event after dragging: 0
Send Component ID : disabled Send Component ID : disabled
Text : Text :
Max. Text Size : 105 Max. Text Size : 100
Button bNext Button bNext
Attributes Attributes
@@ -221,7 +221,7 @@ Button bText1
Send Component ID : disabled Send Component ID : disabled
State : unpressed State : unpressed
Text : Text :
Max. Text Size : 10 Max. Text Size : 30
Events Events
Touch Press Event Touch Press Event
@@ -246,7 +246,7 @@ Button bText2
Send Component ID : disabled Send Component ID : disabled
State : unpressed State : unpressed
Text : Text :
Max. Text Size : 10 Max. Text Size : 30
Events Events
Touch Press Event Touch Press Event
@@ -302,8 +302,8 @@ Dual-state Button btOnOff2
Events Events
Touch Press Event Touch Press Event
tSend.txt="event,buttonPress2,"+entn1.txt+",OnOff," tSend.txt="event,buttonPress2,"+entn2.txt+",OnOff,"
covx btOnOff1.val,tTmp.txt,0,0 covx btOnOff2.val,tTmp.txt,0,0
tSend.txt+=tTmp.txt tSend.txt+=tTmp.txt
//send calc crc //send calc crc
btlen tSend.txt,sys0 btlen tSend.txt,sys0

View File

@@ -361,38 +361,41 @@ Timer tmSerial
tIcon1.txt=tTmp.txt tIcon1.txt=tTmp.txt
} }
// set icon bUp // set icon bUp
spstr strCommand.txt,tTmp.txt,"~",5 spstr strCommand.txt,tTmp.txt,"~",8
if(tTmp.txt=="disable") if(tTmp.txt=="disable")
{ {
tsw bUp1,0 tsw bUp1,0
spstr strCommand.txt,bUp1.txt,"~",5
bUp1.pco=27501 bUp1.pco=27501
}else if(tTmp.txt!="") }else if(tTmp.txt=="enable")
{ {
bUp1.txt=tTmp.txt spstr strCommand.txt,bUp1.txt,"~",5
tsw bUp1,1 tsw bUp1,1
bUp1.pco=65535 bUp1.pco=65535
} }
// set icon bStop // set icon bStop
spstr strCommand.txt,tTmp.txt,"~",6 spstr strCommand.txt,tTmp.txt,"~",9
if(tTmp.txt=="disable") if(tTmp.txt=="disable")
{ {
tsw bStop1,0 tsw bStop1,0
spstr strCommand.txt,bStop1.txt,"~",6
bStop1.pco=27501 bStop1.pco=27501
}else if(tTmp.txt!="") }else if(tTmp.txt=="enable")
{ {
bStop1.txt=tTmp.txt spstr strCommand.txt,bStop1.txt,"~",6
tsw bStop1,1 tsw bStop1,1
bStop1.pco=65535 bStop1.pco=65535
} }
// set icon bDown // set icon bDown
spstr strCommand.txt,tTmp.txt,"~",7 spstr strCommand.txt,tTmp.txt,"~",10
if(tTmp.txt=="disable") if(tTmp.txt=="disable")
{ {
spstr strCommand.txt,bDown1.txt,"~",7
tsw bDown1,0 tsw bDown1,0
bDown1.pco=27501 bDown1.pco=27501
}else if(tTmp.txt!="") }else if(tTmp.txt=="enable")
{ {
bDown1.txt=tTmp.txt spstr strCommand.txt,bDown1.txt,"~",7
tsw bDown1,1 tsw bDown1,1
bDown1.pco=65535 bDown1.pco=65535
} }

Binary file not shown.

Binary file not shown.

View File

@@ -20,8 +20,8 @@ NsPanel needs to be flashed with Tasmota (or upcoming with ESPHome)
## Features ## Features
- Entities Page with support for cover, switch, input_boolean, binary_sensor, sensor, button, number, scenes, script, input_button and light, input_text (read-only), lock, fan - Entities Page with support for cover, switch, input_boolean, binary_sensor, sensor, button, number, scenes, script, input_button and light, input_text (read-only), lock, fan and automation
- Grid Page with support for cover, switch, input_boolean, button, scenes, light and lock - Grid Page with support for cover, switch, input_boolean, button, scenes, light, lock and automation
- Detail Pages for Lights (Brightness, Temperature and Color of the Light) and for Covers (Position) - Detail Pages for Lights (Brightness, Temperature and Color of the Light) and for Covers (Position)
- Thermostat Page - Thermostat Page
- Media Player Card - Media Player Card
@@ -352,7 +352,7 @@ nspanel-1:
entity: alarm_control_panel.alarmo entity: alarm_control_panel.alarmo
- type: cardQR - type: cardQR
title: Guest Wifi title: Guest Wifi
qr_code: "WIFI:S:test_ssid;T:WPA;P:test_pw;;" qrCode: "WIFI:S:test_ssid;T:WPA;P:test_pw;;"
entities: entities:
- entity: iText.Name.test_ssid - entity: iText.Name.test_ssid
icon: wifi icon: wifi
@@ -459,6 +459,7 @@ key | optional | type | default | description
`weatherOverrideForecast4` | True | complex | `None` | sensor entity from home assistant here to override the forth weather forecast item on the screensaver `weatherOverrideForecast4` | True | complex | `None` | sensor entity from home assistant here to override the forth weather forecast item on the screensaver
`doubleTapToUnlock` | True | boolean | `False` | requires to tap screensaver two times `doubleTapToUnlock` | True | boolean | `False` | requires to tap screensaver two times
`alternativeLayout` | True | boolean | `False` | alternative layout with humidity `alternativeLayout` | True | boolean | `False` | alternative layout with humidity
`theme` | True | complex | | configuration for theme
`defaultCard` | True | string | `None` | default page after exiting screensaver; only works with top level cards defined in cards; needs to be a navigation item, see subpages (navigate.type_key) This config option will also be evaluated as a HomeAssistant Template. `defaultCard` | True | string | `None` | default page after exiting screensaver; only works with top level cards defined in cards; needs to be a navigation item, see subpages (navigate.type_key) This config option will also be evaluated as a HomeAssistant Template.
`key` | True | string | `None` | Used by navigate items `key` | True | string | `None` | Used by navigate items
@@ -470,6 +471,36 @@ Example for the weatherOverride config options:
name: name name: name
icon: lightbulb icon: lightbulb
``` ```
#### Possible configuration values for screensaver theme config
key | option | type | default | description
-- | -- | -- | -- | --
`background` | True | list | Black | `[R, G, B]`
`time` | True | list | White | `[R, G, B]`
`timeAMPM` | True | list | White | `[R, G, B]`
`date` | True | list | White | `[R, G, B]`
`tMainIcon` | True | list | White | `[R, G, B]`
`tMainText` | True | list | White | `[R, G, B]`
`tForecast1` | True | list | White | `[R, G, B]`
`tForecast2` | True | list | White | `[R, G, B]`
`tForecast3` | True | list | White | `[R, G, B]`
`tForecast4` | True | list | White | `[R, G, B]`
`tF1Icon` | True | list | White | `[R, G, B]`
`tF2Icon` | True | list | White | `[R, G, B]`
`tF3Icon` | True | list | White | `[R, G, B]`
`tF4Icon` | True | list | White | `[R, G, B]`
`tForecast1Val` | True | list | White | `[R, G, B]`
`tForecast2Val` | True | list | White | `[R, G, B]`
`tForecast3Val` | True | list | White | `[R, G, B]`
`tForecast4Val` | True | list | White | `[R, G, B]`
`bar` | True | list | White | `[R, G, B]`
`tMainIconAlt` | True | list | White | `[R, G, B]`
`tMainTextAlt` | True | list | White | `[R, G, B]`
`tMRIcon` | True | list | White | `[R, G, B]`
`tMR` | True | list | White | `[R, G, B]`
`AutoWeather` | True | string | None | Set to `auto` to enable weather icons to change depending on state e.g. blue for rainy. Any custom colors in `tMainIcon` `tF1Icon` `tF2Icon` `tF3Icon` `tF4Icon` take precedence
Specify colours as red green and blue values from 0-255 e.g. `[255, 0, 0]` for red or `[0, 0, 255]` for blue. These are translated internally to RGB565 (note that this has lower color depth so the colours may not appear the same). Also note that the screen has a low contrast ratio, so colors look sigificantly different at full display brightness and lowest brightness.
#### Schedule sleep brightness #### Schedule sleep brightness
@@ -529,9 +560,35 @@ will allow you to navigate to a cardGrid page with the configured key testKey
key: testKey key: testKey
``` ```
#### Change behaviour of hardware buttons
##### Tasmota Rules
You can configure the buttons to mimic an UI element on the screen by configuring tasmota rules.
The following rule will change the behaviour of the two buttons to do page navigation.
```
Rule2 on Button1#state do Publish tele/%topic%/RESULT {"CustomRecv":"event,buttonPress2,hwbtn,bPrev"} endon on Button2#state do Publish tele/%topic%/RESULT {"CustomRecv":"event,buttonPress2,hwbtn,bNext"} endon
Rule2 1
```
##### Decouple buttons from controlling power outputs
If you do not want your NSPanel physical buttons to trigger the relays and prefer to have them as software configurable buttons, open the Tasmota console of your NSPanel and enter the following:
`SetOption73 1`
Your relays will now appear as switches in HomeAssistant and you can control your buttons by using automations:
![image](https://user-images.githubusercontent.com/57167030/169677954-5b811d12-dab8-4415-89aa-e4196732765e.png)
You may reverse this change by entering the following in the Tasmota console of your NSPanel:
`SetOption73 0`
Please note: Doing this will mean that if HomeAssistant is not working for any reason your buttons will not function correctly.
## How to update ## How to update

View File

@@ -145,6 +145,9 @@ class LuiController(object):
if dstCard is not None: if dstCard is not None:
self._previous_cards = [] self._previous_cards = []
self._previous_cards.append(dstCard) self._previous_cards.append(dstCard)
# set _previous_cards to first page in case it's empty
if len(self._previous_cards) == 0:
self._previous_cards.append(self._config.getCard(0))
# check for double tap if configured and render current page # check for double tap if configured and render current page
if self._config.get("screensaver.doubleTapToUnlock") and int(value) >= 2: if self._config.get("screensaver.doubleTapToUnlock") and int(value) >= 2:
self._current_card = self._previous_cards.pop() self._current_card = self._previous_cards.pop()
@@ -212,7 +215,7 @@ class LuiController(object):
self._ha_api.get_entity(entity_id).call_service("turn_on") self._ha_api.get_entity(entity_id).call_service("turn_on")
elif entity_id.startswith('script'): elif entity_id.startswith('script'):
self._ha_api.get_entity(entity_id).call_service("turn_on") self._ha_api.get_entity(entity_id).call_service("turn_on")
elif entity_id.startswith('light') or entity_id.startswith('switch') or entity_id.startswith('input_boolean'): elif entity_id.startswith('light') or entity_id.startswith('switch') or entity_id.startswith('input_boolean') or entity_id.startswith('automation'):
self._ha_api.get_entity(entity_id).call_service("toggle") self._ha_api.get_entity(entity_id).call_service("toggle")
elif entity_id.startswith('lock'): elif entity_id.startswith('lock'):
if self._ha_api.get_entity(entity_id).state == "locked": if self._ha_api.get_entity(entity_id).state == "locked":

View File

@@ -27,35 +27,81 @@ sensor_mapping_off = {
} }
sensor_mapping = { sensor_mapping = {
"apparent_power": "flash",
"aqi": "smog",
"battery": "battery",
"carbon_dioxide": "smog",
"carbon_monoxide": "smog",
"current": "flash",
"date": "calendar",
"duration": "timer",
"energy": "flash",
"frequency": "chart-bell-curve",
"gas": "gas-cylinder",
"humidity": "air-humidifier",
"illuminance": "light",
"monetary": "cash",
"nitrogen_dioxide": "smog",
"nitrogen_monoxide": "smog",
"nitrous_oxide": "smog",
"ozone": "smog",
"pm1": "smog",
"pm10": "smog",
"pm25": "smog",
"power_factor": "flash",
"power": "flash",
"pressure": "gauge",
"reactive_power": "flash",
"signal_strength": "signal",
"sulphur_dioxide": "smog",
"temperature": "thermometer", "temperature": "thermometer",
"power": "flash" "timestamp": "calendar-clock",
"volatile_organic_compounds": "smog",
"voltage": "flash"
} }
cover_mapping = {
#"device_class": ("icon-open", "icon-closed", "icon-cover-open", "icon-cover-stop", "icon-cover-close")
"awning": ("window-open", "window-closed", "arrow-up", "stop", "arrow-down"),
"blind": ("blinds-open", "blinds", "arrow-up", "stop", "arrow-down"),
"curtain": ("curtains-closed", "curtains", "arrow-expand-horizontal", "stop", "arrow-collapse-horizontal"),
"damper": ("checkbox-blank-circle", "circle-slice-8", "arrow-up", "stop", "arrow-down"),
"door": ("door-open", "door-closed", "arrow-expand-horizontal", "stop", "arrow-collapse-horizontal"),
"garage": ("garage-open", "garage", "arrow-up", "stop", "arrow-down"),
"gate": ("gate-open", "gate", "arrow-expand-horizontal", "stop", "arrow-collapse-horizontal"),
"shade": ("blinds-open", "blinds", "arrow-up", "stop", "arrow-down"),
"shutter": ("window-shutter-open", "window-shutter", "arrow-up", "stop", "arrow-down"),
"window": ("window-open", "window-closed", "arrow-up", "stop", "arrow-down"),
}
def map_to_mdi_name(ha_type, state=None, device_class=None): def map_to_mdi_name(ha_type, state=None, device_class=None, cardType=None):
if ha_type == "weather": if ha_type == "weather":
return weather_mapping[state] if state in weather_mapping else "alert-circle-outline" return weather_mapping[state] if state in weather_mapping else "alert-circle-outline"
if ha_type == "button": elif ha_type == "button":
return "gesture-tap-button" return "gesture-tap-button"
if ha_type == "scene": elif ha_type == "scene":
return "palette" return "palette"
if ha_type == "script": elif ha_type == "script":
return "script-text" return "script-text"
if ha_type == "switch": elif ha_type == "switch":
return "light-switch" return "light-switch"
if ha_type == "number": elif ha_type == "automation":
return "robot"
elif ha_type == "number":
return "ray-vertex" return "ray-vertex"
if ha_type == "light": elif ha_type == "light":
return "lightbulb" return "lightbulb"
if ha_type == "fan": elif ha_type == "fan":
return "fan" return "fan"
if ha_type == "input_boolean": elif ha_type == "input_boolean":
return "check-circle-outline" if state == "on" else "close-circle-outline" return "check-circle-outline" if state == "on" else "close-circle-outline"
if ha_type == "cover": elif ha_type == "cover":
return "window-open" if state == "open" else "window-closed" if state == "closed":
if ha_type == "lock": return cover_mapping[device_class][1] if device_class in cover_mapping else "alert-circle-outline"
else:
return cover_mapping[device_class][0] if device_class in cover_mapping else "alert-circle-outline"
elif ha_type == "lock":
return "lock-open" if state == "unlocked" else "lock" return "lock-open" if state == "unlocked" else "lock"
elif ha_type == "sensor": elif ha_type == "sensor":
if state == "on": if state == "on":
return sensor_mapping_on[device_class] if device_class in sensor_mapping_on else "alert-circle-outline" return sensor_mapping_on[device_class] if device_class in sensor_mapping_on else "alert-circle-outline"
@@ -63,10 +109,26 @@ def map_to_mdi_name(ha_type, state=None, device_class=None):
return sensor_mapping_off[device_class] if device_class in sensor_mapping_off else "alert-circle-outline" return sensor_mapping_off[device_class] if device_class in sensor_mapping_off else "alert-circle-outline"
else: else:
return sensor_mapping[device_class] if device_class in sensor_mapping else "alert-circle-outline" return sensor_mapping[device_class] if device_class in sensor_mapping else "alert-circle-outline"
else:
return "alert-circle-outline"
return "alert-circle-outline" def get_icon_id_ha(ha_type, state=None, device_class=None, overwrite=None):
def get_icon_id_ha(ha_name, state=None, device_class=None, overwrite=None):
if overwrite is not None: if overwrite is not None:
return get_icon_id(overwrite) return get_icon_id(overwrite)
return get_icon_id(map_to_mdi_name(ha_name, state, device_class)) return get_icon_id(map_to_mdi_name(ha_type, state, device_class))
def get_action_id_ha(ha_type, action, device_class=None, overwrite=None):
if overwrite is not None:
return get_icon_id(overwrite)
if ha_type == "cover":
if action == "open":
actionicon = cover_mapping[device_class][2] if device_class in cover_mapping else "alert-circle-outline"
elif action == "close":
actionicon = cover_mapping[device_class][4] if device_class in cover_mapping else "alert-circle-outline"
elif action == "stop":
actionicon = cover_mapping[device_class][3] if device_class in cover_mapping else "alert-circle-outline"
else:
actionicon = "alert-circle-outline"
else:
actionicon = "alert-circle-outline"
return get_icon_id(actionicon)

View File

@@ -1,8 +1,10 @@
import datetime import datetime
import dateutil.parser as dp import dateutil.parser as dp
from theme import get_screensaver_color_output
from icon_mapping import get_icon_id from icon_mapping import get_icon_id
from icons import get_icon_id_ha from icons import get_icon_id_ha
from icons import get_action_id_ha
from helper import scale, rgb_dec565, rgb_brightness, get_attr_safe, convert_temperature from helper import scale, rgb_dec565, rgb_brightness, get_attr_safe, convert_temperature
from localization import get_translation from localization import get_translation
@@ -56,10 +58,11 @@ class LuiPagesGen(object):
def page_type(self, target_page): def page_type(self, target_page):
self._send_mqtt_msg(f"pageType~{target_page}") self._send_mqtt_msg(f"pageType~{target_page}")
def update_screensaver_weather(self): def update_screensaver_weather(self, theme):
global babel_spec global babel_spec
we_name = self._config._config_screensaver.entity.entityId we_name = self._config._config_screensaver.entity.entityId
unit = self._config._config_screensaver.raw_config.get("weatherUnit", "celsius") unit = self._config._config_screensaver.raw_config.get("weatherUnit", "celsius")
state = {}
if self._ha_api.entity_exists(we_name): if self._ha_api.entity_exists(we_name):
we = self._ha_api.get_entity(we_name) we = self._ha_api.get_entity(we_name)
@@ -68,6 +71,7 @@ class LuiPagesGen(object):
return return
icon_cur = get_icon_id_ha("weather", state=we.state) icon_cur = get_icon_id_ha("weather", state=we.state)
state["tMainIcon"] = we.state
text_cur = convert_temperature(we.attributes.temperature, unit) text_cur = convert_temperature(we.attributes.temperature, unit)
forecastSkip = self._config._config_screensaver.raw_config.get(f"forecastSkip")+1 forecastSkip = self._config._config_screensaver.raw_config.get(f"forecastSkip")+1
@@ -94,6 +98,14 @@ class LuiPagesGen(object):
else: else:
up = up.strftime('%a') up = up.strftime('%a')
icon = get_icon_id_ha("weather", state=we.attributes.forecast[fid]['condition']) icon = get_icon_id_ha("weather", state=we.attributes.forecast[fid]['condition'])
if i == 1:
state["tF1Icon"] = we.attributes.forecast[fid]['condition']
elif i == 2:
state["tF2Icon"] = we.attributes.forecast[fid]['condition']
elif i == 3:
state["tF3Icon"] = we.attributes.forecast[fid]['condition']
elif i == 4:
state["tF4Icon"] = we.attributes.forecast[fid]['condition']
down = convert_temperature(we.attributes.forecast[fid]['temperature'], unit) down = convert_temperature(we.attributes.forecast[fid]['temperature'], unit)
else: else:
up = "" up = ""
@@ -111,12 +123,18 @@ class LuiPagesGen(object):
weather_res+=f"~{up}~{icon}~{down}" weather_res+=f"~{up}~{icon}~{down}"
altLayout = "" altLayout = ""
if self._config._config_screensaver.raw_config.get("alternativeLayout", False) is True: if self._config._config_screensaver.raw_config.get("alternativeLayout", False):
altLayout = f"~{get_icon_id('water-percent')}~{we.attributes.humidity} %" altLayout = f"~{get_icon_id('water-percent')}~{we.attributes.humidity} %"
self._send_mqtt_msg(f"weatherUpdate~{icon_cur}~{text_cur}{weather_res}{altLayout}") self._send_mqtt_msg(f"weatherUpdate~{icon_cur}~{text_cur}{weather_res}{altLayout}")
# send color if configured in screensaver
if theme is not None:
if not ("AutoWeather" in theme and theme["AutoWeather"] == "auto"):
state = None
self._send_mqtt_msg(get_screensaver_color_output(theme=theme, state=state))
def generate_entities_item(self, entity): def generate_entities_item(self, entity, cardType):
entityId = entity.entityId entityId = entity.entityId
icon = entity.iconOverride icon = entity.iconOverride
name = entity.nameOverride name = entity.nameOverride
@@ -136,6 +154,11 @@ class LuiPagesGen(object):
return f"~button~{entityId}~{icon_id}~17299~{name}~{text}" return f"~button~{entityId}~{icon_id}~17299~{name}~{text}"
else: else:
return f"~text~{entityId}~{get_icon_id('alert-circle-outline')}~17299~page not found~" return f"~text~{entityId}~{get_icon_id('alert-circle-outline')}~17299~page not found~"
if entityType == "iText":
key = entityId.split(".")[1]
value = entityId.split(".")[2]
icon_id = get_icon_id(icon) if icon is not None else get_icon_id("alert-circle-outline")
return f"~text~{entityId}~{icon_id}~17299~{key}~{value}"
if not self._ha_api.entity_exists(entityId): if not self._ha_api.entity_exists(entityId):
return f"~text~{entityId}~{get_icon_id('alert-circle-outline')}~17299~Not found check~ apps.yaml" return f"~text~{entityId}~{get_icon_id('alert-circle-outline')}~17299~Not found check~ apps.yaml"
@@ -143,33 +166,49 @@ class LuiPagesGen(object):
entity = self._ha_api.get_entity(entityId) entity = self._ha_api.get_entity(entityId)
name = name if name is not None else entity.attributes.friendly_name name = name if name is not None else entity.attributes.friendly_name
if entityType == "cover": if entityType == "cover":
icon_id = get_icon_id_ha("cover", state=entity.state, overwrite=icon)
icon_up = get_icon_id("arrow-up") device_class = entity.attributes.get("device_class", "window")
icon_stop = get_icon_id("stop") icon_id = get_icon_id_ha(ha_type=entityType, state=entity.state, device_class=device_class, overwrite=icon)
icon_down = get_icon_id("arrow-down") icon_up = get_action_id_ha(ha_type=entityType, action="open", device_class=device_class)
pos = int(entity.attributes.get("current_position", 50)) icon_stop = get_action_id_ha(ha_type=entityType, action="stop", device_class=device_class)
icon_down = get_action_id_ha(ha_type=entityType, action="close", device_class=device_class)
pos = entity.attributes.get("current_position")
if pos == 100: if pos == 100:
status = f"disable|{icon_stop}|{icon_down}" status = f"disable|enable|enable"
elif pos == 0: elif pos == 0:
status = f"{icon_up}|{icon_stop}|disable" status = f"enable|enable|disable"
elif pos is None:
pos_status = entity.state
if pos_status == "open":
status = f"disable|enable|enable"
elif pos_status == "closed":
status = f"enable|enable|disable"
else:
status = f"enable|enable|enable"
else: else:
status = f"{icon_up}|{icon_stop}|{icon_down}" status = f"enable|enable|enable"
return f"~shutter~{entityId}~{icon_id}~17299~{name}~{status}" return f"~shutter~{entityId}~{icon_id}~17299~{name}~{icon_up}|{icon_stop}|{icon_down}|{status}"
if entityType in "light": if entityType in "light":
switch_val = 1 if entity.state == "on" else 0 switch_val = 1 if entity.state == "on" else 0
icon_color = self.get_entity_color(entity) icon_color = self.get_entity_color(entity)
icon_id = get_icon_id_ha("light", overwrite=icon) icon_id = get_icon_id_ha("light", overwrite=icon)
return f"~{entityType}~{entityId}~{icon_id}~{icon_color}~{name}~{switch_val}" return f"~{entityType}~{entityId}~{icon_id}~{icon_color}~{name}~{switch_val}"
if entityType in ["switch", "input_boolean"]: if entityType in ["switch", "input_boolean", "automation"]:
switch_val = 1 if entity.state == "on" else 0 switch_val = 1 if entity.state == "on" else 0
icon_color = self.get_entity_color(entity) icon_color = self.get_entity_color(entity)
icon_id = get_icon_id_ha(entityType, state=entity.state, overwrite=icon) icon_id = get_icon_id_ha(entityType, state=entity.state, overwrite=icon)
return f"~switch~{entityId}~{icon_id}~{icon_color}~{name}~{switch_val}" return f"~switch~{entityId}~{icon_id}~{icon_color}~{name}~{switch_val}"
if entityType in ["sensor", "binary_sensor"]: if entityType in ["sensor", "binary_sensor"]:
device_class = entity.attributes.get("device_class", "") device_class = entity.attributes.get("device_class", "")
icon_id = get_icon_id_ha("sensor", state=entity.state, device_class=device_class, overwrite=icon)
unit_of_measurement = entity.attributes.get("unit_of_measurement", "") unit_of_measurement = entity.attributes.get("unit_of_measurement", "")
value = entity.state + " " + unit_of_measurement value = entity.state + " " + unit_of_measurement
if cardType == "cardGrid":
icon_id = entity.state[:4]
if icon_id[-1] == ".":
icon_id = icon_id[:-1]
else:
icon_id = get_icon_id_ha("sensor", state=entity.state, device_class=device_class, overwrite=icon)
icon_color = self.get_entity_color(entity) icon_color = self.get_entity_color(entity)
return f"~text~{entityId}~{icon_id}~{icon_color}~{name}~{value}" return f"~text~{entityId}~{icon_id}~{icon_color}~{name}~{value}"
if entityType in ["button", "input_button"]: if entityType in ["button", "input_button"]:
@@ -204,11 +243,11 @@ class LuiPagesGen(object):
return f"~text~{entityId}~{icon_id}~17299~{name}~{value}" return f"~text~{entityId}~{icon_id}~17299~{name}~{value}"
return f"~text~{entityId}~{get_icon_id('alert-circle-outline')}~17299~error~" return f"~text~{entityId}~{get_icon_id('alert-circle-outline')}~17299~error~"
def generate_entities_page(self, navigation, heading, items): def generate_entities_page(self, navigation, heading, items, cardType):
command = f"entityUpd~{heading}~{navigation}" command = f"entityUpd~{heading}~{navigation}"
# Get items and construct cmd string # Get items and construct cmd string
for item in items: for item in items:
command += self.generate_entities_item(item) command += self.generate_entities_item(item, cardType)
self._send_mqtt_msg(command) self._send_mqtt_msg(command)
def generate_thermo_page(self, navigation, entity, temp_unit): def generate_thermo_page(self, navigation, entity, temp_unit):
@@ -276,7 +315,7 @@ class LuiPagesGen(object):
else: else:
entity = self._ha_api.get_entity(item) entity = self._ha_api.get_entity(item)
heading = entity.attributes.friendly_name heading = entity.attributes.friendly_name
icon = get_icon_id('alert-circle-outline') icon = get_icon_id('speaker-off')
title = get_attr_safe(entity, "media_title", "") title = get_attr_safe(entity, "media_title", "")
author = get_attr_safe(entity, "media_artist", "") author = get_attr_safe(entity, "media_artist", "")
volume = int(get_attr_safe(entity, "volume_level", 0)*100) volume = int(get_attr_safe(entity, "volume_level", 0)*100)
@@ -362,6 +401,15 @@ class LuiPagesGen(object):
command = f"entityUpd~{item}~{navigation}{arm_buttons}~{icon}~{color}~{numpad}~{flashing}" command = f"entityUpd~{item}~{navigation}{arm_buttons}~{icon}~{color}~{numpad}~{flashing}"
self._send_mqtt_msg(command) self._send_mqtt_msg(command)
def generate_qr_page(self, navigation, heading, items, cardType, qrcode):
command = f"entityUpd~{heading}~{navigation}~{qrcode}"
# Get items and construct cmd string
for item in items:
command += self.generate_entities_item(item, cardType)
self._send_mqtt_msg(command)
def render_card(self, card, send_page_type=True): def render_card(self, card, send_page_type=True):
self._ha_api.log(f"Started rendering of page {card.pos} with type {card.cardType}") self._ha_api.log(f"Started rendering of page {card.pos} with type {card.cardType}")
@@ -377,7 +425,7 @@ class LuiPagesGen(object):
self.page_type(card.cardType) self.page_type(card.cardType)
if card.cardType in ["cardEntities", "cardGrid"]: if card.cardType in ["cardEntities", "cardGrid"]:
self.generate_entities_page(navigation, card.title, card.entities) self.generate_entities_page(navigation, card.title, card.entities, card.cardType)
return return
if card.cardType == "cardThermo": if card.cardType == "cardThermo":
temp_unit = card.raw_config.get("temperatureUnit", "celsius") temp_unit = card.raw_config.get("temperatureUnit", "celsius")
@@ -387,7 +435,12 @@ class LuiPagesGen(object):
if card.cardType == "cardAlarm": if card.cardType == "cardAlarm":
self.generate_alarm_page(navigation, card.entity) self.generate_alarm_page(navigation, card.entity)
if card.cardType == "screensaver": if card.cardType == "screensaver":
self.update_screensaver_weather() theme = card.raw_config.get("theme")
self.update_screensaver_weather(theme)
if card.cardType == "cardQR":
qrcode = card.raw_config.get("qrCode", "")
self.generate_qr_page(navigation, card.title, card.entities, card.cardType, qrcode)
def generate_light_detail_page(self, entity): def generate_light_detail_page(self, entity):
@@ -423,7 +476,9 @@ class LuiPagesGen(object):
def generate_shutter_detail_page(self, entity): def generate_shutter_detail_page(self, entity):
entity = self._ha_api.get_entity(entity) entity = self._ha_api.get_entity(entity)
icon_id = get_icon_id_ha("cover", state=entity.state) entityType="cover"
device_class = entity.attributes.get("device_class", "window")
icon_id = get_icon_id_ha(entityType, state=entity.state, device_class=device_class)
pos = entity.attributes.get("current_position") pos = entity.attributes.get("current_position")
if pos is None: if pos is None:
@@ -433,17 +488,25 @@ class LuiPagesGen(object):
pos_status = pos pos_status = pos
icon_up = get_icon_id("arrow-up") icon_up = get_action_id_ha(ha_type=entityType, action="open", device_class=device_class)
icon_stop = get_icon_id("stop") icon_stop = get_action_id_ha(ha_type=entityType, action="stop", device_class=device_class)
icon_down = get_icon_id("arrow-down") icon_down = get_action_id_ha(ha_type=entityType, action="close", device_class=device_class)
icon_up_status = "enable"
icon_stop_status = "enable"
icon_down_status = "enable"
if pos == 100: if pos == 100:
icon_up = "disable" icon_up_status = "disable"
elif pos == 0: elif pos == 0:
icon_down = "disable" icon_down_status = "disable"
elif pos == "disable":
if pos_status == "open":
icon_up_status = "disable"
elif pos_status == "closed":
icon_down_status = "disable"
pos_translation = get_translation(self._locale, "position") pos_translation = get_translation(self._locale, "position")
self._send_mqtt_msg(f"entityUpdateDetail~{pos}~{pos_translation}: {pos_status}~{pos_translation}~{icon_id}~{icon_up}~{icon_stop}~{icon_down}") self._send_mqtt_msg(f"entityUpdateDetail~{pos}~{pos_translation}: {pos_status}~{pos_translation}~{icon_id}~{icon_up}~{icon_stop}~{icon_down}~{icon_up_status}~{icon_stop_status}~{icon_down_status}")
def send_message_page(self, id, heading, msg, b1, b2): def send_message_page(self, id, heading, msg, b1, b2):
self._send_mqtt_msg(f"pageType~popupNotify") self._send_mqtt_msg(f"pageType~popupNotify")

View File

@@ -0,0 +1,72 @@
from helper import rgb_dec565
default_screensaver_color_mapping = {
#"item": "color in decimal RGB565 (0-65535)"
"background": "0",
"time": "65535",
"timeAMPM": "65535",
"date": "65535",
"tMainIcon": "65535",
"tMainText": "65535",
"tForecast1": "65535",
"tForecast2": "65535",
"tForecast3": "65535",
"tForecast4": "65535",
"tF1Icon": "65535",
"tF2Icon": "65535",
"tF3Icon": "65535",
"tF4Icon": "65535",
"tForecast1Val": "65535",
"tForecast2Val": "65535",
"tForecast3Val": "65535",
"tForecast4Val": "65535",
"bar": "65535",
"tMainIconAlt": "65535",
"tMainTextAlt": "65535",
"tMRIcon": "65535",
"tMR": "65535"
}
default_weather_icon_color_mapping = {
#"item-per HA" "color in decimal RGB 565 (0-65535)"
"clear-night": "35957", #50% grey
"cloudy": "31728", #grey-blue
"exceptional": "63488", #red
"fog": "21130", #75% grey
"hail": "65535", #white
"lightning": "65120", #golden-yellow
"lightning-rainy": "50400", #dark-golden-yellow
"partlycloudy": "35957", #50% grey
"pouring": "249", #blue
"rainy": "33759", #light-blue
"snowy": "65535", #white
"snowy-rainy": "44479", #light-blue-grey
"sunny": "63469", #bright-yellow
"windy": "35957", #50% grey
"windy-variant": "35957" #50% grey
}
def get_screensaver_color_output(theme, state=None):
color_output = "color"
for key in default_screensaver_color_mapping:
color_output += f"~{map_color(key=key, theme=theme, state=state)}"
return color_output
def map_color(key, theme, state=None):
config_color = default_screensaver_color_mapping[key]
# Use theme color if set
if key in theme:
config_color = rgb_dec565(theme[key])
# Use Autocolouring for weather
elif state is not None:
if key in ["tMainIcon", "tF1Icon", "tF2Icon", "tF3Icon", "tF4Icon"]:
config_color = map_weather_icon_color(key=key, state=state)
return config_color
def map_weather_icon_color(key, state):
if state[key] in default_weather_icon_color_mapping:
config_color = default_weather_icon_color_mapping[state[key]]
else:
config_color = "65535"
return config_color