mirror of
https://github.com/joBr99/nspanel-lovelace-ui.git
synced 2025-12-22 15:34:26 +01:00
sync (add nextion2text)
This commit is contained in:
committed by
github-actions[bot]
parent
964cfc1289
commit
f5d1a93eb2
@@ -14,51 +14,6 @@
|
|||||||
│ + // fix touch offset (Removed for US version)
|
│ + // fix touch offset (Removed for US version)
|
||||||
│ + //lcd_dev fffb 0002 0000 0020
|
│ + //lcd_dev fffb 0002 0000 0020
|
||||||
│ page pageStartup
|
│ page pageStartup
|
||||||
├── arm1.txt
|
|
||||||
│ @@ -478,22 +478,15 @@
|
|
||||||
│ Send Component ID : disabled
|
|
||||||
│ State : unpressed
|
|
||||||
│ Text : î³
|
|
||||||
│ Max. Text Size : 10
|
|
||||||
│
|
|
||||||
│ Events
|
|
||||||
│ Touch Press Event
|
|
||||||
│ - tSend.txt="event,buttonPress2,cardAlarm,"
|
|
||||||
│ - if(bPrev.txt=="î")
|
|
||||||
│ - {
|
|
||||||
│ - tSend.txt+="bHome"
|
|
||||||
│ - }else
|
|
||||||
│ - {
|
|
||||||
│ - tSend.txt+="bNext"
|
|
||||||
│ - }
|
|
||||||
│ + tSend.txt="event,buttonPress2,cardAlarm,bNext"
|
|
||||||
│ //send calc crc
|
|
||||||
│ btlen tSend.txt,sys0
|
|
||||||
│ crcrest 1,0xffff // reset CRC
|
|
||||||
│ crcputh 55 bb
|
|
||||||
│ crcputs sys0,2
|
|
||||||
│ crcputs tSend.txt,0
|
|
||||||
│ //send cmd
|
|
||||||
│ @@ -671,19 +664,14 @@
|
|
||||||
│ }
|
|
||||||
│ if(tTmp.txt=="1")
|
|
||||||
│ {
|
|
||||||
│ vis bNext,1
|
|
||||||
│ tsw mSwipeNext,1
|
|
||||||
│ bNext.txt="î³"
|
|
||||||
│ }
|
|
||||||
│ - if(tTmp.txt=="2")
|
|
||||||
│ - {
|
|
||||||
│ - vis bNext,1
|
|
||||||
│ - bNext.txt="î"
|
|
||||||
│ - }
|
|
||||||
│ //text arm1
|
|
||||||
│ spstr strCommand.txt,arm1.txt,"~",3
|
|
||||||
│ if(arm1.txt!="")
|
|
||||||
│ {
|
|
||||||
│ vis arm1,1
|
|
||||||
│ }
|
|
||||||
│ //id arm1
|
|
||||||
├── b0.txt
|
├── b0.txt
|
||||||
│ @@ -1,8 +1,8 @@
|
│ @@ -1,8 +1,8 @@
|
||||||
│ -Page popupThermo
|
│ -Page popupThermo
|
||||||
@@ -1031,7 +986,7 @@
|
|||||||
│ Disable release event after dragging: 0
|
│ Disable release event after dragging: 0
|
||||||
│ Send Component ID : disabled
|
│ Send Component ID : disabled
|
||||||
│ State : unpressed
|
│ State : unpressed
|
||||||
│ @@ -517,34 +596,52 @@
|
│ @@ -517,14 +596,39 @@
|
||||||
│ crcputs tSend.txt,0
|
│ crcputs tSend.txt,0
|
||||||
│ //send cmd
|
│ //send cmd
|
||||||
│ printh 55 bb
|
│ printh 55 bb
|
||||||
@@ -1071,28 +1026,7 @@
|
|||||||
│ Disable release event after dragging: 0
|
│ Disable release event after dragging: 0
|
||||||
│ Send Component ID : disabled
|
│ Send Component ID : disabled
|
||||||
│ State : unpressed
|
│ State : unpressed
|
||||||
│ Text : î³
|
│ @@ -681,14 +785,39 @@
|
||||||
│ Max. Text Size : 10
|
|
||||||
│
|
|
||||||
│ Events
|
|
||||||
│ Touch Press Event
|
|
||||||
│ - tSend.txt="event,buttonPress2,cardEntities,"
|
|
||||||
│ - if(bPrev.txt=="î")
|
|
||||||
│ - {
|
|
||||||
│ - tSend.txt+="bHome"
|
|
||||||
│ - }else
|
|
||||||
│ - {
|
|
||||||
│ - tSend.txt+="bNext"
|
|
||||||
│ - }
|
|
||||||
│ + tSend.txt="event,buttonPress2,cardEntities,bNext"
|
|
||||||
│ //send calc crc
|
|
||||||
│ btlen tSend.txt,sys0
|
|
||||||
│ crcrest 1,0xffff // reset CRC
|
|
||||||
│ crcputh 55 bb
|
|
||||||
│ crcputs sys0,2
|
|
||||||
│ crcputs tSend.txt,0
|
|
||||||
│ //send cmd
|
|
||||||
│ @@ -681,14 +778,39 @@
|
|
||||||
│ crcputs tSend.txt,0
|
│ crcputs tSend.txt,0
|
||||||
│ //send cmd
|
│ //send cmd
|
||||||
│ printh 55 bb
|
│ printh 55 bb
|
||||||
@@ -1132,7 +1066,7 @@
|
|||||||
│ Disable release event after dragging: 0
|
│ Disable release event after dragging: 0
|
||||||
│ Send Component ID : disabled
|
│ Send Component ID : disabled
|
||||||
│ State : unpressed
|
│ State : unpressed
|
||||||
│ @@ -781,14 +903,39 @@
|
│ @@ -781,14 +910,39 @@
|
||||||
│ crcputs tSend.txt,0
|
│ crcputs tSend.txt,0
|
||||||
│ //send cmd
|
│ //send cmd
|
||||||
│ printh 55 bb
|
│ printh 55 bb
|
||||||
@@ -1172,7 +1106,7 @@
|
|||||||
│ Disable release event after dragging: 0
|
│ Disable release event after dragging: 0
|
||||||
│ Send Component ID : disabled
|
│ Send Component ID : disabled
|
||||||
│ State : unpressed
|
│ State : unpressed
|
||||||
│ @@ -881,14 +1028,39 @@
|
│ @@ -881,14 +1035,39 @@
|
||||||
│ crcputs tSend.txt,0
|
│ crcputs tSend.txt,0
|
||||||
│ //send cmd
|
│ //send cmd
|
||||||
│ printh 55 bb
|
│ printh 55 bb
|
||||||
@@ -1212,7 +1146,7 @@
|
|||||||
│ Disable release event after dragging: 0
|
│ Disable release event after dragging: 0
|
||||||
│ Send Component ID : disabled
|
│ Send Component ID : disabled
|
||||||
│ State : unpressed
|
│ State : unpressed
|
||||||
│ @@ -989,14 +1161,41 @@
|
│ @@ -989,14 +1168,41 @@
|
||||||
│ crcputs tSend.txt,0
|
│ crcputs tSend.txt,0
|
||||||
│ //send cmd
|
│ //send cmd
|
||||||
│ printh 55 bb
|
│ printh 55 bb
|
||||||
@@ -1254,7 +1188,7 @@
|
|||||||
│ Disable release event after dragging: 0
|
│ Disable release event after dragging: 0
|
||||||
│ Send Component ID : disabled
|
│ Send Component ID : disabled
|
||||||
│
|
│
|
||||||
│ @@ -1113,14 +1312,45 @@
|
│ @@ -1113,14 +1319,45 @@
|
||||||
│ page popupFan
|
│ page popupFan
|
||||||
│ }
|
│ }
|
||||||
│ if(type4.txt=="input_sel")
|
│ if(type4.txt=="input_sel")
|
||||||
@@ -1300,27 +1234,7 @@
|
|||||||
│ Disable release event after dragging: 0
|
│ Disable release event after dragging: 0
|
||||||
│ Send Component ID : disabled
|
│ Send Component ID : disabled
|
||||||
│
|
│
|
||||||
│ @@ -1253,19 +1483,14 @@
|
│ @@ -1854,14 +2091,163 @@
|
||||||
│ }
|
|
||||||
│ if(tTmp.txt=="1")
|
|
||||||
│ {
|
|
||||||
│ vis bNext,1
|
|
||||||
│ tsw mSwipeNext,1
|
|
||||||
│ bNext.txt="î³"
|
|
||||||
│ }
|
|
||||||
│ - if(tTmp.txt=="2")
|
|
||||||
│ - {
|
|
||||||
│ - vis bNext,1
|
|
||||||
│ - bNext.txt="î"
|
|
||||||
│ - }
|
|
||||||
│ // get Type
|
|
||||||
│ spstr strCommand.txt,type1.txt,"~",3
|
|
||||||
│ // get internal name
|
|
||||||
│ spstr strCommand.txt,entn1.txt,"~",4
|
|
||||||
│ if(type1.txt=="delete"||type1.txt=="")
|
|
||||||
│ {
|
|
||||||
│ vis bUp1,0
|
|
||||||
│ @@ -1854,14 +2079,163 @@
|
|
||||||
│ covx tTmp.txt,sys0,0,0
|
│ covx tTmp.txt,sys0,0,0
|
||||||
│ hSlider4.minval=sys0
|
│ hSlider4.minval=sys0
|
||||||
│ //third value is max value
|
│ //third value is max value
|
||||||
@@ -1484,141 +1398,6 @@
|
|||||||
│ //command format pageType,specialPageName
|
│ //command format pageType,specialPageName
|
||||||
│ //write name of speical page to tId
|
│ //write name of speical page to tId
|
||||||
│ spstr strCommand.txt,tId.txt,"~",1
|
│ spstr strCommand.txt,tId.txt,"~",1
|
||||||
├── bDown2.txt
|
|
||||||
│ @@ -290,22 +290,15 @@
|
|
||||||
│ Send Component ID : disabled
|
|
||||||
│ State : unpressed
|
|
||||||
│ Text : î³
|
|
||||||
│ Max. Text Size : 10
|
|
||||||
│
|
|
||||||
│ Events
|
|
||||||
│ Touch Press Event
|
|
||||||
│ - tSend.txt="event,buttonPress2,cardThermo,"
|
|
||||||
│ - if(bPrev.txt=="î")
|
|
||||||
│ - {
|
|
||||||
│ - tSend.txt+="bHome"
|
|
||||||
│ - }else
|
|
||||||
│ - {
|
|
||||||
│ - tSend.txt+="bNext"
|
|
||||||
│ - }
|
|
||||||
│ + tSend.txt="event,buttonPress2,cardThermo,bNext"
|
|
||||||
│ //send calc crc
|
|
||||||
│ btlen tSend.txt,sys0
|
|
||||||
│ crcrest 1,0xffff // reset CRC
|
|
||||||
│ crcputh 55 bb
|
|
||||||
│ crcputs sys0,2
|
|
||||||
│ crcputs tSend.txt,0
|
|
||||||
│ //send cmd
|
|
||||||
│ @@ -925,19 +918,14 @@
|
|
||||||
│ }
|
|
||||||
│ if(tTmp.txt=="1")
|
|
||||||
│ {
|
|
||||||
│ vis bNext,1
|
|
||||||
│ tsw mSwipeNext,1
|
|
||||||
│ bNext.txt="î³"
|
|
||||||
│ }
|
|
||||||
│ - if(tTmp.txt=="2")
|
|
||||||
│ - {
|
|
||||||
│ - vis bNext,1
|
|
||||||
│ - bNext.txt="î"
|
|
||||||
│ - }
|
|
||||||
│ //entity name
|
|
||||||
│ spstr strCommand.txt,entn.txt,"~",3
|
|
||||||
│ //currentTemp
|
|
||||||
│ spstr strCommand.txt,tCurTemp.txt,"~",4
|
|
||||||
│ //dstTemp
|
|
||||||
│ spstr strCommand.txt,tTmp.txt,"~",5
|
|
||||||
│ covx tTmp.txt,xTempDest1.val,0,0
|
|
||||||
├── bEntity1.txt
|
|
||||||
│ @@ -467,22 +467,15 @@
|
|
||||||
│ Send Component ID : disabled
|
|
||||||
│ State : unpressed
|
|
||||||
│ Text : î³
|
|
||||||
│ Max. Text Size : 10
|
|
||||||
│
|
|
||||||
│ Events
|
|
||||||
│ Touch Press Event
|
|
||||||
│ - tSend.txt="event,buttonPress2,cardGrid,"
|
|
||||||
│ - if(bPrev.txt=="î")
|
|
||||||
│ - {
|
|
||||||
│ - tSend.txt+="bHome"
|
|
||||||
│ - }else
|
|
||||||
│ - {
|
|
||||||
│ - tSend.txt+="bNext"
|
|
||||||
│ - }
|
|
||||||
│ + tSend.txt="event,buttonPress2,cardGrid,bNext"
|
|
||||||
│ //send calc crc
|
|
||||||
│ btlen tSend.txt,sys0
|
|
||||||
│ crcrest 1,0xffff // reset CRC
|
|
||||||
│ crcputh 55 bb
|
|
||||||
│ crcputs sys0,2
|
|
||||||
│ crcputs tSend.txt,0
|
|
||||||
│ //send cmd
|
|
||||||
│ @@ -680,19 +673,14 @@
|
|
||||||
│ }
|
|
||||||
│ if(tTmp.txt=="1")
|
|
||||||
│ {
|
|
||||||
│ vis bNext,1
|
|
||||||
│ tsw mSwipeNext,1
|
|
||||||
│ bNext.txt="î³"
|
|
||||||
│ }
|
|
||||||
│ - if(tTmp.txt=="2")
|
|
||||||
│ - {
|
|
||||||
│ - vis bNext,1
|
|
||||||
│ - bNext.txt="î"
|
|
||||||
│ - }
|
|
||||||
│ // get Type
|
|
||||||
│ spstr strCommand.txt,type1.txt,"~",3
|
|
||||||
│ // get internal name
|
|
||||||
│ spstr strCommand.txt,entn1.txt,"~",4
|
|
||||||
│ if(type1.txt=="delete"||type1.txt=="")
|
|
||||||
│ {
|
|
||||||
│ vis tEntity1,0
|
|
||||||
├── bNext.txt
|
|
||||||
│ @@ -443,22 +443,15 @@
|
|
||||||
│ Send Component ID : disabled
|
|
||||||
│ State : unpressed
|
|
||||||
│ Text : î³
|
|
||||||
│ Max. Text Size : 10
|
|
||||||
│
|
|
||||||
│ Events
|
|
||||||
│ Touch Press Event
|
|
||||||
│ - tSend.txt="event,buttonPress2,cardMedia,"
|
|
||||||
│ - if(bPrev.txt=="î")
|
|
||||||
│ - {
|
|
||||||
│ - tSend.txt+="bHome"
|
|
||||||
│ - }else
|
|
||||||
│ - {
|
|
||||||
│ - tSend.txt+="bNext"
|
|
||||||
│ - }
|
|
||||||
│ + tSend.txt="event,buttonPress2,cardMedia,bNext"
|
|
||||||
│ //send calc crc
|
|
||||||
│ btlen tSend.txt,sys0
|
|
||||||
│ crcrest 1,0xffff // reset CRC
|
|
||||||
│ crcputh 55 bb
|
|
||||||
│ crcputs sys0,2
|
|
||||||
│ crcputs tSend.txt,0
|
|
||||||
│ //send cmd
|
|
||||||
│ @@ -628,19 +621,14 @@
|
|
||||||
│ }
|
|
||||||
│ if(tTmp.txt=="1")
|
|
||||||
│ {
|
|
||||||
│ vis bNext,1
|
|
||||||
│ tsw mSwipeNext,1
|
|
||||||
│ bNext.txt="î³"
|
|
||||||
│ }
|
|
||||||
│ - if(tTmp.txt=="2")
|
|
||||||
│ - {
|
|
||||||
│ - vis bNext,1
|
|
||||||
│ - bNext.txt="î"
|
|
||||||
│ - }
|
|
||||||
│ //entity name
|
|
||||||
│ spstr strCommand.txt,entn.txt,"~",3
|
|
||||||
│ //icon
|
|
||||||
│ spstr strCommand.txt,tIcon.txt,"~",4
|
|
||||||
│ //title
|
|
||||||
│ spstr strCommand.txt,tTitle.txt,"~",5
|
|
||||||
│ //author
|
|
||||||
├── bSendStartup.txt
|
├── bSendStartup.txt
|
||||||
│ @@ -118,15 +118,15 @@
|
│ @@ -118,15 +118,15 @@
|
||||||
│ Text tMsg3
|
│ Text tMsg3
|
||||||
|
|||||||
@@ -1,49 +1,4 @@
|
|||||||
+++ /dev/fd/62 2022-11-03 17:05:36.052771693 +0000
|
+++ /dev/fd/62 2022-11-03 17:14:06.344831301 +0000
|
||||||
+m1.txt
|
|
||||||
+22 +478,15 @@
|
|
||||||
+ Send Component ID : disabled
|
|
||||||
+ State : unpressed
|
|
||||||
+ Text : î³
|
|
||||||
+ Max. Text Size : 10
|
|
||||||
+
|
|
||||||
+nts
|
|
||||||
+ Touch Press Event
|
|
||||||
+ tSend.txt="event,buttonPress2,cardAlarm,"
|
|
||||||
+ if(bPrev.txt=="î")
|
|
||||||
+ {
|
|
||||||
+ tSend.txt+="bHome"
|
|
||||||
+ }else
|
|
||||||
+ {
|
|
||||||
+ tSend.txt+="bNext"
|
|
||||||
+ }
|
|
||||||
+ tSend.txt="event,buttonPress2,cardAlarm,bNext"
|
|
||||||
+ //send calc crc
|
|
||||||
+ btlen tSend.txt,sys0
|
|
||||||
+ crcrest 1,0xffff // reset CRC
|
|
||||||
+ crcputh 55 bb
|
|
||||||
+ crcputs sys0,2
|
|
||||||
+ crcputs tSend.txt,0
|
|
||||||
+ //send cmd
|
|
||||||
+19 +664,14 @@
|
|
||||||
+ }
|
|
||||||
+ if(tTmp.txt=="1")
|
|
||||||
+ {
|
|
||||||
+ vis bNext,1
|
|
||||||
+ tsw mSwipeNext,1
|
|
||||||
+ bNext.txt="î³"
|
|
||||||
+ }
|
|
||||||
+ if(tTmp.txt=="2")
|
|
||||||
+ {
|
|
||||||
+ vis bNext,1
|
|
||||||
+ bNext.txt="î"
|
|
||||||
+ }
|
|
||||||
+ //text arm1
|
|
||||||
+ spstr strCommand.txt,arm1.txt,"~",3
|
|
||||||
+ if(arm1.txt!="")
|
|
||||||
+ {
|
|
||||||
+ vis arm1,1
|
|
||||||
+ }
|
|
||||||
+ //id arm1
|
|
||||||
+.txt
|
+.txt
|
||||||
++1,8 @@
|
++1,8 @@
|
||||||
+pupThermo
|
+pupThermo
|
||||||
@@ -872,35 +827,12 @@
|
|||||||
+ Disable release event after dragging: 0
|
+ Disable release event after dragging: 0
|
||||||
+ Send Component ID : disabled
|
+ Send Component ID : disabled
|
||||||
+ Associated Keyboard : none
|
+ Associated Keyboard : none
|
||||||
+34 +596,52 @@
|
+14 +596,39 @@
|
||||||
+bDown5
|
+bDown5
|
||||||
+ Text : î
|
+ Text : î
|
||||||
+ tSend.txt="event,buttonPress2,"+entn5.txt+",down"
|
+ tSend.txt="event,buttonPress2,"+entn5.txt+",down"
|
||||||
+bNext
|
+bNext
|
||||||
+ Text : î³
|
+14 +785,39 @@
|
||||||
+ tSend.txt="event,buttonPress2,cardEntities,"
|
|
||||||
+ if(bPrev.txt=="î")
|
|
||||||
+ {
|
|
||||||
+ tSend.txt+="bHome"
|
|
||||||
+ }else
|
|
||||||
+ {
|
|
||||||
+ tSend.txt+="bNext"
|
|
||||||
+ }
|
|
||||||
+ tSend.txt="event,buttonPress2,cardEntities,bNext"
|
|
||||||
+14 +778,39 @@
|
|
||||||
+ crcputs tSend.txt,0
|
|
||||||
+ //send cmd
|
|
||||||
+bStop5
|
|
||||||
+ Text : î
|
|
||||||
+ tSend.txt="event,buttonPress2,"+entn5.txt+",stop"
|
|
||||||
+bText1
|
|
||||||
+ributes
|
|
||||||
+ Scope : local
|
|
||||||
+ Dragging : 0
|
|
||||||
+ Disable release event after dragging: 0
|
|
||||||
+ Send Component ID : disabled
|
|
||||||
+ State : unpressed
|
|
||||||
+14 +903,39 @@
|
|
||||||
+ crcputs tSend.txt,0
|
+ crcputs tSend.txt,0
|
||||||
+ //send cmd
|
+ //send cmd
|
||||||
+ printh 55 bb
|
+ printh 55 bb
|
||||||
@@ -908,14 +840,36 @@
|
|||||||
+ prints tSend.txt,0
|
+ prints tSend.txt,0
|
||||||
+ prints crcval,2
|
+ prints crcval,2
|
||||||
+
|
+
|
||||||
+bUp1
|
+bStop5
|
||||||
+ributes
|
+ributes
|
||||||
+ Scope : local
|
+ Scope : local
|
||||||
+ Dragging : 0
|
+ Dragging : 0
|
||||||
+ Disable release event after dragging: 0
|
+ Disable release event after dragging: 0
|
||||||
+ Send Component ID : disabled
|
+ Send Component ID : disabled
|
||||||
+ State : unpressed
|
+ State : unpressed
|
||||||
+14 +1028,39 @@
|
+ Text : î
|
||||||
|
+ tSend.txt="event,buttonPress2,"+entn5.txt+",stop"
|
||||||
|
+bText1
|
||||||
|
+14 +910,39 @@
|
||||||
|
+ crcputs tSend.txt,0
|
||||||
|
+ //send cmd
|
||||||
|
+ printh 55 bb
|
||||||
|
+ prints sys0,2
|
||||||
|
+ prints tSend.txt,0
|
||||||
|
+ prints crcval,2
|
||||||
|
+
|
||||||
|
+bText5
|
||||||
|
+ributes
|
||||||
|
+ Scope : local
|
||||||
|
+ Dragging : 0
|
||||||
|
+ Disable release event after dragging: 0
|
||||||
|
+ Send Component ID : disabled
|
||||||
|
+ State : unpressed
|
||||||
|
+ Text :
|
||||||
|
+ Max. Text Size : 45
|
||||||
|
+ tSend.txt="event,buttonPress2,"+entn5.txt+",button"
|
||||||
|
+bUp1
|
||||||
|
+14 +1035,39 @@
|
||||||
+ crcputs tSend.txt,0
|
+ crcputs tSend.txt,0
|
||||||
+ //send cmd
|
+ //send cmd
|
||||||
+ printh 55 bb
|
+ printh 55 bb
|
||||||
@@ -932,24 +886,10 @@
|
|||||||
+ State : unpressed
|
+ State : unpressed
|
||||||
+ Text : î
|
+ Text : î
|
||||||
+ Max. Text Size : 10
|
+ Max. Text Size : 10
|
||||||
+
|
|
||||||
+nts
|
|
||||||
+ Touch Press Event
|
|
||||||
+ tSend.txt="event,buttonPress2,"+entn5.txt+",up"
|
+ tSend.txt="event,buttonPress2,"+entn5.txt+",up"
|
||||||
+ //send calc crc
|
+14 +1168,41 @@
|
||||||
+ btlen tSend.txt,sys0
|
|
||||||
+ crcrest 1,0xffff // reset CRC
|
|
||||||
+ crcputh 55 bb
|
|
||||||
+ crcputs sys0,2
|
|
||||||
+ crcputs tSend.txt,0
|
|
||||||
+ //send cmd
|
|
||||||
+ printh 55 bb
|
|
||||||
+ prints sys0,2
|
|
||||||
+ prints tSend.txt,0
|
|
||||||
+ prints crcval,2
|
|
||||||
+
|
|
||||||
+ m0
|
+ m0
|
||||||
+,14 +1312,45 @@
|
+,14 +1319,45 @@
|
||||||
+ page popupFan
|
+ page popupFan
|
||||||
+ if(type4.txt=="input_sel")
|
+ if(type4.txt=="input_sel")
|
||||||
+ page popupInSel
|
+ page popupInSel
|
||||||
@@ -958,155 +898,8 @@
|
|||||||
+ page popupInSel
|
+ page popupInSel
|
||||||
+ }
|
+ }
|
||||||
+ mSpecial
|
+ mSpecial
|
||||||
+,19 +1483,14 @@
|
+,14 +2091,163 @@
|
||||||
+ }
|
|
||||||
+ if(tTmp.txt=="1")
|
|
||||||
+ {
|
|
||||||
+ vis bNext,1
|
|
||||||
+ tsw mSwipeNext,1
|
|
||||||
+ bNext.txt="î³"
|
|
||||||
+ }
|
|
||||||
+ if(tTmp.txt=="2")
|
|
||||||
+ {
|
|
||||||
+ vis bNext,1
|
|
||||||
+ bNext.txt="î"
|
|
||||||
+ }
|
|
||||||
+ // get Type
|
|
||||||
+ spstr strCommand.txt,type1.txt,"~",3
|
|
||||||
+ // get internal name
|
|
||||||
+ spstr strCommand.txt,entn1.txt,"~",4
|
|
||||||
+ if(type1.txt=="delete"||type1.txt=="")
|
|
||||||
+ {
|
|
||||||
+ vis bUp1,0
|
|
||||||
+,14 +2079,163 @@
|
|
||||||
+ if(type5.txt=="button"||type5.txt=="input_sel")
|
+ if(type5.txt=="button"||type5.txt=="input_sel")
|
||||||
+own2.txt
|
|
||||||
+22 +290,15 @@
|
|
||||||
+ State : unpressed
|
|
||||||
+ Text : î³
|
|
||||||
+ tSend.txt="event,buttonPress2,cardThermo,"
|
|
||||||
+ if(bPrev.txt=="î")
|
|
||||||
+ {
|
|
||||||
+ tSend.txt+="bHome"
|
|
||||||
+ }else
|
|
||||||
+ {
|
|
||||||
+ tSend.txt+="bNext"
|
|
||||||
+ }
|
|
||||||
+ tSend.txt="event,buttonPress2,cardThermo,bNext"
|
|
||||||
+19 +918,14 @@
|
|
||||||
+ }
|
|
||||||
+ if(tTmp.txt=="1")
|
|
||||||
+ {
|
|
||||||
+ vis bNext,1
|
|
||||||
+ tsw mSwipeNext,1
|
|
||||||
+ bNext.txt="î³"
|
|
||||||
+ }
|
|
||||||
+ if(tTmp.txt=="2")
|
|
||||||
+ {
|
|
||||||
+ vis bNext,1
|
|
||||||
+ bNext.txt="î"
|
|
||||||
+ }
|
|
||||||
+ //entity name
|
|
||||||
+ spstr strCommand.txt,entn.txt,"~",3
|
|
||||||
+ //currentTemp
|
|
||||||
+ spstr strCommand.txt,tCurTemp.txt,"~",4
|
|
||||||
+ //dstTemp
|
|
||||||
+ spstr strCommand.txt,tTmp.txt,"~",5
|
|
||||||
+ covx tTmp.txt,xTempDest1.val,0,0
|
|
||||||
+ntity1.txt
|
|
||||||
+22 +467,15 @@
|
|
||||||
+ Send Component ID : disabled
|
|
||||||
+ State : unpressed
|
|
||||||
+ Text : î³
|
|
||||||
+ Max. Text Size : 10
|
|
||||||
+nts
|
|
||||||
+ Touch Press Event
|
|
||||||
+ tSend.txt="event,buttonPress2,cardGrid,"
|
|
||||||
+ if(bPrev.txt=="î")
|
|
||||||
+ {
|
|
||||||
+ tSend.txt+="bHome"
|
|
||||||
+ }else
|
|
||||||
+ {
|
|
||||||
+ tSend.txt+="bNext"
|
|
||||||
+ }
|
|
||||||
+ tSend.txt="event,buttonPress2,cardGrid,bNext"
|
|
||||||
+ //send calc crc
|
|
||||||
+ btlen tSend.txt,sys0
|
|
||||||
+ crcrest 1,0xffff // reset CRC
|
|
||||||
+ crcputh 55 bb
|
|
||||||
+ crcputs sys0,2
|
|
||||||
+19 +673,14 @@
|
|
||||||
+ }
|
|
||||||
+ if(tTmp.txt=="1")
|
|
||||||
+ {
|
|
||||||
+ vis bNext,1
|
|
||||||
+ tsw mSwipeNext,1
|
|
||||||
+ bNext.txt="î³"
|
|
||||||
+ }
|
|
||||||
+ if(tTmp.txt=="2")
|
|
||||||
+ {
|
|
||||||
+ vis bNext,1
|
|
||||||
+ bNext.txt="î"
|
|
||||||
+ }
|
|
||||||
+ // get Type
|
|
||||||
+ spstr strCommand.txt,type1.txt,"~",3
|
|
||||||
+ // get internal name
|
|
||||||
+ spstr strCommand.txt,entn1.txt,"~",4
|
|
||||||
+ if(type1.txt=="delete"||type1.txt=="")
|
|
||||||
+ {
|
|
||||||
+ vis tEntity1,0
|
|
||||||
+ext.txt
|
|
||||||
+22 +443,15 @@
|
|
||||||
+ Text : î³
|
|
||||||
+ Max. Text Size : 10
|
|
||||||
+ tSend.txt="event,buttonPress2,cardMedia,"
|
|
||||||
+ if(bPrev.txt=="î")
|
|
||||||
+ {
|
|
||||||
+ tSend.txt+="bHome"
|
|
||||||
+ }else
|
|
||||||
+ {
|
|
||||||
+ tSend.txt+="bNext"
|
|
||||||
+ }
|
|
||||||
+ tSend.txt="event,buttonPress2,cardMedia,bNext"
|
|
||||||
+19 +621,14 @@
|
|
||||||
+ }
|
|
||||||
+ if(tTmp.txt=="1")
|
|
||||||
+ {
|
|
||||||
+ vis bNext,1
|
|
||||||
+ tsw mSwipeNext,1
|
|
||||||
+ bNext.txt="î³"
|
|
||||||
+ }
|
|
||||||
+ if(tTmp.txt=="2")
|
|
||||||
+ {
|
|
||||||
+ vis bNext,1
|
|
||||||
+ bNext.txt="î"
|
|
||||||
+ }
|
|
||||||
+ //entity name
|
|
||||||
+ spstr strCommand.txt,entn.txt,"~",3
|
|
||||||
+ //icon
|
|
||||||
+ spstr strCommand.txt,tIcon.txt,"~",4
|
|
||||||
+ //title
|
|
||||||
+ spstr strCommand.txt,tTitle.txt,"~",5
|
|
||||||
+ //author
|
|
||||||
+endStartup.txt
|
+endStartup.txt
|
||||||
+15 +118,15 @@
|
+15 +118,15 @@
|
||||||
+sg3
|
|
||||||
+ Associated Keyboard : none
|
|
||||||
+ Text : please check your backend configuration
|
|
||||||
+ Text : pls check your backend configuration
|
|
||||||
+ Max. Text Size : 100
|
|
||||||
+
|
|
||||||
+end
|
+end
|
||||||
+ributes
|
|
||||||
+ Scope : local
|
|
||||||
+ Dragging : 0
|
|
||||||
+ Disable release event after dragging: 0
|
|
||||||
+15 +173,15 @@
|
|
||||||
+ Max. Text Size : 10
|
|
||||||
+ recmod=1
|
|
||||||
+ bauds=115200
|
|
||||||
+ // startup event
|
|
||||||
+ tSend.txt="event,startup,"+tVersion.txt+",eu"
|
|
||||||
+ tSend.txt="event,startup,"+tVersion.txt+",us-p"
|
|
||||||
+ crcputs tSend.txt,0
|
|
||||||
+ //send cmd
|
|
||||||
|
|||||||
@@ -1014,7 +1014,14 @@ Button bNext
|
|||||||
|
|
||||||
Events
|
Events
|
||||||
Touch Press Event
|
Touch Press Event
|
||||||
tSend.txt="event,buttonPress2,cardAlarm,bNext"
|
tSend.txt="event,buttonPress2,cardAlarm,"
|
||||||
|
if(bPrev.txt=="î")
|
||||||
|
{
|
||||||
|
tSend.txt+="bHome"
|
||||||
|
}else
|
||||||
|
{
|
||||||
|
tSend.txt+="bNext"
|
||||||
|
}
|
||||||
//send calc crc
|
//send calc crc
|
||||||
btlen tSend.txt,sys0
|
btlen tSend.txt,sys0
|
||||||
crcrest 1,0xffff // reset CRC
|
crcrest 1,0xffff // reset CRC
|
||||||
@@ -1251,6 +1258,11 @@ Timer tmSerial
|
|||||||
tsw mSwipeNext,1
|
tsw mSwipeNext,1
|
||||||
bNext.txt="î³"
|
bNext.txt="î³"
|
||||||
}
|
}
|
||||||
|
if(tTmp.txt=="2")
|
||||||
|
{
|
||||||
|
vis bNext,1
|
||||||
|
bNext.txt="î"
|
||||||
|
}
|
||||||
//text arm1
|
//text arm1
|
||||||
spstr strCommand.txt,arm1.txt,"~",3
|
spstr strCommand.txt,arm1.txt,"~",3
|
||||||
if(arm1.txt!="")
|
if(arm1.txt!="")
|
||||||
|
|||||||
@@ -1259,7 +1259,14 @@ Button bNext
|
|||||||
|
|
||||||
Events
|
Events
|
||||||
Touch Press Event
|
Touch Press Event
|
||||||
tSend.txt="event,buttonPress2,cardEntities,bNext"
|
tSend.txt="event,buttonPress2,cardEntities,"
|
||||||
|
if(bPrev.txt=="î")
|
||||||
|
{
|
||||||
|
tSend.txt+="bHome"
|
||||||
|
}else
|
||||||
|
{
|
||||||
|
tSend.txt+="bNext"
|
||||||
|
}
|
||||||
//send calc crc
|
//send calc crc
|
||||||
btlen tSend.txt,sys0
|
btlen tSend.txt,sys0
|
||||||
crcrest 1,0xffff // reset CRC
|
crcrest 1,0xffff // reset CRC
|
||||||
@@ -2633,6 +2640,11 @@ Timer tmSerial
|
|||||||
tsw mSwipeNext,1
|
tsw mSwipeNext,1
|
||||||
bNext.txt="î³"
|
bNext.txt="î³"
|
||||||
}
|
}
|
||||||
|
if(tTmp.txt=="2")
|
||||||
|
{
|
||||||
|
vis bNext,1
|
||||||
|
bNext.txt="î"
|
||||||
|
}
|
||||||
// get Type
|
// get Type
|
||||||
spstr strCommand.txt,type1.txt,"~",3
|
spstr strCommand.txt,type1.txt,"~",3
|
||||||
// get internal name
|
// get internal name
|
||||||
|
|||||||
@@ -634,7 +634,14 @@ Button bNext
|
|||||||
|
|
||||||
Events
|
Events
|
||||||
Touch Press Event
|
Touch Press Event
|
||||||
tSend.txt="event,buttonPress2,cardThermo,bNext"
|
tSend.txt="event,buttonPress2,cardThermo,"
|
||||||
|
if(bPrev.txt=="î")
|
||||||
|
{
|
||||||
|
tSend.txt+="bHome"
|
||||||
|
}else
|
||||||
|
{
|
||||||
|
tSend.txt+="bNext"
|
||||||
|
}
|
||||||
//send calc crc
|
//send calc crc
|
||||||
btlen tSend.txt,sys0
|
btlen tSend.txt,sys0
|
||||||
crcrest 1,0xffff // reset CRC
|
crcrest 1,0xffff // reset CRC
|
||||||
@@ -1642,6 +1649,11 @@ Timer tmSerial
|
|||||||
tsw mSwipeNext,1
|
tsw mSwipeNext,1
|
||||||
bNext.txt="î³"
|
bNext.txt="î³"
|
||||||
}
|
}
|
||||||
|
if(tTmp.txt=="2")
|
||||||
|
{
|
||||||
|
vis bNext,1
|
||||||
|
bNext.txt="î"
|
||||||
|
}
|
||||||
//entity name
|
//entity name
|
||||||
spstr strCommand.txt,entn.txt,"~",3
|
spstr strCommand.txt,entn.txt,"~",3
|
||||||
//currentTemp
|
//currentTemp
|
||||||
|
|||||||
@@ -857,7 +857,14 @@ Button bNext
|
|||||||
|
|
||||||
Events
|
Events
|
||||||
Touch Press Event
|
Touch Press Event
|
||||||
tSend.txt="event,buttonPress2,cardGrid,bNext"
|
tSend.txt="event,buttonPress2,cardGrid,"
|
||||||
|
if(bPrev.txt=="î")
|
||||||
|
{
|
||||||
|
tSend.txt+="bHome"
|
||||||
|
}else
|
||||||
|
{
|
||||||
|
tSend.txt+="bNext"
|
||||||
|
}
|
||||||
//send calc crc
|
//send calc crc
|
||||||
btlen tSend.txt,sys0
|
btlen tSend.txt,sys0
|
||||||
crcrest 1,0xffff // reset CRC
|
crcrest 1,0xffff // reset CRC
|
||||||
@@ -1123,6 +1130,11 @@ Timer tmSerial
|
|||||||
tsw mSwipeNext,1
|
tsw mSwipeNext,1
|
||||||
bNext.txt="î³"
|
bNext.txt="î³"
|
||||||
}
|
}
|
||||||
|
if(tTmp.txt=="2")
|
||||||
|
{
|
||||||
|
vis bNext,1
|
||||||
|
bNext.txt="î"
|
||||||
|
}
|
||||||
// get Type
|
// get Type
|
||||||
spstr strCommand.txt,type1.txt,"~",3
|
spstr strCommand.txt,type1.txt,"~",3
|
||||||
// get internal name
|
// get internal name
|
||||||
|
|||||||
@@ -828,7 +828,14 @@ Button bNext
|
|||||||
|
|
||||||
Events
|
Events
|
||||||
Touch Press Event
|
Touch Press Event
|
||||||
tSend.txt="event,buttonPress2,cardMedia,bNext"
|
tSend.txt="event,buttonPress2,cardMedia,"
|
||||||
|
if(bPrev.txt=="î")
|
||||||
|
{
|
||||||
|
tSend.txt+="bHome"
|
||||||
|
}else
|
||||||
|
{
|
||||||
|
tSend.txt+="bNext"
|
||||||
|
}
|
||||||
//send calc crc
|
//send calc crc
|
||||||
btlen tSend.txt,sys0
|
btlen tSend.txt,sys0
|
||||||
crcrest 1,0xffff // reset CRC
|
crcrest 1,0xffff // reset CRC
|
||||||
@@ -1057,6 +1064,11 @@ Timer tmSerial
|
|||||||
tsw mSwipeNext,1
|
tsw mSwipeNext,1
|
||||||
bNext.txt="î³"
|
bNext.txt="î³"
|
||||||
}
|
}
|
||||||
|
if(tTmp.txt=="2")
|
||||||
|
{
|
||||||
|
vis bNext,1
|
||||||
|
bNext.txt="î"
|
||||||
|
}
|
||||||
//entity name
|
//entity name
|
||||||
spstr strCommand.txt,entn.txt,"~",3
|
spstr strCommand.txt,entn.txt,"~",3
|
||||||
//icon
|
//icon
|
||||||
|
|||||||
@@ -12,31 +12,31 @@ b0
|
|||||||
202 Unique line(s) of event code
|
202 Unique line(s) of event code
|
||||||
bNext
|
bNext
|
||||||
34 Component(s)
|
34 Component(s)
|
||||||
394 Line(s) of event code
|
406 Line(s) of event code
|
||||||
213 Unique line(s) of event code
|
216 Unique line(s) of event code
|
||||||
|
arm1
|
||||||
|
40 Component(s)
|
||||||
|
439 Line(s) of event code
|
||||||
|
261 Unique line(s) of event code
|
||||||
bSendStartup
|
bSendStartup
|
||||||
19 Component(s)
|
19 Component(s)
|
||||||
172 Line(s) of event code
|
172 Line(s) of event code
|
||||||
125 Unique line(s) of event code
|
125 Unique line(s) of event code
|
||||||
bEntity1
|
bEntity1
|
||||||
42 Component(s)
|
42 Component(s)
|
||||||
478 Line(s) of event code
|
490 Line(s) of event code
|
||||||
283 Unique line(s) of event code
|
286 Unique line(s) of event code
|
||||||
arm1
|
|
||||||
40 Component(s)
|
|
||||||
427 Line(s) of event code
|
|
||||||
258 Unique line(s) of event code
|
|
||||||
bDown2
|
bDown2
|
||||||
53 Component(s)
|
53 Component(s)
|
||||||
596 Line(s) of event code
|
608 Line(s) of event code
|
||||||
313 Unique line(s) of event code
|
316 Unique line(s) of event code
|
||||||
bDown1
|
bDown1
|
||||||
77 Component(s)
|
77 Component(s)
|
||||||
1379 Line(s) of event code
|
1391 Line(s) of event code
|
||||||
614 Unique line(s) of event code
|
617 Unique line(s) of event code
|
||||||
|
|
||||||
Total
|
Total
|
||||||
17 Page(s)
|
17 Page(s)
|
||||||
337 Component(s)
|
337 Component(s)
|
||||||
4194 Line(s) of event code
|
4254 Line(s) of event code
|
||||||
1292 Unique line(s) of event code
|
1291 Unique line(s) of event code
|
||||||
|
|||||||
@@ -482,7 +482,14 @@ Button bNext
|
|||||||
|
|
||||||
Events
|
Events
|
||||||
Touch Press Event
|
Touch Press Event
|
||||||
tSend.txt="event,buttonPress2,cardAlarm,bNext"
|
tSend.txt="event,buttonPress2,cardAlarm,"
|
||||||
|
if(bPrev.txt=="î")
|
||||||
|
{
|
||||||
|
tSend.txt+="bHome"
|
||||||
|
}else
|
||||||
|
{
|
||||||
|
tSend.txt+="bNext"
|
||||||
|
}
|
||||||
//send calc crc
|
//send calc crc
|
||||||
btlen tSend.txt,sys0
|
btlen tSend.txt,sys0
|
||||||
crcrest 1,0xffff // reset CRC
|
crcrest 1,0xffff // reset CRC
|
||||||
@@ -668,6 +675,11 @@ Timer tmSerial
|
|||||||
tsw mSwipeNext,1
|
tsw mSwipeNext,1
|
||||||
bNext.txt="î³"
|
bNext.txt="î³"
|
||||||
}
|
}
|
||||||
|
if(tTmp.txt=="2")
|
||||||
|
{
|
||||||
|
vis bNext,1
|
||||||
|
bNext.txt="î"
|
||||||
|
}
|
||||||
//text arm1
|
//text arm1
|
||||||
spstr strCommand.txt,arm1.txt,"~",3
|
spstr strCommand.txt,arm1.txt,"~",3
|
||||||
if(arm1.txt!="")
|
if(arm1.txt!="")
|
||||||
|
|||||||
@@ -637,7 +637,14 @@ Button bNext
|
|||||||
|
|
||||||
Events
|
Events
|
||||||
Touch Press Event
|
Touch Press Event
|
||||||
tSend.txt="event,buttonPress2,cardEntities,bNext"
|
tSend.txt="event,buttonPress2,cardEntities,"
|
||||||
|
if(bPrev.txt=="î")
|
||||||
|
{
|
||||||
|
tSend.txt+="bHome"
|
||||||
|
}else
|
||||||
|
{
|
||||||
|
tSend.txt+="bNext"
|
||||||
|
}
|
||||||
//send calc crc
|
//send calc crc
|
||||||
btlen tSend.txt,sys0
|
btlen tSend.txt,sys0
|
||||||
crcrest 1,0xffff // reset CRC
|
crcrest 1,0xffff // reset CRC
|
||||||
@@ -1487,6 +1494,11 @@ Timer tmSerial
|
|||||||
tsw mSwipeNext,1
|
tsw mSwipeNext,1
|
||||||
bNext.txt="î³"
|
bNext.txt="î³"
|
||||||
}
|
}
|
||||||
|
if(tTmp.txt=="2")
|
||||||
|
{
|
||||||
|
vis bNext,1
|
||||||
|
bNext.txt="î"
|
||||||
|
}
|
||||||
// get Type
|
// get Type
|
||||||
spstr strCommand.txt,type1.txt,"~",3
|
spstr strCommand.txt,type1.txt,"~",3
|
||||||
// get internal name
|
// get internal name
|
||||||
|
|||||||
@@ -294,7 +294,14 @@ Button bNext
|
|||||||
|
|
||||||
Events
|
Events
|
||||||
Touch Press Event
|
Touch Press Event
|
||||||
tSend.txt="event,buttonPress2,cardThermo,bNext"
|
tSend.txt="event,buttonPress2,cardThermo,"
|
||||||
|
if(bPrev.txt=="î")
|
||||||
|
{
|
||||||
|
tSend.txt+="bHome"
|
||||||
|
}else
|
||||||
|
{
|
||||||
|
tSend.txt+="bNext"
|
||||||
|
}
|
||||||
//send calc crc
|
//send calc crc
|
||||||
btlen tSend.txt,sys0
|
btlen tSend.txt,sys0
|
||||||
crcrest 1,0xffff // reset CRC
|
crcrest 1,0xffff // reset CRC
|
||||||
@@ -922,6 +929,11 @@ Timer tmSerial
|
|||||||
tsw mSwipeNext,1
|
tsw mSwipeNext,1
|
||||||
bNext.txt="î³"
|
bNext.txt="î³"
|
||||||
}
|
}
|
||||||
|
if(tTmp.txt=="2")
|
||||||
|
{
|
||||||
|
vis bNext,1
|
||||||
|
bNext.txt="î"
|
||||||
|
}
|
||||||
//entity name
|
//entity name
|
||||||
spstr strCommand.txt,entn.txt,"~",3
|
spstr strCommand.txt,entn.txt,"~",3
|
||||||
//currentTemp
|
//currentTemp
|
||||||
|
|||||||
@@ -471,7 +471,14 @@ Button bNext
|
|||||||
|
|
||||||
Events
|
Events
|
||||||
Touch Press Event
|
Touch Press Event
|
||||||
tSend.txt="event,buttonPress2,cardGrid,bNext"
|
tSend.txt="event,buttonPress2,cardGrid,"
|
||||||
|
if(bPrev.txt=="î")
|
||||||
|
{
|
||||||
|
tSend.txt+="bHome"
|
||||||
|
}else
|
||||||
|
{
|
||||||
|
tSend.txt+="bNext"
|
||||||
|
}
|
||||||
//send calc crc
|
//send calc crc
|
||||||
btlen tSend.txt,sys0
|
btlen tSend.txt,sys0
|
||||||
crcrest 1,0xffff // reset CRC
|
crcrest 1,0xffff // reset CRC
|
||||||
@@ -677,6 +684,11 @@ Timer tmSerial
|
|||||||
tsw mSwipeNext,1
|
tsw mSwipeNext,1
|
||||||
bNext.txt="î³"
|
bNext.txt="î³"
|
||||||
}
|
}
|
||||||
|
if(tTmp.txt=="2")
|
||||||
|
{
|
||||||
|
vis bNext,1
|
||||||
|
bNext.txt="î"
|
||||||
|
}
|
||||||
// get Type
|
// get Type
|
||||||
spstr strCommand.txt,type1.txt,"~",3
|
spstr strCommand.txt,type1.txt,"~",3
|
||||||
// get internal name
|
// get internal name
|
||||||
|
|||||||
@@ -447,7 +447,14 @@ Button bNext
|
|||||||
|
|
||||||
Events
|
Events
|
||||||
Touch Press Event
|
Touch Press Event
|
||||||
tSend.txt="event,buttonPress2,cardMedia,bNext"
|
tSend.txt="event,buttonPress2,cardMedia,"
|
||||||
|
if(bPrev.txt=="î")
|
||||||
|
{
|
||||||
|
tSend.txt+="bHome"
|
||||||
|
}else
|
||||||
|
{
|
||||||
|
tSend.txt+="bNext"
|
||||||
|
}
|
||||||
//send calc crc
|
//send calc crc
|
||||||
btlen tSend.txt,sys0
|
btlen tSend.txt,sys0
|
||||||
crcrest 1,0xffff // reset CRC
|
crcrest 1,0xffff // reset CRC
|
||||||
@@ -625,6 +632,11 @@ Timer tmSerial
|
|||||||
tsw mSwipeNext,1
|
tsw mSwipeNext,1
|
||||||
bNext.txt="î³"
|
bNext.txt="î³"
|
||||||
}
|
}
|
||||||
|
if(tTmp.txt=="2")
|
||||||
|
{
|
||||||
|
vis bNext,1
|
||||||
|
bNext.txt="î"
|
||||||
|
}
|
||||||
//entity name
|
//entity name
|
||||||
spstr strCommand.txt,entn.txt,"~",3
|
spstr strCommand.txt,entn.txt,"~",3
|
||||||
//icon
|
//icon
|
||||||
|
|||||||
Reference in New Issue
Block a user