ProjectController.py
changeset 1744 69dfdb26f600
parent 1742 92932cd370a4
child 1745 f9d32913bad4
equal deleted inserted replaced
1743:c3c3d1318130 1744:69dfdb26f600
   352             temp_root.setTargetType(target)
   352             temp_root.setTargetType(target)
   353             target_name = self.GetDefaultTargetName()
   353             target_name = self.GetDefaultTargetName()
   354             target.setcontent(self.Parser.CreateElement(target_name, "TargetType"))
   354             target.setcontent(self.Parser.CreateElement(target_name, "TargetType"))
   355         return target
   355         return target
   356 
   356 
   357     def GetParamsAttributes(self, path = None):
   357     def GetParamsAttributes(self, path=None):
   358         params = ConfigTreeNode.GetParamsAttributes(self, path)
   358         params = ConfigTreeNode.GetParamsAttributes(self, path)
   359         if params[0]["name"] == "BeremizRoot":
   359         if params[0]["name"] == "BeremizRoot":
   360             for child in params[0]["children"]:
   360             for child in params[0]["children"]:
   361                 if child["name"] == "TargetType" and child["value"] == '':
   361                 if child["name"] == "TargetType" and child["value"] == '':
   362                     child.update(self.GetTarget().getElementInfos("TargetType"))
   362                     child.update(self.GetTarget().getElementInfos("TargetType"))
   458         # Load PLCOpen file
   458         # Load PLCOpen file
   459         error = self.OpenXMLFile(plc_file)
   459         error = self.OpenXMLFile(plc_file)
   460         if error is not None:
   460         if error is not None:
   461             if self.Project is not None:
   461             if self.Project is not None:
   462                 (fname_err, lnum, src) = (("PLC",) + error)
   462                 (fname_err, lnum, src) = (("PLC",) + error)
   463                 self.logger.write_warning(XSDSchemaErrorMessage.format(a1 = fname_err, a2 = lnum, a3 = src))
   463                 self.logger.write_warning(XSDSchemaErrorMessage.format(a1=fname_err, a2=lnum, a3=src))
   464             else:
   464             else:
   465                 return error, False
   465                 return error, False
   466         if len(self.GetProjectConfigNames()) == 0:
   466         if len(self.GetProjectConfigNames()) == 0:
   467             self.AddProjectDefaultConfiguration()
   467             self.AddProjectDefaultConfiguration()
   468         # Change XSD into class members
   468         # Change XSD into class members
  1204                 self._IECCodeView.SetKeywords(IEC_KEYWORDS)
  1204                 self._IECCodeView.SetKeywords(IEC_KEYWORDS)
  1205                 try:
  1205                 try:
  1206                     text = file(plc_file).read()
  1206                     text = file(plc_file).read()
  1207                 except:
  1207                 except:
  1208                     text = '(* No IEC code have been generated at that time ! *)'
  1208                     text = '(* No IEC code have been generated at that time ! *)'
  1209                 self._IECCodeView.SetText(text = text)
  1209                 self._IECCodeView.SetText(text=text)
  1210                 self._IECCodeView.Editor.SetReadOnly(True)
  1210                 self._IECCodeView.Editor.SetReadOnly(True)
  1211                 self._IECCodeView.SetIcon(GetBitmap("ST"))
  1211                 self._IECCodeView.SetIcon(GetBitmap("ST"))
  1212                 setattr(self._IECCodeView, "_OnClose", self.OnCloseEditor)
  1212                 setattr(self._IECCodeView, "_OnClose", self.OnCloseEditor)
  1213 
  1213 
  1214             if self._IECCodeView is not None:
  1214             if self._IECCodeView is not None:
  1371             "Broken":       _("Broken"),
  1371             "Broken":       _("Broken"),
  1372             "Disconnected": _("Disconnected")
  1372             "Disconnected": _("Disconnected")
  1373             }
  1373             }
  1374         return msgs.get(status, status)
  1374         return msgs.get(status, status)
  1375 
  1375 
  1376     def ShowPLCProgress(self, status = "", progress = 0):
  1376     def ShowPLCProgress(self, status="", progress=0):
  1377         self.AppFrame.ProgressStatusBar.Show()
  1377         self.AppFrame.ProgressStatusBar.Show()
  1378         self.AppFrame.ConnectionStatusBar.SetStatusText(self.GetTextStatus(status), 1)
  1378         self.AppFrame.ConnectionStatusBar.SetStatusText(self.GetTextStatus(status), 1)
  1379         self.AppFrame.ProgressStatusBar.SetValue(progress)
  1379         self.AppFrame.ProgressStatusBar.SetValue(progress)
  1380 
  1380 
  1381     def HidePLCProgress(self):
  1381     def HidePLCProgress(self):
  1444         # If an output location var is forced it's leads to segmentation fault in runtime
  1444         # If an output location var is forced it's leads to segmentation fault in runtime
  1445         # Links between PLC located variables and real variables are not ready
  1445         # Links between PLC located variables and real variables are not ready
  1446         if self.IsPLCStarted():
  1446         if self.IsPLCStarted():
  1447             # Timer to prevent rapid-fire when registering many variables
  1447             # Timer to prevent rapid-fire when registering many variables
  1448             # use wx.CallAfter use keep using same thread. TODO : use wx.Timer instead
  1448             # use wx.CallAfter use keep using same thread. TODO : use wx.Timer instead
  1449             self.DebugTimer = Timer(0.5, wx.CallAfter, args = [self.RegisterDebugVarToConnector])
  1449             self.DebugTimer = Timer(0.5, wx.CallAfter, args=[self.RegisterDebugVarToConnector])
  1450             # Rearm anti-rapid-fire timer
  1450             # Rearm anti-rapid-fire timer
  1451             self.DebugTimer.start()
  1451             self.DebugTimer.start()
  1452 
  1452 
  1453     def GetDebugIECVariableType(self, IECPath):
  1453     def GetDebugIECVariableType(self, IECPath):
  1454         Idx, IEC_Type = self._IECPathToIdx.get(IECPath, (None, None))
  1454         Idx, IEC_Type = self._IECPathToIdx.get(IECPath, (None, None))