plugger.py
changeset 283 d0e6fc0701fb
parent 280 f2ef79f3dba0
child 286 a2a8a52b0d4f
equal deleted inserted replaced
282:2221e99d2f8f 283:d0e6fc0701fb
   848     
   848     
   849     def _getIECrawcodepath(self):
   849     def _getIECrawcodepath(self):
   850         # define name for IEC raw code file
   850         # define name for IEC raw code file
   851         return os.path.join(self.PlugPath(), "raw_plc.st")
   851         return os.path.join(self.PlugPath(), "raw_plc.st")
   852     
   852     
       
   853     def _getPYTHONcodepath(self):
       
   854         # define name for IEC raw code file
       
   855         return os.path.join(self.PlugPath(), "runtime.py")
       
   856 
   853     def GetLocations(self):
   857     def GetLocations(self):
   854         locations = []
   858         locations = []
   855         filepath = os.path.join(self._getBuildPath(),"LOCATED_VARIABLES.h")
   859         filepath = os.path.join(self._getBuildPath(),"LOCATED_VARIABLES.h")
   856         if os.path.isfile(filepath):
   860         if os.path.isfile(filepath):
   857             # IEC2C compiler generate a list of located variables : LOCATED_VARIABLES.h
   861             # IEC2C compiler generate a list of located variables : LOCATED_VARIABLES.h
   982         Return C code generated by iec2c compiler 
   986         Return C code generated by iec2c compiler 
   983         when _generate_softPLC have been called
   987         when _generate_softPLC have been called
   984         @param locations: ignored
   988         @param locations: ignored
   985         @return: [(C_file_name, CFLAGS),...] , LDFLAGS_TO_APPEND
   989         @return: [(C_file_name, CFLAGS),...] , LDFLAGS_TO_APPEND
   986         """
   990         """
   987         return [(C_file_name, self.plcCFLAGS) for C_file_name in self.PLCGeneratedCFiles ] , "", False
   991 
       
   992         res = ([(C_file_name, self.plcCFLAGS) 
       
   993                 for C_file_name in self.PLCGeneratedCFiles ], 
       
   994                "", # no ldflags
       
   995                False) # do not expose retreive/publish calls
       
   996         
       
   997         pyfile=self._getPYTHONcodepath()
       
   998         if os.path.exists(pyfile):
       
   999             res += (("runtime.py", file(pyfile,"rb")),)
       
  1000 
       
  1001         return res
       
  1002 
   988     
  1003     
   989     def ResetIECProgramsAndVariables(self):
  1004     def ResetIECProgramsAndVariables(self):
   990         """
  1005         """
   991         Reset variable and program list that are parsed from
  1006         Reset variable and program list that are parsed from
   992         CSV file generated by IEC2C compiler.
  1007         CSV file generated by IEC2C compiler.
  1258         controler = MiniTextControler(self._getIECrawcodepath())
  1273         controler = MiniTextControler(self._getIECrawcodepath())
  1259         ST_viewer = TextViewer(new_dialog, "", None, controler)
  1274         ST_viewer = TextViewer(new_dialog, "", None, controler)
  1260         #ST_viewer.Enable(False)
  1275         #ST_viewer.Enable(False)
  1261         ST_viewer.SetKeywords(IEC_KEYWORDS)
  1276         ST_viewer.SetKeywords(IEC_KEYWORDS)
  1262         ST_viewer.RefreshView()
  1277         ST_viewer.RefreshView()
       
  1278             
       
  1279         new_dialog.Show()
       
  1280 
       
  1281     def _editPYTHONcode(self):
       
  1282         from PythonSTC import PythonCodePanel
       
  1283         new_dialog = wx.Frame(self.AppFrame)
       
  1284         
       
  1285         PYTHON_viewer = PythonCodePanel(new_dialog, self.AppFrame)
       
  1286         #ST_viewer.Enable(False)
       
  1287         pyfile=self._getPYTHONcodepath()
       
  1288         PYTHON_viewer.LoadSourceFile(pyfile)
  1263             
  1289             
  1264         new_dialog.Show()
  1290         new_dialog.Show()
  1265 
  1291 
  1266     def _EditPLC(self):
  1292     def _EditPLC(self):
  1267         if self.PLCEditor is None:
  1293         if self.PLCEditor is None:
  1646          "name" : "Show code",
  1672          "name" : "Show code",
  1647          "shown" : False,
  1673          "shown" : False,
  1648          "tooltip" : "Show IEC code generated by PLCGenerator",
  1674          "tooltip" : "Show IEC code generated by PLCGenerator",
  1649          "method" : "_showIECcode"},
  1675          "method" : "_showIECcode"},
  1650         {"bitmap" : opjimg("editIECrawcode"),
  1676         {"bitmap" : opjimg("editIECrawcode"),
  1651          "name" : "Append code",
  1677          "name" : "Raw IEC code",
  1652          "tooltip" : "Edit raw IEC code added to code generated by PLCGenerator",
  1678          "tooltip" : "Edit raw IEC code added to code generated by PLCGenerator",
  1653          "method" : "_editIECrawcode"},
  1679          "method" : "_editIECrawcode"},
       
  1680         {"bitmap" : opjimg("editPYTHONcode"),
       
  1681          "name" : "Python code",
       
  1682          "tooltip" : "Write Python runtime code, for use with python_eval FBs",
       
  1683          "method" : "_editPYTHONcode"},
  1654     ]
  1684     ]