TBF.UI.Process.ProcessTabPageCtrl introduced, etc.
This commit is contained in:
@@ -170,6 +170,13 @@ namespace TBF
|
||||
public int SchDrawingDlgWidth;
|
||||
public int SchDrawingDlgHeight;
|
||||
|
||||
/// Process
|
||||
public int ProcessSplitDist1;
|
||||
public int ProcessSplitDist2;
|
||||
[XmlArrayAttribute("ProcessColumnWidths")]
|
||||
public int[] ProcessColumnWidths;
|
||||
[XmlIgnore]
|
||||
public int ProcessColumnCount { get { return (ProcessColumnWidths != null) ? ProcessColumnWidths.Length : 0; } }
|
||||
|
||||
/// Procedures
|
||||
public bool ProceduresDlgMaximized;
|
||||
|
||||
@@ -29,5 +29,5 @@ using System.Runtime.InteropServices;
|
||||
// Build Number
|
||||
// Revision
|
||||
//
|
||||
[assembly: AssemblyVersion("3.1.1656.0")]
|
||||
[assembly: AssemblyFileVersion("3.1.1656.0")]
|
||||
[assembly: AssemblyVersion("3.1.1659.0")]
|
||||
[assembly: AssemblyFileVersion("3.1.1659.0")]
|
||||
|
||||
@@ -415,7 +415,7 @@ namespace TBF.Rig.ControlBoard.Uni
|
||||
public void RunDeviceAfter()
|
||||
{
|
||||
DateTime now = DateTime.Now;
|
||||
if (now < lastSentTime + TimeSpan.FromSeconds(0.8) ||
|
||||
if (now < lastSentTime + TimeSpan.FromSeconds(0.7) ||
|
||||
(lastReceivedTime < lastSentTime && now < lastSentTime + TimeSpan.FromSeconds(1.7)))
|
||||
{
|
||||
log.Error("RunDeviceAfter() ... skipping too early write of a serial command or a data requect");
|
||||
@@ -511,8 +511,8 @@ namespace TBF.Rig.ControlBoard.Uni
|
||||
lastSentTime = DateTime.Now;
|
||||
}
|
||||
|
||||
log.Debug(" " + OutputMessage.Caption());
|
||||
log.Debug(Telegram.LogTelegram("Sent: ", outData));
|
||||
log.Debug(" " + OutputMessage.Caption());
|
||||
log.Debug(Telegram.LogTelegram(string.Format("Sent {0}: ", lastSentTime.ToString("HH:mm:ss")), outData));
|
||||
}
|
||||
|
||||
log.DebugFormat(" Queue content:");
|
||||
|
||||
@@ -2237,6 +2237,12 @@
|
||||
<Compile Include="UI\Procedures\TestWizard\VolumeAndErrorSelection.designer.cs">
|
||||
<DependentUpon>VolumeAndErrorSelection.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="UI\Process\ProcessTabPageCtrl.cs">
|
||||
<SubType>UserControl</SubType>
|
||||
</Compile>
|
||||
<Compile Include="UI\Process\ProcessTabPageCtrl.Designer.cs">
|
||||
<DependentUpon>ProcessTabPageCtrl.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="UI\Process\ProcessTabPageCtrl24.cs">
|
||||
<SubType>UserControl</SubType>
|
||||
</Compile>
|
||||
@@ -3110,6 +3116,9 @@
|
||||
<EmbeddedResource Include="UI\Procedures\TestWizard\VolumeAndErrorSelection.resx">
|
||||
<DependentUpon>VolumeAndErrorSelection.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="UI\Process\ProcessTabPageCtrl.resx">
|
||||
<DependentUpon>ProcessTabPageCtrl.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="UI\Process\ProcessTabPageCtrl24.resx">
|
||||
<DependentUpon>ProcessTabPageCtrl24.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
|
||||
Generated
+8
-6
@@ -56,7 +56,7 @@ namespace TBF.UI
|
||||
this.homeTabPage = new System.Windows.Forms.TabPage();
|
||||
this.drawingCtrl = new SchematicDrawing.SchematicDrawingCtrl();
|
||||
this.processTabPage = new System.Windows.Forms.TabPage();
|
||||
this.processTabPageCtrl = new TBF.UI.Process.ProcessTabPageCtrl24();
|
||||
this.processTabPageCtrl = new TBF.UI.Process.ProcessTabPageCtrl();
|
||||
this.insertTabPage = new System.Windows.Forms.TabPage();
|
||||
this.resultsTabPage = new System.Windows.Forms.TabPage();
|
||||
this.resultsTabPageCtrl = new TBF.UI.ResultsMI.ResultsTabPageCtrl();
|
||||
@@ -299,15 +299,17 @@ namespace TBF.UI
|
||||
//
|
||||
// drawingCtrl
|
||||
//
|
||||
this.drawingCtrl.AltStrings = null;
|
||||
this.drawingCtrl.BenchControlMode = false;
|
||||
resources.ApplyResources(this.drawingCtrl, "drawingCtrl");
|
||||
this.drawingCtrl.PipesL = null;
|
||||
this.drawingCtrl.PipesM = null;
|
||||
this.drawingCtrl.PipesS = null;
|
||||
this.drawingCtrl.PipesXL = null;
|
||||
this.drawingCtrl.EditMode = false;
|
||||
this.drawingCtrl.MeasuredValues = null;
|
||||
this.drawingCtrl.MsrmntAvailableFlags = null;
|
||||
this.drawingCtrl.Name = "drawingCtrl";
|
||||
this.drawingCtrl.PipesL = new string[0];
|
||||
this.drawingCtrl.PipesM = new string[0];
|
||||
this.drawingCtrl.PipesS = new string[0];
|
||||
this.drawingCtrl.PipesXL = new string[0];
|
||||
this.drawingCtrl.SelectedElement = SchematicDrawing.Element.None;
|
||||
this.drawingCtrl.SelectedItem = null;
|
||||
this.drawingCtrl.Setpoints = null;
|
||||
@@ -746,7 +748,7 @@ namespace TBF.UI
|
||||
private TBF.UI.ResultsMI.ResultsTabPageCtrl resultsTabPageCtrl;
|
||||
private EventLogs.EventLogsTabPageCtrl eventLogsTabPageCtrl;
|
||||
private Calendar.CalendarTabPageCtrl calendarTabPageCtrl;
|
||||
private TBF.UI.Process.ProcessTabPageCtrl24 processTabPageCtrl;
|
||||
private TBF.UI.Process.ProcessTabPageCtrl processTabPageCtrl;
|
||||
private System.Windows.Forms.ToolStripMenuItem benchTSMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem homeTSMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem resultsTSMenuItem;
|
||||
|
||||
+11
-1
@@ -1,5 +1,5 @@
|
||||
///
|
||||
/// Copyright (c) 2013-2020 Sensus Slovensko a.s.
|
||||
/// Copyright (c) 2013-2021 Sensus Slovensko a.s.
|
||||
///
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
@@ -24,6 +24,9 @@ namespace TBF.UI
|
||||
{
|
||||
static readonly ILog log = LogManager.GetLogger(typeof(MainWnd));
|
||||
|
||||
/// Used when re-scaling the dialog: 100% = 96dpi, 125% = 120dpi, 150% = 144dpi
|
||||
public static int Dpi;
|
||||
|
||||
const string ProcSeparator = " "; /// string separating procedure number and procedure name
|
||||
|
||||
public BenchControlPanel BenchControlPanel;
|
||||
@@ -91,6 +94,9 @@ namespace TBF.UI
|
||||
/// </summary>
|
||||
public MainWnd()
|
||||
{
|
||||
/// Detect display setting: 100% = 96dpi, 125% = 120dpi, 150% = 144dpi.
|
||||
Dpi = (int)this.CreateGraphics().DpiX;
|
||||
|
||||
InitializeComponent();
|
||||
|
||||
Text = string.Format("Test Bench Framework ver. {0} - {1}{2}",
|
||||
@@ -329,6 +335,8 @@ namespace TBF.UI
|
||||
UpdateUser();
|
||||
mainTabControl.SelectTab((int)MainTabPageId.Hydraulics);
|
||||
|
||||
processTabPageCtrl.Settings2UI();
|
||||
|
||||
///
|
||||
/// Initialize hydraulical schematic drawing
|
||||
///
|
||||
@@ -788,6 +796,8 @@ namespace TBF.UI
|
||||
/// </summary>
|
||||
void UI2Settings()
|
||||
{
|
||||
processTabPageCtrl.UI2Settings();
|
||||
|
||||
/// Obtain MainWnd dimensions, etc.
|
||||
bool isMaximized = (WindowState == FormWindowState.Maximized);
|
||||
int left = (WindowState == FormWindowState.Normal) ? Location.X : RestoreBounds.Left;
|
||||
|
||||
+14
-23
@@ -589,7 +589,7 @@
|
||||
<value>0, 0</value>
|
||||
</data>
|
||||
<data name="drawingCtrl.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>1012, 523</value>
|
||||
<value>1012, 582</value>
|
||||
</data>
|
||||
<data name="drawingCtrl.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>0</value>
|
||||
@@ -610,7 +610,7 @@
|
||||
<value>4, 5</value>
|
||||
</data>
|
||||
<data name="homeTabPage.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>1012, 523</value>
|
||||
<value>1012, 582</value>
|
||||
</data>
|
||||
<data name="homeTabPage.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>29</value>
|
||||
@@ -652,7 +652,7 @@
|
||||
<value>processTabPageCtrl</value>
|
||||
</data>
|
||||
<data name=">>processTabPageCtrl.Type" xml:space="preserve">
|
||||
<value>TBF.UI.Process.ProcessTabPageCtrl24, TBF, Version=3.1.1480.0, Culture=neutral, PublicKeyToken=null</value>
|
||||
<value>TBF.UI.Process.ProcessTabPageCtrl24, TBF, Version=3.1.1656.0, Culture=neutral, PublicKeyToken=null</value>
|
||||
</data>
|
||||
<data name=">>processTabPageCtrl.Parent" xml:space="preserve">
|
||||
<value>processTabPage</value>
|
||||
@@ -730,7 +730,7 @@
|
||||
<value>resultsTabPageCtrl</value>
|
||||
</data>
|
||||
<data name=">>resultsTabPageCtrl.Type" xml:space="preserve">
|
||||
<value>TBF.UI.ResultsMI.ResultsTabPageCtrl, TBF, Version=3.1.1480.0, Culture=neutral, PublicKeyToken=null</value>
|
||||
<value>TBF.UI.ResultsMI.ResultsTabPageCtrl, TBF, Version=3.1.1656.0, Culture=neutral, PublicKeyToken=null</value>
|
||||
</data>
|
||||
<data name=">>resultsTabPageCtrl.Parent" xml:space="preserve">
|
||||
<value>resultsTabPage</value>
|
||||
@@ -781,7 +781,7 @@
|
||||
<value>graphsTabPageCtrl</value>
|
||||
</data>
|
||||
<data name=">>graphsTabPageCtrl.Type" xml:space="preserve">
|
||||
<value>TBF.UI.Graphs.GraphsTabPageCtrl, TBF, Version=3.1.1480.0, Culture=neutral, PublicKeyToken=null</value>
|
||||
<value>TBF.UI.Graphs.GraphsTabPageCtrl, TBF, Version=3.1.1656.0, Culture=neutral, PublicKeyToken=null</value>
|
||||
</data>
|
||||
<data name=">>graphsTabPageCtrl.Parent" xml:space="preserve">
|
||||
<value>graphsTabPage</value>
|
||||
@@ -835,7 +835,7 @@
|
||||
<value>eventLogsTabPageCtrl</value>
|
||||
</data>
|
||||
<data name=">>eventLogsTabPageCtrl.Type" xml:space="preserve">
|
||||
<value>TBF.UI.EventLogs.EventLogsTabPageCtrl, TBF, Version=3.1.1480.0, Culture=neutral, PublicKeyToken=null</value>
|
||||
<value>TBF.UI.EventLogs.EventLogsTabPageCtrl, TBF, Version=3.1.1656.0, Culture=neutral, PublicKeyToken=null</value>
|
||||
</data>
|
||||
<data name=">>eventLogsTabPageCtrl.Parent" xml:space="preserve">
|
||||
<value>eventLogsTabPage</value>
|
||||
@@ -886,7 +886,7 @@
|
||||
<value>calendarTabPageCtrl</value>
|
||||
</data>
|
||||
<data name=">>calendarTabPageCtrl.Type" xml:space="preserve">
|
||||
<value>TBF.UI.Calendar.CalendarTabPageCtrl, TBF, Version=3.1.1480.0, Culture=neutral, PublicKeyToken=null</value>
|
||||
<value>TBF.UI.Calendar.CalendarTabPageCtrl, TBF, Version=3.1.1656.0, Culture=neutral, PublicKeyToken=null</value>
|
||||
</data>
|
||||
<data name=">>calendarTabPageCtrl.Parent" xml:space="preserve">
|
||||
<value>calendarTabPage</value>
|
||||
@@ -937,7 +937,7 @@
|
||||
<value>picturesTabPageCtrl</value>
|
||||
</data>
|
||||
<data name=">>picturesTabPageCtrl.Type" xml:space="preserve">
|
||||
<value>TBF.UI.Camera.PicturesTabPageCtrl, TBF, Version=3.1.1480.0, Culture=neutral, PublicKeyToken=null</value>
|
||||
<value>TBF.UI.Camera.PicturesTabPageCtrl, TBF, Version=3.1.1656.0, Culture=neutral, PublicKeyToken=null</value>
|
||||
</data>
|
||||
<data name=">>picturesTabPageCtrl.Parent" xml:space="preserve">
|
||||
<value>picturesTabPage</value>
|
||||
@@ -979,7 +979,7 @@
|
||||
<value>0, 0</value>
|
||||
</data>
|
||||
<data name="mainTabControl.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>1020, 532</value>
|
||||
<value>1020, 591</value>
|
||||
</data>
|
||||
<data name="mainTabControl.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>1</value>
|
||||
@@ -1009,7 +1009,7 @@
|
||||
<value>1</value>
|
||||
</data>
|
||||
<data name="horizontalSplitContainer.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>1020, 656</value>
|
||||
<value>1020, 715</value>
|
||||
</data>
|
||||
<data name="horizontalSplitContainer.SplitterDistance" type="System.Int32, mscorlib">
|
||||
<value>120</value>
|
||||
@@ -1108,7 +1108,7 @@
|
||||
<value>1</value>
|
||||
</data>
|
||||
<data name="rightHorizSplitContainer.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>230, 656</value>
|
||||
<value>230, 715</value>
|
||||
</data>
|
||||
<data name="rightHorizSplitContainer.SplitterDistance" type="System.Int32, mscorlib">
|
||||
<value>240</value>
|
||||
@@ -1141,7 +1141,7 @@
|
||||
<value>1</value>
|
||||
</data>
|
||||
<data name="verticalSplitContainer.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>1254, 656</value>
|
||||
<value>1254, 715</value>
|
||||
</data>
|
||||
<data name="verticalSplitContainer.SplitterDistance" type="System.Int32, mscorlib">
|
||||
<value>1020</value>
|
||||
@@ -1192,7 +1192,7 @@
|
||||
<value>0, 17</value>
|
||||
</data>
|
||||
<data name="statusStrip1.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>0, 680</value>
|
||||
<value>0, 739</value>
|
||||
</data>
|
||||
<data name="statusStrip1.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>1254, 22</value>
|
||||
@@ -1435,7 +1435,7 @@
|
||||
<value>6, 13</value>
|
||||
</data>
|
||||
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
|
||||
<value>1254, 702</value>
|
||||
<value>1254, 761</value>
|
||||
</data>
|
||||
<data name="$this.Text" xml:space="preserve">
|
||||
<value>Test Bench Framework</value>
|
||||
@@ -1656,13 +1656,4 @@
|
||||
<data name=">>$this.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name="logsTabPage.Text" xml:space="preserve">
|
||||
<value>Logs</value>
|
||||
</data>
|
||||
<data name="logsTSMenuItem.Text" xml:space="preserve">
|
||||
<value>Logs</value>
|
||||
</data>
|
||||
<data name="editTSMenuItem.Text" xml:space="preserve">
|
||||
<value>Settings</value>
|
||||
</data>
|
||||
</root>
|
||||
+135
@@ -0,0 +1,135 @@
|
||||
namespace TBF.UI.Process
|
||||
{
|
||||
partial class ProcessTabPageCtrl
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Component Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.splitContainer1 = new System.Windows.Forms.SplitContainer();
|
||||
this.splitContainer2 = new System.Windows.Forms.SplitContainer();
|
||||
this.processListViewEx = new TracingDB.Forms.ListViewEx();
|
||||
this.processDrawingCtrl = new SchematicDrawing.SchematicDrawingCtrl();
|
||||
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
|
||||
this.splitContainer1.Panel1.SuspendLayout();
|
||||
this.splitContainer1.Panel2.SuspendLayout();
|
||||
this.splitContainer1.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).BeginInit();
|
||||
this.splitContainer2.Panel1.SuspendLayout();
|
||||
this.splitContainer2.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// splitContainer1
|
||||
//
|
||||
this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.splitContainer1.Location = new System.Drawing.Point(0, 0);
|
||||
this.splitContainer1.Name = "splitContainer1";
|
||||
//
|
||||
// splitContainer1.Panel1
|
||||
//
|
||||
this.splitContainer1.Panel1.Controls.Add(this.splitContainer2);
|
||||
//
|
||||
// splitContainer1.Panel2
|
||||
//
|
||||
this.splitContainer1.Panel2.Controls.Add(this.processDrawingCtrl);
|
||||
this.splitContainer1.Size = new System.Drawing.Size(1012, 580);
|
||||
this.splitContainer1.SplitterDistance = 250;
|
||||
this.splitContainer1.TabIndex = 0;
|
||||
//
|
||||
// splitContainer2
|
||||
//
|
||||
this.splitContainer2.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.splitContainer2.Location = new System.Drawing.Point(0, 0);
|
||||
this.splitContainer2.Name = "splitContainer2";
|
||||
this.splitContainer2.Orientation = System.Windows.Forms.Orientation.Horizontal;
|
||||
//
|
||||
// splitContainer2.Panel1
|
||||
//
|
||||
this.splitContainer2.Panel1.Controls.Add(this.processListViewEx);
|
||||
this.splitContainer2.Size = new System.Drawing.Size(250, 580);
|
||||
this.splitContainer2.SplitterDistance = 300;
|
||||
this.splitContainer2.TabIndex = 0;
|
||||
//
|
||||
// processListViewEx
|
||||
//
|
||||
this.processListViewEx.AllowColumnReorder = true;
|
||||
this.processListViewEx.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.processListViewEx.DoubleClickActivation = false;
|
||||
this.processListViewEx.FullRowSelect = true;
|
||||
this.processListViewEx.GridLines = true;
|
||||
this.processListViewEx.Location = new System.Drawing.Point(0, 0);
|
||||
this.processListViewEx.Name = "processListViewEx";
|
||||
this.processListViewEx.Size = new System.Drawing.Size(250, 300);
|
||||
this.processListViewEx.TabIndex = 0;
|
||||
this.processListViewEx.UseCompatibleStateImageBehavior = false;
|
||||
this.processListViewEx.View = System.Windows.Forms.View.Details;
|
||||
//
|
||||
// processDrawingCtrl
|
||||
//
|
||||
this.processDrawingCtrl.AltStrings = null;
|
||||
this.processDrawingCtrl.BenchControlMode = false;
|
||||
this.processDrawingCtrl.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.processDrawingCtrl.EditMode = false;
|
||||
this.processDrawingCtrl.Location = new System.Drawing.Point(0, 0);
|
||||
this.processDrawingCtrl.MeasuredValues = null;
|
||||
this.processDrawingCtrl.MsrmntAvailableFlags = null;
|
||||
this.processDrawingCtrl.Name = "processDrawingCtrl";
|
||||
this.processDrawingCtrl.PipesL = new string[0];
|
||||
this.processDrawingCtrl.PipesM = new string[0];
|
||||
this.processDrawingCtrl.PipesS = new string[0];
|
||||
this.processDrawingCtrl.PipesXL = new string[0];
|
||||
this.processDrawingCtrl.SelectedElement = SchematicDrawing.Element.None;
|
||||
this.processDrawingCtrl.SelectedItem = null;
|
||||
this.processDrawingCtrl.Setpoints = null;
|
||||
this.processDrawingCtrl.Size = new System.Drawing.Size(758, 580);
|
||||
this.processDrawingCtrl.SupressRedraws = false;
|
||||
this.processDrawingCtrl.TabIndex = 0;
|
||||
//
|
||||
// ProcessTabPageCtrl
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.Controls.Add(this.splitContainer1);
|
||||
this.Name = "ProcessTabPageCtrl";
|
||||
this.Size = new System.Drawing.Size(1012, 580);
|
||||
this.splitContainer1.Panel1.ResumeLayout(false);
|
||||
this.splitContainer1.Panel2.ResumeLayout(false);
|
||||
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit();
|
||||
this.splitContainer1.ResumeLayout(false);
|
||||
this.splitContainer2.Panel1.ResumeLayout(false);
|
||||
((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).EndInit();
|
||||
this.splitContainer2.ResumeLayout(false);
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.SplitContainer splitContainer1;
|
||||
private TracingDB.Forms.ListViewEx processListViewEx;
|
||||
private System.Windows.Forms.SplitContainer splitContainer2;
|
||||
private SchematicDrawing.SchematicDrawingCtrl processDrawingCtrl;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,647 @@
|
||||
///
|
||||
/// Copyright (c) 2021 Sensus Slovensko a.s.
|
||||
///
|
||||
using System;
|
||||
using System.Windows.Forms;
|
||||
using log4net;
|
||||
using Config.Entities;
|
||||
using TBF.Resources;
|
||||
using TBF.Rig;
|
||||
using TBF.UiBridge;
|
||||
using SchematicDrawing;
|
||||
|
||||
namespace TBF.UI.Process
|
||||
{
|
||||
public partial class ProcessTabPageCtrl : UserControl
|
||||
{
|
||||
static readonly ILog log = LogManager.GetLogger(typeof(ProcessTabPageCtrl));
|
||||
|
||||
enum Column
|
||||
{
|
||||
Nr,
|
||||
Error,
|
||||
Volume,
|
||||
Pulses,
|
||||
RefPulses,
|
||||
SerialNr,
|
||||
Count
|
||||
}
|
||||
|
||||
MetersKind currentMetersKind;
|
||||
|
||||
public ProcessTabPageCtrl()
|
||||
{
|
||||
InitializeComponent();
|
||||
InitializeDrawing();
|
||||
|
||||
Bridge.ProcedureSelectedHandler += delegate(object sender, ProcedureSelectedEventArgs args)
|
||||
{
|
||||
try {
|
||||
if (InvokeRequired) Invoke(new EventHandler<ProcedureSelectedEventArgs>(OnProcedureSelected), sender, args);
|
||||
else OnProcedureSelected(sender, args);
|
||||
}
|
||||
catch (Exception e) { log.ErrorFormat("ProcessTabPageCtrl.OnProcedureSelected() failed: {0}", e.Message); }
|
||||
};
|
||||
|
||||
Bridge.TestSelectedHandler += delegate(object sender, TestSelectedEventArgs args)
|
||||
{
|
||||
try {
|
||||
if (InvokeRequired) Invoke(new EventHandler<TestSelectedEventArgs>(OnTestSelected), sender, args);
|
||||
else OnTestSelected(sender, args);
|
||||
}
|
||||
catch (Exception e) { log.ErrorFormat("ProcessTabPageCtrl.OnTestSelected() failed: {0}", e.Message); }
|
||||
};
|
||||
|
||||
Bridge.ProcessDataHandler += delegate(object sender, ProcessDataEventArgs args)
|
||||
{
|
||||
try {
|
||||
if (InvokeRequired) Invoke(new EventHandler<ProcessDataEventArgs>(OnProcessDataChanged), sender, args);
|
||||
else OnProcessDataChanged(sender, args);
|
||||
}
|
||||
catch (Exception e) { log.ErrorFormat("ProcessTabPageCtrl.OnProcessDataChanged() failed: {0}", e.Message); }
|
||||
};
|
||||
|
||||
Bridge.TestCompletedHandler += delegate(object sender, TestCompletedEventArgs args)
|
||||
{
|
||||
try {
|
||||
if (InvokeRequired) Invoke(new EventHandler<TestCompletedEventArgs>(OnTestCompleted), sender, args);
|
||||
else OnTestCompleted(sender, args);
|
||||
}
|
||||
catch (Exception e) { log.ErrorFormat("ProcessTabPageCtrl.OnTestCompleted() failed: {0}", e.Message); }
|
||||
};
|
||||
|
||||
Bridge.ProcedureCompletedHandler += delegate(object sender, ProcedureCompletedEventArgs args)
|
||||
{
|
||||
try {
|
||||
if (InvokeRequired) Invoke(new EventHandler<ProcedureCompletedEventArgs>(OnProcedureCompleted), sender, args);
|
||||
else OnProcedureCompleted(sender, args);
|
||||
}
|
||||
catch (Exception e) { log.ErrorFormat("ProcessTabPageCtrl.OnProcedureCompleted() failed: {0}", e.Message); }
|
||||
};
|
||||
}
|
||||
|
||||
void InitializeDrawing()
|
||||
{
|
||||
///
|
||||
/// Initialize hydraulical schematic drawing
|
||||
///
|
||||
processDrawingCtrl.SupressRedraws = true;
|
||||
///
|
||||
var scale = new TBF.Rig.MettlerToledo.Standard.BalanceCfg(new TBF.Rig.MettlerToledo.Standard.BalanceFactory())
|
||||
{
|
||||
Id = 2,
|
||||
Name = "WT",
|
||||
Shape = Shape.Scale,
|
||||
X = 640,
|
||||
Y = 150,
|
||||
Sz = Sz.M,
|
||||
Orient = Orient.R,
|
||||
Flip = false,
|
||||
LblX = 16,
|
||||
LblY = 40,
|
||||
LblOrient = Orient.R,
|
||||
MsrdX = 16,
|
||||
MsrdY = 64,
|
||||
MsrdOrient = Orient.R,
|
||||
MsrdFormat = "{0:F3}",
|
||||
MsrdUnit = Config.Unit.kg,
|
||||
};
|
||||
|
||||
var diverter = new TBF.Rig.Uni.Diverter.DiverterCfg(new TBF.Rig.Uni.Diverter.Factory())
|
||||
{
|
||||
Id = 3,
|
||||
Name = "Div",
|
||||
DivNr1 = 1,
|
||||
BitNr = 0,
|
||||
Inverted = false,
|
||||
Shape = Shape.Div,
|
||||
X = 610,
|
||||
Y = 90,
|
||||
Sz = Sz.L,
|
||||
Orient = Orient.R,
|
||||
Flip = false,
|
||||
LblX = 50,
|
||||
LblY = -8,
|
||||
LblOrient = Orient.R,
|
||||
};
|
||||
|
||||
var regValve = new TBF.Rig.Uni.RegValve.RegValveCfg("VR", new TBF.Rig.Uni.RegValve.Factory())
|
||||
{
|
||||
Id = 4,
|
||||
Shape = Shape.RegV,
|
||||
X = 450,
|
||||
Y = 140,
|
||||
Sz = Sz.L,
|
||||
Orient = Orient.Up,
|
||||
Flip = true,
|
||||
LblX = 46,
|
||||
LblY = 0,
|
||||
LblOrient = Orient.R,
|
||||
SetpX = 46,
|
||||
SetpY = 22,
|
||||
SetpOrient = Orient.R,
|
||||
};
|
||||
|
||||
var flowmeter = new TBF.Rig.Uni.FlowMeter.FlowMeterCfg(new TBF.Rig.Uni.FlowMeter.Factory())
|
||||
{
|
||||
Id = 5,
|
||||
Name = "I",
|
||||
MsrdFormat = "{0:F3} m2/h",
|
||||
MsrdUnit = Config.Unit.m3ph,
|
||||
Shape = Shape.FlowM,
|
||||
X = 450,
|
||||
Y = 210,
|
||||
Sz = Sz.L,
|
||||
Orient = Orient.Up,
|
||||
Flip = true,
|
||||
LblX = 46,
|
||||
LblY = 0,
|
||||
LblOrient = Orient.R,
|
||||
MsrdX = 46,
|
||||
MsrdY = 22,
|
||||
MsrdOrient = Orient.R,
|
||||
};
|
||||
|
||||
var startValve = new TBF.Rig.BuiltIn.Valve.ValveCfg(new TBF.Rig.BuiltIn.Valve.ValveFactory())
|
||||
{
|
||||
Id = 6,
|
||||
Name = "VI",
|
||||
BitNr = 0,
|
||||
Inverted = false,
|
||||
Shape = Shape.Valve,
|
||||
X = 450,
|
||||
Y = 280,
|
||||
Sz = Sz.L,
|
||||
Orient = Orient.Up,
|
||||
Flip = false,
|
||||
LblX = 48,
|
||||
LblY = 9,
|
||||
LblOrient = Orient.R,
|
||||
};
|
||||
|
||||
var wm1 = new TBF.Rig.WaterMeters.WaterMeter.WaterMeterCfg(new TBF.Rig.WaterMeters.WaterMeter.WaterMeterFactory())
|
||||
{
|
||||
Id = 7,
|
||||
Name = "WM1",
|
||||
Shape = Shape.WaterM,
|
||||
X = 120,
|
||||
Y = 360,
|
||||
Sz = Sz.L,
|
||||
Orient = Orient.R,
|
||||
Flip = false,
|
||||
LblX = 0,
|
||||
LblY = -24,
|
||||
LblOrient = Orient.R,
|
||||
};
|
||||
|
||||
var wm2 = new TBF.Rig.WaterMeters.WaterMeter.WaterMeterCfg(new TBF.Rig.WaterMeters.WaterMeter.WaterMeterFactory())
|
||||
{
|
||||
Id = 8,
|
||||
Name = "WM2",
|
||||
Shape = Shape.WaterM,
|
||||
X = 180,
|
||||
Y = 360,
|
||||
Sz = Sz.L,
|
||||
Orient = Orient.R,
|
||||
Flip = false,
|
||||
LblX = 0,
|
||||
LblY = -24,
|
||||
LblOrient = Orient.R,
|
||||
};
|
||||
|
||||
var wm3 = new TBF.Rig.WaterMeters.WaterMeter.WaterMeterCfg(new TBF.Rig.WaterMeters.WaterMeter.WaterMeterFactory())
|
||||
{
|
||||
Id = 9,
|
||||
Name = "WM3",
|
||||
Shape = Shape.WaterM,
|
||||
X = 310,
|
||||
Y = 360,
|
||||
Sz = Sz.L,
|
||||
Orient = Orient.R,
|
||||
Flip = false,
|
||||
LblX = 0,
|
||||
LblY = -24,
|
||||
LblOrient = Orient.R,
|
||||
};
|
||||
|
||||
var pump = new TBF.Rig.Modbus.PumpFM.DanfossVLT.PumpCfg(new TBF.Rig.Modbus.PumpFM.DanfossVLT.Factory())
|
||||
{
|
||||
Id = 10,
|
||||
Name = "P",
|
||||
BitNr = 0,
|
||||
Inverted = false,
|
||||
Shape = Shape.PumpFM,
|
||||
X = 450,
|
||||
Y = 480,
|
||||
Sz = Sz.L,
|
||||
Orient = Orient.L,
|
||||
Flip = false,
|
||||
LblX = 0,
|
||||
LblY = -46,
|
||||
LblOrient = Orient.R,
|
||||
SetpX = 0,
|
||||
SetpY = -24,
|
||||
SetpOrient = Orient.R,
|
||||
SetpFormat = "{0:F0} %",
|
||||
SetpUnit = Config.Unit.Pct,
|
||||
};
|
||||
|
||||
var tank = new TBF.Rig.Various.Drawing.Tank.Configuration("Tank", new TBF.Rig.Various.Drawing.Tank.Factory())
|
||||
{
|
||||
Id = 11,
|
||||
Shape = Shape.Tank,
|
||||
X = 570,
|
||||
Y = 410,
|
||||
Sz = Sz.L,
|
||||
Orient = Orient.R,
|
||||
Flip = false,
|
||||
LblX = 33,
|
||||
LblY = 22,
|
||||
LblOrient = Orient.R,
|
||||
};
|
||||
|
||||
var drainValve = new TBF.Rig.BuiltIn.Valve.ValveCfg(new TBF.Rig.BuiltIn.Valve.ValveFactory())
|
||||
{
|
||||
Id = 16,
|
||||
Name = "VB",
|
||||
BitNr = 0,
|
||||
Inverted = false,
|
||||
Shape = Shape.Valve,
|
||||
X = 660,
|
||||
Y = 270,
|
||||
Sz = Sz.M,
|
||||
Orient = Orient.Dn,
|
||||
Flip = false,
|
||||
LblX = 40,
|
||||
LblY = 5,
|
||||
LblOrient = Orient.R,
|
||||
};
|
||||
|
||||
var j1 = new TBF.Rig.Various.Drawing.Junction.Configuration("J1", new TBF.Rig.Various.Drawing.Junction.Factory())
|
||||
{
|
||||
Id = 17,
|
||||
Shape = Shape.Junction,
|
||||
X = 50,
|
||||
Y = 490,
|
||||
Sz = Sz.L,
|
||||
};
|
||||
|
||||
var j2 = new TBF.Rig.Various.Drawing.Junction.Configuration("J2", new TBF.Rig.Various.Drawing.Junction.Factory())
|
||||
{
|
||||
Id = 18,
|
||||
Shape = Shape.Junction,
|
||||
X = 50,
|
||||
Y = 370,
|
||||
Sz = Sz.L,
|
||||
};
|
||||
|
||||
var j3 = new TBF.Rig.Various.Drawing.Junction.Configuration("J3", new TBF.Rig.Various.Drawing.Junction.Factory())
|
||||
{
|
||||
Id = 19,
|
||||
Shape = Shape.Junction,
|
||||
X = 460,
|
||||
Y = 370,
|
||||
Sz = Sz.L,
|
||||
};
|
||||
|
||||
var j4 = new TBF.Rig.Various.Drawing.Junction.Configuration("J4", new TBF.Rig.Various.Drawing.Junction.Factory())
|
||||
{
|
||||
Id = 20,
|
||||
Shape = Shape.Junction,
|
||||
X = 460,
|
||||
Y = 80,
|
||||
Sz = Sz.L,
|
||||
};
|
||||
|
||||
var j5 = new TBF.Rig.Various.Drawing.Junction.Configuration("J5", new TBF.Rig.Various.Drawing.Junction.Factory())
|
||||
{
|
||||
Id = 21,
|
||||
Shape = Shape.Junction,
|
||||
X = 630,
|
||||
Y = 40,
|
||||
Sz = Sz.L,
|
||||
};
|
||||
|
||||
var j6 = new TBF.Rig.Various.Drawing.Junction.Configuration("J6", new TBF.Rig.Various.Drawing.Junction.Factory())
|
||||
{
|
||||
Id = 22,
|
||||
Shape = Shape.Junction,
|
||||
X = 680,
|
||||
Y = 390,
|
||||
Sz = Sz.None,
|
||||
};
|
||||
|
||||
var j7 = new TBF.Rig.Various.Drawing.Junction.Configuration("J7", new TBF.Rig.Various.Drawing.Junction.Factory())
|
||||
{
|
||||
Id = 23,
|
||||
Shape = Shape.Junction,
|
||||
X = 620,
|
||||
Y = 390,
|
||||
Sz = Sz.None,
|
||||
};
|
||||
|
||||
var t_in = new TBF.Rig.Modbus.TempMeter.Groch.TempMeterCfg(new TBF.Rig.Modbus.TempMeter.Groch.Factory())
|
||||
{
|
||||
Id = 25,
|
||||
Name = "T in",
|
||||
MsrdFormat = "{0:F1} °C",
|
||||
MsrdUnit = Config.Unit.C,
|
||||
MsrdValLimLo = 5,
|
||||
MsrdValLimHi = 95,
|
||||
Shape = Shape.TempM,
|
||||
X = 50,
|
||||
Y = 320,
|
||||
Sz = Sz.M,
|
||||
Orient = Orient.R,
|
||||
Flip = false,
|
||||
LblX = 0,
|
||||
LblY = 2,
|
||||
LblOrient = Orient.R,
|
||||
MsrdX = 0,
|
||||
MsrdY = 24,
|
||||
MsrdOrient = Orient.R,
|
||||
};
|
||||
|
||||
var t_out = new TBF.Rig.Modbus.TempMeter.Groch.TempMeterCfg(new TBF.Rig.Modbus.TempMeter.Groch.Factory())
|
||||
{
|
||||
Id = 26,
|
||||
Name = "T out",
|
||||
MsrdFormat = "{0:F1} °C",
|
||||
MsrdUnit = Config.Unit.C,
|
||||
MsrdValLimLo = 5,
|
||||
MsrdValLimHi = 95,
|
||||
Shape = Shape.TempM,
|
||||
X = 370,
|
||||
Y = 320,
|
||||
Sz = Sz.M,
|
||||
Orient = Orient.R,
|
||||
Flip = false,
|
||||
LblX = 0,
|
||||
LblY = 2,
|
||||
LblOrient = Orient.R,
|
||||
MsrdX = 0,
|
||||
MsrdY = 24,
|
||||
MsrdOrient = Orient.R,
|
||||
};
|
||||
|
||||
var t_div = new TBF.Rig.Modbus.TempMeter.Groch.TempMeterCfg(new TBF.Rig.Modbus.TempMeter.Groch.Factory())
|
||||
{
|
||||
Id = 27,
|
||||
Name = "T div",
|
||||
MsrdFormat = "{0:F1} °C",
|
||||
MsrdUnit = Config.Unit.C,
|
||||
MsrdValLimLo = 5,
|
||||
MsrdValLimHi = 95,
|
||||
Shape = Shape.TempM,
|
||||
X = 660,
|
||||
Y = 30,
|
||||
Sz = Sz.M,
|
||||
Orient = Orient.R,
|
||||
Flip = false,
|
||||
LblX = 0,
|
||||
LblY = 0,
|
||||
LblOrient = Orient.R,
|
||||
MsrdX = 0,
|
||||
MsrdY = 22,
|
||||
MsrdOrient = Orient.R,
|
||||
};
|
||||
|
||||
var pr_up = new TBF.Rig.Modbus.PressureMeter.Meret.PressureMeterCfg(new TBF.Rig.Modbus.PressureMeter.Meret.Factory())
|
||||
{
|
||||
Id = 28,
|
||||
Name = "Pr up",
|
||||
MsrdFormat = "{0:F2} bar",
|
||||
MsrdUnit = Config.Unit.bar,
|
||||
MsrdValLimLo = -0.1,
|
||||
MsrdValLimHi = 25,
|
||||
Shape = Shape.PressM,
|
||||
X = 50,
|
||||
Y = 270,
|
||||
Sz = Sz.M,
|
||||
Orient = Orient.R,
|
||||
Flip = false,
|
||||
LblX = 0,
|
||||
LblY = 0,
|
||||
LblOrient = Orient.R,
|
||||
MsrdX = 0,
|
||||
MsrdY = 22,
|
||||
MsrdOrient = Orient.R,
|
||||
};
|
||||
|
||||
var pr_dn = new TBF.Rig.Modbus.PressureMeter.Meret.PressureMeterCfg(new TBF.Rig.Modbus.PressureMeter.Meret.Factory())
|
||||
{
|
||||
Id = 29,
|
||||
Name = "Pr dn",
|
||||
MsrdFormat = "{0:F2} bar",
|
||||
MsrdUnit = Config.Unit.bar,
|
||||
MsrdValLimLo = -0.1,
|
||||
MsrdValLimHi = 25,
|
||||
Shape = Shape.PressM,
|
||||
X = 370,
|
||||
Y = 270,
|
||||
Sz = Sz.M,
|
||||
Orient = Orient.R,
|
||||
Flip = false,
|
||||
LblX = 0,
|
||||
LblY = 0,
|
||||
LblOrient = Orient.R,
|
||||
MsrdX = 0,
|
||||
MsrdY = 22,
|
||||
MsrdOrient = Orient.R,
|
||||
};
|
||||
|
||||
processDrawingCtrl.AddItem(scale);
|
||||
processDrawingCtrl.AddItem(diverter);
|
||||
processDrawingCtrl.AddItem(regValve);
|
||||
processDrawingCtrl.AddItem(flowmeter);
|
||||
processDrawingCtrl.AddItem(startValve);
|
||||
processDrawingCtrl.AddItem(wm1);
|
||||
processDrawingCtrl.AddItem(wm2);
|
||||
processDrawingCtrl.AddItem(wm3);
|
||||
processDrawingCtrl.AddItem(pump);
|
||||
processDrawingCtrl.AddItem(tank);
|
||||
processDrawingCtrl.AddItem(drainValve);
|
||||
processDrawingCtrl.AddItem(j1);
|
||||
processDrawingCtrl.AddItem(j2);
|
||||
processDrawingCtrl.AddItem(j3);
|
||||
processDrawingCtrl.AddItem(j4);
|
||||
processDrawingCtrl.AddItem(j5);
|
||||
processDrawingCtrl.AddItem(j6);
|
||||
processDrawingCtrl.AddItem(j7);
|
||||
processDrawingCtrl.AddItem(t_in);
|
||||
processDrawingCtrl.AddItem(t_out);
|
||||
processDrawingCtrl.AddItem(t_div);
|
||||
processDrawingCtrl.AddItem(pr_up);
|
||||
processDrawingCtrl.AddItem(pr_dn);
|
||||
|
||||
processDrawingCtrl.PipesS = new string[0];
|
||||
processDrawingCtrl.PipesM = new string[0];
|
||||
processDrawingCtrl.PipesL = new string[] {
|
||||
"11~0~10~0", "10~1~17~0", "17~0~18~0", "18~0~7~0", "7~1~8~0", "8~1~9~0", "9~1~19~0", "19~0~6~0",
|
||||
"6~1~5~0", "5~1~4~0", "4~1~20~0", "20~0~21~0", "21~0~3~0", "2~0~16~0", "16~1~22~0", "3~1~23~0" };
|
||||
processDrawingCtrl.PipesXL = new string[0];
|
||||
processDrawingCtrl.Route = 0;
|
||||
|
||||
processDrawingCtrl.SupressRedraws = false; /// Invokes Dijkstra algoritm
|
||||
}
|
||||
|
||||
public void Settings2UI()
|
||||
{
|
||||
TBF.LocalSettings ls = Program.LocalSettings;
|
||||
|
||||
/// Splitter distances
|
||||
splitContainer1.SplitterDistance = ls.ProcessSplitDist1;
|
||||
splitContainer2.SplitterDistance = ls.ProcessSplitDist2;
|
||||
|
||||
/// ListViewEx columns
|
||||
processListViewEx.Columns.Add(Strings.Nr, (ls.ProcessColumnCount > 0) ? ls.ProcessColumnWidths[0] : 30 * MainWnd.Dpi / Constants.Dpi100pct);
|
||||
processListViewEx.Columns.Add(Strings.Error, (ls.ProcessColumnCount > 1) ? ls.ProcessColumnWidths[1] : 50 * MainWnd.Dpi / Constants.Dpi100pct);
|
||||
processListViewEx.Columns.Add(Strings.Volume, (ls.ProcessColumnCount > 2) ? ls.ProcessColumnWidths[2] : 50 * MainWnd.Dpi / Constants.Dpi100pct);
|
||||
processListViewEx.Columns.Add(Strings.Pulses, (ls.ProcessColumnCount > 3) ? ls.ProcessColumnWidths[3] : 60 * MainWnd.Dpi / Constants.Dpi100pct);
|
||||
processListViewEx.Columns.Add(Strings.Ref_pulses, (ls.ProcessColumnCount > 4) ? ls.ProcessColumnWidths[4] : 75 * MainWnd.Dpi / Constants.Dpi100pct);
|
||||
processListViewEx.Columns.Add(Strings.SerialNr, (ls.ProcessColumnCount > 5) ? ls.ProcessColumnWidths[5] : 100 * MainWnd.Dpi / Constants.Dpi100pct);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Save UI settings to Program.LocalSettings and save them to a file.
|
||||
/// UI settings are:
|
||||
/// MainWnd size and location and splitter distances.
|
||||
/// </summary>
|
||||
public void UI2Settings()
|
||||
{
|
||||
LocalSettings ls = Program.LocalSettings;
|
||||
|
||||
bool anyChange = splitContainer1.SplitterDistance != ls.ProcessSplitDist1
|
||||
|| splitContainer2.SplitterDistance != ls.ProcessSplitDist2;
|
||||
if (anyChange)
|
||||
{
|
||||
ls.ProcessSplitDist1 = splitContainer1.SplitterDistance;
|
||||
ls.ProcessSplitDist2 = splitContainer2.SplitterDistance;
|
||||
}
|
||||
|
||||
/// Compare list view column widths with the saved ones
|
||||
if (processListViewEx.Columns.Count != ls.ProcessColumnCount)
|
||||
{
|
||||
ls.ProcessColumnWidths = new int[processListViewEx.Columns.Count];
|
||||
for (int i = 0; i < ls.ProcessColumnCount; i++)
|
||||
{
|
||||
ls.ProcessColumnWidths[i] = processListViewEx.Columns[i].Width;
|
||||
}
|
||||
anyChange = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
for (int i = 0; i < ls.ProcessColumnCount; i++)
|
||||
{
|
||||
if (processListViewEx.Columns[i].Width != ls.ProcessColumnWidths[i])
|
||||
{
|
||||
ls.ProcessColumnWidths[i] = processListViewEx.Columns[i].Width;
|
||||
anyChange = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (anyChange) ls.Save();
|
||||
}
|
||||
|
||||
|
||||
void OnProcedureSelected(object sender, ProcedureSelectedEventArgs args)
|
||||
{
|
||||
currentMetersKind = args.Procedure.MetersKind;
|
||||
Invalidate();
|
||||
}
|
||||
|
||||
void OnTestSelected(object sender, TestSelectedEventArgs args)
|
||||
{
|
||||
}
|
||||
|
||||
void OnProcessDataChanged(object sender, ProcessDataEventArgs args)
|
||||
{
|
||||
if (processListViewEx.Items.Count != TBF.Rig.Sequences.ProcessData.RegisterReaders.Length)
|
||||
{
|
||||
processListViewEx.Items.Clear();
|
||||
for (int i = 1; i <= TBF.Rig.Sequences.ProcessData.RegisterReaders.Length; i++)
|
||||
{
|
||||
var lvi = new ListViewItem(i.ToString());
|
||||
for (Column c = Column.Error; c < Column.Count; c++) lvi.SubItems.Add(".");
|
||||
if (TBF.Rig.Sequences.ProcessData.BatchRslts.Batch.WaterMeters.Count >= i)
|
||||
{
|
||||
lvi.Tag = TBF.Rig.Sequences.ProcessData.BatchRslts.Batch.WaterMeters[i - 1];
|
||||
}
|
||||
processListViewEx.Items.Add(lvi);
|
||||
}
|
||||
}
|
||||
|
||||
for (int i = 1; i <= TBF.Rig.Sequences.ProcessData.RegisterReaders.Length; i++)
|
||||
{
|
||||
if (TBF.Rig.Sequences.ProcessData.RegisterReaders[i - 1] != null)
|
||||
{
|
||||
var lvi = processListViewEx.Items[i - 1];
|
||||
var rr = TBF.Rig.Sequences.ProcessData.RegisterReaders[i - 1];
|
||||
|
||||
if (rr != null)
|
||||
{
|
||||
/// Update a list view item
|
||||
//lvi.SubItems[(int)Column.Error].Text = Config.Formulas.ErrorFromVolumes(rr.WMVolume, rr.WMRefVolume).ToString("F1");
|
||||
lvi.SubItems[(int)Column.Volume].Text = rr.WMVolume.ToString("F1");
|
||||
lvi.SubItems[(int)Column.Pulses].Text = rr.WMPulses.ToString();
|
||||
lvi.SubItems[(int)Column.RefPulses].Text = rr.WMRefPulses.ToString();
|
||||
if (rr is TBF.Rig.RegisterReaders.S640Stream.S640Stream)
|
||||
{
|
||||
lvi.SubItems[(int)Column.SerialNr].Text = (rr as TBF.Rig.RegisterReaders.S640Stream.S640Stream).PcbNumber.ToString();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void OnTestCompleted(object sender, TestCompletedEventArgs args)
|
||||
{
|
||||
if (processListViewEx.Items.Count != TBF.Rig.Sequences.ProcessData.RegisterReaders.Length)
|
||||
{
|
||||
processListViewEx.Items.Clear();
|
||||
for (int i = 1; i <= TBF.Rig.Sequences.ProcessData.RegisterReaders.Length; i++)
|
||||
{
|
||||
var lvi = new ListViewItem(i.ToString());
|
||||
for (Column c = Column.Error; c < Column.Count; c++) lvi.SubItems.Add(".");
|
||||
if (TBF.Rig.Sequences.ProcessData.BatchRslts.Batch.WaterMeters.Count >= i)
|
||||
{
|
||||
lvi.Tag = TBF.Rig.Sequences.ProcessData.BatchRslts.Batch.WaterMeters[i - 1];
|
||||
}
|
||||
processListViewEx.Items.Add(lvi);
|
||||
}
|
||||
}
|
||||
|
||||
foreach (var wm in args.TestRslt.Batch.WaterMeters)
|
||||
{
|
||||
if (wm.WMPosition > 0 && wm.WMPosition <= processListViewEx.Items.Count)
|
||||
{
|
||||
foreach (var mtr in wm.MeterTestRslts)
|
||||
{
|
||||
if (mtr != null && mtr.TestRslt == args.TestRslt)
|
||||
{
|
||||
var lvi = processListViewEx.Items[wm.WMPosition - 1];
|
||||
|
||||
/// Update a list view item
|
||||
lvi.SubItems[(int)Column.Error].Text = mtr.Error.ToString("F1");
|
||||
lvi.SubItems[(int)Column.Volume].Text = mtr.VolumeMeter.ToString("F1");
|
||||
lvi.SubItems[(int)Column.Pulses].Text = mtr.PulsesMeter.ToString();
|
||||
lvi.SubItems[(int)Column.RefPulses].Text = mtr.PulsesMaster.ToString();
|
||||
lvi.SubItems[(int)Column.SerialNr].Text = mtr.SerialNr();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void OnProcedureCompleted(object sender, ProcedureCompletedEventArgs args)
|
||||
{
|
||||
}
|
||||
|
||||
private void ProcessTabPageCtrl_Paint(object sender, PaintEventArgs e)
|
||||
{
|
||||
System.Drawing.Graphics formGraphics = this.CreateGraphics();
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,120 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
||||
@@ -2,6 +2,7 @@
|
||||
/// Copyright (c) 2013-2015 Sensus Metering Systems
|
||||
///
|
||||
using System;
|
||||
using Config.Entities;
|
||||
|
||||
namespace TBF.UiBridge
|
||||
{
|
||||
@@ -12,7 +13,7 @@ namespace TBF.UiBridge
|
||||
public int Repeats;
|
||||
public int RepetitionNr;
|
||||
|
||||
public Config.Entities.Progress Phase;
|
||||
public Progress Phase;
|
||||
public int Progress; /// value in the range 0..100
|
||||
public float OveralProgress;
|
||||
|
||||
@@ -22,7 +23,7 @@ namespace TBF.UiBridge
|
||||
static int[] estimatedTime; /// Estimated time of each phase to calculate the progress [s]
|
||||
static int[] cumulativeSumsOfEstimates;
|
||||
static int currentPhaseStartTime;
|
||||
static Config.Entities.Progress currentPhase;
|
||||
static Progress currentPhase;
|
||||
|
||||
|
||||
static TestProgressEventArgs()
|
||||
@@ -58,7 +59,7 @@ namespace TBF.UiBridge
|
||||
/// and calculates 'Progress'.
|
||||
/// </summary>
|
||||
/// <param name="progress"></param>
|
||||
private TestProgressEventArgs(Config.Entities.Progress phase)
|
||||
private TestProgressEventArgs(Progress phase)
|
||||
{
|
||||
if (phase != currentPhase)
|
||||
{
|
||||
@@ -81,7 +82,7 @@ namespace TBF.UiBridge
|
||||
|
||||
#endregion
|
||||
|
||||
public TestProgressEventArgs(Config.Entities.Test test, int repetitionNr, Config.Entities.Progress progress)
|
||||
public TestProgressEventArgs(Config.Entities.Test test, int repetitionNr, Progress progress)
|
||||
: this(progress)
|
||||
{
|
||||
TestName = Results.Utils.GetTestName(test.Name, test.Repeats, repetitionNr);
|
||||
@@ -90,7 +91,7 @@ namespace TBF.UiBridge
|
||||
RepetitionNr = repetitionNr;
|
||||
}
|
||||
|
||||
public TestProgressEventArgs(Config.Entities.Test test, Config.Entities.Progress progress)
|
||||
public TestProgressEventArgs(Test test, Progress progress)
|
||||
: this(test, 1, progress)
|
||||
{
|
||||
}
|
||||
@@ -111,7 +112,7 @@ namespace TBF.UiBridge
|
||||
/// <summary>
|
||||
/// Used by iPearl communication dialog
|
||||
/// </summary>
|
||||
public TestProgressEventArgs(string testName, Config.Entities.Progress progress)
|
||||
public TestProgressEventArgs(string testName, Progress progress)
|
||||
: this(progress)
|
||||
{
|
||||
TestName = testName;
|
||||
|
||||
Reference in New Issue
Block a user