--- a/GenerateProgram.py Thu Feb 08 17:41:41 2007 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,35 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-
-#This file is part of PLCOpenEditor, a library implementing an IEC 61131-3 editor
-#based on the plcopen standard.
-#
-#Copyright (C): Edouard TISSERANT and Laurent BESSARD
-#
-#See COPYING file for copyrights details.
-#
-#This library is free software; you can redistribute it and/or
-#modify it under the terms of the GNU Lesser General Public
-#License as published by the Free Software Foundation; either
-#version 2.1 of the License, or (at your option) any later version.
-#
-#This library is distributed in the hope that it will be useful,
-#but WITHOUT ANY WARRANTY; without even the implied warranty of
-#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-#Lesser General Public License for more details.
-#
-#You should have received a copy of the GNU Lesser General Public
-#License along with this library; if not, write to the Free Software
-#Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
-
-"""
-Class implementing a generator for PLC program code
-"""
-
-class PLCGenerator:
-
- # Create a rubberband by indicated on which window it must be drawn
- def __init__(self, controler):
- self.drawingSurface = drawingSurface
- self.Reset()
--- a/PLCControler.py Thu Feb 08 17:41:41 2007 +0100
+++ b/PLCControler.py Wed Mar 21 16:12:08 2007 +0100
@@ -350,12 +350,17 @@
return used
return False
- def GenerateProgram(self):
+ def GenerateProgram(self, filepath):
if self.Project:
- program = GenerateCurrentProgram(self.Project)
- programfile = open("test.st", "w")
- programfile.write(program)
- programfile.close()
+ try:
+ program = GenerateCurrentProgram(self.Project)
+ programfile = open(filepath, "w")
+ programfile.write(program)
+ programfile.close()
+ return True
+ except:
+ pass
+ return False
#-------------------------------------------------------------------------------
# Project Pous management functions
--- a/PLCGenerator.py Thu Feb 08 17:41:41 2007 +0100
+++ b/PLCGenerator.py Wed Mar 21 16:12:08 2007 +0100
@@ -445,7 +445,7 @@
program += "\n"
for var_type, var_name in variables:
program += " %s : %s;\n"%(var_name, var_type)
- program += " END_%s\n"%list_type
+ program += " END_VAR\n"
program += "\n"
program += self.Program
program += "END_%s\n\n"%self.Type
--- a/PLCOpenEditor.py Thu Feb 08 17:41:41 2007 +0100
+++ b/PLCOpenEditor.py Wed Mar 21 16:12:08 2007 +0100
@@ -582,7 +582,20 @@
event.Skip()
def OnGenerateProgramMenu(self, event):
- self.Controler.GenerateProgram()
+ dialog = wxFileDialog(self, "Choose a file", os.getcwd(), "", "ST files (*.st)|*.st|All files|*.*", wxSAVE|wxCHANGE_DIR)
+ if dialog.ShowModal() == wxID_OK:
+ filepath = dialog.GetPath()
+ if os.path.isdir(os.path.dirname(filepath)):
+ result = self.Controler.GenerateProgram(filepath)
+ if not result:
+ message = wxMessageDialog(self, "Can't generate program to file %s!"%filepath, "Error", wxOK|wxICON_ERROR)
+ message.ShowModal()
+ message.Destroy()
+ else:
+ message = wxMessageDialog(self, "%s is not a valid folder!"%os.path.dirname(filepath), "Error", wxOK|wxICON_ERROR)
+ message.ShowModal()
+ message.Destroy()
+ dialog.Destroy()
event.Skip()
def SaveProject(self):