497 if project is not None: |
497 if project is not None: |
498 return project.ElementIsUsedBy(name, reference) |
498 return project.ElementIsUsedBy(name, reference) |
499 return False |
499 return False |
500 |
500 |
501 def GenerateProgram(self, filepath=None): |
501 def GenerateProgram(self, filepath=None): |
|
502 errors = [] |
|
503 warnings = [] |
502 if self.Project is not None: |
504 if self.Project is not None: |
503 try: |
505 try: |
504 self.ProgramChunks = GenerateCurrentProgram(self, self.Project) |
506 self.ProgramChunks = GenerateCurrentProgram(self, self.Project, errors, warnings) |
505 self.NextCompiledProject = self.Copy(self.Project) |
507 self.NextCompiledProject = self.Copy(self.Project) |
506 program_text = "".join([item[0] for item in self.ProgramChunks]) |
508 program_text = "".join([item[0] for item in self.ProgramChunks]) |
507 if filepath is not None: |
509 if filepath is not None: |
508 programfile = open(filepath, "w") |
510 programfile = open(filepath, "w") |
509 programfile.write(program_text) |
511 programfile.write(program_text) |
510 programfile.close() |
512 programfile.close() |
511 self.ProgramFilePath = filepath |
513 self.ProgramFilePath = filepath |
512 return None |
514 return program_text, errors, warnings |
513 else: |
|
514 return program_text |
|
515 except PLCGenException, e: |
515 except PLCGenException, e: |
516 return e.message |
516 errors.append(e.message) |
517 return "No project opened" |
517 else: |
|
518 errors.append("No project opened") |
|
519 return "", errors, warnings |
518 |
520 |
519 def ProgramTransferred(self): |
521 def ProgramTransferred(self): |
520 self.CurrentCompiledProject = self.NextCompiledProject |
522 self.CurrentCompiledProject = self.NextCompiledProject |
521 |
523 |
522 def GetChunkInfos(self, from_location, to_location): |
524 def GetChunkInfos(self, from_location, to_location): |