From 5b4a4c11b62e41b82c62a0ce9641255e163ba0d0 Mon Sep 17 00:00:00 2001 From: joBr99 <29555657+joBr99@users.noreply.github.com> Date: Thu, 31 Mar 2022 23:29:43 +0200 Subject: [PATCH] sync some changes --- HMI/US/portrait/diff-known-good-changes.txt | 803 ++++++++++++++++++++ HMI/US/portrait/nspanel_US_P.HMI | Bin 7479955 -> 7479955 bytes 2 files changed, 803 insertions(+) create mode 100644 HMI/US/portrait/diff-known-good-changes.txt diff --git a/HMI/US/portrait/diff-known-good-changes.txt b/HMI/US/portrait/diff-known-good-changes.txt new file mode 100644 index 00000000..67b4649b --- /dev/null +++ b/HMI/US/portrait/diff-known-good-changes.txt @@ -0,0 +1,803 @@ +diff -bur HMI/n2t-out/Program.s.txt HMI/US/portrait/n2t-out/Program.s.txt +--- HMI/n2t-out/Program.s.txt 2022-03-31 10:58:08.149531933 +0000 ++++ HMI/US/portrait/n2t-out/Program.s.txt 2022-03-31 10:58:08.637532153 +0000 +@@ -11,6 +11,6 @@ + // dim value + int dimValue=40 + int dimValueNormal=100 +- // fix touch offset +- lcd_dev fffb 0002 0000 0020 ++ // fix touch offset (Removed for US version) ++ //lcd_dev fffb 0002 0000 0020 + page pageStartup +diff -bur HMI/n2t-out/cardEntities.txt HMI/US/portrait/n2t-out/cardEntities.txt +--- HMI/n2t-out/cardEntities.txt 2022-03-31 10:58:08.149531933 +0000 ++++ HMI/US/portrait/n2t-out/cardEntities.txt 2022-03-31 10:58:08.637532153 +0000 +@@ -62,6 +62,26 @@ + vis bText4,0 + vis hSlider4,0 + vis nNum4,0 ++ //ui e5 ++ vis btOnOff5,0 ++ vis bUp5,0 ++ vis bStop5,0 ++ vis bDown5,0 ++ vis tIcon5,0 ++ vis tEntity5,0 ++ vis bText5,0 ++ vis hSlider5,0 ++ vis nNum5,0 ++ //ui e6 ++ vis btOnOff6,0 ++ vis bUp6,0 ++ vis bStop6,0 ++ vis bDown6,0 ++ vis tIcon6,0 ++ vis tEntity6,0 ++ vis bText6,0 ++ vis hSlider6,0 ++ vis nNum6,0 + + Variable (string) strCommand + Attributes +@@ -117,6 +137,30 @@ + Text : + Max. Text Size: 70 + ++Variable (string) entn5 ++ Attributes ++ Scope : local ++ Text : ++ Max. Text Size: 70 ++ ++Variable (string) entn6 ++ Attributes ++ Scope : local ++ Text : ++ Max. Text Size: 70 ++ ++Variable (string) type5 ++ Attributes ++ Scope : local ++ Text : ++ Max. Text Size: 10 ++ ++Variable (string) type6 ++ Attributes ++ Scope : local ++ Text : ++ Max. Text Size: 10 ++ + Number nNum1 + Attributes + Scope : local +@@ -153,6 +197,24 @@ + Associated Keyboard : none + Value : 0 + ++Number nNum5 ++ Attributes ++ Scope : local ++ Dragging : 0 ++ Disable release event after dragging: 0 ++ Send Component ID : disabled ++ Associated Keyboard : none ++ Value : 0 ++ ++Number nNum6 ++ Attributes ++ Scope : local ++ Dragging : 0 ++ Disable release event after dragging: 0 ++ Send Component ID : disabled ++ Associated Keyboard : none ++ Value : 0 ++ + Text tHeading + Attributes + Scope : local +@@ -283,6 +345,46 @@ + Text : + Max. Text Size : 50 + ++Text tEntity5 ++ Attributes ++ Scope : local ++ Dragging : 0 ++ Disable release event after dragging: 0 ++ Send Component ID : disabled ++ Associated Keyboard : none ++ Text : tEntity5 ++ Max. Text Size : 30 ++ ++Text tIcon5 ++ Attributes ++ Scope : local ++ Dragging : 0 ++ Disable release event after dragging: 0 ++ Send Component ID : disabled ++ Associated Keyboard : none ++ Text :  ++ Max. Text Size : 30 ++ ++Text tEntity6 ++ Attributes ++ Scope : local ++ Dragging : 0 ++ Disable release event after dragging: 0 ++ Send Component ID : disabled ++ Associated Keyboard : none ++ Text : tEntity6 ++ Max. Text Size : 30 ++ ++Text tIcon6 ++ Attributes ++ Scope : local ++ Dragging : 0 ++ Disable release event after dragging: 0 ++ Send Component ID : disabled ++ Associated Keyboard : none ++ Text :  ++ Max. Text Size : 30 ++ + Picture p0 + Attributes + Scope : local +@@ -402,6 +504,62 @@ + prints tSend.txt,0 + prints crcval,2 + ++Slider hSlider5 ++ Attributes ++ Scope : local ++ Dragging : 0 ++ Disable release event after dragging: 0 ++ Send Component ID : disabled ++ Position : 50 ++ Upper range limit : 100 ++ Lower range limit : 0 ++ ++ Events ++ Touch Release Event ++ nNum5.val=hSlider5.val ++ tSend.txt="event,buttonPress2,"+entn5.txt+",number-set," ++ covx nNum5.val,tTmp.txt,0,0 ++ tSend.txt+=tTmp.txt ++ //send calc crc ++ btlen tSend.txt,sys0 ++ crcrest 1,0xffff // reset CRC ++ crcputh 55 bb ++ crcputs sys0,1 ++ crcputs tSend.txt,0 ++ //send cmd ++ printh 55 bb ++ prints sys0,2 ++ prints tSend.txt,0 ++ prints crcval,2 ++ ++Slider hSlider6 ++ Attributes ++ Scope : local ++ Dragging : 0 ++ Disable release event after dragging: 0 ++ Send Component ID : disabled ++ Position : 50 ++ Upper range limit : 100 ++ Lower range limit : 0 ++ ++ Events ++ Touch Release Event ++ nNum6.val=hSlider6.val ++ tSend.txt="event,buttonPress2,"+entn6.txt+",number-set," ++ covx nNum6.val,tTmp.txt,0,0 ++ tSend.txt+=tTmp.txt ++ //send calc crc ++ btlen tSend.txt,sys0 ++ crcrest 1,0xffff // reset CRC ++ crcputh 55 bb ++ crcputs sys0,1 ++ crcputs tSend.txt,0 ++ //send cmd ++ printh 55 bb ++ prints sys0,2 ++ prints tSend.txt,0 ++ prints crcval,2 ++ + Button bDown1 + Attributes + Scope : local +@@ -852,6 +1010,206 @@ + prints tSend.txt,0 + prints crcval,2 + ++Button bStop5 ++ Attributes ++ Scope : local ++ Dragging : 0 ++ Disable release event after dragging: 0 ++ Send Component ID : disabled ++ State : unpressed ++ Text :  ++ Max. Text Size : 10 ++ ++ Events ++ Touch Press Event ++ tSend.txt="event,buttonPress2,"+entn5.txt+",stop" ++ //send calc crc ++ btlen tSend.txt,sys0 ++ crcrest 1,0xffff // reset CRC ++ crcputh 55 bb ++ crcputs sys0,1 ++ crcputs tSend.txt,0 ++ //send cmd ++ printh 55 bb ++ prints sys0,2 ++ prints tSend.txt,0 ++ prints crcval,2 ++ ++Button bDown5 ++ Attributes ++ Scope : local ++ Dragging : 0 ++ Disable release event after dragging: 0 ++ Send Component ID : disabled ++ State : unpressed ++ Text :  ++ Max. Text Size : 10 ++ ++ Events ++ Touch Press Event ++ tSend.txt="event,buttonPress2,"+entn5.txt+",down" ++ //send calc crc ++ btlen tSend.txt,sys0 ++ crcrest 1,0xffff // reset CRC ++ crcputh 55 bb ++ crcputs sys0,1 ++ crcputs tSend.txt,0 ++ //send cmd ++ printh 55 bb ++ prints sys0,2 ++ prints tSend.txt,0 ++ prints crcval,2 ++ ++Button bUp5 ++ Attributes ++ Scope : local ++ Dragging : 0 ++ Disable release event after dragging: 0 ++ Send Component ID : disabled ++ State : unpressed ++ Text :  ++ Max. Text Size : 10 ++ ++ Events ++ Touch Press Event ++ tSend.txt="event,buttonPress2,"+entn5.txt+",up" ++ //send calc crc ++ btlen tSend.txt,sys0 ++ crcrest 1,0xffff // reset CRC ++ crcputh 55 bb ++ crcputs sys0,1 ++ crcputs tSend.txt,0 ++ //send cmd ++ printh 55 bb ++ prints sys0,2 ++ prints tSend.txt,0 ++ prints crcval,2 ++ ++Button bText5 ++ Attributes ++ Scope : local ++ Dragging : 0 ++ Disable release event after dragging: 0 ++ Send Component ID : disabled ++ State : unpressed ++ Text : newtxt ++ Max. Text Size : 10 ++ ++ Events ++ Touch Press Event ++ tSend.txt="event,buttonPress2,"+entn5.txt+",button" ++ //send calc crc ++ btlen tSend.txt,sys0 ++ crcrest 1,0xffff // reset CRC ++ crcputh 55 bb ++ crcputs sys0,1 ++ crcputs tSend.txt,0 ++ //send cmd ++ printh 55 bb ++ prints sys0,2 ++ prints tSend.txt,0 ++ prints crcval,2 ++ ++Button bStop6 ++ Attributes ++ Scope : local ++ Dragging : 0 ++ Disable release event after dragging: 0 ++ Send Component ID : disabled ++ State : unpressed ++ Text :  ++ Max. Text Size : 10 ++ ++ Events ++ Touch Press Event ++ tSend.txt="event,buttonPress2,"+entn6.txt+",stop" ++ //send calc crc ++ btlen tSend.txt,sys0 ++ crcrest 1,0xffff // reset CRC ++ crcputh 55 bb ++ crcputs sys0,1 ++ crcputs tSend.txt,0 ++ //send cmd ++ printh 55 bb ++ prints sys0,2 ++ prints tSend.txt,0 ++ prints crcval,2 ++ ++Button bDown6 ++ Attributes ++ Scope : local ++ Dragging : 0 ++ Disable release event after dragging: 0 ++ Send Component ID : disabled ++ State : unpressed ++ Text :  ++ Max. Text Size : 10 ++ ++ Events ++ Touch Press Event ++ tSend.txt="event,buttonPress2,"+entn6.txt+",down" ++ //send calc crc ++ btlen tSend.txt,sys0 ++ crcrest 1,0xffff // reset CRC ++ crcputh 55 bb ++ crcputs sys0,1 ++ crcputs tSend.txt,0 ++ //send cmd ++ printh 55 bb ++ prints sys0,2 ++ prints tSend.txt,0 ++ prints crcval,2 ++ ++Button bUp6 ++ Attributes ++ Scope : local ++ Dragging : 0 ++ Disable release event after dragging: 0 ++ Send Component ID : disabled ++ State : unpressed ++ Text :  ++ Max. Text Size : 10 ++ ++ Events ++ Touch Press Event ++ tSend.txt="event,buttonPress2,"+entn6.txt+",up" ++ //send calc crc ++ btlen tSend.txt,sys0 ++ crcrest 1,0xffff // reset CRC ++ crcputh 55 bb ++ crcputs sys0,1 ++ crcputs tSend.txt,0 ++ //send cmd ++ printh 55 bb ++ prints sys0,2 ++ prints tSend.txt,0 ++ prints crcval,2 ++ ++Button bText6 ++ Attributes ++ Scope : local ++ Dragging : 0 ++ Disable release event after dragging: 0 ++ Send Component ID : disabled ++ State : unpressed ++ Text : newtxt ++ Max. Text Size : 10 ++ ++ Events ++ Touch Press Event ++ tSend.txt="event,buttonPress2,"+entn6.txt+",button" ++ //send calc crc ++ btlen tSend.txt,sys0 ++ crcrest 1,0xffff // reset CRC ++ crcputh 55 bb ++ crcputs sys0,1 ++ crcputs tSend.txt,0 ++ //send cmd ++ printh 55 bb ++ prints sys0,2 ++ prints tSend.txt,0 ++ prints crcval,2 ++ + Dual-state Button btOnOff1 + Attributes + Scope : local +@@ -960,6 +1318,60 @@ + prints tSend.txt,0 + prints crcval,2 + ++Dual-state Button btOnOff5 ++ Attributes ++ Scope : local ++ Dragging : 0 ++ Disable release event after dragging: 0 ++ Send Component ID : disabled ++ State : unpressed ++ Text : ++ Max. Text Size : 10 ++ ++ Events ++ Touch Press Event ++ tSend.txt="event,buttonPress2,"+entn5.txt+",OnOff," ++ covx btOnOff5.val,tTmp.txt,0,0 ++ tSend.txt+=tTmp.txt ++ //send calc crc ++ btlen tSend.txt,sys0 ++ crcrest 1,0xffff // reset CRC ++ crcputh 55 bb ++ crcputs sys0,1 ++ crcputs tSend.txt,0 ++ //send cmd ++ printh 55 bb ++ prints sys0,2 ++ prints tSend.txt,0 ++ prints crcval,2 ++ ++Dual-state Button btOnOff6 ++ Attributes ++ Scope : local ++ Dragging : 0 ++ Disable release event after dragging: 0 ++ Send Component ID : disabled ++ State : unpressed ++ Text : ++ Max. Text Size : 10 ++ ++ Events ++ Touch Press Event ++ tSend.txt="event,buttonPress2,"+entn6.txt+",OnOff," ++ covx btOnOff6.val,tTmp.txt,0,0 ++ tSend.txt+=tTmp.txt ++ //send calc crc ++ btlen tSend.txt,sys0 ++ crcrest 1,0xffff // reset CRC ++ crcputh 55 bb ++ crcputs sys0,1 ++ crcputs tSend.txt,0 ++ //send cmd ++ printh 55 bb ++ prints sys0,2 ++ prints tSend.txt,0 ++ prints crcval,2 ++ + Hotspot mSpecial + Attributes + Scope : local +@@ -1065,6 +1477,50 @@ + page popupLight + } + ++Hotspot m4 ++ Attributes ++ Scope : local ++ Dragging : 0 ++ Disable release event after dragging: 0 ++ Send Component ID : disabled ++ ++ Events ++ Touch Press Event ++ pageIcons.tTmp1.txt=tEntity5.txt ++ pageIcons.tTmp2.txt=entn5.txt ++ if(type5.txt=="shutter") ++ { ++ //popupShutter.tHeading.txt=tEntity5.txt ++ page popupShutter ++ } ++ if(type5.txt=="light") ++ { ++ //popupLight.tEntity.txt=tEntity5.txt ++ page popupLight ++ } ++ ++Hotspot m5 ++ Attributes ++ Scope : local ++ Dragging : 0 ++ Disable release event after dragging: 0 ++ Send Component ID : disabled ++ ++ Events ++ Touch Press Event ++ pageIcons.tTmp1.txt=tEntity6.txt ++ pageIcons.tTmp2.txt=entn6.txt ++ if(type6.txt=="shutter") ++ { ++ //popupShutter.tHeading.txt=tEntity6.txt ++ page popupShutter ++ } ++ if(type6.txt=="light") ++ { ++ //popupLight.tEntity.txt=tEntity6.txt ++ page popupLight ++ } ++ + Timer tmSerial + Attributes + Scope : local +@@ -1616,6 +2072,254 @@ + covx tTmp.txt,sys0,0,0 + hSlider4.maxval=sys0 + } ++ // get Type ++ spstr strCommand.txt,type5.txt,",",27 ++ // get internal name ++ spstr strCommand.txt,entn5.txt,",",28 ++ if(type5.txt=="delete"||type5.txt=="") ++ { ++ vis bUp5,0 ++ vis bStop5,0 ++ vis bDown5,0 ++ vis btOnOff5,0 ++ vis tEntity5,0 ++ vis tIcon5,0 ++ vis bText5,0 ++ vis hSlider5,0 ++ vis nNum5,0 ++ }else ++ { ++ // change icon ++ spstr strCommand.txt,tTmp.txt,",",29 ++ covx tTmp.txt,sys0,0,0 ++ substr pageIcons.tIcons.txt,tIcon5.txt,sys0,1 ++ vis tIcon5,1 ++ // change icon color ++ spstr strCommand.txt,tTmp.txt,",",30 ++ covx tTmp.txt,sys0,0,0 ++ tIcon5.pco=sys0 ++ // set name ++ spstr strCommand.txt,tEntity5.txt,",",31 ++ vis tEntity5,1 ++ } ++ if(type5.txt=="shutter") ++ { ++ vis bUp5,1 ++ vis bStop5,1 ++ vis bDown5,1 ++ vis btOnOff5,0 ++ vis bText5,0 ++ vis hSlider5,0 ++ vis nNum5,0 ++ } ++ if(type5.txt=="light") ++ { ++ vis bUp5,0 ++ vis bStop5,0 ++ vis bDown5,0 ++ vis btOnOff5,1 ++ vis bText5,0 ++ vis hSlider5,0 ++ vis nNum5,0 ++ // get Button State (optional Value) ++ spstr strCommand.txt,tTmp.txt,",",32 ++ covx tTmp.txt,sys0,0,0 ++ btOnOff5.val=sys0 ++ } ++ if(type5.txt=="switch") ++ { ++ vis bUp5,0 ++ vis bStop5,0 ++ vis bDown5,0 ++ vis btOnOff5,1 ++ vis bText5,0 ++ vis hSlider5,0 ++ vis nNum5,0 ++ // get Button State (optional Value) ++ spstr strCommand.txt,tTmp.txt,",",32 ++ covx tTmp.txt,sys0,0,0 ++ btOnOff5.val=sys0 ++ } ++ if(type5.txt=="text") ++ { ++ vis bUp5,0 ++ vis bStop5,0 ++ vis bDown5,0 ++ vis btOnOff5,0 ++ vis bText5,1 ++ tsw bText5,0 ++ vis hSlider5,0 ++ vis nNum5,0 ++ bText5.pco=65535 ++ bText5.pco2=65535 ++ // get Text (optional Value) ++ spstr strCommand.txt,bText5.txt,",",32 ++ } ++ if(type5.txt=="button") ++ { ++ vis bUp5,0 ++ vis bStop5,0 ++ vis bDown5,0 ++ vis btOnOff5,0 ++ vis bText5,1 ++ tsw bText5,1 ++ vis hSlider5,0 ++ vis nNum5,0 ++ bText5.pco=1374 ++ bText5.pco2=1374 ++ // get Text (optional Value) ++ spstr strCommand.txt,bText5.txt,",",32 ++ } ++ if(type5.txt=="number") ++ { ++ vis bUp5,0 ++ vis bStop5,0 ++ vis bDown5,0 ++ vis btOnOff5,0 ++ vis bText5,0 ++ tsw bText5,0 ++ vis hSlider5,1 ++ vis nNum5,1 ++ // get config (optional Value) (use bText as variable) ++ spstr strCommand.txt,bText5.txt,",",32 ++ //first value is current value ++ spstr bText5.txt,tTmp.txt,"|",0 ++ covx tTmp.txt,sys0,0,0 ++ hSlider5.val=sys0 ++ nNum5.val=sys0 ++ //second value is min value ++ spstr bText5.txt,tTmp.txt,"|",1 ++ covx tTmp.txt,sys0,0,0 ++ hSlider5.minval=sys0 ++ //third value is max value ++ spstr bText5.txt,tTmp.txt,"|",2 ++ covx tTmp.txt,sys0,0,0 ++ hSlider5.maxval=sys0 ++ } ++ // get Type ++ spstr strCommand.txt,type6.txt,",",33 ++ // get internal name ++ spstr strCommand.txt,entn6.txt,",",34 ++ if(type6.txt=="delete"||type6.txt=="") ++ { ++ vis bUp6,0 ++ vis bStop6,0 ++ vis bDown6,0 ++ vis btOnOff6,0 ++ vis tEntity6,0 ++ vis tIcon6,0 ++ vis bText6,0 ++ vis hSlider6,0 ++ vis nNum6,0 ++ }else ++ { ++ // change icon ++ spstr strCommand.txt,tTmp.txt,",",35 ++ covx tTmp.txt,sys0,0,0 ++ substr pageIcons.tIcons.txt,tIcon6.txt,sys0,1 ++ vis tIcon6,1 ++ // change icon color ++ spstr strCommand.txt,tTmp.txt,",",36 ++ covx tTmp.txt,sys0,0,0 ++ tIcon6.pco=sys0 ++ // set name ++ spstr strCommand.txt,tEntity6.txt,",",37 ++ vis tEntity6,1 ++ } ++ if(type6.txt=="shutter") ++ { ++ vis bUp6,1 ++ vis bStop6,1 ++ vis bDown6,1 ++ vis btOnOff6,0 ++ vis bText6,0 ++ vis hSlider6,0 ++ vis nNum6,0 ++ } ++ if(type6.txt=="light") ++ { ++ vis bUp6,0 ++ vis bStop6,0 ++ vis bDown6,0 ++ vis btOnOff6,1 ++ vis bText6,0 ++ vis hSlider6,0 ++ vis nNum6,0 ++ // get Button State (optional Value) ++ spstr strCommand.txt,tTmp.txt,",",38 ++ covx tTmp.txt,sys0,0,0 ++ btOnOff6.val=sys0 ++ } ++ if(type6.txt=="switch") ++ { ++ vis bUp6,0 ++ vis bStop6,0 ++ vis bDown6,0 ++ vis btOnOff6,1 ++ vis bText6,0 ++ vis hSlider6,0 ++ vis nNum6,0 ++ // get Button State (optional Value) ++ spstr strCommand.txt,tTmp.txt,",",38 ++ covx tTmp.txt,sys0,0,0 ++ btOnOff6.val=sys0 ++ } ++ if(type6.txt=="text") ++ { ++ vis bUp6,0 ++ vis bStop6,0 ++ vis bDown6,0 ++ vis btOnOff6,0 ++ vis bText6,1 ++ tsw bText6,0 ++ vis hSlider6,0 ++ vis nNum6,0 ++ bText6.pco=65535 ++ bText6.pco2=65535 ++ // get Text (optional Value) ++ spstr strCommand.txt,bText6.txt,",",38 ++ } ++ if(type6.txt=="button") ++ { ++ vis bUp6,0 ++ vis bStop6,0 ++ vis bDown6,0 ++ vis btOnOff6,0 ++ vis bText6,1 ++ tsw bText6,1 ++ vis hSlider6,0 ++ vis nNum6,0 ++ bText6.pco=1374 ++ bText6.pco2=1374 ++ // get Text (optional Value) ++ spstr strCommand.txt,bText6.txt,",",38 ++ } ++ if(type6.txt=="number") ++ { ++ vis bUp6,0 ++ vis bStop6,0 ++ vis bDown6,0 ++ vis btOnOff6,0 ++ vis bText6,0 ++ tsw bText6,0 ++ vis hSlider6,1 ++ vis nNum6,1 ++ // get config (optional Value) (use bText as variable) ++ spstr strCommand.txt,bText6.txt,",",38 ++ //first value is current value ++ spstr bText6.txt,tTmp.txt,"|",0 ++ covx tTmp.txt,sys0,0,0 ++ hSlider6.val=sys0 ++ nNum6.val=sys0 ++ //second value is min value ++ spstr bText6.txt,tTmp.txt,"|",1 ++ covx tTmp.txt,sys0,0,0 ++ hSlider6.minval=sys0 ++ //third value is max value ++ spstr bText6.txt,tTmp.txt,"|",2 ++ covx tTmp.txt,sys0,0,0 ++ hSlider6.maxval=sys0 ++ } + } + if(tInstruction.txt=="pageType") + { +diff -bur HMI/n2t-out/pageStartup.txt HMI/US/portrait/n2t-out/pageStartup.txt +--- HMI/n2t-out/pageStartup.txt 2022-03-31 10:58:08.149531933 +0000 ++++ HMI/US/portrait/n2t-out/pageStartup.txt 2022-03-31 10:58:08.637532153 +0000 +@@ -142,7 +142,7 @@ + Disable release event after dragging: 0 + Send Component ID : disabled + Associated Keyboard : none +- Text : please check your backend configuration ++ Text : pls check your backend configuration + Max. Text Size : 100 + + Text tVersion +@@ -177,7 +177,7 @@ + recmod=1 + bauds=115200 + // startup event +- tSend.txt="event,startup,"+tVersion.txt+",eu" ++ tSend.txt="event,startup,"+tVersion.txt+",us-p" + //send calc crc + btlen tSend.txt,sys0 + crcrest 1,0xffff // reset CRC diff --git a/HMI/US/portrait/nspanel_US_P.HMI b/HMI/US/portrait/nspanel_US_P.HMI index f1a00f5f5abbdc59aea456d8b77bbd1edcb37ca0..e0b51761206f8253045bab18f28537dff2541aa1 100644 GIT binary patch delta 2503 zcmdUxYfO_@7{||fX$w&&NV!-Ui1ot7js+em(zl zp6AJV-t#v9wCDQGm>z^K=%!~V={}oEY4`Or)ZY`JsWIf+k@E*>h2*f<^4gq4j4Tr) zWk+#+WrUC~pK1p`ofb2?#x4J4M$#(?p_E%~L5}HZ>VT?!BDr;q|3^kL< zjia?a>ve}UjlcVr?j6>34eKZ(Au)&s(IUF=urAj8?El<5PvDbyBG>aIp3GBtDxb^^ zdYh{qVwXB~vZ(uf`` zAf#KZEuBxuK2?9W5Z{%WGgO2>g~(Z*xI6&N$AsCgg(%u=+4N=ZOw%Iq#j(^O2`3K-)kqNPJLq2HbNxz3G%j!oX>ZN zoC$k`-rObh;2}I`?1q$I@R&Bd8?|^ZN*@W2bh48YwZMydPZ}hcnI-&q4_g&4IdY(; z!#lI8xW(D-HyM+#$lI9hs&038`V4Xjs1D8PdV~Cs+lY2F_b+lM-ZShquWY^tQ^G-Yu>2 zR;U^AF)2Uy*Z@n72`+1Z2fwxI;bBQ2@%U}eL}~^~Su!lt`jf!?5z}gv4uRU_WVrLI zFOp+^m@HtKFDFlY`9%0Y=Zw%DVtP@T|92}dL@KFhliCA%Iu&-8V<(wff2;@Uq$y0-=YNwZ4+==Ec>=kdrj-mK#x76yNIV}mwPqJRgYEZ6IkI_QOrUq(5 z7_h$##6f&7v%$p*uO6yHOa~i!*$Js2DxT7Z@w?AjQoz~ATA=1*mi1bP)2eh}GUCSq zcW-(OVCcuRxKk_#s-L$cLPBA4IvlB&HE`&LXFQC%?@NRm{j8YggXM-N``C4VB9xqB z4V1y|N;yTjopIrtr&t?>fjT)C+HQL$OD;3K^Uya%a#_?le{`lU=zQo)lU!DH+osNT zb#|z8fjZBDz|h(xIJeRpD_P7i$u3XP21{BS+~V3{!)aC~S!alM6~20!4K>1?b~YY{ zFZy@D{jb>~=>49hgdNw|Q`%K}l_6HdhS(7YQh>}s<|6Zu`A8wM09l9>A;ridqy$-v zlpK+2H{q!Ot@s*xIGB~pvjA@#^AWHqt|S&OVg)+28r8<362CS)_> zL|n)gqycdwjYt#XLA>G8tG<>ht^3M1b^T!6#T@_2ysxFB0pN&Z!o1_H!o2&?)W^&_ zd!8`w95nTp=KW}aFz-9)@MGrvS&7geE)jb73Za{-gs!L+nnfA8AKY!o>^yA-XO z_bvPzFlOGL_=GVtSr~BFR$<=zgCa+draoryO*@7DBFf0)_u)0Eh8@2@N*fMDEe=NM kL;r<&r)>`xebBr-qbqc&8EHZMh>Wx%ZQ;$0%zyrex5REv z<++^3>FnWooWYqqpI_oE&Soz!;Fmdv7xE&`xR{r7374{O zP|quL#Qc#oGj}xfaZoE0rN2dDuB4Xn1JPblRH&DCI~>-#KI0@>V6*a#B%;H1D+iK^ z?#h}HyvsyR^$-nvt(x0Dq9o1AcXXnDIk&xn=#b2hR^xrjn(0cSA#1H}`oT~1z?w@Z zs)+8(37@S~IaIB3%@&pQfXef0Ren~l@_2*Fx0+PGux}=JTPurJqCe%ru?W!-nV&_8 z>hNS{w%YfJZ1N6v98fiX9aJ^?Co0E3SNTpHCrCV@L$h-B;aNLJX62(q4dP@$xKgb8 z#g{Io3c?OEP^?$mG@n@LF}8}UXWKmHy%N1XMJzwwmMi}Lw!S*op%p^V24RSpJ;}ymrwC4_ zrkQ=2;W_R(j-JTVng7a4Jj-m6HymEpy$uh(+J${=0X9|I&G=ptS32IJ2D(D(q-3bv z*P&{%-cxhW$B16AI&%NbP`df}r?59>9{bL4d*fq+2DC#II$%F^nqz}qBhh~W9GQiH