private void EnqueueAndWaitButton_Click(object sender, System.EventArgs e) { SySal.DAQSystem.DataProcessingBatchDesc desc = new SySal.DAQSystem.DataProcessingBatchDesc(); desc.Description = DescriptionText.Text; desc.AliasUsername = AliasUsernameText.Text; desc.AliasPassword = AliasPasswordText.Text; desc.Username = UsernameText.Text; desc.Password = PasswordText.Text; desc.MachinePowerClass = 0; desc.CommandLineArguments = ArgumentsText.Text; desc.Filename = ExePathText.Text; try { SySal.DAQSystem.IDataProcessingServer Srv = new SySal.DAQSystem.SyncDataProcessingServerWrapper((SySal.DAQSystem.IDataProcessingServer)System.Runtime.Remoting.RemotingServices.Connect(typeof(SySal.DAQSystem.IDataProcessingServer), "tcp://" + DataProcText.Text + ":" + (BatchManagerCheck.Checked ? (int)SySal.DAQSystem.OperaPort.BatchServer : (int)SySal.DAQSystem.OperaPort.DataProcessingServer).ToString() + "/DataProcessingServer.rem"), System.TimeSpan.FromMilliseconds(10000)); desc.Id = Srv.SuggestId; bool batchaccepted = Srv.Enqueue(desc); if (!batchaccepted) { MessageBox.Show("Batch Rejected", "Result", MessageBoxButtons.OK, MessageBoxIcon.Warning); } while (!Srv.DoneWith(desc.Id)) { System.Threading.Thread.Sleep(400); } desc = Srv.Result(desc.Id); DataProcessingComplete(desc, null); } catch (Exception x) { DataProcessingComplete(desc, x); } GC.Collect(); ViewQueueButton_Click(this, null); }
public BatchInfoForm(SySal.DAQSystem.DataProcessingBatchDesc d) { // // Required for Windows Form Designer support // InitializeComponent(); // // TODO: Add any constructor code after InitializeComponent call // IdText.Text = d.Id.ToString("X16"); OwnerText.Text = d.Username; ExePathText.Text = d.Filename; CommandLineArgsText.Text = d.CommandLineArguments; DescriptionText.Text = d.Description; StartText.Text = d.Started.ToString(); }
private void QueueBatchList_Click(object sender, System.EventArgs e) { OpenFileDialog mydlg = new OpenFileDialog(); mydlg.Title = "Select batch list"; mydlg.Filter = "Batch list files (*.txt)|*.txt|All files (*.*)|*.*"; if (mydlg.ShowDialog() == DialogResult.OK) { System.IO.StreamReader r = null; System.Xml.Serialization.XmlSerializer xmls = new System.Xml.Serialization.XmlSerializer(typeof(BatchList)); SySal.DAQSystem.IDataProcessingServer Srv = null; BatchList bl = null; try { r = new System.IO.StreamReader(mydlg.FileName); bl = (BatchList)xmls.Deserialize(r); Srv = new SySal.DAQSystem.SyncDataProcessingServerWrapper((SySal.DAQSystem.IDataProcessingServer)System.Runtime.Remoting.RemotingServices.Connect(typeof(SySal.DAQSystem.IDataProcessingServer), "tcp://" + DataProcText.Text + ":" + (BatchManagerCheck.Checked ? (int)SySal.DAQSystem.OperaPort.BatchServer : (int)SySal.DAQSystem.OperaPort.DataProcessingServer).ToString() + "/DataProcessingServer.rem"), System.TimeSpan.FromMilliseconds(10000)); foreach (Batch b in bl.List) { SySal.DAQSystem.DataProcessingBatchDesc d = new SySal.DAQSystem.DataProcessingBatchDesc(); d.MachinePowerClass = b.MachinePowerClass; d.Description = b.Description; d.Filename = b.Filename; d.CommandLineArguments = b.CommandLineArguments; d.Username = UsernameText.Text; d.Password = PasswordText.Text; d.Id = Srv.SuggestId; Srv.Enqueue(d); } } catch (Exception) {} if (r != null) { r.Close(); r = null; } if (Srv != null) { Srv = null; } GC.Collect(); } }
private void DataProcessingComplete(SySal.DAQSystem.DataProcessingBatchDesc desc, System.Exception x) { string str = ExeOutputsText.Text; int percent = 0; try { percent = Convert.ToInt32(Math.Round(100 * desc.TotalProcessorTime.TotalMilliseconds / (desc.Finished - desc.Started).TotalMilliseconds)); } catch (Exception) { percent = 0; }; str += "\r\n\r\nProcess " + desc.Id.ToString("X16") + "\r\nStart: " + desc.Started.ToString() + " Finish: " + desc.Finished.ToString() + "\r\nCPU Time: " + desc.TotalProcessorTime.ToString() + "\r\nCPU Time / Total time: " + percent.ToString() + "%\r\n" + "Peak Virtual Memory (MB): " + (desc.PeakVirtualMemorySize / 1048576).ToString() + "\r\nPeak Working Set (MB): " + (desc.PeakWorkingSet / 1048576).ToString(); if (x != null) { str += "\r\nException: " + x.GetType().ToString() + "\r\n" + x.Message + "\r\n\r\nDetails: \r\n" + x.ToString(); } ExeOutputsText.Text = str; }
public override bool Execute() { SySal.DAQSystem.IDataProcessingServer DataProcSrv = (SySal.DAQSystem.IDataProcessingServer)System.Runtime.Remoting.RemotingServices.Connect(typeof(SySal.DAQSystem.IDataProcessingServer), "tcp://" + BatchServer + ":" + ((int)SySal.DAQSystem.OperaPort.BatchServer) + "/DataProcessingServer.rem"); SySal.DAQSystem.DataProcessingBatchDesc bd = new SySal.DAQSystem.DataProcessingBatchDesc(); SySal.OperaDb.OperaDbCredentials cred = SySal.OperaDb.OperaDbCredentials.CreateFromRecord(); bd.Username = cred.OPERAUserName; bd.Password = cred.OPERAPassword; bd.Description = "ListScan - " + LineNumber; bd.Id = DataProcSrv.SuggestId; bd.MachinePowerClass = MachinePowerClass; bd.OutputTextSaveFile = LogFile; bd.Filename = ExeFile; bd.AliasPassword = ""; bd.AliasUsername = ""; Console.Write("(batch=" + bd.Id.ToString("X16") + ")"); string s = ""; int i; for (i = 0; i < Arguments.Length; i++) { if (i > 0) { s += " "; } if (Arguments[i].StartsWith("\"") == false) { s += "\"" + Arguments[i] + "\""; } else { s += Arguments[i]; } } bd.CommandLineArguments = s; return(DataProcSrv.Enqueue(bd)); }
private static void Execute() { try { //System.Windows.Forms.MessageBox.Show("Eccomi"); ThisThread = System.Threading.Thread.CurrentThread; StartupInfo = (SySal.DAQSystem.Drivers.VolumeOperationInfo)HE.StartupInfo; Conn = new SySal.OperaDb.OperaDbConnection(StartupInfo.DBServers, StartupInfo.DBUserName, StartupInfo.DBPassword); Conn.Open(); (DBKeepAliveThread = new System.Threading.Thread(DBKeepAliveThreadExec)).Start(); System.Xml.Serialization.XmlSerializer xmls = new System.Xml.Serialization.XmlSerializer(typeof(CSScanDriverSettings)); ProgSettings = (CSScanDriverSettings)xmls.Deserialize(new System.IO.StringReader(HE.ProgramSettings)); xmls = null; if (StartupInfo.ExeRepository.EndsWith("\\")) { StartupInfo.ExeRepository = StartupInfo.ExeRepository.Remove(StartupInfo.ExeRepository.Length - 1, 1); } if (StartupInfo.ScratchDir.EndsWith("\\")) { StartupInfo.ScratchDir = StartupInfo.ScratchDir.Remove(StartupInfo.ScratchDir.Length - 1, 1); } if (StartupInfo.LinkedZonePath.EndsWith("\\")) { StartupInfo.LinkedZonePath = StartupInfo.LinkedZonePath.Remove(StartupInfo.LinkedZonePath.Length - 1, 1); } if (StartupInfo.RawDataPath.EndsWith("\\")) { StartupInfo.RawDataPath = StartupInfo.RawDataPath.Remove(StartupInfo.RawDataPath.Length - 1, 1); } //create a directory where to put all acquisition files if (StartupInfo.RawDataPath.IndexOf(System.Convert.ToString(StartupInfo.ProcessOperationId)) < 0) { StartupInfo.RawDataPath = StartupInfo.RawDataPath + "\\cssd_" + StartupInfo.BrickId + "_" + StartupInfo.ProcessOperationId; if (!System.IO.Directory.Exists(StartupInfo.RawDataPath)) { System.IO.Directory.CreateDirectory(StartupInfo.RawDataPath); } } ProgressInfo = HE.ProgressInfo; if (StartupInfo.RecoverFromProgressFile) { try { XmlDocument xmldoc = new XmlDocument(); xmldoc.LoadXml(ProgressInfo.CustomInfo.Replace('[', '<').Replace(']', '>')); System.Xml.XmlNode xmlprog = xmldoc.FirstChild; WaitingOnId = Convert.ToInt64(xmlprog["WaitingOnId"].InnerText); CS1WideAreaScanDone = Convert.ToBoolean(xmlprog["CS1WideAreaScanDone"].InnerText); CS2WideAreaScanDone = Convert.ToBoolean(xmlprog["CS2WideAreaScanDone"].InnerText); CS1WideAreaScanProcOperationId = Convert.ToInt64(xmlprog["CS1WideAreaScanProcOperationId"].InnerText); CS2WideAreaScanProcOperationId = Convert.ToInt64(xmlprog["CS2WideAreaScanProcOperationId"].InnerText); CSMappingDone = Convert.ToBoolean(xmlprog["CSMappingDone"].InnerText); CSCandidatesDone = Convert.ToBoolean(xmlprog["CSCandidatesDone"].InnerText); ComputeScanArea = Convert.ToBoolean(xmlprog["ComputeScanArea"].InnerText); MinX = Convert.ToDouble(xmlprog["MinX"].InnerText, System.Globalization.CultureInfo.InvariantCulture); MaxX = Convert.ToDouble(xmlprog["MaxX"].InnerText, System.Globalization.CultureInfo.InvariantCulture); MinY = Convert.ToDouble(xmlprog["MinY"].InnerText, System.Globalization.CultureInfo.InvariantCulture); MaxY = Convert.ToDouble(xmlprog["MaxY"].InnerText, System.Globalization.CultureInfo.InvariantCulture); ProgressInfo.ExitException = null; HE.WriteLine("Restarting complete"); } catch (Exception ex) { HE.WriteLine("Restarting failed - proceeding to re-initialize process."); ProgressInfo = HE.ProgressInfo; ProgressInfo.Progress = 0.0; ProgressInfo.StartTime = System.DateTime.Now; ProgressInfo.FinishTime = ProgressInfo.StartTime.AddYears(1); HE.WriteLine(ex.Message); } } else { CS1WideAreaScanDone = false; CS2WideAreaScanDone = false; CS1WideAreaScanProcOperationId = 0; CS2WideAreaScanProcOperationId = 0; CSMappingDone = false; CSCandidatesDone = false; ComputeScanArea = true; ProgressInfo = new TaskProgressInfo(); ProgressInfo.Complete = false; ProgressInfo.ExitException = null; ProgressInfo.Progress = 0.0; ProgressInfo.StartTime = System.DateTime.Now; ProgressInfo.FinishTime = ProgressInfo.StartTime.AddYears(1); } UpdateProgress(); HE.InterruptNotifier = new Exe(); if (ProgSettings.WaitForScanningArea) { while (ComputeScanArea == true) { System.Threading.Thread.Sleep(1000); } } UpdateProgress(); for (int i = 0; i < 2; i++) { bool WideAreaScanDone = (i == 0) ? CS1WideAreaScanDone : CS2WideAreaScanDone; while (WideAreaScanDone == false) { if (WaitingOnId == 0) { SySal.DAQSystem.Drivers.ScanningStartupInfo wasdstartupinfo = new SySal.DAQSystem.Drivers.ScanningStartupInfo(); wasdstartupinfo.DBPassword = StartupInfo.DBPassword; wasdstartupinfo.DBServers = StartupInfo.DBServers; wasdstartupinfo.DBUserName = StartupInfo.DBUserName; wasdstartupinfo.ExeRepository = StartupInfo.ExeRepository; wasdstartupinfo.LinkedZonePath = StartupInfo.LinkedZonePath; wasdstartupinfo.MachineId = StartupInfo.MachineId; wasdstartupinfo.Plate = new SySal.DAQSystem.Scanning.MountPlateDesc(); wasdstartupinfo.Plate.BrickId = StartupInfo.BrickId; wasdstartupinfo.Plate.PlateId = i + 1; long calibrationId; wasdstartupinfo.MarkSet = MarkType.SpotXRay; wasdstartupinfo.Plate.MapInitString = SySal.OperaDb.Scanning.Utilities.GetMapString(wasdstartupinfo.Plate.BrickId, wasdstartupinfo.Plate.PlateId, false, MarkType.SpotXRay, out calibrationId, Conn, null); wasdstartupinfo.Plate.TextDesc = "Brick #" + wasdstartupinfo.Plate.BrickId + " Plate #" + wasdstartupinfo.Plate.PlateId; wasdstartupinfo.ProcessOperationId = 0; wasdstartupinfo.ProgramSettingsId = ProgSettings.WideAreaConfigId; wasdstartupinfo.ProgressFile = ""; wasdstartupinfo.RawDataPath = StartupInfo.RawDataPath; wasdstartupinfo.RecoverFromProgressFile = false; wasdstartupinfo.ScratchDir = StartupInfo.ScratchDir; if (ComputeScanArea == true) { wasdstartupinfo.Zones = CalculateZones(wasdstartupinfo.Plate.BrickId, wasdstartupinfo.Plate.PlateId); } else { wasdstartupinfo.Zones = new SySal.DAQSystem.Scanning.ZoneDesc[1]; wasdstartupinfo.Zones[0] = new SySal.DAQSystem.Scanning.ZoneDesc(); wasdstartupinfo.Zones[0].MinX = MinX; wasdstartupinfo.Zones[0].MaxX = MaxX; wasdstartupinfo.Zones[0].MinY = MinY; wasdstartupinfo.Zones[0].MaxY = MaxY; } WaitingOnId = HE.Start(wasdstartupinfo); UpdateProgress(); HE.WriteLine("Starting wasd " + WaitingOnId); } SySal.DAQSystem.Drivers.Status status; if (WaitingOnId != 0) { status = HE.Wait(WaitingOnId); if (status == SySal.DAQSystem.Drivers.Status.Failed) { WaitingOnId = 0; throw new Exception("Scan of the changeable sheet " + (i + 1) + " failed!\n"); } HE.WriteLine("Waiting wasd " + WaitingOnId); } if (WaitingOnId != 0) { status = HE.GetStatus(WaitingOnId); if (status == SySal.DAQSystem.Drivers.Status.Completed) { if (i == 0) { CS1WideAreaScanDone = true; CS1WideAreaScanProcOperationId = WaitingOnId; } else { CS2WideAreaScanDone = true; CS2WideAreaScanProcOperationId = WaitingOnId; } ProgressInfo.Progress = 0.45 * (i + 1); WaitingOnId = 0; break; } HE.WriteLine("Checking status wasd " + WaitingOnId); } UpdateProgress(); } } if (CSMappingDone == false) { HE.WriteLine("Start mapping"); DataProcSrv = HE.DataProcSrv; SySal.DAQSystem.DataProcessingBatchDesc dbd = new SySal.DAQSystem.DataProcessingBatchDesc(); dbd.AliasUsername = StartupInfo.DBUserName; dbd.AliasPassword = StartupInfo.DBPassword; dbd.Description = "Plate doublet mapping B#" + StartupInfo.BrickId; dbd.Id = DataProcSrv.SuggestId; dbd.Token = HE.Token; dbd.MachinePowerClass = 5; dbd.Filename = StartupInfo.ExeRepository + @"\CSMap.exe"; // dbd.CommandLineArguments = StartupInfo.ProcessOperationId + " db:\\" + ProgSettings.CSMapConfigId + ".xml CSMap_" + StartupInfo.BrickId + "_" + StartupInfo.ProcessOperationId + " false " + StartupInfo.ProcessOperationId; dbd.CommandLineArguments = "db:\\" + CS1WideAreaScanProcOperationId + ".tlg " + "db:\\" + CS2WideAreaScanProcOperationId + ".tlg " + "db:\\" + StartupInfo.BrickId + " " + "db:\\" + ProgSettings.CSMapConfigId + ".xml " + StartupInfo.RawDataPath + @"\CSSD " + StartupInfo.ProcessOperationId; if (!DataProcSrv.Enqueue(dbd)) { throw new Exception("Cannot schedule CSd mapping batch " + dbd.Id + " for brick " + StartupInfo.BrickId + ". Aborting."); } while (DataProcSrv.DoneWith(dbd.Id) == false) { System.Threading.Thread.Sleep(100); } dbd = DataProcSrv.Result(dbd.Id); if (System.IO.File.Exists(StartupInfo.RawDataPath + @"\CHECK") == true) { CSMappingDone = true; } else { throw new Exception("Plate Mapping failure"); } } //DUMP MARK FILE System.IO.StreamWriter markFile = null; try { long CalibrationId; string markString = SySal.OperaDb.Scanning.Utilities.GetMapString(StartupInfo.BrickId, 1, false, MarkType.SpotXRay, out CalibrationId, Conn, null); markFile = new System.IO.StreamWriter(StartupInfo.RawDataPath + @"\marks.txt"); markFile.WriteLine(markString); markFile.Flush(); } catch { } finally { if (markFile != null) { markFile.Close(); } } WaitingOnId = 0; ProgressInfo.Progress = 1.0; ProgressInfo.Complete = true; UpdateProgress(); } catch (Exception ex) { if (ProgressInfo == null) { ProgressInfo = new SySal.DAQSystem.Drivers.TaskProgressInfo(); } HE.WriteLine(ex.Message); ProgressInfo.Complete = false; ProgressInfo.ExitException = ex.ToString(); UpdateProgress(); } }
/// <summary> /// Handles POST methods. /// </summary> /// <param name="sess">Session information.</param> /// <param name="page">ignored.</param> /// <param name="postfields">the action parameters passed.</param> /// <returns>the status page.</returns> public SySal.Web.ChunkedResponse HttpPost(SySal.Web.Session sess, string page, params string[] postfields) { string user = ""; string pwd = ""; string dbuser = ""; string dbpwd = ""; string exepath = ""; string cmdargs = ""; string desc = ""; string outsavefile = null; bool enq = false; bool rem = false; string xctext = ""; ulong expid = 0; uint powerclass = 5; System.Collections.ArrayList chk = new System.Collections.ArrayList(); try { if (postfields != null) { foreach (string s in postfields) { if (s.StartsWith(ExpandCmd + "=")) { try { expid = Convert.ToUInt64(s.Substring(ExpandCmd.Length + 1)); } catch (Exception) { } } } foreach (string s in postfields) { int eq = s.IndexOf("="); if (eq >= 0) { string t = s.Substring(0, eq).ToLower(); string v = SySal.Web.WebServer.URLDecode(s.Substring(eq + 1)); switch (t) { case PowerClassCmd: try { powerclass = Convert.ToUInt32(v); } catch (Exception) { } break; case CmdArgsCmd: cmdargs = v; break; case DescCmd: desc = v; break; case ExePathCmd: exepath = v; break; case UserIdCmd: user = v; break; case PasswordIdCmd: pwd = v; break; case DBUserIdCmd: dbuser = v; break; case DBPasswordIdCmd: dbpwd = v; break; case OutSaveFileCmd: outsavefile = v; break; case EnqBtn: enq = true; break; case RemBtn: rem = true; break; default: if (s.StartsWith(CheckCmd)) { try { chk.Add(System.Convert.ToUInt64(t.Substring(CheckCmd.Length))); } catch (Exception) { } } break; } } } } if (enq) { try { SySal.DAQSystem.DataProcessingBatchDesc bd = new SySal.DAQSystem.DataProcessingBatchDesc(); bd.Id = OperaDataProcessingServer.DPS.SuggestId; bd.Filename = exepath; bd.CommandLineArguments = cmdargs; bd.Username = user; bd.Password = pwd; bd.Token = null; bd.AliasUsername = dbuser; bd.AliasPassword = dbpwd; bd.Description = desc; bd.MachinePowerClass = powerclass; bd.OutputTextSaveFile = outsavefile; if (OperaDataProcessingServer.DPS.Enqueue(bd) == false) { throw new Exception("Batch refused."); } } catch (Exception x) { xctext = x.ToString(); } } if (rem) { foreach (ulong u in chk) { try { OperaDataProcessingServer.DPS.Remove(u, null, user, pwd); } catch (Exception x) { xctext = x.ToString(); } } } } catch (Exception x) { xctext = x.ToString(); } string html = "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\r\n" + "<html xmlns=\"http://www.w3.org/1999/xhtml\" >\r\n" + "<head>\r\n" + " <meta http-equiv=\"pragma\" content=\"no-cache\">\r\n" + " <meta http-equiv=\"EXPIRES\" content=\"0\" />\r\n" + " <title>OperaDataProcessingServer Monitor - " + OperaDataProcessingServer.MachineName + "</title>\r\n" + " <style type=\"text/css\">\r\n" + " th { font-family: Arial,Helvetica; font-size: 12; color: white; background-color: teal; text-align: center; font-weight: bold }\r\n" + " td { font-family: Arial,Helvetica; font-size: 12; color: navy; background-color: white; text-align: right; font-weight: normal }\r\n" + " p {font-family: Arial,Helvetica; font-size: 14; color: black; background-color: white; text-align: left; font-weight: normal }\r\n" + " div {font-family: Arial,Helvetica; font-size: 14; color: black; background-color: white; text-align: center; font-weight: normal }\r\n" + " </style>\r\n" + "</head>\r\n" + "<body>\r\n" + "<div><b>OperaDataProcessingServer Monitor (" + OperaDataProcessingServer.MachineName + ")<br>Last Update: " + System.DateTime.Now.ToLongTimeString() + "</b></div>\r\n" + "<br><a href=\"/\">Refresh</a><br>\r\n" + "<form action=\"/\" method=\"post\" enctype=\"application/x-www-form-urlencoded\">\r\n"; if (xctext.Length > 0) { html += "<p><font color=\"red\">" + SySal.Web.WebServer.HtmlFormat(xctext) + "</font></p>\r\n"; } if (OperaDataProcessingServer.DPS != null) { SySal.DAQSystem.DataProcessingBatchDesc [] batches = OperaDataProcessingServer.DPS.Queue; html += "<table border=\"1\" align=\"center\" width=\"100%\">\r\n" + " <tr><th width=\"10%\">Batch</th><th width=\"5%\">PowerClass</th><th width=\"65%\">Description</th><th width=\"10%\">Owner</th><th width=\"10%\">Started</th></tr>\r\n"; foreach (SySal.DAQSystem.DataProcessingBatchDesc b in batches) { html += " <tr><td><input id=\"" + CheckCmd + b.Id + "\" name=\"" + CheckCmd + b.Id + "\" type=\"checkbox\" />" + b.Id.ToString("X16") + "</td><td>" + b.MachinePowerClass + "</td><td>" + SySal.Web.WebServer.HtmlFormat(b.Description) + ((expid == b.Id) ? ("<br><div align=\"left\"><font face=\"Courier\"><c>" + SySal.Web.WebServer.HtmlFormat(b.Filename + " " + b.CommandLineArguments) + "</c></font></div> <a href=\"/?" + ExpandCmd + "=0\"><i>Shrink</i></a>") : (" <a href=\"/?" + ExpandCmd + "=" + b.Id + "\"><i>Expand</i></a>")) + "</td><td> " + SySal.Web.WebServer.HtmlFormat((b.Username == null || b.Username == "") ? "N/A" : b.Username) + "</td><td> " + b.Started.ToString() + "</td></tr>\r\n"; } html += "</table>\r\n" + "<p><input id=\"" + EnqBtn + "\" name=\"" + EnqBtn + "\" type=\"submit\" value=\"Enqueue\"/> <input id=\"" + RemBtn + "\" name=\"" + RemBtn + "\" type=\"submit\" value=\"Remove Selected\"/></p>\r\n" + "<p>Description <input id=\"" + DescCmd + "\" maxlength=\"1024\" name=\"" + DescCmd + "\" size=\"50\" type=\"text\" /></p>\r\n" + "<p>Executable <input id=\"" + ExePathCmd + "\" maxlength=\"1024\" name=\"" + ExePathCmd + "\" size=\"50\" type=\"text\" value=\"" + SySal.Web.WebServer.HtmlFormat(OperaDataProcessingServer.ExeRepository) + "\" /></p>\r\n" + "<p>Command line arguments <input id=\"" + CmdArgsCmd + "\" maxlength=\"10240\" name=\"" + CmdArgsCmd + "\" size=\"50\" type=\"text\" /></p>\r\n" + "<p>Machine power class <input id=\"" + PowerClassCmd + "\" maxlength=\"5\" name=\"" + PowerClassCmd + "\" size=\"5\" type=\"text\" /></p>\r\n" + "<p>Output save file <input id=\"" + OutSaveFileCmd + "\" maxlength=\"1024\" name=\"" + OutSaveFileCmd + "\" size=\"50\" type=\"text\" /></p>\r\n" + "<table align=\"left\" border=\"0\">\r\n" + " <tr><td align=\"left\" width=\"50%\"><p>Username</p></td><td align=\"right\" width=\"50%\"><input id=\"" + UserIdCmd + "\" maxlength=\"30\" name=\"" + UserIdCmd + "\" size=\"30\" type=\"text\" /></td></tr>\r\n" + " <tr><td align=\"left\" width=\"50%\"><p>Password</p></td><td align=\"right\" width=\"50%\"><input id=\"" + PasswordIdCmd + "\" name=\"" + PasswordIdCmd + "\" size=\"30\" type=\"password\" /></td></tr>\r\n" + " <tr><td align=\"left\" width=\"50%\"><p>DB User</p></td><td align=\"right\" width=\"50%\"><input id=\"" + DBUserIdCmd + "\" maxlength=\"30\" name=\"" + DBUserIdCmd + "\" size=\"30\" type=\"text\" /></td></tr>\r\n" + " <tr><td align=\"left\" width=\"50%\"><p>DB Password</p></td><td align=\"right\" width=\"50%\"><input id=\"" + DBPasswordIdCmd + "\" name=\"" + DBPasswordIdCmd + "\" size=\"30\" type=\"password\" /></td></tr>\r\n" + "</table>\r\n" + "</form>\r\n"; } html += "</body>\r\n"; return(new SySal.Web.HTMLResponse(html)); }