From 35c4c597cd6b3745a54fefd92c18232feca6db50 Mon Sep 17 00:00:00 2001
From: ft-Demo <fischertechnik-team@fischer.de>
Date: Wed, 7 Dec 2022 08:44:28 +0000
Subject: [PATCH] commit by robo pro coding

---
 lib/File.blockly | 92 +++++++++++-------------------------------------
 lib/File.py      | 29 +++++++--------
 2 files changed, 35 insertions(+), 86 deletions(-)

diff --git a/lib/File.blockly b/lib/File.blockly
index 658a354..98b772e 100644
--- a/lib/File.blockly
+++ b/lib/File.blockly
@@ -14,7 +14,6 @@
     <variable id="0*rgTj2O4/)Q@i|9XZ`3">calib_data_VGR</variable>
     <variable id="}+G;?`L|R%?sGFhd=Dy@">calib_data_DPS</variable>
     <variable id="I(%pOg6My*c;G}[1Dc^C">calib_data_SLD</variable>
-    <variable id="a*v8UOjM9uFtoNA^u;d2">file</variable>
   </variables>
   <block type="util_python_imports" id="V6K{0l(G9rYO[ebX(2Rg" x="0" y="0">
     <field name="value">import json&amp;#10;import logging&amp;#10;import subprocess</field>
@@ -321,104 +320,53 @@
                                                               </block>
                                                             </value>
                                                             <next>
-                                                              <block type="util_python" id=":$+Pe._w42=pGv!!r+M3" inline="true">
-                                                                <field name="value">#write backup to usb stick</field>
+                                                              <block type="util_python" id="h+c/cbWJp[TLFFN9`$$q" inline="true">
+                                                                <field name="value">#try to write a backup to usb stick&amp;#10;try:&amp;#10;  fileUSB = open('/opt/ft/workspaces/ext_usb/sda/'+controller_name, 'w', encoding='utf8')&amp;#10;  fileUSB.close()&amp;#10;  fileCalib = open('/opt/ft/workspaces/ext_usb/sda/FactoryCalib.json', 'w', encoding='utf8')&amp;#10;  fileCalib.write(calib_json)&amp;#10;  fileCalib.close()&amp;#10;except IOError as e:&amp;#10;  print(e)</field>
                                                                 <next>
-                                                                  <block type="util_python" id="h+c/cbWJp[TLFFN9`$$q" inline="true">
-                                                                    <field name="value">file = open('/opt/ft/workspaces/ext_usb/sda/'+controller_name, 'w', encoding='utf8')&amp;#10;file.close()</field>
+                                                                  <block type="util_python" id="Izs2GXFiON#$#Yl{Q8;1" inline="true">
+                                                                    <field name="value">#write backup if usb stick available</field>
                                                                     <next>
-                                                                      <block type="variables_set" id="Hh])TIbceD-T4s=U(Ju{">
-                                                                        <field name="VAR" id="a*v8UOjM9uFtoNA^u;d2">file</field>
-                                                                        <value name="VALUE">
-                                                                          <block type="open_file" id="8O[+A-:lXCVITgnNnQGD">
+                                                                      <block type="controls_if" id="09=a@^dj}r4pu#WD/eA6">
+                                                                        <value name="IF0">
+                                                                          <block type="exist_file" id="I7|+c5i*^F2*?:6N5#yo">
                                                                             <field name="path">/opt/ft/workspaces/ext_usb/sda/FactoryCalib.json</field>
-                                                                            <field name="mode">w</field>
                                                                           </block>
                                                                         </value>
-                                                                        <next>
-                                                                          <block type="variables_set" id="eUP8hbOa+CNHbJPufDoP">
+                                                                        <statement name="DO0">
+                                                                          <block type="variables_set" id="K*DH,4qh!p;ur/6|~F[h">
                                                                             <field name="VAR" id="~VV%d%niWCJE,.rkhq+F">fileCalib</field>
                                                                             <value name="VALUE">
-                                                                              <block type="open_file" id="_u]3(uYacxd)2TO`%-D=">
-                                                                                <field name="path">/opt/ft/workspaces/ext_usb/sda/FactoryCalib.json</field>
+                                                                              <block type="open_file" id="yVNjYQ8Th%ZaX#4A|f~J">
+                                                                                <field name="path">/opt/ft/workspaces/FactoryCalib_backup.json</field>
                                                                                 <field name="mode">w</field>
                                                                               </block>
                                                                             </value>
                                                                             <next>
-                                                                              <block type="write_file" id="Qc^18_nP]mh:/Y],,!RI">
+                                                                              <block type="write_file" id="5Aks_^CG:3r|wT@(n;^X">
                                                                                 <field name="new line">FALSE</field>
                                                                                 <value name="value">
-                                                                                  <block type="variables_get" id="i~,3dtDvV~5c3@$0K:/6">
+                                                                                  <block type="variables_get" id="RRF]jvzKJCYMj;YbDg/T">
                                                                                     <field name="VAR" id="q/.=RAMZ%`q2./=6O!Ce">calib_json</field>
                                                                                   </block>
                                                                                 </value>
                                                                                 <value name="name">
-                                                                                  <block type="variables_get" id="RItd:yN}I+w|iw;2m.yL">
+                                                                                  <block type="variables_get" id="PjAAgZ}`zVf?!(S#FKKf">
                                                                                     <field name="VAR" id="~VV%d%niWCJE,.rkhq+F">fileCalib</field>
                                                                                   </block>
                                                                                 </value>
                                                                                 <next>
-                                                                                  <block type="close_file" id="E8sa,97/zQk1H]x73H}P">
+                                                                                  <block type="close_file" id="^8,Y3Of?qgB2|tPVM4+l">
                                                                                     <value name="name">
-                                                                                      <block type="variables_get" id="}]`xothGm[@CVqzdL5`8">
+                                                                                      <block type="variables_get" id="$N{1fKu=_KJ=vM|ZrGd{">
                                                                                         <field name="VAR" id="~VV%d%niWCJE,.rkhq+F">fileCalib</field>
                                                                                       </block>
                                                                                     </value>
-                                                                                    <next>
-                                                                                      <block type="util_python" id="Izs2GXFiON#$#Yl{Q8;1" inline="true">
-                                                                                        <field name="value">#write backup if usb stick available</field>
-                                                                                        <next>
-                                                                                          <block type="controls_if" id="09=a@^dj}r4pu#WD/eA6">
-                                                                                            <value name="IF0">
-                                                                                              <block type="exist_file" id="I7|+c5i*^F2*?:6N5#yo">
-                                                                                                <field name="path">/opt/ft/workspaces/ext_usb/sda/FactoryCalib.json</field>
-                                                                                              </block>
-                                                                                            </value>
-                                                                                            <statement name="DO0">
-                                                                                              <block type="variables_set" id="K*DH,4qh!p;ur/6|~F[h">
-                                                                                                <field name="VAR" id="~VV%d%niWCJE,.rkhq+F">fileCalib</field>
-                                                                                                <value name="VALUE">
-                                                                                                  <block type="open_file" id="yVNjYQ8Th%ZaX#4A|f~J">
-                                                                                                    <field name="path">/opt/ft/workspaces/FactoryCalib_backup.json</field>
-                                                                                                    <field name="mode">w</field>
-                                                                                                  </block>
-                                                                                                </value>
-                                                                                                <next>
-                                                                                                  <block type="write_file" id="5Aks_^CG:3r|wT@(n;^X">
-                                                                                                    <field name="new line">FALSE</field>
-                                                                                                    <value name="value">
-                                                                                                      <block type="variables_get" id="RRF]jvzKJCYMj;YbDg/T">
-                                                                                                        <field name="VAR" id="q/.=RAMZ%`q2./=6O!Ce">calib_json</field>
-                                                                                                      </block>
-                                                                                                    </value>
-                                                                                                    <value name="name">
-                                                                                                      <block type="variables_get" id="PjAAgZ}`zVf?!(S#FKKf">
-                                                                                                        <field name="VAR" id="~VV%d%niWCJE,.rkhq+F">fileCalib</field>
-                                                                                                      </block>
-                                                                                                    </value>
-                                                                                                    <next>
-                                                                                                      <block type="close_file" id="^8,Y3Of?qgB2|tPVM4+l">
-                                                                                                        <value name="name">
-                                                                                                          <block type="variables_get" id="$N{1fKu=_KJ=vM|ZrGd{">
-                                                                                                            <field name="VAR" id="~VV%d%niWCJE,.rkhq+F">fileCalib</field>
-                                                                                                          </block>
-                                                                                                        </value>
-                                                                                                      </block>
-                                                                                                    </next>
-                                                                                                  </block>
-                                                                                                </next>
-                                                                                              </block>
-                                                                                            </statement>
-                                                                                          </block>
-                                                                                        </next>
-                                                                                      </block>
-                                                                                    </next>
                                                                                   </block>
                                                                                 </next>
                                                                               </block>
                                                                             </next>
                                                                           </block>
-                                                                        </next>
+                                                                        </statement>
                                                                       </block>
                                                                     </next>
                                                                   </block>
@@ -454,7 +402,7 @@
       </block>
     </statement>
   </block>
-  <block type="procedures_defnoreturn" id="tVMP(UyYD{#akqawgAD)" x="0" y="2859">
+  <block type="procedures_defnoreturn" id="tVMP(UyYD{#akqawgAD)" x="0" y="2842">
     <field name="NAME">printData</field>
     <statement name="STACK">
       <block type="util_python" id="?2BTA(iUoYy2fTZ{kwC]" inline="true">
@@ -467,7 +415,7 @@
       </block>
     </statement>
   </block>
-  <block type="procedures_defnoreturn" id="W_Tm2ceF76n#%|aA^wY=" x="0" y="3128">
+  <block type="procedures_defnoreturn" id="W_Tm2ceF76n#%|aA^wY=" x="0" y="3111">
     <field name="NAME">writeFileFactoryCalib_current</field>
     <statement name="STACK">
       <block type="util_python" id=":#2-+xit`bp;61|s@=sM" inline="true">
@@ -521,7 +469,7 @@
       </block>
     </statement>
   </block>
-  <block type="procedures_defnoreturn" id="D4S#AhC`3g4!*EYi+(|," x="0" y="3419">
+  <block type="procedures_defnoreturn" id="D4S#AhC`3g4!*EYi+(|," x="0" y="3402">
     <field name="NAME">writeFileFactoryCalib_defaults</field>
     <statement name="STACK">
       <block type="util_python" id="~Y`c%9oJ)a#:TlTdG*+N" inline="true">
diff --git a/lib/File.py b/lib/File.py
index 66f5379..1de67ae 100644
--- a/lib/File.py
+++ b/lib/File.py
@@ -25,11 +25,10 @@ calib_data_HBW = None
 calib_data_VGR = None
 calib_data_DPS = None
 calib_data_SLD = None
-file2 = None
 
 
 def loadFileFactoryCalib():
-    global _ssc, _hbw, _vgr, _dps, _sld, fileCalib, calib_json, ts, calib_data_SSC, calib_map, calib_data_HBW, calib_data_VGR, calib_data_DPS, calib_data_SLD, file2
+    global _ssc, _hbw, _vgr, _dps, _sld, fileCalib, calib_json, ts, calib_data_SSC, calib_map, calib_data_HBW, calib_data_VGR, calib_data_DPS, calib_data_SLD
     logging.log(logging.TRACE, '-')
     if exists('/opt/ft/workspaces/FactoryCalib.json'):
         logging.log(logging.DEBUG, 'load calibration values')
@@ -45,7 +44,7 @@ def loadFileFactoryCalib():
 
 
 def readFileFactoryCalib():
-    global _ssc, _hbw, _vgr, _dps, _sld, fileCalib, calib_json, ts, calib_data_SSC, calib_map, calib_data_HBW, calib_data_VGR, calib_data_DPS, calib_data_SLD, file2
+    global _ssc, _hbw, _vgr, _dps, _sld, fileCalib, calib_json, ts, calib_data_SSC, calib_map, calib_data_HBW, calib_data_VGR, calib_data_DPS, calib_data_SLD
     logging.log(logging.TRACE, '-')
     fileCalib = open('/opt/ft/workspaces/FactoryCalib.json', 'r', encoding='utf8')
     calib_json = fileCalib.read()
@@ -66,7 +65,7 @@ def readFileFactoryCalib():
 
 
 def writeFileFactoryCalib(_ssc, _hbw, _vgr, _dps, _sld):
-    global fileCalib, calib_json, ts, calib_data_SSC, calib_map, calib_data_HBW, calib_data_VGR, calib_data_DPS, calib_data_SLD, file2
+    global fileCalib, calib_json, ts, calib_data_SSC, calib_map, calib_data_HBW, calib_data_VGR, calib_data_DPS, calib_data_SLD
     logging.log(logging.TRACE, '-')
     controller_name = os.uname()[1]
     ts = timestamp_utcnow()
@@ -103,13 +102,15 @@ def writeFileFactoryCalib(_ssc, _hbw, _vgr, _dps, _sld):
     fileCalib = open('/opt/ft/workspaces/FactoryCalib.json', 'w', encoding='utf8')
     fileCalib.write(calib_json)
     fileCalib.close()
-    #write backup to usb stick
-    file = open('/opt/ft/workspaces/ext_usb/sda/'+controller_name, 'w', encoding='utf8')
-    file.close()
-    file2 = open('/opt/ft/workspaces/ext_usb/sda/FactoryCalib.json', 'w', encoding='utf8')
-    fileCalib = open('/opt/ft/workspaces/ext_usb/sda/FactoryCalib.json', 'w', encoding='utf8')
-    fileCalib.write(calib_json)
-    fileCalib.close()
+    #try to write a backup to usb stick
+    try:
+      fileUSB = open('/opt/ft/workspaces/ext_usb/sda/'+controller_name, 'w', encoding='utf8')
+      fileUSB.close()
+      fileCalib = open('/opt/ft/workspaces/ext_usb/sda/FactoryCalib.json', 'w', encoding='utf8')
+      fileCalib.write(calib_json)
+      fileCalib.close()
+    except IOError as e:
+      print(e)
     #write backup if usb stick available
     if exists('/opt/ft/workspaces/ext_usb/sda/FactoryCalib.json'):
         fileCalib = open('/opt/ft/workspaces/FactoryCalib_backup.json', 'w', encoding='utf8')
@@ -118,7 +119,7 @@ def writeFileFactoryCalib(_ssc, _hbw, _vgr, _dps, _sld):
 
 
 def printData():
-    global _ssc, _hbw, _vgr, _dps, _sld, fileCalib, calib_json, ts, calib_data_SSC, calib_map, calib_data_HBW, calib_data_VGR, calib_data_DPS, calib_data_SLD, file2
+    global _ssc, _hbw, _vgr, _dps, _sld, fileCalib, calib_json, ts, calib_data_SSC, calib_map, calib_data_HBW, calib_data_VGR, calib_data_DPS, calib_data_SLD
     logging.log(logging.TRACE, '-')
     print("SSC: ", calib_data_SSC)
     print("HBW: ", calib_data_HBW)
@@ -128,13 +129,13 @@ def printData():
 
 
 def writeFileFactoryCalib_current():
-    global _ssc, _hbw, _vgr, _dps, _sld, fileCalib, calib_json, ts, calib_data_SSC, calib_map, calib_data_HBW, calib_data_VGR, calib_data_DPS, calib_data_SLD, file2
+    global _ssc, _hbw, _vgr, _dps, _sld, fileCalib, calib_json, ts, calib_data_SSC, calib_map, calib_data_HBW, calib_data_VGR, calib_data_DPS, calib_data_SLD
     logging.log(logging.TRACE, '-')
     writeFileFactoryCalib(get_calib_data_SSC(), get_calib_data_HBW(), get_calib_data_VGR(), get_calib_data_DPS(), get_calib_data_SLD())
 
 
 def writeFileFactoryCalib_defaults():
-    global _ssc, _hbw, _vgr, _dps, _sld, fileCalib, calib_json, ts, calib_data_SSC, calib_map, calib_data_HBW, calib_data_VGR, calib_data_DPS, calib_data_SLD, file2
+    global _ssc, _hbw, _vgr, _dps, _sld, fileCalib, calib_json, ts, calib_data_SSC, calib_map, calib_data_HBW, calib_data_VGR, calib_data_DPS, calib_data_SLD
     logging.log(logging.TRACE, '-')
     if exists('/opt/ft/workspaces/FactoryCalib.json'):
         fileCalib = open('/opt/ft/workspaces/FactoryCalib.json', 'r', encoding='utf8')
-- 
GitLab