Diff of /trunk/cforge/cforge/Package/CFORGE/Scripts/cds_script.py [r15] .. [r16]  Maximize  Restore

Switch to side-by-side view

--- a/trunk/cforge/cforge/Package/CFORGE/Scripts/cds_script.py
+++ b/trunk/cforge/cforge/Package/CFORGE/Scripts/cds_script.py
@@ -2,8 +2,33 @@
 import sys
 import os
 
+#
+# this is a general helper module providing some basic functions to 
+# e.g. run CODESYS or another process with certain arguments
+#
+#
+
 from System.Diagnostics import Process
 from System.Net import WebClient
+
+def RunProcess(workdir, process, args):
+	exitcode = -1
+	print("run process: " + process + " " + args)
+	if not os.path.exists(workdir):
+		print("Path does not exist: " + workdir)
+	if not os.path.exists(os.path.join(workdir, process)):
+		print("File does not exist: " + process)
+	else:
+		p = Process()
+		p.StartInfo.WorkingDirectory=workdir
+		p.StartInfo.FileName = process
+		p.StartInfo.Arguments =  args
+		p.Start()
+		p.WaitForExit()
+		exitcode = p.ExitCode
+	print("done: " + str(exitcode))
+	return exitcode
+
 
 def RunCodesysWithScript(scriptfilename, scriptargs=None):
 	print(scriptfilename)
@@ -25,8 +50,8 @@
 	codesys_exe = os.path.join(cdsdir, "Common", "CODESYS.exe")
 	packageman_exe = os.path.join(cdsdir, "Common", "PackageManager.exe")
 	workdir = os.path.join(cdsdir, "Common")
-
-	if not os.path.exists(scriptfilename):
+	exitcode = -1
+	if not os.path.exists(os.path.join(workingdir,scriptfilename)):
 		print("File does not exist: " + scriptfilename)
 
 	else:
@@ -34,13 +59,18 @@
 		p.StartInfo.WorkingDirectory=workdir
 		p.StartInfo.FileName = codesys_exe
 		
-		processargs = "--profile='" + lastprofile + "' --noUI --runscript='" + scriptfilename + "'" 
+		processargs = "--profile='" + lastprofile + "'  --runscript='" + os.path.join(workingdir,scriptfilename) + "'" 
+		processargs += " --noUI"
 		if scriptargs != None:
 			processargs += " --scriptargs:'" + scriptargs + "'"
-		
+		print("running codesys with script " + scriptfilename)
 		p.StartInfo.Arguments =  processargs
 		p.Start()
-		p.WaitForExit() 
+		p.WaitForExit()
+		
+		exitcode = p.ExitCode 
 
+	print("done: " + str(exitcode))
+	return exitcode