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 ] |