After FAI
This commit is contained in:
@@ -155,7 +155,7 @@
|
|||||||
</site>
|
</site>
|
||||||
<site name="MeterProcessState" id="2">
|
<site name="MeterProcessState" id="2">
|
||||||
<application path="/" applicationPool="Clr4IntegratedAppPool">
|
<application path="/" applicationPool="Clr4IntegratedAppPool">
|
||||||
<virtualDirectory path="/" physicalPath="D:\Projekte\SENSUS_GitLab\laa_production\Common\Service\MeterProcessState" />
|
<virtualDirectory path="/" physicalPath="C:\Users\drabesch_ro\Repo\lab\la_operations\laa_production\Common\Service\MeterProcessState" />
|
||||||
</application>
|
</application>
|
||||||
<bindings>
|
<bindings>
|
||||||
<binding protocol="http" bindingInformation="*:56011:localhost" />
|
<binding protocol="http" bindingInformation="*:56011:localhost" />
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||||
xmlns:local="clr-namespace:CordonelAssemblyLine"
|
xmlns:local="clr-namespace:CordonelAssemblyLine"
|
||||||
mc:Ignorable="d"
|
mc:Ignorable="d"
|
||||||
Title="Leak" Height="450" Width="800" Background="Aqua">
|
Title="Leak" Height="450" Width="800" Background="Aqua" Closing="Window_Closing">
|
||||||
<Window.Resources>
|
<Window.Resources>
|
||||||
<c:MathConverter x:Key="myMathConverter"/>
|
<c:MathConverter x:Key="myMathConverter"/>
|
||||||
</Window.Resources>
|
</Window.Resources>
|
||||||
|
|||||||
@@ -110,5 +110,10 @@ namespace CordonelAssemblyLine
|
|||||||
//}
|
//}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
|
||||||
|
{
|
||||||
|
ViewModel.Dispose();
|
||||||
|
this.Title = "";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
xmlns:ProductionControls="clr-namespace:ProductionControls;assembly=ProductionControls"
|
xmlns:ProductionControls="clr-namespace:ProductionControls;assembly=ProductionControls"
|
||||||
xmlns:ProductionControls1="clr-namespace:Ui.ProductionControls;assembly=ProductionControls"
|
xmlns:ProductionControls1="clr-namespace:Ui.ProductionControls;assembly=ProductionControls"
|
||||||
mc:Ignorable="d"
|
mc:Ignorable="d"
|
||||||
Title="MainWindow" Height="450" Width="800">
|
Title="MainWindow" Height="450" Width="800" Closing="Window_Closing">
|
||||||
<Grid>
|
<Grid>
|
||||||
<Grid.RowDefinitions>
|
<Grid.RowDefinitions>
|
||||||
<RowDefinition Height="100"/>
|
<RowDefinition Height="100"/>
|
||||||
@@ -22,9 +22,9 @@
|
|||||||
<ColumnDefinition Width="217*"/>
|
<ColumnDefinition Width="217*"/>
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
<Button Content="Picking" HorizontalAlignment="Left" Height="80" Margin="34,10,0,0" VerticalAlignment="Top" Width="220" Click="Button_Click"/>
|
<Button Content="Kommissionierung/Picking" HorizontalAlignment="Left" Height="80" Margin="34,10,0,0" VerticalAlignment="Top" Width="220" Click="Button_Click"/>
|
||||||
<Button Content="Leak" HorizontalAlignment="Left" Height="80" Margin="34,10,0,0" VerticalAlignment="Top" Width="220" Click="Button_Click_1" Grid.Row="1"/>
|
<Button Content="Helium Prüfung/Leak" HorizontalAlignment="Left" Height="80" Margin="34,10,0,0" VerticalAlignment="Top" Width="220" Click="Button_Click_1" Grid.Row="1"/>
|
||||||
<Button Content="Marrieage" HorizontalAlignment="Left" Height="80" Margin="34,10,0,0" VerticalAlignment="Top" Width="220" Click="Button_Click_2" Grid.Row="2"/>
|
<Button Content="Verheiraten/Marrieage" HorizontalAlignment="Left" Height="80" Margin="34,10,0,0" VerticalAlignment="Top" Width="220" Click="Button_Click_2" Grid.Row="2"/>
|
||||||
<TextBox Name="txtPickingBarcode" Grid.Column="2" HorizontalAlignment="Left" Height="23" Margin="10,41,0,0" TextWrapping="Wrap" Text="TextBox" VerticalAlignment="Top" Width="120"/>
|
<TextBox Name="txtPickingBarcode" Grid.Column="2" HorizontalAlignment="Left" Height="23" Margin="10,41,0,0" TextWrapping="Wrap" Text="TextBox" VerticalAlignment="Top" Width="120"/>
|
||||||
<TextBox Name="txtPickingSlot" Grid.Column="1" HorizontalAlignment="Left" Height="23" Margin="10,41,0,0" TextWrapping="Wrap" Text="TextBox" VerticalAlignment="Top" Width="120"/>
|
<TextBox Name="txtPickingSlot" Grid.Column="1" HorizontalAlignment="Left" Height="23" Margin="10,41,0,0" TextWrapping="Wrap" Text="TextBox" VerticalAlignment="Top" Width="120"/>
|
||||||
<Label Content="Slot" Grid.Column="1" HorizontalAlignment="Left" Margin="10,10,0,0" VerticalAlignment="Top" Height="26" Width="30"/>
|
<Label Content="Slot" Grid.Column="1" HorizontalAlignment="Left" Margin="10,10,0,0" VerticalAlignment="Top" Height="26" Width="30"/>
|
||||||
|
|||||||
@@ -45,6 +45,11 @@ namespace CordonelAssemblyLine
|
|||||||
|
|
||||||
private void Button_Click(object sender, RoutedEventArgs e)
|
private void Button_Click(object sender, RoutedEventArgs e)
|
||||||
{
|
{
|
||||||
|
if (PickingWindow?.Title == "")
|
||||||
|
{
|
||||||
|
PickingWindow = null;
|
||||||
|
}
|
||||||
|
|
||||||
if (PickingWindow == null)
|
if (PickingWindow == null)
|
||||||
{
|
{
|
||||||
var tmp = 0;
|
var tmp = 0;
|
||||||
@@ -54,12 +59,20 @@ namespace CordonelAssemblyLine
|
|||||||
PickingWindow.Show();
|
PickingWindow.Show();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
PickingWindow.Focus();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void Button_Click_1(object sender, RoutedEventArgs e)
|
private void Button_Click_1(object sender, RoutedEventArgs e)
|
||||||
{
|
{
|
||||||
|
if (LeakWindow?.Title == "")
|
||||||
|
{
|
||||||
|
LeakWindow = null;
|
||||||
|
}
|
||||||
if (LeakWindow == null)
|
if (LeakWindow == null)
|
||||||
{
|
{
|
||||||
var tmpSlot = 0;
|
var tmpSlot = 0;
|
||||||
@@ -70,10 +83,18 @@ namespace CordonelAssemblyLine
|
|||||||
LeakWindow.Show();
|
LeakWindow.Show();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
LeakWindow.Focus();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void Button_Click_2(object sender, RoutedEventArgs e)
|
private void Button_Click_2(object sender, RoutedEventArgs e)
|
||||||
{
|
{
|
||||||
|
if (MarriageWindow?.Title == "")
|
||||||
|
{
|
||||||
|
MarriageWindow = null;
|
||||||
|
}
|
||||||
if (MarriageWindow == null)
|
if (MarriageWindow == null)
|
||||||
{
|
{
|
||||||
var tmp = 0;
|
var tmp = 0;
|
||||||
@@ -84,6 +105,10 @@ namespace CordonelAssemblyLine
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
MarriageWindow.Focus();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private System.Collections.Generic.List<Ui.ProductionControls.ctlPictureProgressBar.ImageElement> progressbars = new System.Collections.Generic.List<Ui.ProductionControls.ctlPictureProgressBar.ImageElement>();
|
private System.Collections.Generic.List<Ui.ProductionControls.ctlPictureProgressBar.ImageElement> progressbars = new System.Collections.Generic.List<Ui.ProductionControls.ctlPictureProgressBar.ImageElement>();
|
||||||
@@ -113,5 +138,25 @@ namespace CordonelAssemblyLine
|
|||||||
progressbars.Where(n => n.Name == el3).First().State = Ui.ProductionControls.Enums.ImgStatus.InProgress;
|
progressbars.Where(n => n.Name == el3).First().State = Ui.ProductionControls.Enums.ImgStatus.InProgress;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
|
||||||
|
{
|
||||||
|
if (PickingWindow != null)
|
||||||
|
{
|
||||||
|
PickingWindow.Close();
|
||||||
|
}
|
||||||
|
if (LeakWindow != null)
|
||||||
|
{
|
||||||
|
LeakWindow.Close();
|
||||||
|
}
|
||||||
|
if (MarriageWindow != null)
|
||||||
|
{
|
||||||
|
MarriageWindow.Close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||||
xmlns:local="clr-namespace:CordonelAssemblyLine"
|
xmlns:local="clr-namespace:CordonelAssemblyLine"
|
||||||
mc:Ignorable="d"
|
mc:Ignorable="d"
|
||||||
Title="Marriage" Height="287.361" Width="489.32" Loaded="Window_Loaded">
|
Title="Marriage" Height="287.361" Width="489.32" Loaded="Window_Loaded" Closing="Window_Closing">
|
||||||
<Grid>
|
<Grid>
|
||||||
<StackPanel Background="BlanchedAlmond" >
|
<StackPanel Background="BlanchedAlmond" >
|
||||||
|
|
||||||
|
|||||||
@@ -51,5 +51,11 @@ namespace CordonelAssemblyLine
|
|||||||
{
|
{
|
||||||
Model.StartStore();
|
Model.StartStore();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
|
||||||
|
{
|
||||||
|
Model.Dispose();
|
||||||
|
this.Title = "";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -348,6 +348,8 @@ namespace CordonelAssemblyLine.Model
|
|||||||
|
|
||||||
url = url + $"SetPressureStateDetailed";
|
url = url + $"SetPressureStateDetailed";
|
||||||
var mutedResult = Result.ToBase();
|
var mutedResult = Result.ToBase();
|
||||||
|
|
||||||
|
mutedResult.Passed = successfull;
|
||||||
isStored = LocalWebRequest.PostRequestAsync(url, json: mutedResult);
|
isStored = LocalWebRequest.PostRequestAsync(url, json: mutedResult);
|
||||||
if (!isStored)
|
if (!isStored)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ using System.Linq;
|
|||||||
using System.Net;
|
using System.Net;
|
||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
using System.Runtime.CompilerServices;
|
using System.Runtime.CompilerServices;
|
||||||
|
using System.Text;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Xylem.Common.CommonCore.Configuration;
|
using Xylem.Common.CommonCore.Configuration;
|
||||||
@@ -148,15 +149,25 @@ namespace CordonelAssemblyLine.Model
|
|||||||
|
|
||||||
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
|
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
|
||||||
}
|
}
|
||||||
|
Task s;
|
||||||
|
private bool CloseTask = false;
|
||||||
|
public void Dispose()
|
||||||
|
{
|
||||||
|
|
||||||
|
while (!s.IsCompleted)
|
||||||
|
{
|
||||||
|
CloseTask = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
public void StartStore()
|
public void StartStore()
|
||||||
{
|
{
|
||||||
sm = PickingStateMachine.Store;
|
sm = PickingStateMachine.Store;
|
||||||
}
|
}
|
||||||
public void StartPicking(CancellationToken cancle)
|
public void StartPicking(CancellationToken cancle)
|
||||||
{
|
{
|
||||||
var s = new Task(() => { PickingLoop(cancle); }, cancle);
|
s = new Task(() => { PickingLoop(cancle); }, cancle);
|
||||||
s.Start();
|
s.Start();
|
||||||
}
|
}
|
||||||
public enum PickingStateMachine
|
public enum PickingStateMachine
|
||||||
@@ -169,7 +180,8 @@ namespace CordonelAssemblyLine.Model
|
|||||||
Store,
|
Store,
|
||||||
WaitForBuildingMeterReady,
|
WaitForBuildingMeterReady,
|
||||||
MappingError,
|
MappingError,
|
||||||
Done
|
Done,
|
||||||
|
GetMappingMSG
|
||||||
}
|
}
|
||||||
private PickingStateMachine sm = PickingStateMachine.Init;
|
private PickingStateMachine sm = PickingStateMachine.Init;
|
||||||
|
|
||||||
@@ -363,13 +375,15 @@ namespace CordonelAssemblyLine.Model
|
|||||||
private string serialNr;
|
private string serialNr;
|
||||||
|
|
||||||
|
|
||||||
|
private bool RequestDetails = false;
|
||||||
private readonly string ScannerPort;
|
private readonly string ScannerPort;
|
||||||
private readonly int SlotNr;
|
private readonly int SlotNr;
|
||||||
//PickingState,PickingScanner,PickingSlot,PickingResult
|
//PickingState,PickingScanner,PickingSlot,PickingResult
|
||||||
private void PickingLoop(CancellationToken token)
|
private void PickingLoop(CancellationToken token)
|
||||||
{
|
{
|
||||||
while (!token.IsCancellationRequested)
|
|
||||||
|
|
||||||
|
while (!token.IsCancellationRequested && !CloseTask)
|
||||||
{
|
{
|
||||||
switch (sm)
|
switch (sm)
|
||||||
{
|
{
|
||||||
@@ -404,14 +418,36 @@ namespace CordonelAssemblyLine.Model
|
|||||||
break;
|
break;
|
||||||
case PickingStateMachine.WaitForScanning:
|
case PickingStateMachine.WaitForScanning:
|
||||||
OrderDetails = null;
|
OrderDetails = null;
|
||||||
|
|
||||||
State = $"Warte auf Scannereingabe({ScannerPort})";
|
State = $"Warte auf Scannereingabe({ScannerPort})";
|
||||||
if (barScanner != null && !String.IsNullOrEmpty(barScanner.Input))
|
if (barScanner != null && !String.IsNullOrEmpty(barScanner.Input))
|
||||||
{
|
{
|
||||||
SerialNr = barScanner.Input;
|
if (RequestDetails)
|
||||||
Scanner = $"Geschlossen {ScannerPort}";
|
{
|
||||||
barScanner = null;
|
State = $"Abfrage ";
|
||||||
sm = PickingStateMachine.WaitForDetect;
|
PcbId = barScanner.Input;
|
||||||
|
barScanner.Input = "";
|
||||||
|
sm = PickingStateMachine.GetMappingMSG;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (barScanner.Input.Contains("%RequestMapping%"))
|
||||||
|
{
|
||||||
|
RequestDetails = true;
|
||||||
|
State = $"PCB ID scannen!";
|
||||||
|
barScanner = new BarScanner(ScannerPort, token);
|
||||||
|
barScanner.Start();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
SerialNr = barScanner.Input;
|
||||||
|
Scanner = $"Geschlossen {ScannerPort}";
|
||||||
|
barScanner = null;
|
||||||
|
sm = PickingStateMachine.WaitForDetect;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
@@ -452,6 +488,73 @@ namespace CordonelAssemblyLine.Model
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
|
||||||
|
case PickingStateMachine.GetMappingMSG:
|
||||||
|
|
||||||
|
State = $"Lade Auftragsdaten {serialNr}";
|
||||||
|
var msgRetCode = 0;
|
||||||
|
var msgStr = LocalWebRequest.GetRequestWithError($"{ServiceUrls.MarriageServiceUrl()}GetPreMarriageStateMSG?PcbId={PcbId}", out msgRetCode, 15000);
|
||||||
|
var msgRetInt = MarriagePossibleEnum.None;
|
||||||
|
var sbMSG = new StringBuilder();
|
||||||
|
|
||||||
|
|
||||||
|
var myJsonResponse = Newtonsoft.Json.JsonConvert.DeserializeObject<object[]>(msgStr);
|
||||||
|
string retOrder = myJsonResponse[1]?.ToString();
|
||||||
|
string retSerial = myJsonResponse[2]?.ToString();
|
||||||
|
string retFreeSrn = myJsonResponse[3]?.ToString();
|
||||||
|
|
||||||
|
sbMSG.AppendLine($"Abfrage");
|
||||||
|
sbMSG.AppendLine($"PCB Id: \t \t \t \t {PcbId}");
|
||||||
|
sbMSG.AppendLine($"Aufrag: \t \t \t \t {retOrder}");
|
||||||
|
sbMSG.AppendLine($"Seriennummer: \t \t \t \t {retSerial}");
|
||||||
|
sbMSG.AppendLine($"Noch Verfügbare Seriennummern des Auftrages: \t {retFreeSrn}");
|
||||||
|
sbMSG.AppendLine($"Zusätzliche Infos:");
|
||||||
|
|
||||||
|
if (msgRetCode != 200 || !MarriagePossibleEnum.TryParse(myJsonResponse[0].ToString(), out msgRetInt))
|
||||||
|
{
|
||||||
|
sbMSG.AppendLine($"Technisches Problem beim abfragen der Verfügbarkeit. Code ({msgRetCode})");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (msgRetInt.HasFlag(MarriagePossibleEnum.NotPossibleDueAlredayMatch))
|
||||||
|
{
|
||||||
|
sbMSG.AppendLine($"Pcb ist schon mit der Seriennummer {retSerial} verbunden");
|
||||||
|
}
|
||||||
|
if (msgRetInt.HasFlag(MarriagePossibleEnum.NotPossibleDuePcblocked))
|
||||||
|
{
|
||||||
|
sbMSG.AppendLine("Pcb ist schon mit einer anderen Seriennummer verbunden.");
|
||||||
|
}
|
||||||
|
if (msgRetInt.HasFlag(MarriagePossibleEnum.NotPossibleDueSerialNumberBlocked))
|
||||||
|
{
|
||||||
|
sbMSG.AppendLine("Seriennummer ist schon mit einer anderen Pcb verbunden.");
|
||||||
|
}
|
||||||
|
if (msgRetInt.HasFlag(MarriagePossibleEnum.PcbNotMatchingOrder))
|
||||||
|
{
|
||||||
|
sbMSG.AppendLine("Die Pcb ist noch keinem Auftrag zugeordnet.");
|
||||||
|
}
|
||||||
|
if (msgRetInt.HasFlag(MarriagePossibleEnum.Error))
|
||||||
|
{
|
||||||
|
sbMSG.AppendLine("Ein unbestimmter Fehler ist aufgetreten.");
|
||||||
|
}
|
||||||
|
if (msgRetInt.HasFlag(MarriagePossibleEnum.NotPossibleDueNoPressureTestFound))
|
||||||
|
{
|
||||||
|
sbMSG.AppendLine("Druck Test fehlt");
|
||||||
|
}
|
||||||
|
if (msgRetInt.HasFlag(MarriagePossibleEnum.NotPossibleDueNoHeTestFound))
|
||||||
|
{
|
||||||
|
sbMSG.AppendLine("Heliumtest fehlt");
|
||||||
|
}
|
||||||
|
if (msgRetInt.HasFlag(MarriagePossibleEnum.Possible))
|
||||||
|
{
|
||||||
|
sbMSG.AppendLine("Verheiraten möglich");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
OnMsgRaise?.Invoke(this, sbMSG.ToString());
|
||||||
|
sm = PickingStateMachine.WaitForScanning;
|
||||||
|
Log($"No Meter found");
|
||||||
|
|
||||||
break;
|
break;
|
||||||
case PickingStateMachine.GetMapping:
|
case PickingStateMachine.GetMapping:
|
||||||
|
|
||||||
@@ -524,6 +627,15 @@ namespace CordonelAssemblyLine.Model
|
|||||||
{
|
{
|
||||||
MappingText.Add("Ein unbestimmter Fehler ist aufgetreten.");
|
MappingText.Add("Ein unbestimmter Fehler ist aufgetreten.");
|
||||||
}
|
}
|
||||||
|
if (retInt.HasFlag(MarriagePossibleEnum.NotPossibleDueNoPressureTestFound))
|
||||||
|
{
|
||||||
|
MappingText.Add("Druck Test fehlt");
|
||||||
|
}
|
||||||
|
if (retInt.HasFlag(MarriagePossibleEnum.NotPossibleDueNoHeTestFound))
|
||||||
|
{
|
||||||
|
MappingText.Add("Heliumtest fehlt");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if (MappingText.Any())
|
if (MappingText.Any())
|
||||||
|
|||||||
@@ -258,14 +258,14 @@ namespace CordonelAssemblyLine.Model
|
|||||||
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
|
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Task s;
|
||||||
|
|
||||||
public void StartPicking(CancellationToken cancle, string scannerPort, int slotNr)
|
public void StartPicking(CancellationToken cancle, string scannerPort, int slotNr)
|
||||||
{
|
{
|
||||||
ScannerPort = scannerPort;
|
ScannerPort = scannerPort;
|
||||||
SlotNr = slotNr;
|
SlotNr = slotNr;
|
||||||
|
CloseTask = false;
|
||||||
var s = new Task(() => { PickingLoop(cancle); }, cancle);
|
s = new Task(() => { PickingLoop(cancle); }, cancle);
|
||||||
s.Start();
|
s.Start();
|
||||||
}
|
}
|
||||||
public enum PickingStateMachine
|
public enum PickingStateMachine
|
||||||
@@ -358,7 +358,17 @@ namespace CordonelAssemblyLine.Model
|
|||||||
State = state;
|
State = state;
|
||||||
UpdateLogText($"Status:{State}");
|
UpdateLogText($"Status:{State}");
|
||||||
}
|
}
|
||||||
|
private bool CloseTask = false;
|
||||||
|
public void Dispose()
|
||||||
|
{
|
||||||
|
|
||||||
|
while (!s.IsCompleted)
|
||||||
|
{
|
||||||
|
CloseTask = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
public bool Compare(Dictionary<UInt32, UInt32> checkAppsIdVersion, uint Frequency, uint MeterSize, bool PressurePresent)
|
public bool Compare(Dictionary<UInt32, UInt32> checkAppsIdVersion, uint Frequency, uint MeterSize, bool PressurePresent)
|
||||||
{
|
{
|
||||||
using (var Batch = new MeterBatch())
|
using (var Batch = new MeterBatch())
|
||||||
@@ -386,6 +396,42 @@ namespace CordonelAssemblyLine.Model
|
|||||||
lblS08Color = progressError;
|
lblS08Color = progressError;
|
||||||
ret = false;
|
ret = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
var nowSeconds = meter.ReadRegister("POWERMON_TotalUsedSeconds");
|
||||||
|
var nowCharge = meter.ReadRegister("POWERMON_TotalUsedCharge", 8);
|
||||||
|
var mfgCharge = meter.ReadRegister("CUSTOMER_MfgCharge");
|
||||||
|
if (nowCharge == null || nowSeconds == null)
|
||||||
|
{
|
||||||
|
meter.WriteLog($"Batterie nicht lesbar");
|
||||||
|
lblS08Text = $"Batterie nicht lesbar";
|
||||||
|
lblS08Color = progressError;
|
||||||
|
ret = false;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
var nowChargeV = BitConverter.ToUInt64(nowCharge.ToArray(), 0);
|
||||||
|
var nowSecondsV = BitConverter.ToUInt32(nowSeconds.ToArray(), 0);
|
||||||
|
var mfgChargeV = BitConverter.ToUInt32(mfgCharge.ToArray(), 0);
|
||||||
|
//// Time Span in h in mAhr In % with one battery is 100%
|
||||||
|
////(((total used change difference / (Time span / 3600) ) / 3600000) / 19000)*100
|
||||||
|
var loadAtH = ((((double)nowChargeV / ((double)nowSecondsV / 3600)) / 3600000) / (19000 * 2)) * 100;
|
||||||
|
var totalUsed = (((double)nowChargeV / 1000000 / 3.6) / ((19000 * 2))) * 100;
|
||||||
|
setState($"Battery Total Used {totalUsed}%");
|
||||||
|
setState($"Battery Total Charge {nowChargeV}uAs");
|
||||||
|
setState($"Battery MFG Charge {mfgChargeV}uAs");
|
||||||
|
|
||||||
|
if (totalUsed >= 5.0)
|
||||||
|
{
|
||||||
|
lblS08Text = $"Batterie über 5%";
|
||||||
|
lblS08Color = progressError;
|
||||||
|
ret = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (SkipProcessSteps == null || !SkipProcessSteps.SkipLUT)
|
if (SkipProcessSteps == null || !SkipProcessSteps.SkipLUT)
|
||||||
@@ -433,7 +479,7 @@ namespace CordonelAssemblyLine.Model
|
|||||||
{
|
{
|
||||||
setState($"Vergleich abgeschlossen:{State}");
|
setState($"Vergleich abgeschlossen:{State}");
|
||||||
var lut = a.First();
|
var lut = a.First();
|
||||||
lblS10Text = $"Update {lut.FileName}";
|
lblS10Text = $"Update {lut.FileCrc.ToString("0x8")}";
|
||||||
|
|
||||||
|
|
||||||
var _meterLutUpdate = new MeterLutUpdate(meter);
|
var _meterLutUpdate = new MeterLutUpdate(meter);
|
||||||
@@ -683,7 +729,7 @@ namespace CordonelAssemblyLine.Model
|
|||||||
private void PickingLoop(CancellationToken token)
|
private void PickingLoop(CancellationToken token)
|
||||||
{
|
{
|
||||||
var converter = new System.Windows.Media.BrushConverter();
|
var converter = new System.Windows.Media.BrushConverter();
|
||||||
while (!token.IsCancellationRequested)
|
while (!token.IsCancellationRequested && !CloseTask)
|
||||||
{
|
{
|
||||||
switch (sm)
|
switch (sm)
|
||||||
{
|
{
|
||||||
@@ -738,7 +784,11 @@ namespace CordonelAssemblyLine.Model
|
|||||||
break;
|
break;
|
||||||
case PickingStateMachine.WaitForScanning:
|
case PickingStateMachine.WaitForScanning:
|
||||||
Scanner = $"Offen {ScannerPort}";
|
Scanner = $"Offen {ScannerPort}";
|
||||||
setState($"Warte auf Scannereingabe({ScannerPort})");
|
if (State != $"Warte auf Scannereingabe({ScannerPort})")
|
||||||
|
{
|
||||||
|
setState($"Warte auf Scannereingabe({ScannerPort})");
|
||||||
|
}
|
||||||
|
|
||||||
if (barScanner != null && !String.IsNullOrEmpty(barScanner.Input))
|
if (barScanner != null && !String.IsNullOrEmpty(barScanner.Input))
|
||||||
{
|
{
|
||||||
if (barScanner.Input == "%Cordonel_SAP_100%" || barScanner.Input == "%Cordonel_SAP_101%")
|
if (barScanner.Input == "%Cordonel_SAP_100%" || barScanner.Input == "%Cordonel_SAP_101%")
|
||||||
@@ -935,8 +985,6 @@ namespace CordonelAssemblyLine.Model
|
|||||||
lblS09Text = $"{OrderOverview.KitronProductionDate}";
|
lblS09Text = $"{OrderOverview.KitronProductionDate}";
|
||||||
if (SkipProcessSteps == null || !SkipProcessSteps.SkipBatteyCheck)
|
if (SkipProcessSteps == null || !SkipProcessSteps.SkipBatteyCheck)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
if (OrderOverview.KitronProductionDate <= minDate)
|
if (OrderOverview.KitronProductionDate <= minDate)
|
||||||
{
|
{
|
||||||
setState($"Fehlgeschlagen Register ist zu alt! Bitte QS informieren. KitronProductionDate:{OrderOverview.KitronProductionDate }");
|
setState($"Fehlgeschlagen Register ist zu alt! Bitte QS informieren. KitronProductionDate:{OrderOverview.KitronProductionDate }");
|
||||||
@@ -1080,6 +1128,7 @@ namespace CordonelAssemblyLine.Model
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void Log(string v)
|
private void Log(string v)
|
||||||
{
|
{
|
||||||
//throw new NotImplementedException();
|
//throw new NotImplementedException();
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||||
xmlns:local="clr-namespace:CordonelAssemblyLine"
|
xmlns:local="clr-namespace:CordonelAssemblyLine"
|
||||||
xmlns:ProductionControls="clr-namespace:Ui.ProductionControls;assembly=Ui.ProductionControls"
|
xmlns:ProductionControls="clr-namespace:Ui.ProductionControls;assembly=Ui.ProductionControls"
|
||||||
xmlns:ProductionControls1="clr-namespace:Ui.ProductionControls;assembly=ProductionControls" x:Class="CordonelAssemblyLine.Picking"
|
xmlns:ProductionControls1="clr-namespace:Ui.ProductionControls;assembly=ProductionControls" x:Class="CordonelAssemblyLine.Picking" Closing="Window_Closing"
|
||||||
mc:Ignorable="d"
|
mc:Ignorable="d"
|
||||||
Title="Kommissionierung" Height="600" Width="883.713" Background="Aquamarine" Loaded="Window_Loaded" FontSize="18" >
|
Title="Kommissionierung" Height="600" Width="883.713" Background="Aquamarine" Loaded="Window_Loaded" FontSize="18" >
|
||||||
<Grid Background="{Binding ResultColor}" Margin="0,0,18,0">
|
<Grid Background="{Binding ResultColor}" Margin="0,0,18,0">
|
||||||
@@ -41,10 +41,14 @@
|
|||||||
<Label Background="{Binding ResultColor}" Content="Ergebnis:" HorizontalAlignment="Left" Margin="10,1,0,0" VerticalAlignment="Top" Grid.Row="3" Grid.Column="0" Height="36" Width="115" Grid.ColumnSpan="2" />
|
<Label Background="{Binding ResultColor}" Content="Ergebnis:" HorizontalAlignment="Left" Margin="10,1,0,0" VerticalAlignment="Top" Grid.Row="3" Grid.Column="0" Height="36" Width="115" Grid.ColumnSpan="2" />
|
||||||
|
|
||||||
<Label Background="{Binding ResultColor}" Content="{Binding Result, UpdateSourceTrigger=PropertyChanged}" Margin="11,1,0,0" VerticalAlignment="Top" Grid.Row="3" Grid.Column="1" Height="36" HorizontalAlignment="Left" Width="527" />
|
<Label Background="{Binding ResultColor}" Content="{Binding Result, UpdateSourceTrigger=PropertyChanged}" Margin="11,1,0,0" VerticalAlignment="Top" Grid.Row="3" Grid.Column="1" Height="36" HorizontalAlignment="Left" Width="527" />
|
||||||
<TextBlock Background="{Binding ResultColor}" Text="{Binding LogText, UpdateSourceTrigger=PropertyChanged}" FontSize="10" Grid.Column="1" Height="218" Margin="12,23,0,0" Grid.Row="6" TextWrapping="Wrap" VerticalAlignment="Top" HorizontalAlignment="Left" Width="526"/>
|
<ScrollViewer Grid.Column="1" Grid.Row="6" >
|
||||||
|
<TextBlock Background="{Binding ResultColor}" Text="{Binding LogText, UpdateSourceTrigger=PropertyChanged}" FontSize="10" Height="218" Margin="12,23,0,0" TextWrapping="Wrap" VerticalAlignment="Top" HorizontalAlignment="Left" Width="526"/>
|
||||||
|
</ScrollViewer>
|
||||||
<Label Background="{Binding ResultColor}" Content="Log:" HorizontalAlignment="Left" Margin="10,0,0,0" VerticalAlignment="Top" Grid.Row="6" Grid.Column="0" Height="36" Width="115" Grid.ColumnSpan="2" />
|
<Label Background="{Binding ResultColor}" Content="Log:" HorizontalAlignment="Left" Margin="10,0,0,0" VerticalAlignment="Top" Grid.Row="6" Grid.Column="0" Height="36" Width="115" Grid.ColumnSpan="2" />
|
||||||
<Label Background="{Binding ResultColor}" Content="Historie:" HorizontalAlignment="Left" Margin="22,9,0,0" VerticalAlignment="Top" Grid.Column="3" Height="36" Width="288" Grid.RowSpan="2" />
|
<Label Background="{Binding ResultColor}" Content="Historie:" HorizontalAlignment="Left" Margin="22,9,0,0" VerticalAlignment="Top" Grid.Column="3" Height="36" Width="288" Grid.RowSpan="2" />
|
||||||
<TextBlock Background="{Binding ResultColor}" Text="{Binding HistoryText, UpdateSourceTrigger=PropertyChanged}" FontSize="10" Grid.Column="2" HorizontalAlignment="Left" Margin="22,10,0,0" Grid.Row="1" TextWrapping="Wrap" Width="168" Grid.RowSpan="4" Height="140" VerticalAlignment="Top"/>
|
<ScrollViewer Grid.Column="2" Grid.Row="1" >
|
||||||
|
<TextBlock Background="{Binding ResultColor}" Text="{Binding HistoryText, UpdateSourceTrigger=PropertyChanged}" FontSize="10" HorizontalAlignment="Left" Margin="22,10,0,0" TextWrapping="Wrap" Width="168" Grid.RowSpan="4" Height="140" VerticalAlignment="Top"/>
|
||||||
|
</ScrollViewer>
|
||||||
<Label Background="{Binding ResultColor}" Content="Ep:" HorizontalAlignment="Left" Margin="11,0,0,0" VerticalAlignment="Top" Grid.Row="4" Height="36" Width="115" Grid.ColumnSpan="2" />
|
<Label Background="{Binding ResultColor}" Content="Ep:" HorizontalAlignment="Left" Margin="11,0,0,0" VerticalAlignment="Top" Grid.Row="4" Height="36" Width="115" Grid.ColumnSpan="2" />
|
||||||
<Border Margin="10,10,10,0" Grid.Column="0" Grid.ColumnSpan="3" Grid.Row="5" VerticalAlignment="Top" BorderBrush="Black" BorderThickness="2">
|
<Border Margin="10,10,10,0" Grid.Column="0" Grid.ColumnSpan="3" Grid.Row="5" VerticalAlignment="Top" BorderBrush="Black" BorderThickness="2">
|
||||||
<Grid >
|
<Grid >
|
||||||
@@ -80,7 +84,7 @@
|
|||||||
<Border Background="{Binding lblS10Color}" Grid.Column="9" Grid.RowSpan="2" />
|
<Border Background="{Binding lblS10Color}" Grid.Column="9" Grid.RowSpan="2" />
|
||||||
<Border Background="{Binding lblS11Color}" Grid.Column="10" Grid.RowSpan="2" />
|
<Border Background="{Binding lblS11Color}" Grid.Column="10" Grid.RowSpan="2" />
|
||||||
|
|
||||||
|
|
||||||
<TextBlock TextWrapping="WrapWithOverflow" Background="{Binding lblS01Color}" Text="Auftrag Scan" Margin="1,1,0,0" VerticalAlignment="Top" Grid.Row="0" Grid.Column="0" Height="36" HorizontalAlignment="Left" FontSize="12" />
|
<TextBlock TextWrapping="WrapWithOverflow" Background="{Binding lblS01Color}" Text="Auftrag Scan" Margin="1,1,0,0" VerticalAlignment="Top" Grid.Row="0" Grid.Column="0" Height="36" HorizontalAlignment="Left" FontSize="12" />
|
||||||
<TextBlock TextWrapping="WrapWithOverflow" Background="{Binding lblS02Color}" Text="Detektiere Pcb" Margin="1,1,0,0" VerticalAlignment="Top" Grid.Row="0" Grid.Column="1" Height="36" HorizontalAlignment="Left" FontSize="12" />
|
<TextBlock TextWrapping="WrapWithOverflow" Background="{Binding lblS02Color}" Text="Detektiere Pcb" Margin="1,1,0,0" VerticalAlignment="Top" Grid.Row="0" Grid.Column="1" Height="36" HorizontalAlignment="Left" FontSize="12" />
|
||||||
<TextBlock TextWrapping="WrapWithOverflow" Background="{Binding lblS03Color}" Text="Lade Autrag" Margin="1,1,0,0" VerticalAlignment="Top" Grid.Row="0" Grid.Column="2" Height="36" HorizontalAlignment="Left" FontSize="12" />
|
<TextBlock TextWrapping="WrapWithOverflow" Background="{Binding lblS03Color}" Text="Lade Autrag" Margin="1,1,0,0" VerticalAlignment="Top" Grid.Row="0" Grid.Column="2" Height="36" HorizontalAlignment="Left" FontSize="12" />
|
||||||
@@ -106,8 +110,8 @@
|
|||||||
<TextBlock TextWrapping="WrapWithOverflow" Background="{Binding lblS10Color}" Text="{Binding lblS10Text}" Margin="1,1,0,0" VerticalAlignment="Top" Grid.Row="1" Grid.Column="9" Height="36" HorizontalAlignment="Left" FontSize="12" />
|
<TextBlock TextWrapping="WrapWithOverflow" Background="{Binding lblS10Color}" Text="{Binding lblS10Text}" Margin="1,1,0,0" VerticalAlignment="Top" Grid.Row="1" Grid.Column="9" Height="36" HorizontalAlignment="Left" FontSize="12" />
|
||||||
<TextBlock TextWrapping="WrapWithOverflow" Background="{Binding lblS11Color}" Text="{Binding lblS11Text}" Margin="1,1,0,0" VerticalAlignment="Top" Grid.Row="1" Grid.Column="10" Height="36" HorizontalAlignment="Left" FontSize="12" />
|
<TextBlock TextWrapping="WrapWithOverflow" Background="{Binding lblS11Color}" Text="{Binding lblS11Text}" Margin="1,1,0,0" VerticalAlignment="Top" Grid.Row="1" Grid.Column="10" Height="36" HorizontalAlignment="Left" FontSize="12" />
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|||||||
@@ -48,5 +48,11 @@ namespace CordonelAssemblyLine
|
|||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
|
||||||
|
{
|
||||||
|
Model.Dispose();
|
||||||
|
this.Title = "";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -100,9 +100,8 @@
|
|||||||
<PropertyGroup />
|
<PropertyGroup />
|
||||||
<PropertyGroup />
|
<PropertyGroup />
|
||||||
<PropertyGroup />
|
<PropertyGroup />
|
||||||
<PropertyGroup>
|
<PropertyGroup />
|
||||||
<NoWin32Manifest>true</NoWin32Manifest>
|
<PropertyGroup />
|
||||||
</PropertyGroup>
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Reference Include="Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
|
<Reference Include="Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\Newtonsoft.Json.12.0.3\lib\net40\Newtonsoft.Json.dll</HintPath>
|
<HintPath>..\packages\Newtonsoft.Json.12.0.3\lib\net40\Newtonsoft.Json.dll</HintPath>
|
||||||
|
|||||||
@@ -117,7 +117,7 @@ namespace CordonelPreadjustmentUi
|
|||||||
|
|
||||||
Log($"avgTof;{x}({sumTof}/{countTof})");
|
Log($"avgTof;{x}({sumTof}/{countTof})");
|
||||||
|
|
||||||
|
|
||||||
checkTempMeter = interPol(TempFromTofLUT, x);
|
checkTempMeter = interPol(TempFromTofLUT, x);
|
||||||
Meter.CurrentRecords.Clear();
|
Meter.CurrentRecords.Clear();
|
||||||
}
|
}
|
||||||
@@ -175,6 +175,10 @@ namespace CordonelPreadjustmentUi
|
|||||||
var x2 = 0.000;
|
var x2 = 0.000;
|
||||||
var y2 = 0.000;
|
var y2 = 0.000;
|
||||||
decimal checkTempMeter;
|
decimal checkTempMeter;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
|
||||||
|
|
||||||
if ((x <= points[0].Item1) && (x >= points.Last().Item1))
|
if ((x <= points[0].Item1) && (x >= points.Last().Item1))
|
||||||
{
|
{
|
||||||
var i = 0;
|
var i = 0;
|
||||||
@@ -199,6 +203,12 @@ namespace CordonelPreadjustmentUi
|
|||||||
}
|
}
|
||||||
|
|
||||||
return checkTempMeter;
|
return checkTempMeter;
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
|
||||||
|
return 2;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setImage(Bitmap img)
|
public void setImage(Bitmap img)
|
||||||
|
|||||||
@@ -548,7 +548,7 @@
|
|||||||
// l_SettingsPreparationMetersize
|
// l_SettingsPreparationMetersize
|
||||||
//
|
//
|
||||||
this.l_SettingsPreparationMetersize.AutoSize = true;
|
this.l_SettingsPreparationMetersize.AutoSize = true;
|
||||||
this.l_SettingsPreparationMetersize.Location = new System.Drawing.Point(416, 64);
|
this.l_SettingsPreparationMetersize.Location = new System.Drawing.Point(416, 72);
|
||||||
this.l_SettingsPreparationMetersize.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
|
this.l_SettingsPreparationMetersize.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
|
||||||
this.l_SettingsPreparationMetersize.Name = "l_SettingsPreparationMetersize";
|
this.l_SettingsPreparationMetersize.Name = "l_SettingsPreparationMetersize";
|
||||||
this.l_SettingsPreparationMetersize.Size = new System.Drawing.Size(55, 13);
|
this.l_SettingsPreparationMetersize.Size = new System.Drawing.Size(55, 13);
|
||||||
|
|||||||
@@ -912,7 +912,7 @@ namespace CordonelPreadjustmentUi
|
|||||||
|
|
||||||
if (culture.Name == "de-DE")
|
if (culture.Name == "de-DE")
|
||||||
{
|
{
|
||||||
Message = "Warten bis Temperaturakquirierung beendet";
|
Message = "Warten bis Temperaturakquirierung beendet ist";
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -927,7 +927,7 @@ namespace CordonelPreadjustmentUi
|
|||||||
|
|
||||||
if (culture.Name == "de-DE")
|
if (culture.Name == "de-DE")
|
||||||
{
|
{
|
||||||
Message = "Warten bis Temperaturkalibrierung beendet";
|
Message = "Warten bis Temperaturkalibrierung beendet ist";
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -942,7 +942,7 @@ namespace CordonelPreadjustmentUi
|
|||||||
|
|
||||||
if (culture.Name == "de-DE")
|
if (culture.Name == "de-DE")
|
||||||
{
|
{
|
||||||
Message = "Warten bis Spühlvorgang beendet";
|
Message = "Warten bis Spülvorgang beendet ist";
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ namespace CordonelPreadjustmentUi.Processes.Actions
|
|||||||
pp.DebugMessage($"Load Temp {tempmeterctl.Slot} with {MeterStateControl.TempMode.CalcTof}\n");
|
pp.DebugMessage($"Load Temp {tempmeterctl.Slot} with {MeterStateControl.TempMode.CalcTof}\n");
|
||||||
|
|
||||||
tempmeterctl.StartTempWatch(MeterStateControl.TempMode.CalcTof);
|
tempmeterctl.StartTempWatch(MeterStateControl.TempMode.CalcTof);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
pp.DebugMessage($"Load Temp {tempmeterctl.Slot} with {MeterStateControl.TempMode.Hand}\n");
|
pp.DebugMessage($"Load Temp {tempmeterctl.Slot} with {MeterStateControl.TempMode.Hand}\n");
|
||||||
|
|||||||
@@ -15,5 +15,7 @@ namespace Logic.ProductionToProductMapper.Cordonel
|
|||||||
NotPossibleDuePcblocked = 1 << 4,
|
NotPossibleDuePcblocked = 1 << 4,
|
||||||
PcbNotMatchingOrder = 1 << 5,
|
PcbNotMatchingOrder = 1 << 5,
|
||||||
Error = 1 << 6,
|
Error = 1 << 6,
|
||||||
|
NotPossibleDueNoPressureTestFound = 1 << 7,
|
||||||
|
NotPossibleDueNoHeTestFound = 1 << 8,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -132,9 +132,9 @@ namespace Xylem.Common.Logic.ProductionOrderCore.OrderData
|
|||||||
ret.PowerLevel = uint.Parse(a.First().IPowerLevelCalculated);
|
ret.PowerLevel = uint.Parse(a.First().IPowerLevelCalculated);
|
||||||
ret.PowerLevelOption = uint.Parse(a.First().IPowerLevelCalculated);
|
ret.PowerLevelOption = uint.Parse(a.First().IPowerLevelCalculated);
|
||||||
|
|
||||||
ret.ImpedanceCodeNew = (UInt32)new System.ComponentModel.UInt32Converter().ConvertFromString(a.First().IAntennaMatching);
|
ret.ImpedanceCodeNew = (UInt32)new System.ComponentModel.UInt32Converter().ConvertFromString(a.First()?.IAntennaMatching);
|
||||||
|
|
||||||
ret.ImpedanceCodeOption = (UInt32)new System.ComponentModel.UInt32Converter().ConvertFromString(a.First().IAntennaMatching);
|
ret.ImpedanceCodeOption = (UInt32)new System.ComponentModel.UInt32Converter().ConvertFromString(a.First()?.IAntennaMatching);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -438,7 +438,7 @@ namespace ProductionUiCordonel
|
|||||||
|
|
||||||
pc.Processes.Add(orderBarcode); //[x] [x] [x]
|
pc.Processes.Add(orderBarcode); //[x] [x] [x]
|
||||||
|
|
||||||
serialBarcode = new ProductionProcessCheckSerialNumber(SerialNumber);
|
serialBarcode = new ProductionProcessCheckSerialNumber(SerialNumber, RadioAdress.ToString());
|
||||||
pc.Processes.Add(serialBarcode); //[x] [x] [x]
|
pc.Processes.Add(serialBarcode); //[x] [x] [x]
|
||||||
//pc.Processes.Add(new ProductionProcessFullReadOut()); //[x] [x] [x]
|
//pc.Processes.Add(new ProductionProcessFullReadOut()); //[x] [x] [x]
|
||||||
|
|
||||||
@@ -449,12 +449,12 @@ namespace ProductionUiCordonel
|
|||||||
|
|
||||||
//pc.Processes.Add(new ProductionProcessFinalParameterizationFix()); //[x] [x] []
|
//pc.Processes.Add(new ProductionProcessFinalParameterizationFix()); //[x] [x] []
|
||||||
pc.Processes.Add(new ProductionProcessFinalParameterizationVakoCsd(connectProcess)); //[x] [x] []
|
pc.Processes.Add(new ProductionProcessFinalParameterizationVakoCsd(connectProcess)); //[x] [x] []
|
||||||
//var radioCheck = new ProductionProcessRadioCheck();
|
var radioCheck = new ProductionProcessRadioCheck();
|
||||||
//orderBarcode.isDone += delegate (object sender, EventArgs e)
|
orderBarcode.isDone += delegate (object sender, EventArgs e)
|
||||||
//{
|
{
|
||||||
// radioCheck.Ordernumber = ((ProductionProcessCheckOrderNumber)sender).Ordernumber;
|
radioCheck.Ordernumber = ((ProductionProcessCheckOrderNumber)sender).Ordernumber;
|
||||||
//};
|
};
|
||||||
//pc.Processes.Add(radioCheck); //[] [] []
|
pc.Processes.Add(radioCheck); //[] [] []
|
||||||
|
|
||||||
|
|
||||||
//pc.Processes.Add(new ProductionProcessSpecialConfig()); //[x] [x] []
|
//pc.Processes.Add(new ProductionProcessSpecialConfig()); //[x] [x] []
|
||||||
|
|||||||
+1
-1
@@ -112,7 +112,7 @@ namespace ProductionUiCordonel.ProductionProcesses.Actions
|
|||||||
SENSUSRADIO_WakeupInterval = Meter.ReadRegister("SENSUSRADIO_WakeupInterval");
|
SENSUSRADIO_WakeupInterval = Meter.ReadRegister("SENSUSRADIO_WakeupInterval");
|
||||||
Meter.WriteRegister("SENSUSRADIO_WakeupInterval", 0);
|
Meter.WriteRegister("SENSUSRADIO_WakeupInterval", 0);
|
||||||
|
|
||||||
|
|
||||||
GetRssi();
|
GetRssi();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -656,12 +656,12 @@ namespace Service.MeterProcessState.Controllers
|
|||||||
|
|
||||||
|
|
||||||
dt = dataacces.ExecuteQuery(sb.ToString());
|
dt = dataacces.ExecuteQuery(sb.ToString());
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//"StartDT":"29.07.2022 06:47:27"
|
//"StartDT":"29.07.2022 06:47:27"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
var hit = false;
|
var hit = false;
|
||||||
@@ -720,28 +720,28 @@ namespace Service.MeterProcessState.Controllers
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if (SkipRadioCheck)
|
|
||||||
{
|
|
||||||
hit = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if (!hit)
|
|
||||||
{
|
|
||||||
//workaroudn for a year
|
|
||||||
if (!hitAmbi)
|
|
||||||
{
|
|
||||||
|
|
||||||
throw new Exception("No Radio Parameter found");
|
|
||||||
}
|
|
||||||
|
|
||||||
// return Request.CreateResponse(HttpStatusCode.ExpectationFailed, await Task.Run(() => { return "No radio parameter found!"; }));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (SkipRadioCheck)
|
||||||
|
{
|
||||||
|
hit = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if (!hit)
|
||||||
|
{
|
||||||
|
//workaroudn for a year
|
||||||
|
if (!hitAmbi)
|
||||||
|
{
|
||||||
|
|
||||||
|
throw new Exception("No Radio Parameter found");
|
||||||
|
}
|
||||||
|
|
||||||
|
// return Request.CreateResponse(HttpStatusCode.ExpectationFailed, await Task.Run(() => { return "No radio parameter found!"; }));
|
||||||
|
}
|
||||||
|
|
||||||
//return new RadioConfigurationParams();//
|
//return new RadioConfigurationParams();//
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -264,6 +264,174 @@ namespace Xylem.Common.Service.MeterProcessState.Controllers
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
[Route("GetPreMarriageStateMSG"), HttpGet]
|
||||||
|
public async Task<HttpResponseMessage> GetPreMarriageState(string PcbId)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
return await Task.Run(() =>
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var retSerial = "";
|
||||||
|
var retOrder = "";
|
||||||
|
var retFreeSrn = "";
|
||||||
|
var internalSerialNr = -1;
|
||||||
|
|
||||||
|
using (var dataacces = new SqlDataAccess(GlobalConfig.connectionString.Value))
|
||||||
|
{
|
||||||
|
var sb = new StringBuilder();
|
||||||
|
|
||||||
|
sb = new StringBuilder();
|
||||||
|
|
||||||
|
sb.AppendLine($" Declare @SerialNumber int ");
|
||||||
|
sb.AppendLine($" Declare @PcbId Nvarchar(50) ");
|
||||||
|
sb.AppendLine($" Declare @PcbIsPartOfOrder int ");
|
||||||
|
sb.AppendLine($" Declare @LastHeTest int ");
|
||||||
|
sb.AppendLine($" Declare @LastPressureTest int ");
|
||||||
|
|
||||||
|
sb.AppendLine($" set @SerialNumber = {internalSerialNr} ");
|
||||||
|
sb.AppendLine($" set @PcbId = '{PcbId}' ");
|
||||||
|
|
||||||
|
sb.AppendLine($" select @PcbIsPartOfOrder = picking.CordonelAssignedPicking_FertigungsAuftragsNr, @SerialNumber = srn.SerienNr from ");
|
||||||
|
sb.AppendLine($" Cordonel_AssignedPicking picking ");
|
||||||
|
|
||||||
|
sb.AppendLine($" inner join AuftragPosition_gesamt apos on apos.FertigungsauftragNr=picking.CordonelAssignedPicking_FertigungsAuftragsNr ");
|
||||||
|
sb.AppendLine($" inner join AuftragPositionSerienNr srn on apos.AuftragNr=srn.AuftragNr and apos.PositionNr=srn.PositionNr ");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
sb.AppendLine($" where picking.CordonelAssignedPicking_IsDeleted=0 and picking.CordonelAssignedPicking_PcbId=@PcbId ");
|
||||||
|
|
||||||
|
|
||||||
|
sb.AppendLine($" select top 1 @LastHeTest = CordonelPressureTest_Id from Cordonel_PressureTest ");
|
||||||
|
sb.AppendLine($" where CordonelPressureTest_PcbId = @PcbId and CordonelPressureTest_FertigungsAuftragsNr = @PcbIsPartOfOrder ");
|
||||||
|
sb.AppendLine($" and CordonelPressureTest_Valid = 1 and CordonelPressureTest_IsDeleted = 0 ");
|
||||||
|
sb.AppendLine($" ");
|
||||||
|
sb.AppendLine($" select top 1 @LastPressureTest = [Pruefgang] from [Druckpruefung] ");
|
||||||
|
sb.AppendLine($" where [FabNr] = @PcbId and [FertigungsauftragNr] = @PcbIsPartOfOrder ");
|
||||||
|
sb.AppendLine($" and [Dicht] = 1 ");
|
||||||
|
sb.AppendLine($" order by [Pruefgang] desc ");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
sb.AppendLine($" DECLARE @FreeSrnList varchar(max) ");
|
||||||
|
sb.AppendLine($" SELECT @FreeSrnList = COALESCE(@FreeSrnList + ', ', '') + ");
|
||||||
|
sb.AppendLine($" CAST(FreeSrn AS varchar(10)) ");
|
||||||
|
sb.AppendLine($" FROM(select distinct SerienNr as FreeSrn from ");
|
||||||
|
sb.AppendLine($" AuftragPosition_gesamt apos ");
|
||||||
|
sb.AppendLine($" inner join AuftragPositionSerienNr srn on apos.AuftragNr = srn.AuftragNr and apos.PositionNr = srn.PositionNr ");
|
||||||
|
sb.AppendLine($" left outer join MapPcbIdToSerialNumber map on map.MapPcbIdToSerialNumber_SerialNumber = SerienNr and map.MapPcbIdToSerialNumber_Deleted = 0 ");
|
||||||
|
sb.AppendLine($" where apos.FertigungsauftragNr = @PcbIsPartOfOrder ");
|
||||||
|
sb.AppendLine($" and map.MapPcbIdToSerialNumber_SerialNumber is null) ");
|
||||||
|
sb.AppendLine($" as Free ");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
sb.AppendLine($" select @PcbId as PcbId, @SerialNumber as SerialNumber,0 as AlreadyMarried ,0 as SerialNumberBlocked ,0 as PcbBlocked ,@PcbIsPartOfOrder as PcbIsPartOfOrder, @LastHeTest as LastHeTest, @LastPressureTest as LastPressureTest, @FreeSrnList as FreeSrn ");
|
||||||
|
sb.AppendLine($" union ");
|
||||||
|
sb.AppendLine($" SELECT distinct ");
|
||||||
|
sb.AppendLine($" [MapPcbIdToSerialNumber_PcbId] as PcbId ");
|
||||||
|
sb.AppendLine($" ,[MapPcbIdToSerialNumber_SerialNumber] as SerialNumber ");
|
||||||
|
sb.AppendLine($" ,CASE WHEN [MapPcbIdToSerialNumber_PcbId] = @PcbId and [MapPcbIdToSerialNumber_SerialNumber] = @SerialNumber ");
|
||||||
|
sb.AppendLine($" THEN 1 else 0 END as AlreadyMarried ");
|
||||||
|
sb.AppendLine($" ,CASE WHEN [MapPcbIdToSerialNumber_PcbId] <> @PcbId and [MapPcbIdToSerialNumber_SerialNumber] = @SerialNumber ");
|
||||||
|
sb.AppendLine($" THEN 1 else 0 END as SerialNumberBlocked ");
|
||||||
|
sb.AppendLine($" ,CASE WHEN [MapPcbIdToSerialNumber_PcbId] = @PcbId and [MapPcbIdToSerialNumber_SerialNumber] <> @SerialNumber ");
|
||||||
|
sb.AppendLine($" THEN 1 else 0 END as PcbBlocked , ");
|
||||||
|
sb.AppendLine($" @PcbIsPartOfOrder as PcbIsPartOfOrder , ");
|
||||||
|
sb.AppendLine($" @LastHeTest as LastHeTest , ");
|
||||||
|
sb.AppendLine($" @LastPressureTest as LastPressureTest, null as FreeSrn ");
|
||||||
|
sb.AppendLine($" FROM [Auftrag].[dbo].[MapPcbIdToSerialNumber] ");
|
||||||
|
sb.AppendLine($" where MapPcbIdToSerialNumber_Deleted = 0 ");
|
||||||
|
sb.AppendLine($" and ([MapPcbIdToSerialNumber_PcbId] = @PcbId or [MapPcbIdToSerialNumber_SerialNumber] = @SerialNumber) ");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
var dtRet = dataacces.ExecuteQuery(sb.ToString());
|
||||||
|
var ret = MarriagePossibleEnum.None;
|
||||||
|
if (dtRet.Rows.Count == 0)
|
||||||
|
{
|
||||||
|
ret = ret | MarriagePossibleEnum.Error;
|
||||||
|
}
|
||||||
|
foreach (var item in dtRet.Rows)
|
||||||
|
{
|
||||||
|
if (item is DataRow dr)
|
||||||
|
{
|
||||||
|
|
||||||
|
if (!string.IsNullOrEmpty(dr["SerialNumber"].ToString()) && dr["SerialNumber"].ToString() != "-1")
|
||||||
|
{
|
||||||
|
retSerial = retSerial + dr["SerialNumber"].ToString() + ";";
|
||||||
|
}
|
||||||
|
|
||||||
|
if (string.IsNullOrEmpty(dr["PcbIsPartOfOrder"].ToString()))
|
||||||
|
{
|
||||||
|
ret = ret | MarriagePossibleEnum.PcbNotMatchingOrder;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
retOrder = retOrder + dr["PcbIsPartOfOrder"].ToString() + ";";
|
||||||
|
}
|
||||||
|
if (!string.IsNullOrEmpty(dr["FreeSrn"].ToString()))
|
||||||
|
{
|
||||||
|
retFreeSrn = retFreeSrn + dr["FreeSrn"].ToString() + ";";
|
||||||
|
}
|
||||||
|
|
||||||
|
if (dr["AlreadyMarried"].ToString() == "1")
|
||||||
|
{
|
||||||
|
ret = ret | MarriagePossibleEnum.NotPossibleDueAlredayMatch;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (dr["SerialNumberBlocked"].ToString() == "1")
|
||||||
|
{
|
||||||
|
ret = ret | MarriagePossibleEnum.NotPossibleDueSerialNumberBlocked;
|
||||||
|
}
|
||||||
|
if (dr["PcbBlocked"].ToString() == "1")
|
||||||
|
{
|
||||||
|
ret = ret | MarriagePossibleEnum.NotPossibleDuePcblocked;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (dr["PcbBlocked"].ToString() == "1")
|
||||||
|
{
|
||||||
|
ret = ret | MarriagePossibleEnum.NotPossibleDuePcblocked;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (dr["LastHeTest"] == DBNull.Value)
|
||||||
|
{
|
||||||
|
ret = ret | MarriagePossibleEnum.NotPossibleDueNoHeTestFound;
|
||||||
|
}
|
||||||
|
if (dr["LastPressureTest"] == DBNull.Value)
|
||||||
|
{
|
||||||
|
ret = ret | MarriagePossibleEnum.NotPossibleDueNoPressureTestFound;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ret == MarriagePossibleEnum.None)
|
||||||
|
{
|
||||||
|
|
||||||
|
ret = MarriagePossibleEnum.Possible;
|
||||||
|
}
|
||||||
|
return Request.CreateResponse(HttpStatusCode.OK, new object[] { ret , retOrder, retSerial, retFreeSrn });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
return Request.CreateResponse(HttpStatusCode.OK, new object[] { MarriagePossibleEnum.Error, null, null, null } );
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
return Request.CreateResponse(HttpStatusCode.InternalServerError, ex);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
[Route("GetPreMarriageState"), HttpGet]
|
[Route("GetPreMarriageState"), HttpGet]
|
||||||
public async Task<HttpResponseMessage> GetPreMarriageState(string PcbId, string SerialNumber)
|
public async Task<HttpResponseMessage> GetPreMarriageState(string PcbId, string SerialNumber)
|
||||||
{
|
{
|
||||||
@@ -290,14 +458,17 @@ namespace Xylem.Common.Service.MeterProcessState.Controllers
|
|||||||
sb.AppendLine($" Declare @SerialNumber int ");
|
sb.AppendLine($" Declare @SerialNumber int ");
|
||||||
sb.AppendLine($" Declare @PcbId Nvarchar(50) ");
|
sb.AppendLine($" Declare @PcbId Nvarchar(50) ");
|
||||||
sb.AppendLine($" Declare @PcbIsPartOfOrder int ");
|
sb.AppendLine($" Declare @PcbIsPartOfOrder int ");
|
||||||
|
sb.AppendLine($" Declare @LastHeTest int ");
|
||||||
|
sb.AppendLine($" Declare @LastPressureTest int ");
|
||||||
|
|
||||||
sb.AppendLine($" set @SerialNumber = {internalSerialNr} ");
|
sb.AppendLine($" set @SerialNumber = {internalSerialNr} ");
|
||||||
sb.AppendLine($" set @PcbId = '{PcbId}' ");
|
sb.AppendLine($" set @PcbId = '{PcbId}' ");
|
||||||
|
|
||||||
sb.AppendLine($" select @PcbIsPartOfOrder = picking.CordonelAssignedPicking_FertigungsAuftragsNr, @SerialNumber = srn.SerienNr from ");
|
sb.AppendLine($" select @PcbIsPartOfOrder = picking.CordonelAssignedPicking_FertigungsAuftragsNr, @SerialNumber = srn.SerienNr from ");
|
||||||
sb.AppendLine($" Cordonel_AssignedPicking picking ");
|
sb.AppendLine($" Cordonel_AssignedPicking picking ");
|
||||||
sb.AppendLine($" inner join AuftragPosition_gesamt apos on apos.FertigungsauftragNr=picking.CordonelAssignedPicking_FertigungsAuftragsNr ");
|
|
||||||
sb.AppendLine($" inner join AuftragPositionSerienNr srn on apos.AuftragNr=srn.AuftragNr and apos.PositionNr=srn.PositionNr and ");
|
sb.AppendLine($" inner join AuftragPosition_gesamt apos on apos.FertigungsauftragNr=picking.CordonelAssignedPicking_FertigungsAuftragsNr ");
|
||||||
|
sb.AppendLine($" inner join AuftragPositionSerienNr srn on apos.AuftragNr=srn.AuftragNr and apos.PositionNr=srn.PositionNr and ");
|
||||||
|
|
||||||
if (internalSerialNr != -1)
|
if (internalSerialNr != -1)
|
||||||
{
|
{
|
||||||
@@ -308,10 +479,21 @@ namespace Xylem.Common.Service.MeterProcessState.Controllers
|
|||||||
sb.AppendLine($" REPLACE(srn.KundeneigeneSerienNr, ' ', '') like '%{cust}%' ");
|
sb.AppendLine($" REPLACE(srn.KundeneigeneSerienNr, ' ', '') like '%{cust}%' ");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
sb.AppendLine($" where picking.CordonelAssignedPicking_IsDeleted=0 and picking.CordonelAssignedPicking_PcbId=@PcbId ");
|
sb.AppendLine($" where picking.CordonelAssignedPicking_IsDeleted=0 and picking.CordonelAssignedPicking_PcbId=@PcbId ");
|
||||||
|
|
||||||
sb.AppendLine($" select @PcbId as PcbId, @SerialNumber as SerialNumber,0 as AlreadyMarried ,0 as SerialNumberBlocked ,0 as PcbBlocked ,@PcbIsPartOfOrder as PcbIsPartOfOrder ");
|
|
||||||
|
sb.AppendLine($" select top 1 @LastHeTest = CordonelPressureTest_Id from Cordonel_PressureTest ");
|
||||||
|
sb.AppendLine($" where CordonelPressureTest_PcbId = @PcbId and CordonelPressureTest_FertigungsAuftragsNr = @PcbIsPartOfOrder ");
|
||||||
|
sb.AppendLine($" and CordonelPressureTest_Valid = 1 and CordonelPressureTest_IsDeleted = 0 ");
|
||||||
|
sb.AppendLine($" ");
|
||||||
|
sb.AppendLine($" select top 1 @LastPressureTest = [Pruefgang] from [Druckpruefung] ");
|
||||||
|
sb.AppendLine($" where [FabNr] = @PcbId and [FertigungsauftragNr] = @PcbIsPartOfOrder ");
|
||||||
|
sb.AppendLine($" and [Dicht] = 1 ");
|
||||||
|
sb.AppendLine($" order by [Pruefgang] desc ");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
sb.AppendLine($" select @PcbId as PcbId, @SerialNumber as SerialNumber,0 as AlreadyMarried ,0 as SerialNumberBlocked ,0 as PcbBlocked ,@PcbIsPartOfOrder as PcbIsPartOfOrder, @LastHeTest as LastHeTest, @LastPressureTest as LastPressureTest ");
|
||||||
sb.AppendLine($" union ");
|
sb.AppendLine($" union ");
|
||||||
sb.AppendLine($" SELECT distinct ");
|
sb.AppendLine($" SELECT distinct ");
|
||||||
sb.AppendLine($" [MapPcbIdToSerialNumber_PcbId] as PcbId ");
|
sb.AppendLine($" [MapPcbIdToSerialNumber_PcbId] as PcbId ");
|
||||||
@@ -322,7 +504,9 @@ namespace Xylem.Common.Service.MeterProcessState.Controllers
|
|||||||
sb.AppendLine($" THEN 1 else 0 END as SerialNumberBlocked ");
|
sb.AppendLine($" THEN 1 else 0 END as SerialNumberBlocked ");
|
||||||
sb.AppendLine($" ,CASE WHEN [MapPcbIdToSerialNumber_PcbId] = @PcbId and [MapPcbIdToSerialNumber_SerialNumber] <> @SerialNumber ");
|
sb.AppendLine($" ,CASE WHEN [MapPcbIdToSerialNumber_PcbId] = @PcbId and [MapPcbIdToSerialNumber_SerialNumber] <> @SerialNumber ");
|
||||||
sb.AppendLine($" THEN 1 else 0 END as PcbBlocked , ");
|
sb.AppendLine($" THEN 1 else 0 END as PcbBlocked , ");
|
||||||
sb.AppendLine($" @PcbIsPartOfOrder as PcbIsPartOfOrder ");
|
sb.AppendLine($" @PcbIsPartOfOrder as PcbIsPartOfOrder , ");
|
||||||
|
sb.AppendLine($" @LastHeTest as LastHeTest , ");
|
||||||
|
sb.AppendLine($" @LastPressureTest as LastPressureTest ");
|
||||||
sb.AppendLine($" FROM [Auftrag].[dbo].[MapPcbIdToSerialNumber] ");
|
sb.AppendLine($" FROM [Auftrag].[dbo].[MapPcbIdToSerialNumber] ");
|
||||||
sb.AppendLine($" where MapPcbIdToSerialNumber_Deleted = 0 ");
|
sb.AppendLine($" where MapPcbIdToSerialNumber_Deleted = 0 ");
|
||||||
sb.AppendLine($" and ([MapPcbIdToSerialNumber_PcbId] = @PcbId or [MapPcbIdToSerialNumber_SerialNumber] = @SerialNumber) ");
|
sb.AppendLine($" and ([MapPcbIdToSerialNumber_PcbId] = @PcbId or [MapPcbIdToSerialNumber_SerialNumber] = @SerialNumber) ");
|
||||||
@@ -359,6 +543,20 @@ namespace Xylem.Common.Service.MeterProcessState.Controllers
|
|||||||
ret = ret | MarriagePossibleEnum.NotPossibleDuePcblocked;
|
ret = ret | MarriagePossibleEnum.NotPossibleDuePcblocked;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (dr["PcbBlocked"].ToString() == "1")
|
||||||
|
{
|
||||||
|
ret = ret | MarriagePossibleEnum.NotPossibleDuePcblocked;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (dr["LastHeTest"] == DBNull.Value)
|
||||||
|
{
|
||||||
|
ret = ret | MarriagePossibleEnum.NotPossibleDueNoHeTestFound;
|
||||||
|
}
|
||||||
|
if (dr["LastPressureTest"] == DBNull.Value)
|
||||||
|
{
|
||||||
|
ret = ret | MarriagePossibleEnum.NotPossibleDueNoPressureTestFound;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+16
-3
@@ -33,6 +33,7 @@
|
|||||||
this.panel1 = new System.Windows.Forms.Panel();
|
this.panel1 = new System.Windows.Forms.Panel();
|
||||||
this.panel2 = new System.Windows.Forms.Panel();
|
this.panel2 = new System.Windows.Forms.Panel();
|
||||||
this.textBox2 = new System.Windows.Forms.TextBox();
|
this.textBox2 = new System.Windows.Forms.TextBox();
|
||||||
|
this.button2 = new System.Windows.Forms.Button();
|
||||||
this.SuspendLayout();
|
this.SuspendLayout();
|
||||||
//
|
//
|
||||||
// textBox1
|
// textBox1
|
||||||
@@ -54,16 +55,16 @@
|
|||||||
//
|
//
|
||||||
// panel1
|
// panel1
|
||||||
//
|
//
|
||||||
this.panel1.Location = new System.Drawing.Point(554, 112);
|
this.panel1.Location = new System.Drawing.Point(554, 12);
|
||||||
this.panel1.Name = "panel1";
|
this.panel1.Name = "panel1";
|
||||||
this.panel1.Size = new System.Drawing.Size(450, 30);
|
this.panel1.Size = new System.Drawing.Size(491, 138);
|
||||||
this.panel1.TabIndex = 2;
|
this.panel1.TabIndex = 2;
|
||||||
//
|
//
|
||||||
// panel2
|
// panel2
|
||||||
//
|
//
|
||||||
this.panel2.Location = new System.Drawing.Point(554, 156);
|
this.panel2.Location = new System.Drawing.Point(554, 156);
|
||||||
this.panel2.Name = "panel2";
|
this.panel2.Name = "panel2";
|
||||||
this.panel2.Size = new System.Drawing.Size(450, 30);
|
this.panel2.Size = new System.Drawing.Size(503, 215);
|
||||||
this.panel2.TabIndex = 4;
|
this.panel2.TabIndex = 4;
|
||||||
//
|
//
|
||||||
// textBox2
|
// textBox2
|
||||||
@@ -73,11 +74,22 @@
|
|||||||
this.textBox2.Size = new System.Drawing.Size(367, 20);
|
this.textBox2.Size = new System.Drawing.Size(367, 20);
|
||||||
this.textBox2.TabIndex = 3;
|
this.textBox2.TabIndex = 3;
|
||||||
//
|
//
|
||||||
|
// button2
|
||||||
|
//
|
||||||
|
this.button2.Location = new System.Drawing.Point(319, 257);
|
||||||
|
this.button2.Name = "button2";
|
||||||
|
this.button2.Size = new System.Drawing.Size(109, 62);
|
||||||
|
this.button2.TabIndex = 5;
|
||||||
|
this.button2.Text = "button2";
|
||||||
|
this.button2.UseVisualStyleBackColor = true;
|
||||||
|
this.button2.Click += new System.EventHandler(this.button2_Click);
|
||||||
|
//
|
||||||
// FrmLegacyTestAppStart
|
// FrmLegacyTestAppStart
|
||||||
//
|
//
|
||||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
this.ClientSize = new System.Drawing.Size(1378, 871);
|
this.ClientSize = new System.Drawing.Size(1378, 871);
|
||||||
|
this.Controls.Add(this.button2);
|
||||||
this.Controls.Add(this.panel2);
|
this.Controls.Add(this.panel2);
|
||||||
this.Controls.Add(this.textBox2);
|
this.Controls.Add(this.textBox2);
|
||||||
this.Controls.Add(this.panel1);
|
this.Controls.Add(this.panel1);
|
||||||
@@ -98,5 +110,6 @@
|
|||||||
private System.Windows.Forms.Panel panel1;
|
private System.Windows.Forms.Panel panel1;
|
||||||
private System.Windows.Forms.Panel panel2;
|
private System.Windows.Forms.Panel panel2;
|
||||||
private System.Windows.Forms.TextBox textBox2;
|
private System.Windows.Forms.TextBox textBox2;
|
||||||
|
private System.Windows.Forms.Button button2;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -10,24 +10,21 @@ namespace GenesisToolBox
|
|||||||
{
|
{
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
}
|
}
|
||||||
private ctlEasyMeterRdy ctlEasyMeterRdy1;
|
private ctlCRdy ctlEasyMeterRdy1;
|
||||||
private ctlEasyMeterRdy ctlEasyMeterRdy2;
|
private ctlCRdy ctlEasyMeterRdy2;
|
||||||
|
|
||||||
private void FrmLegacyTestAppStart_Load(object sender, EventArgs e)
|
private void FrmLegacyTestAppStart_Load(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
ctlEasyMeterRdy1 = new ctlEasyMeterRdy(1);
|
ctlEasyMeterRdy1 = new ctlCRdy();
|
||||||
ctlEasyMeterRdy2 = new ctlEasyMeterRdy(2);
|
ctlEasyMeterRdy2 = new ctlCRdy();
|
||||||
|
|
||||||
panel1.Controls.Add(ctlEasyMeterRdy1);
|
panel1.Controls.Add(ctlEasyMeterRdy1);
|
||||||
panel2.Controls.Add(ctlEasyMeterRdy2);
|
panel2.Controls.Add(ctlEasyMeterRdy2);
|
||||||
|
|
||||||
ctlEasyMeterRdy1.Expand += CtlEasyMeterRdy1_Expand;
|
|
||||||
|
|
||||||
ctlEasyMeterRdy2.Expand += CtlEasyMeterRdy2_Expand;
|
ctlEasyMeterRdy1.Init(1);
|
||||||
|
ctlEasyMeterRdy2.Init(2);
|
||||||
|
|
||||||
CtlEasyMeterRdy1_Expand(null, new PopEventArgs() { Show = false });
|
|
||||||
|
|
||||||
CtlEasyMeterRdy2_Expand(null, new PopEventArgs() { Show = false });
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void CtlEasyMeterRdy1_Expand(object sender, PopEventArgs e)
|
private void CtlEasyMeterRdy1_Expand(object sender, PopEventArgs e)
|
||||||
@@ -45,5 +42,18 @@ namespace GenesisToolBox
|
|||||||
{
|
{
|
||||||
ctlEasyMeterRdy1.Start(false);
|
ctlEasyMeterRdy1.Start(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void button2_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
|
||||||
|
|
||||||
|
string pcb;
|
||||||
|
string sr;
|
||||||
|
bool pre;
|
||||||
|
bool waring;
|
||||||
|
string lut;
|
||||||
|
var ret = ctlEasyMeterRdy1.GetAllInfos(out pcb, out sr, out pre, out waring, out lut);
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+23
-22
@@ -29,6 +29,7 @@
|
|||||||
private void InitializeComponent()
|
private void InitializeComponent()
|
||||||
{
|
{
|
||||||
this.gpGerneral = new System.Windows.Forms.GroupBox();
|
this.gpGerneral = new System.Windows.Forms.GroupBox();
|
||||||
|
this.button1 = new System.Windows.Forms.Button();
|
||||||
this.button4 = new System.Windows.Forms.Button();
|
this.button4 = new System.Windows.Forms.Button();
|
||||||
this.btnLutUpdate = new System.Windows.Forms.Button();
|
this.btnLutUpdate = new System.Windows.Forms.Button();
|
||||||
this.btnPressure = new System.Windows.Forms.Button();
|
this.btnPressure = new System.Windows.Forms.Button();
|
||||||
@@ -43,14 +44,13 @@
|
|||||||
this.button2 = new System.Windows.Forms.Button();
|
this.button2 = new System.Windows.Forms.Button();
|
||||||
this.btnPara = new System.Windows.Forms.Button();
|
this.btnPara = new System.Windows.Forms.Button();
|
||||||
this.btnRegHistory = new System.Windows.Forms.Button();
|
this.btnRegHistory = new System.Windows.Forms.Button();
|
||||||
this.btnRelatePCbID = new System.Windows.Forms.Button();
|
|
||||||
this.btnPassword = new System.Windows.Forms.Button();
|
this.btnPassword = new System.Windows.Forms.Button();
|
||||||
this.gbDeveloper = new System.Windows.Forms.GroupBox();
|
this.gbDeveloper = new System.Windows.Forms.GroupBox();
|
||||||
this.BtnFileSplit = new System.Windows.Forms.Button();
|
this.BtnFileSplit = new System.Windows.Forms.Button();
|
||||||
this.btnFiles = new System.Windows.Forms.Button();
|
this.btnFiles = new System.Windows.Forms.Button();
|
||||||
this.btnLegacyTestApp = new System.Windows.Forms.Button();
|
this.btnLegacyTestApp = new System.Windows.Forms.Button();
|
||||||
this.lblVersionNumber = new System.Windows.Forms.Label();
|
this.lblVersionNumber = new System.Windows.Forms.Label();
|
||||||
this.button1 = new System.Windows.Forms.Button();
|
this.btnLog = new System.Windows.Forms.Button();
|
||||||
this.gpGerneral.SuspendLayout();
|
this.gpGerneral.SuspendLayout();
|
||||||
this.gpLAA.SuspendLayout();
|
this.gpLAA.SuspendLayout();
|
||||||
this.gbDeveloper.SuspendLayout();
|
this.gbDeveloper.SuspendLayout();
|
||||||
@@ -76,6 +76,16 @@
|
|||||||
this.gpGerneral.TabStop = false;
|
this.gpGerneral.TabStop = false;
|
||||||
this.gpGerneral.Text = "General";
|
this.gpGerneral.Text = "General";
|
||||||
//
|
//
|
||||||
|
// button1
|
||||||
|
//
|
||||||
|
this.button1.Location = new System.Drawing.Point(6, 413);
|
||||||
|
this.button1.Name = "button1";
|
||||||
|
this.button1.Size = new System.Drawing.Size(152, 40);
|
||||||
|
this.button1.TabIndex = 19;
|
||||||
|
this.button1.Text = "Pulse Config";
|
||||||
|
this.button1.UseVisualStyleBackColor = true;
|
||||||
|
this.button1.Click += new System.EventHandler(this.button1_Click_1);
|
||||||
|
//
|
||||||
// button4
|
// button4
|
||||||
//
|
//
|
||||||
this.button4.Location = new System.Drawing.Point(7, 321);
|
this.button4.Location = new System.Drawing.Point(7, 321);
|
||||||
@@ -168,11 +178,11 @@
|
|||||||
//
|
//
|
||||||
// gpLAA
|
// gpLAA
|
||||||
//
|
//
|
||||||
|
this.gpLAA.Controls.Add(this.btnLog);
|
||||||
this.gpLAA.Controls.Add(this.button5);
|
this.gpLAA.Controls.Add(this.button5);
|
||||||
this.gpLAA.Controls.Add(this.button2);
|
this.gpLAA.Controls.Add(this.button2);
|
||||||
this.gpLAA.Controls.Add(this.btnPara);
|
this.gpLAA.Controls.Add(this.btnPara);
|
||||||
this.gpLAA.Controls.Add(this.btnRegHistory);
|
this.gpLAA.Controls.Add(this.btnRegHistory);
|
||||||
this.gpLAA.Controls.Add(this.btnRelatePCbID);
|
|
||||||
this.gpLAA.Controls.Add(this.btnPassword);
|
this.gpLAA.Controls.Add(this.btnPassword);
|
||||||
this.gpLAA.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
this.gpLAA.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||||
this.gpLAA.Location = new System.Drawing.Point(201, 37);
|
this.gpLAA.Location = new System.Drawing.Point(201, 37);
|
||||||
@@ -225,16 +235,6 @@
|
|||||||
this.btnRegHistory.UseVisualStyleBackColor = true;
|
this.btnRegHistory.UseVisualStyleBackColor = true;
|
||||||
this.btnRegHistory.Click += new System.EventHandler(this.btnRegHistory_Click);
|
this.btnRegHistory.Click += new System.EventHandler(this.btnRegHistory_Click);
|
||||||
//
|
//
|
||||||
// btnRelatePCbID
|
|
||||||
//
|
|
||||||
this.btnRelatePCbID.Location = new System.Drawing.Point(5, 61);
|
|
||||||
this.btnRelatePCbID.Name = "btnRelatePCbID";
|
|
||||||
this.btnRelatePCbID.Size = new System.Drawing.Size(152, 40);
|
|
||||||
this.btnRelatePCbID.TabIndex = 10;
|
|
||||||
this.btnRelatePCbID.Text = "PcbID -> SerialNumber";
|
|
||||||
this.btnRelatePCbID.UseVisualStyleBackColor = true;
|
|
||||||
this.btnRelatePCbID.Click += new System.EventHandler(this.btnRelatePCbID_Click);
|
|
||||||
//
|
|
||||||
// btnPassword
|
// btnPassword
|
||||||
//
|
//
|
||||||
this.btnPassword.Enabled = false;
|
this.btnPassword.Enabled = false;
|
||||||
@@ -300,15 +300,16 @@
|
|||||||
this.lblVersionNumber.TabIndex = 23;
|
this.lblVersionNumber.TabIndex = 23;
|
||||||
this.lblVersionNumber.Text = "----------";
|
this.lblVersionNumber.Text = "----------";
|
||||||
//
|
//
|
||||||
// button1
|
// btnLog
|
||||||
//
|
//
|
||||||
this.button1.Location = new System.Drawing.Point(6, 413);
|
this.btnLog.Location = new System.Drawing.Point(5, 61);
|
||||||
this.button1.Name = "button1";
|
this.btnLog.Name = "btnLog";
|
||||||
this.button1.Size = new System.Drawing.Size(152, 40);
|
this.btnLog.Size = new System.Drawing.Size(152, 40);
|
||||||
this.button1.TabIndex = 19;
|
this.btnLog.TabIndex = 22;
|
||||||
this.button1.Text = "Pulse Config";
|
this.btnLog.Text = "Log";
|
||||||
this.button1.UseVisualStyleBackColor = true;
|
this.btnLog.UseMnemonic = false;
|
||||||
this.button1.Click += new System.EventHandler(this.button1_Click_1);
|
this.btnLog.UseVisualStyleBackColor = true;
|
||||||
|
this.btnLog.Click += new System.EventHandler(this.btnLog_Click);
|
||||||
//
|
//
|
||||||
// FrmMainForm
|
// FrmMainForm
|
||||||
//
|
//
|
||||||
@@ -347,7 +348,6 @@
|
|||||||
private System.Windows.Forms.GroupBox gpLAA;
|
private System.Windows.Forms.GroupBox gpLAA;
|
||||||
private System.Windows.Forms.Button btnPara;
|
private System.Windows.Forms.Button btnPara;
|
||||||
private System.Windows.Forms.Button btnRegHistory;
|
private System.Windows.Forms.Button btnRegHistory;
|
||||||
private System.Windows.Forms.Button btnRelatePCbID;
|
|
||||||
private System.Windows.Forms.Button btnPassword;
|
private System.Windows.Forms.Button btnPassword;
|
||||||
private System.Windows.Forms.GroupBox gbDeveloper;
|
private System.Windows.Forms.GroupBox gbDeveloper;
|
||||||
private System.Windows.Forms.Button BtnFileSplit;
|
private System.Windows.Forms.Button BtnFileSplit;
|
||||||
@@ -360,6 +360,7 @@
|
|||||||
private System.Windows.Forms.Button button5;
|
private System.Windows.Forms.Button button5;
|
||||||
private System.Windows.Forms.Label lblVersionNumber;
|
private System.Windows.Forms.Label lblVersionNumber;
|
||||||
private System.Windows.Forms.Button button1;
|
private System.Windows.Forms.Button button1;
|
||||||
|
private System.Windows.Forms.Button btnLog;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -394,5 +394,13 @@ namespace Xylem.Common.Ui.GenesisToolBox
|
|||||||
form.Closed += Form_Closed;
|
form.Closed += Form_Closed;
|
||||||
Hide();
|
Hide();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void btnLog_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
var form = new FrmLog();
|
||||||
|
form.Show();
|
||||||
|
form.Closed += Form_Closed;
|
||||||
|
Hide();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -671,7 +671,7 @@ namespace Xylem.Common.Ui.GenesisToolBox
|
|||||||
if (regDef.DataType == typeof(String) || regDef.DataType == typeof(Int64) ||
|
if (regDef.DataType == typeof(String) || regDef.DataType == typeof(Int64) ||
|
||||||
regDef.DataType == typeof(UInt64))
|
regDef.DataType == typeof(UInt64))
|
||||||
{
|
{
|
||||||
rawRegister = _currentGenesis.ReadRegister(reg, 12);
|
rawRegister = _currentGenesis.ReadRegister(reg, 8);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -11,7 +11,6 @@ namespace XylemCommonUiLegacyGenCtl.DataPackage
|
|||||||
{
|
{
|
||||||
public bool WatingForDecision { get; set; } = true;
|
public bool WatingForDecision { get; set; } = true;
|
||||||
|
|
||||||
public bool DirectStart { get; set; } = false;
|
|
||||||
public TempSouceType TempSouce { get; set; }
|
public TempSouceType TempSouce { get; set; }
|
||||||
|
|
||||||
public MeterSize MeterSize { get; set; }
|
public MeterSize MeterSize { get; set; }
|
||||||
|
|||||||
+10
-4
@@ -9,7 +9,7 @@ namespace XylemCommonUiLegacyGenCtl
|
|||||||
|
|
||||||
|
|
||||||
[ClassInterface(ClassInterfaceType.AutoDual)]
|
[ClassInterface(ClassInterfaceType.AutoDual)]
|
||||||
[Guid("FDD23F12-5AE6-4D23-BF34-9C46EA61F02E")]
|
[Guid("FDD23F12-5AE6-4D23-BF34-9C46EA72F02E")]
|
||||||
[ComVisible(true)]
|
[ComVisible(true)]
|
||||||
public class PopEventArgs : EventArgs
|
public class PopEventArgs : EventArgs
|
||||||
{
|
{
|
||||||
@@ -18,7 +18,7 @@ namespace XylemCommonUiLegacyGenCtl
|
|||||||
|
|
||||||
|
|
||||||
[ClassInterface(ClassInterfaceType.AutoDual)]
|
[ClassInterface(ClassInterfaceType.AutoDual)]
|
||||||
[Guid("AE0875F7-D30D-4113-AE28-E0CBD0372544")]
|
[Guid("AE0875F7-D30D-4113-AE28-E0CBD0373544")]
|
||||||
[ComVisible(true)]
|
[ComVisible(true)]
|
||||||
public class StateChangeEventArgs : EventArgs
|
public class StateChangeEventArgs : EventArgs
|
||||||
{
|
{
|
||||||
@@ -33,14 +33,20 @@ namespace XylemCommonUiLegacyGenCtl
|
|||||||
public delegate void OnPop(Object sender, PopEventArgs e);
|
public delegate void OnPop(Object sender, PopEventArgs e);
|
||||||
|
|
||||||
[InterfaceType(ComInterfaceType.InterfaceIsIDispatch)]
|
[InterfaceType(ComInterfaceType.InterfaceIsIDispatch)]
|
||||||
[Guid("A1095409-2795-42C7-B6B6-800B4F76CA60")]
|
[Guid("A1095409-2795-45C7-B6B6-800B4F76CA60")]
|
||||||
public interface IEasyMeterRdy
|
public interface ICRdy
|
||||||
{
|
{
|
||||||
[DispId(1)]
|
[DispId(1)]
|
||||||
void OneStateChange();
|
void OneStateChange();
|
||||||
[DispId(2)]
|
[DispId(2)]
|
||||||
void OnPop(Object sender, PopEventArgs e);
|
void OnPop(Object sender, PopEventArgs e);
|
||||||
|
|
||||||
|
void Init(int v);
|
||||||
|
|
||||||
|
void Start();
|
||||||
|
|
||||||
|
bool GetAllInfos(out string oPcbId, out string oSerialNumber, out bool oHasPreajustment, out bool oHasWarnings, out string oLUT);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,58 @@
|
|||||||
|
using System;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
|
namespace XylemCommonUiLegacyGenCtl
|
||||||
|
{
|
||||||
|
[Guid("905FD089-A09F-48CB-9EAF-E8F0328655A1")
|
||||||
|
, ComVisible(true)
|
||||||
|
, InterfaceType(ComInterfaceType.InterfaceIsIDispatch)]
|
||||||
|
public interface ITstCont
|
||||||
|
{
|
||||||
|
void Init();
|
||||||
|
|
||||||
|
dynamic GetContainer();
|
||||||
|
void SetWatingForDecision(bool v);
|
||||||
|
bool GetWatingForDecision();
|
||||||
|
|
||||||
|
void SetTempSouceFlansch();
|
||||||
|
bool GetTempSouceFlansch();
|
||||||
|
|
||||||
|
void SetTempSouceSPS();
|
||||||
|
bool GetTempSouceSPS();
|
||||||
|
|
||||||
|
void SetTempSouceManually();
|
||||||
|
bool GetTempSouceManually();
|
||||||
|
|
||||||
|
|
||||||
|
void SetMetersize(int v);
|
||||||
|
int GetMetersize();
|
||||||
|
|
||||||
|
void SetDelayInSBeforStart(int v);
|
||||||
|
int GetDelayInSBeforStart();
|
||||||
|
|
||||||
|
void SetAllChanelsRequired(bool v);
|
||||||
|
bool GetAllChanelsRequired();
|
||||||
|
|
||||||
|
void SetProductionMode(bool v);
|
||||||
|
bool GetProductionMode();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
void SetMeterTestSettings(int Slot, string SerialNr, bool FlowAdjustment, double FlowAdjustmentTarget, bool PreAdjustment, bool FlowTesting);
|
||||||
|
string GetMeterSerialNr(int Slot);
|
||||||
|
bool GetFlowAdjustment(int Slot);
|
||||||
|
bool GetPreAdjustment(int Slot);
|
||||||
|
double GetFlowAdjustmentTarget(int Slot);
|
||||||
|
|
||||||
|
bool GetFlowTesting(int Slot);
|
||||||
|
|
||||||
|
bool GetAnyMeterFlowAdjustment();
|
||||||
|
bool GetAnyMeterPreAdjustment();
|
||||||
|
bool GetAnyMeterFlowTesting();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -103,11 +103,11 @@
|
|||||||
<Compile Include="ctlBenchRdy.Designer.cs">
|
<Compile Include="ctlBenchRdy.Designer.cs">
|
||||||
<DependentUpon>ctlBenchRdy.cs</DependentUpon>
|
<DependentUpon>ctlBenchRdy.cs</DependentUpon>
|
||||||
</Compile>
|
</Compile>
|
||||||
<Compile Include="ctlEasyMeterRdy.cs">
|
<Compile Include="ctlCRdy.cs">
|
||||||
<SubType>UserControl</SubType>
|
<SubType>UserControl</SubType>
|
||||||
</Compile>
|
</Compile>
|
||||||
<Compile Include="ctlEasyMeterRdy.Designer.cs">
|
<Compile Include="ctlCRdy.Designer.cs">
|
||||||
<DependentUpon>ctlEasyMeterRdy.cs</DependentUpon>
|
<DependentUpon>ctlCRdy.cs</DependentUpon>
|
||||||
</Compile>
|
</Compile>
|
||||||
<Compile Include="ctlMeterReady.cs">
|
<Compile Include="ctlMeterReady.cs">
|
||||||
<SubType>UserControl</SubType>
|
<SubType>UserControl</SubType>
|
||||||
@@ -122,7 +122,8 @@
|
|||||||
<Compile Include="Enums\MeterReadyResults.cs" />
|
<Compile Include="Enums\MeterReadyResults.cs" />
|
||||||
<Compile Include="Enums\TempSouceType.cs" />
|
<Compile Include="Enums\TempSouceType.cs" />
|
||||||
<Compile Include="ICtlTestBench.cs" />
|
<Compile Include="ICtlTestBench.cs" />
|
||||||
<Compile Include="IEasyMeterRdy.cs" />
|
<Compile Include="ICRdy.cs" />
|
||||||
|
<Compile Include="ITstCont.cs" />
|
||||||
<Compile Include="PreAdjWr.cs">
|
<Compile Include="PreAdjWr.cs">
|
||||||
<SubType>UserControl</SubType>
|
<SubType>UserControl</SubType>
|
||||||
</Compile>
|
</Compile>
|
||||||
@@ -149,14 +150,15 @@
|
|||||||
<Compile Include="ICtlBatch.cs" />
|
<Compile Include="ICtlBatch.cs" />
|
||||||
<Compile Include="ICtlPreadjustment.cs" />
|
<Compile Include="ICtlPreadjustment.cs" />
|
||||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||||
|
<Compile Include="TstContHlp.cs" />
|
||||||
<Service Include="{94E38DFF-614B-4cbd-B67C-F211BB35CE8B}" />
|
<Service Include="{94E38DFF-614B-4cbd-B67C-F211BB35CE8B}" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<EmbeddedResource Include="ctlBenchRdy.resx">
|
<EmbeddedResource Include="ctlBenchRdy.resx">
|
||||||
<DependentUpon>ctlBenchRdy.cs</DependentUpon>
|
<DependentUpon>ctlBenchRdy.cs</DependentUpon>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
<EmbeddedResource Include="ctlEasyMeterRdy.resx">
|
<EmbeddedResource Include="ctlCRdy.resx">
|
||||||
<DependentUpon>ctlEasyMeterRdy.cs</DependentUpon>
|
<DependentUpon>ctlCRdy.cs</DependentUpon>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
<EmbeddedResource Include="ctlMeterReady.resx">
|
<EmbeddedResource Include="ctlMeterReady.resx">
|
||||||
<DependentUpon>ctlMeterReady.cs</DependentUpon>
|
<DependentUpon>ctlMeterReady.cs</DependentUpon>
|
||||||
|
|||||||
@@ -309,7 +309,6 @@ namespace XylemCommonUiLegacyGenCtl
|
|||||||
StringBuilder sb = new StringBuilder();
|
StringBuilder sb = new StringBuilder();
|
||||||
|
|
||||||
sb.AppendLine($"WatingForDecision={container.WatingForDecision}");
|
sb.AppendLine($"WatingForDecision={container.WatingForDecision}");
|
||||||
sb.AppendLine($"DirectStart={container.DirectStart}");
|
|
||||||
sb.AppendLine($"TempSouce={container.TempSouce}");
|
sb.AppendLine($"TempSouce={container.TempSouce}");
|
||||||
sb.AppendLine($"MeterSize={container.MeterSize}");
|
sb.AppendLine($"MeterSize={container.MeterSize}");
|
||||||
sb.AppendLine($"DelayInSBeforStart={container.DelayInSBeforStart}");
|
sb.AppendLine($"DelayInSBeforStart={container.DelayInSBeforStart}");
|
||||||
|
|||||||
@@ -0,0 +1,317 @@
|
|||||||
|
using Logic.ProductionToProductMapper.Cordonel;
|
||||||
|
using System;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
using XylemCommonUiLegacyGenCtl.DataPackage;
|
||||||
|
|
||||||
|
namespace XylemCommonUiLegacyGenCtl
|
||||||
|
{
|
||||||
|
[Guid("870BA78D-F176-4125-9125-F3FD3A496423"),
|
||||||
|
ComVisible(true),
|
||||||
|
ClassInterface(ClassInterfaceType.None),
|
||||||
|
ComSourceInterfaces(typeof(ITstCont))]
|
||||||
|
public class TstContHlp : ITstCont
|
||||||
|
{
|
||||||
|
private TestSetupContainer testSetup;
|
||||||
|
public TstContHlp()
|
||||||
|
{
|
||||||
|
Init();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void Init()
|
||||||
|
{
|
||||||
|
testSetup = new TestSetupContainer();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public dynamic GetContainer()
|
||||||
|
{
|
||||||
|
return testSetup;
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool GetAllChanelsRequired()
|
||||||
|
{
|
||||||
|
if (testSetup == null)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return testSetup.AllChanelsRequired;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public int GetDelayInSBeforStart()
|
||||||
|
{
|
||||||
|
if (testSetup == null)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
return testSetup.DelayInSBeforStart;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public int GetMetersize()
|
||||||
|
{
|
||||||
|
if (testSetup == null)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
return MeterSizeConverter.ConvertToOrder(testSetup.MeterSize);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public bool GetProductionMode()
|
||||||
|
{
|
||||||
|
if (testSetup == null)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return testSetup.ProductionMode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool GetWatingForDecision()
|
||||||
|
{
|
||||||
|
if (testSetup == null)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return testSetup.WatingForDecision;
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool GetTempSouceFlansch()
|
||||||
|
{
|
||||||
|
if (testSetup == null)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return testSetup.TempSouce == Enums.TempSouceType.TempFlansh;
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool GetTempSouceSPS()
|
||||||
|
{
|
||||||
|
if (testSetup == null)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return testSetup.TempSouce == Enums.TempSouceType.PtOverSps;
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool GetTempSouceManually()
|
||||||
|
{
|
||||||
|
if (testSetup == null)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return testSetup.TempSouce == Enums.TempSouceType.ManualInput;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void SetAllChanelsRequired(bool v)
|
||||||
|
{
|
||||||
|
|
||||||
|
HanldWrongInput();
|
||||||
|
testSetup.AllChanelsRequired = v;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void SetDelayInSBeforStart(int v)
|
||||||
|
{
|
||||||
|
|
||||||
|
HanldWrongInput();
|
||||||
|
testSetup.DelayInSBeforStart = v;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SetMetersize(int v)
|
||||||
|
{
|
||||||
|
|
||||||
|
HanldWrongInput();
|
||||||
|
testSetup.MeterSize = MeterSizeConverter.ConvertToMeter(v);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void SetProductionMode(bool v)
|
||||||
|
{
|
||||||
|
HanldWrongInput();
|
||||||
|
testSetup.ProductionMode = v;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SetWatingForDecision(bool v)
|
||||||
|
{
|
||||||
|
HanldWrongInput();
|
||||||
|
testSetup.WatingForDecision = v;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SetTempSouceFlansch()
|
||||||
|
{
|
||||||
|
HanldWrongInput();
|
||||||
|
testSetup.TempSouce = Enums.TempSouceType.TempFlansh;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SetTempSouceManually()
|
||||||
|
{
|
||||||
|
HanldWrongInput();
|
||||||
|
testSetup.TempSouce = Enums.TempSouceType.ManualInput;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public void SetTempSouceSPS()
|
||||||
|
{
|
||||||
|
HanldWrongInput();
|
||||||
|
testSetup.TempSouce = Enums.TempSouceType.PtOverSps;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#region MeterStuff
|
||||||
|
|
||||||
|
|
||||||
|
public void SetMeterTestSettings(int Slot, string SerialNr, bool FlowAdjustment, double FlowAdjustmentTarget, bool PreAdjustment, bool FlowTesting)
|
||||||
|
{
|
||||||
|
HanldWrongInputMeters(Slot);
|
||||||
|
|
||||||
|
if (testSetup.meterTestSettings[Slot - 1] == null)
|
||||||
|
{
|
||||||
|
testSetup.meterTestSettings[Slot - 1] = new MeterTestSettings();
|
||||||
|
}
|
||||||
|
|
||||||
|
testSetup.meterTestSettings[Slot - 1].Slot = Slot;
|
||||||
|
testSetup.meterTestSettings[Slot - 1].SerialNr = SerialNr;
|
||||||
|
testSetup.meterTestSettings[Slot - 1].FlowAdjustment = FlowAdjustment;
|
||||||
|
testSetup.meterTestSettings[Slot - 1].FlowAdjustmentTarget = Convert.ToDecimal(FlowAdjustmentTarget);
|
||||||
|
testSetup.meterTestSettings[Slot - 1].PreAdjustment = PreAdjustment;
|
||||||
|
testSetup.meterTestSettings[Slot - 1].FlowTesting = FlowTesting;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public bool GetPreAdjustment(int Slot)
|
||||||
|
{
|
||||||
|
if (testSetup.meterTestSettings[Slot - 1] == null)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return testSetup.meterTestSettings[Slot - 1].PreAdjustment;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public bool GetFlowAdjustment(int Slot)
|
||||||
|
{
|
||||||
|
if (testSetup.meterTestSettings[Slot - 1] == null)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return testSetup.meterTestSettings[Slot - 1].FlowAdjustment;
|
||||||
|
}
|
||||||
|
|
||||||
|
public double GetFlowAdjustmentTarget(int Slot)
|
||||||
|
{
|
||||||
|
if (testSetup.meterTestSettings[Slot - 1] == null)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
return Convert.ToDouble(testSetup.meterTestSettings[Slot - 1].FlowAdjustmentTarget);
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool GetFlowTesting(int Slot)
|
||||||
|
{
|
||||||
|
if (testSetup.meterTestSettings[Slot - 1] == null)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return testSetup.meterTestSettings[Slot - 1].FlowTesting;
|
||||||
|
}
|
||||||
|
|
||||||
|
public string GetMeterSerialNr(int Slot)
|
||||||
|
{
|
||||||
|
if (testSetup.meterTestSettings[Slot - 1] == null)
|
||||||
|
{
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
return testSetup.meterTestSettings[Slot - 1].SerialNr;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public bool GetAnyMeterFlowAdjustment()
|
||||||
|
{
|
||||||
|
if (testSetup == null)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (testSetup.meterTestSettings == null)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return testSetup.meterTestSettings.Any(x => x.FlowAdjustment);
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool GetAnyMeterFlowTesting()
|
||||||
|
{
|
||||||
|
if (testSetup == null)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (testSetup.meterTestSettings == null)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return testSetup.meterTestSettings.Any(x => x.FlowTesting);
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool GetAnyMeterPreAdjustment()
|
||||||
|
{
|
||||||
|
if (testSetup == null)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (testSetup.meterTestSettings == null)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return testSetup.meterTestSettings.Any(x => x.PreAdjustment);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region internalStuff
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
private void HanldWrongInput()
|
||||||
|
{
|
||||||
|
|
||||||
|
if (testSetup == null)
|
||||||
|
{
|
||||||
|
testSetup = new TestSetupContainer();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void HanldWrongInputMeters(int Slot)
|
||||||
|
{
|
||||||
|
|
||||||
|
HanldWrongInput();
|
||||||
|
if (testSetup.meterTestSettings == null)
|
||||||
|
{
|
||||||
|
testSetup.meterTestSettings = new MeterTestSettings[12];
|
||||||
|
}
|
||||||
|
if (Slot < 0 || Slot > 13)
|
||||||
|
{
|
||||||
|
throw new Exception("Ungültiger Einbauplatz");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -945,24 +945,11 @@ namespace XylemCommonUiLegacyGenCtl
|
|||||||
{
|
{
|
||||||
CalibrationIsDone.Add(meter.Slot, LegacyCalibrationResult.Pending);
|
CalibrationIsDone.Add(meter.Slot, LegacyCalibrationResult.Pending);
|
||||||
}
|
}
|
||||||
if (!((GenesisMeter)meter).IsLoggedOn)
|
|
||||||
{
|
|
||||||
listOfTasks.Add(new Task(() =>
|
|
||||||
{
|
|
||||||
var r = ((GenesisMeter)meter).Login();
|
|
||||||
//if (r)
|
|
||||||
//{
|
|
||||||
// var alarms = ((GenesisMeter)meter).GetAlarms();
|
|
||||||
// WarningMetersAlarms.AddOrUpdate(meter.Slot, alarms, (key, oldValue) => alarms);
|
|
||||||
// ((GenesisMeter)meter).ResetAlarm(TestBenchReleAlarms);
|
|
||||||
|
|
||||||
//}
|
|
||||||
}));
|
|
||||||
}
|
|
||||||
|
|
||||||
listOfTasksInit.Add(new Task(() =>
|
listOfTasksInit.Add(new Task(() =>
|
||||||
{
|
{
|
||||||
var r = ((GenesisMeter)meter).Login();
|
var r = ((GenesisMeter)meter).ReLogin();
|
||||||
if (_useRequest)
|
if (_useRequest)
|
||||||
{
|
{
|
||||||
_logger.Debug($"Prepare Meters for Measurement/Adjustment");
|
_logger.Debug($"Prepare Meters for Measurement/Adjustment");
|
||||||
@@ -2108,7 +2095,6 @@ namespace XylemCommonUiLegacyGenCtl
|
|||||||
StringBuilder sb = new StringBuilder();
|
StringBuilder sb = new StringBuilder();
|
||||||
|
|
||||||
sb.AppendLine($"WatingForDecision={container.WatingForDecision}");
|
sb.AppendLine($"WatingForDecision={container.WatingForDecision}");
|
||||||
sb.AppendLine($"DirectStart={container.DirectStart}");
|
|
||||||
sb.AppendLine($"TempSouce={container.TempSouce}");
|
sb.AppendLine($"TempSouce={container.TempSouce}");
|
||||||
sb.AppendLine($"MeterSize={container.MeterSize}");
|
sb.AppendLine($"MeterSize={container.MeterSize}");
|
||||||
sb.AppendLine($"DelayInSBeforStart={container.DelayInSBeforStart}");
|
sb.AppendLine($"DelayInSBeforStart={container.DelayInSBeforStart}");
|
||||||
|
|||||||
@@ -415,7 +415,6 @@ namespace XylemCommonUiLegacyGenCtl
|
|||||||
{
|
{
|
||||||
OverallCancellationTokenSource.Cancel();
|
OverallCancellationTokenSource.Cancel();
|
||||||
testControler = new TestSetupContainer();
|
testControler = new TestSetupContainer();
|
||||||
testControler.DirectStart = start;
|
|
||||||
if (rbtTempManualInput.Checked)
|
if (rbtTempManualInput.Checked)
|
||||||
{
|
{
|
||||||
testControler.TempSouce = Enums.TempSouceType.ManualInput;
|
testControler.TempSouce = Enums.TempSouceType.ManualInput;
|
||||||
|
|||||||
+61
-65
@@ -1,6 +1,6 @@
|
|||||||
namespace XylemCommonUiLegacyGenCtl
|
namespace XylemCommonUiLegacyGenCtl
|
||||||
{
|
{
|
||||||
partial class ctlEasyMeterRdy
|
partial class ctlCRdy
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Required designer variable.
|
/// Required designer variable.
|
||||||
@@ -37,11 +37,11 @@
|
|||||||
this.lblDataP2 = new System.Windows.Forms.Label();
|
this.lblDataP2 = new System.Windows.Forms.Label();
|
||||||
this.lblDataP3 = new System.Windows.Forms.Label();
|
this.lblDataP3 = new System.Windows.Forms.Label();
|
||||||
this.tmrBusy = new System.Windows.Forms.Timer(this.components);
|
this.tmrBusy = new System.Windows.Forms.Timer(this.components);
|
||||||
this.lblFlowTest = new System.Windows.Forms.Label();
|
|
||||||
this.lblPreadjustment = new System.Windows.Forms.Label();
|
|
||||||
this.label1 = new System.Windows.Forms.Label();
|
|
||||||
this.lblPcbId = new System.Windows.Forms.Label();
|
this.lblPcbId = new System.Windows.Forms.Label();
|
||||||
this.button1 = new System.Windows.Forms.Button();
|
this.label1 = new System.Windows.Forms.Label();
|
||||||
|
this.lblPreadjustment = new System.Windows.Forms.Label();
|
||||||
|
this.label2 = new System.Windows.Forms.Label();
|
||||||
|
this.lblLut = new System.Windows.Forms.Label();
|
||||||
this.SuspendLayout();
|
this.SuspendLayout();
|
||||||
//
|
//
|
||||||
// lblLogin
|
// lblLogin
|
||||||
@@ -50,7 +50,7 @@
|
|||||||
this.lblLogin.BackColor = System.Drawing.Color.LightGray;
|
this.lblLogin.BackColor = System.Drawing.Color.LightGray;
|
||||||
this.lblLogin.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
this.lblLogin.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
||||||
this.lblLogin.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
this.lblLogin.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||||
this.lblLogin.Location = new System.Drawing.Point(165, 1);
|
this.lblLogin.Location = new System.Drawing.Point(98, 1);
|
||||||
this.lblLogin.Name = "lblLogin";
|
this.lblLogin.Name = "lblLogin";
|
||||||
this.lblLogin.Size = new System.Drawing.Size(55, 22);
|
this.lblLogin.Size = new System.Drawing.Size(55, 22);
|
||||||
this.lblLogin.TabIndex = 6;
|
this.lblLogin.TabIndex = 6;
|
||||||
@@ -62,7 +62,7 @@
|
|||||||
this.lblLed.BackColor = System.Drawing.Color.LightGray;
|
this.lblLed.BackColor = System.Drawing.Color.LightGray;
|
||||||
this.lblLed.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
this.lblLed.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
||||||
this.lblLed.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
this.lblLed.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||||
this.lblLed.Location = new System.Drawing.Point(219, 1);
|
this.lblLed.Location = new System.Drawing.Point(152, 1);
|
||||||
this.lblLed.Name = "lblLed";
|
this.lblLed.Name = "lblLed";
|
||||||
this.lblLed.Size = new System.Drawing.Size(46, 22);
|
this.lblLed.Size = new System.Drawing.Size(46, 22);
|
||||||
this.lblLed.TabIndex = 7;
|
this.lblLed.TabIndex = 7;
|
||||||
@@ -74,7 +74,7 @@
|
|||||||
this.lblDataOverall.BackColor = System.Drawing.Color.LightGray;
|
this.lblDataOverall.BackColor = System.Drawing.Color.LightGray;
|
||||||
this.lblDataOverall.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
this.lblDataOverall.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
||||||
this.lblDataOverall.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
this.lblDataOverall.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||||
this.lblDataOverall.Location = new System.Drawing.Point(264, 1);
|
this.lblDataOverall.Location = new System.Drawing.Point(197, 1);
|
||||||
this.lblDataOverall.Name = "lblDataOverall";
|
this.lblDataOverall.Name = "lblDataOverall";
|
||||||
this.lblDataOverall.Size = new System.Drawing.Size(87, 22);
|
this.lblDataOverall.Size = new System.Drawing.Size(87, 22);
|
||||||
this.lblDataOverall.TabIndex = 8;
|
this.lblDataOverall.TabIndex = 8;
|
||||||
@@ -86,7 +86,7 @@
|
|||||||
this.lblDataDisplay.BackColor = System.Drawing.Color.LightGray;
|
this.lblDataDisplay.BackColor = System.Drawing.Color.LightGray;
|
||||||
this.lblDataDisplay.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
this.lblDataDisplay.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
||||||
this.lblDataDisplay.Font = new System.Drawing.Font("Microsoft Sans Serif", 8F, System.Drawing.FontStyle.Bold);
|
this.lblDataDisplay.Font = new System.Drawing.Font("Microsoft Sans Serif", 8F, System.Drawing.FontStyle.Bold);
|
||||||
this.lblDataDisplay.Location = new System.Drawing.Point(350, 1);
|
this.lblDataDisplay.Location = new System.Drawing.Point(283, 1);
|
||||||
this.lblDataDisplay.Name = "lblDataDisplay";
|
this.lblDataDisplay.Name = "lblDataDisplay";
|
||||||
this.lblDataDisplay.Size = new System.Drawing.Size(66, 15);
|
this.lblDataDisplay.Size = new System.Drawing.Size(66, 15);
|
||||||
this.lblDataDisplay.TabIndex = 9;
|
this.lblDataDisplay.TabIndex = 9;
|
||||||
@@ -99,7 +99,7 @@
|
|||||||
this.lblDataP1.BackColor = System.Drawing.Color.LightGray;
|
this.lblDataP1.BackColor = System.Drawing.Color.LightGray;
|
||||||
this.lblDataP1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
this.lblDataP1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
||||||
this.lblDataP1.Font = new System.Drawing.Font("Microsoft Sans Serif", 6F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
this.lblDataP1.Font = new System.Drawing.Font("Microsoft Sans Serif", 6F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||||
this.lblDataP1.Location = new System.Drawing.Point(350, 15);
|
this.lblDataP1.Location = new System.Drawing.Point(283, 15);
|
||||||
this.lblDataP1.Name = "lblDataP1";
|
this.lblDataP1.Name = "lblDataP1";
|
||||||
this.lblDataP1.Size = new System.Drawing.Size(21, 11);
|
this.lblDataP1.Size = new System.Drawing.Size(21, 11);
|
||||||
this.lblDataP1.TabIndex = 10;
|
this.lblDataP1.TabIndex = 10;
|
||||||
@@ -111,7 +111,7 @@
|
|||||||
this.lblDataP2.BackColor = System.Drawing.Color.LightGray;
|
this.lblDataP2.BackColor = System.Drawing.Color.LightGray;
|
||||||
this.lblDataP2.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
this.lblDataP2.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
||||||
this.lblDataP2.Font = new System.Drawing.Font("Microsoft Sans Serif", 6F, System.Drawing.FontStyle.Bold);
|
this.lblDataP2.Font = new System.Drawing.Font("Microsoft Sans Serif", 6F, System.Drawing.FontStyle.Bold);
|
||||||
this.lblDataP2.Location = new System.Drawing.Point(371, 15);
|
this.lblDataP2.Location = new System.Drawing.Point(304, 15);
|
||||||
this.lblDataP2.Name = "lblDataP2";
|
this.lblDataP2.Name = "lblDataP2";
|
||||||
this.lblDataP2.Size = new System.Drawing.Size(24, 11);
|
this.lblDataP2.Size = new System.Drawing.Size(24, 11);
|
||||||
this.lblDataP2.TabIndex = 11;
|
this.lblDataP2.TabIndex = 11;
|
||||||
@@ -123,7 +123,7 @@
|
|||||||
this.lblDataP3.BackColor = System.Drawing.Color.LightGray;
|
this.lblDataP3.BackColor = System.Drawing.Color.LightGray;
|
||||||
this.lblDataP3.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
this.lblDataP3.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
||||||
this.lblDataP3.Font = new System.Drawing.Font("Microsoft Sans Serif", 6F, System.Drawing.FontStyle.Bold);
|
this.lblDataP3.Font = new System.Drawing.Font("Microsoft Sans Serif", 6F, System.Drawing.FontStyle.Bold);
|
||||||
this.lblDataP3.Location = new System.Drawing.Point(395, 15);
|
this.lblDataP3.Location = new System.Drawing.Point(328, 15);
|
||||||
this.lblDataP3.Name = "lblDataP3";
|
this.lblDataP3.Name = "lblDataP3";
|
||||||
this.lblDataP3.Size = new System.Drawing.Size(21, 11);
|
this.lblDataP3.Size = new System.Drawing.Size(21, 11);
|
||||||
this.lblDataP3.TabIndex = 12;
|
this.lblDataP3.TabIndex = 12;
|
||||||
@@ -135,74 +135,70 @@
|
|||||||
this.tmrBusy.Interval = 1000;
|
this.tmrBusy.Interval = 1000;
|
||||||
this.tmrBusy.Tick += new System.EventHandler(this.tmrBusy_Tick);
|
this.tmrBusy.Tick += new System.EventHandler(this.tmrBusy_Tick);
|
||||||
//
|
//
|
||||||
// lblFlowTest
|
// lblPcbId
|
||||||
//
|
//
|
||||||
this.lblFlowTest.AutoSize = true;
|
this.lblPcbId.AutoSize = true;
|
||||||
this.lblFlowTest.BackColor = System.Drawing.Color.LightGray;
|
this.lblPcbId.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||||
this.lblFlowTest.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
this.lblPcbId.Location = new System.Drawing.Point(3, 19);
|
||||||
this.lblFlowTest.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold);
|
this.lblPcbId.Name = "lblPcbId";
|
||||||
this.lblFlowTest.Location = new System.Drawing.Point(142, 1);
|
this.lblPcbId.Size = new System.Drawing.Size(79, 15);
|
||||||
this.lblFlowTest.Name = "lblFlowTest";
|
this.lblPcbId.TabIndex = 21;
|
||||||
this.lblFlowTest.Size = new System.Drawing.Size(24, 22);
|
this.lblPcbId.Text = "000000000";
|
||||||
this.lblFlowTest.TabIndex = 14;
|
this.lblPcbId.Click += new System.EventHandler(this.lblPcbId_Click_1);
|
||||||
this.lblFlowTest.Text = "H";
|
//
|
||||||
|
// label1
|
||||||
|
//
|
||||||
|
this.label1.AutoSize = true;
|
||||||
|
this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||||
|
this.label1.Location = new System.Drawing.Point(3, 6);
|
||||||
|
this.label1.Name = "label1";
|
||||||
|
this.label1.Size = new System.Drawing.Size(48, 13);
|
||||||
|
this.label1.TabIndex = 24;
|
||||||
|
this.label1.Text = "PCBID:";
|
||||||
//
|
//
|
||||||
// lblPreadjustment
|
// lblPreadjustment
|
||||||
//
|
//
|
||||||
this.lblPreadjustment.AutoSize = true;
|
this.lblPreadjustment.AutoSize = true;
|
||||||
this.lblPreadjustment.BackColor = System.Drawing.Color.LightGray;
|
this.lblPreadjustment.BackColor = System.Drawing.Color.LightGray;
|
||||||
this.lblPreadjustment.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
this.lblPreadjustment.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
||||||
this.lblPreadjustment.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold);
|
this.lblPreadjustment.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||||
this.lblPreadjustment.Location = new System.Drawing.Point(120, 1);
|
this.lblPreadjustment.Location = new System.Drawing.Point(98, 23);
|
||||||
this.lblPreadjustment.Name = "lblPreadjustment";
|
this.lblPreadjustment.Name = "lblPreadjustment";
|
||||||
this.lblPreadjustment.Size = new System.Drawing.Size(23, 22);
|
this.lblPreadjustment.Size = new System.Drawing.Size(156, 18);
|
||||||
this.lblPreadjustment.TabIndex = 15;
|
this.lblPreadjustment.TabIndex = 15;
|
||||||
this.lblPreadjustment.Text = "V";
|
this.lblPreadjustment.Text = "Preadjustment Status";
|
||||||
//
|
//
|
||||||
// label1
|
// label2
|
||||||
//
|
//
|
||||||
this.label1.AutoSize = true;
|
this.label2.AutoSize = true;
|
||||||
this.label1.BackColor = System.Drawing.Color.LightGray;
|
this.label2.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||||
this.label1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
this.label2.Location = new System.Drawing.Point(256, 28);
|
||||||
this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold);
|
this.label2.Name = "label2";
|
||||||
this.label1.Location = new System.Drawing.Point(3, 4);
|
this.label2.Size = new System.Drawing.Size(35, 13);
|
||||||
this.label1.Name = "label1";
|
this.label2.TabIndex = 26;
|
||||||
this.label1.Size = new System.Drawing.Size(23, 22);
|
this.label2.Text = "LUT:";
|
||||||
this.label1.TabIndex = 22;
|
|
||||||
this.label1.Text = "S";
|
|
||||||
//
|
//
|
||||||
// lblPcbId
|
// lblLut
|
||||||
//
|
//
|
||||||
this.lblPcbId.AutoSize = true;
|
this.lblLut.AutoSize = true;
|
||||||
this.lblPcbId.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
this.lblLut.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||||
this.lblPcbId.Location = new System.Drawing.Point(29, 5);
|
this.lblLut.Location = new System.Drawing.Point(297, 28);
|
||||||
this.lblPcbId.Name = "lblPcbId";
|
this.lblLut.Name = "lblLut";
|
||||||
this.lblPcbId.Size = new System.Drawing.Size(79, 15);
|
this.lblLut.Size = new System.Drawing.Size(11, 13);
|
||||||
this.lblPcbId.TabIndex = 21;
|
this.lblLut.TabIndex = 27;
|
||||||
this.lblPcbId.Text = "000000000";
|
this.lblLut.Text = "-";
|
||||||
//
|
//
|
||||||
// button1
|
// ctlCRdy
|
||||||
//
|
|
||||||
this.button1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
|
||||||
this.button1.Font = new System.Drawing.Font("Arial", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
|
||||||
this.button1.Location = new System.Drawing.Point(422, -2);
|
|
||||||
this.button1.Name = "button1";
|
|
||||||
this.button1.Size = new System.Drawing.Size(28, 33);
|
|
||||||
this.button1.TabIndex = 23;
|
|
||||||
this.button1.Text = "►";
|
|
||||||
this.button1.UseVisualStyleBackColor = true;
|
|
||||||
this.button1.Click += new System.EventHandler(this.button1_Click);
|
|
||||||
//
|
|
||||||
// ctlEasyMeterRdy
|
|
||||||
//
|
//
|
||||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.BackColor = System.Drawing.Color.White;
|
||||||
this.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
|
this.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
|
||||||
this.Controls.Add(this.button1);
|
this.Controls.Add(this.lblLut);
|
||||||
|
this.Controls.Add(this.label2);
|
||||||
this.Controls.Add(this.label1);
|
this.Controls.Add(this.label1);
|
||||||
this.Controls.Add(this.lblPcbId);
|
this.Controls.Add(this.lblPcbId);
|
||||||
this.Controls.Add(this.lblPreadjustment);
|
this.Controls.Add(this.lblPreadjustment);
|
||||||
this.Controls.Add(this.lblFlowTest);
|
|
||||||
this.Controls.Add(this.lblDataP3);
|
this.Controls.Add(this.lblDataP3);
|
||||||
this.Controls.Add(this.lblDataP2);
|
this.Controls.Add(this.lblDataP2);
|
||||||
this.Controls.Add(this.lblDataP1);
|
this.Controls.Add(this.lblDataP1);
|
||||||
@@ -210,8 +206,8 @@
|
|||||||
this.Controls.Add(this.lblDataOverall);
|
this.Controls.Add(this.lblDataOverall);
|
||||||
this.Controls.Add(this.lblLed);
|
this.Controls.Add(this.lblLed);
|
||||||
this.Controls.Add(this.lblLogin);
|
this.Controls.Add(this.lblLogin);
|
||||||
this.Name = "ctlEasyMeterRdy";
|
this.Name = "ctlCRdy";
|
||||||
this.Size = new System.Drawing.Size(452, 30);
|
this.Size = new System.Drawing.Size(350, 45);
|
||||||
this.Load += new System.EventHandler(this.ctlMeterReady_Load);
|
this.Load += new System.EventHandler(this.ctlMeterReady_Load);
|
||||||
this.MouseEnter += new System.EventHandler(this.ctlEasyMeterRdy_MouseEnter);
|
this.MouseEnter += new System.EventHandler(this.ctlEasyMeterRdy_MouseEnter);
|
||||||
this.MouseLeave += new System.EventHandler(this.ctlEasyMeterRdy_MouseLeave);
|
this.MouseLeave += new System.EventHandler(this.ctlEasyMeterRdy_MouseLeave);
|
||||||
@@ -229,10 +225,10 @@
|
|||||||
private System.Windows.Forms.Label lblDataP2;
|
private System.Windows.Forms.Label lblDataP2;
|
||||||
private System.Windows.Forms.Label lblDataP3;
|
private System.Windows.Forms.Label lblDataP3;
|
||||||
private System.Windows.Forms.Timer tmrBusy;
|
private System.Windows.Forms.Timer tmrBusy;
|
||||||
private System.Windows.Forms.Label lblFlowTest;
|
|
||||||
private System.Windows.Forms.Label lblPreadjustment;
|
|
||||||
private System.Windows.Forms.Label label1;
|
|
||||||
private System.Windows.Forms.Label lblPcbId;
|
private System.Windows.Forms.Label lblPcbId;
|
||||||
private System.Windows.Forms.Button button1;
|
private System.Windows.Forms.Label label1;
|
||||||
|
private System.Windows.Forms.Label lblPreadjustment;
|
||||||
|
private System.Windows.Forms.Label label2;
|
||||||
|
private System.Windows.Forms.Label lblLut;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
+222
-194
@@ -22,10 +22,10 @@ using XylemCommonUiLegacyGenCtl.Enums;
|
|||||||
namespace XylemCommonUiLegacyGenCtl
|
namespace XylemCommonUiLegacyGenCtl
|
||||||
{
|
{
|
||||||
|
|
||||||
[Guid("532F05D1-3317-4f00-B5D9-6CBB208B6B58")]
|
[Guid("532F05D1-3317-4f00-B5D9-6CBB209B6B58")]
|
||||||
[ComSourceInterfaces(typeof(IEasyMeterRdy))]
|
[ComSourceInterfaces(typeof(ICRdy))]
|
||||||
[ComVisible(true)]
|
[ComVisible(true)]
|
||||||
public partial class ctlEasyMeterRdy : UserControl, IEasyMeterRdy
|
public partial class ctlCRdy : UserControl, ICRdy
|
||||||
{
|
{
|
||||||
public event OnPop Expand;
|
public event OnPop Expand;
|
||||||
public event OnStateChange StateChange;
|
public event OnStateChange StateChange;
|
||||||
@@ -65,27 +65,82 @@ namespace XylemCommonUiLegacyGenCtl
|
|||||||
private GenesisMeter meter;
|
private GenesisMeter meter;
|
||||||
|
|
||||||
|
|
||||||
|
public string SerialNumber { get; set; }
|
||||||
public string OrderNumber { get; set; }
|
public string OrderNumber { get; set; }
|
||||||
public string RadioAdress { get; set; }
|
public string RadioAdress { get; set; }
|
||||||
public string CustomerSerialNr { get; set; }
|
public string CustomerSerialNr { get; set; }
|
||||||
public string CalibrationRun { get; set; }
|
public string CalibrationRun { get; set; }
|
||||||
public int LastTestBechState { get; set; }
|
public int LastTestBechState { get; set; }
|
||||||
|
public string LastLUT { get; set; }
|
||||||
|
|
||||||
|
public bool DetectIsDone { get; set; }
|
||||||
|
|
||||||
|
|
||||||
public MeterSize Metersize { get; set; } = MeterSize.NAN;
|
public MeterSize Metersize { get; set; } = MeterSize.NAN;
|
||||||
public ctlEasyMeterRdy(int v)
|
|
||||||
|
private System.Windows.Forms.ToolTip ToolTip1 = new System.Windows.Forms.ToolTip();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public bool GetAllInfos(out string oPcbId, out string oSerialNumber, out bool oHasPreajustment, out bool oHasWarnings, out string oLUT)
|
||||||
|
{
|
||||||
|
oPcbId = "";
|
||||||
|
oSerialNumber = "";
|
||||||
|
oHasPreajustment = false;
|
||||||
|
oHasWarnings = true;
|
||||||
|
oLUT = "";
|
||||||
|
if (string.IsNullOrEmpty(PcbId) || PcbId == "-")
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (!string.IsNullOrEmpty(LastLUT) || LastLUT == "-")
|
||||||
|
{
|
||||||
|
oLUT = LastLUT;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
oLUT = "na";
|
||||||
|
}
|
||||||
|
|
||||||
|
oPcbId = PcbId;
|
||||||
|
oSerialNumber = SerialNumber;
|
||||||
|
|
||||||
|
if (FlowState == MeterReadyResults.OnlyValidRecords
|
||||||
|
&& Path1State == MeterReadyResults.OnlyValidRecords
|
||||||
|
&& Path2State == MeterReadyResults.OnlyValidRecords
|
||||||
|
&& Path3State == MeterReadyResults.OnlyValidRecords
|
||||||
|
)
|
||||||
|
{
|
||||||
|
oHasWarnings = false;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!string.IsNullOrEmpty(CalibrationRun))
|
||||||
|
{
|
||||||
|
oHasPreajustment = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return DetectIsDone;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public ctlCRdy()
|
||||||
|
{
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public ctlCRdy(int v)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
public void Init(int v)
|
||||||
{
|
{
|
||||||
SetSlot(v);
|
SetSlot(v);
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
button1.Text = "►";
|
var vis = true;
|
||||||
this.Width = 140;
|
|
||||||
var vis = false;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
lblPreadjustment.Visible = vis;
|
lblPreadjustment.Visible = vis;
|
||||||
lblFlowTest.Visible = vis;
|
|
||||||
lblLogin.Visible = vis;
|
lblLogin.Visible = vis;
|
||||||
lblLed.Visible = vis;
|
lblLed.Visible = vis;
|
||||||
lblDataOverall.Visible = vis;
|
lblDataOverall.Visible = vis;
|
||||||
@@ -93,6 +148,7 @@ namespace XylemCommonUiLegacyGenCtl
|
|||||||
lblDataP1.Visible = vis;
|
lblDataP1.Visible = vis;
|
||||||
lblDataP2.Visible = vis;
|
lblDataP2.Visible = vis;
|
||||||
lblDataP3.Visible = vis;
|
lblDataP3.Visible = vis;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -101,8 +157,6 @@ namespace XylemCommonUiLegacyGenCtl
|
|||||||
{
|
{
|
||||||
if (NewState != currentState)
|
if (NewState != currentState)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
currentState = NewState;
|
currentState = NewState;
|
||||||
|
|
||||||
OnStateChanged?.Invoke(currentState, EventArgs.Empty);
|
OnStateChanged?.Invoke(currentState, EventArgs.Empty);
|
||||||
@@ -133,6 +187,7 @@ namespace XylemCommonUiLegacyGenCtl
|
|||||||
lblDataP1.BackColor = NonColor;
|
lblDataP1.BackColor = NonColor;
|
||||||
lblDataP2.BackColor = NonColor;
|
lblDataP2.BackColor = NonColor;
|
||||||
lblDataP3.BackColor = NonColor;
|
lblDataP3.BackColor = NonColor;
|
||||||
|
lblLut.Text = LastLUT;
|
||||||
if (newState == TaskState.LoginInProgress)
|
if (newState == TaskState.LoginInProgress)
|
||||||
{
|
{
|
||||||
lblLogin.BackColor = CurrentColor;
|
lblLogin.BackColor = CurrentColor;
|
||||||
@@ -188,6 +243,7 @@ namespace XylemCommonUiLegacyGenCtl
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -197,8 +253,6 @@ namespace XylemCommonUiLegacyGenCtl
|
|||||||
{
|
{
|
||||||
changeCurrentSlotState(TaskState.SetSlot);
|
changeCurrentSlotState(TaskState.SetSlot);
|
||||||
meterSlot = key;
|
meterSlot = key;
|
||||||
overallMeterBatch = new MeterBatch();
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
private Color MeterStateToColor(MeterReadyResults state)
|
private Color MeterStateToColor(MeterReadyResults state)
|
||||||
@@ -237,32 +291,23 @@ namespace XylemCommonUiLegacyGenCtl
|
|||||||
if (Preadjustment.Value)
|
if (Preadjustment.Value)
|
||||||
{
|
{
|
||||||
lblPreadjustment.BackColor = DoneColor;
|
lblPreadjustment.BackColor = DoneColor;
|
||||||
|
ToolTip1.SetToolTip(lblPreadjustment, "Ein erfolgreiches Preadjustment gefunden Zähler kann geprüft werden");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
lblPreadjustment.BackColor = ErrorColor;
|
lblPreadjustment.BackColor = ErrorColor;
|
||||||
|
ToolTip1.SetToolTip(lblPreadjustment, "Preadjustment nicht erfolgreich");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
lblPreadjustment.BackColor = NonColor;
|
lblPreadjustment.BackColor = NonColor;
|
||||||
|
ToolTip1.SetToolTip(lblPreadjustment, "Kein Preadjustment für diesen Zähler gefunden");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (FlowTest.HasValue)
|
|
||||||
{
|
lblLut.Text = LastLUT;
|
||||||
if (FlowTest.Value)
|
|
||||||
{
|
|
||||||
lblFlowTest.BackColor = DoneColor;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
lblFlowTest.BackColor = ErrorColor;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
lblFlowTest.BackColor = NonColor;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -276,7 +321,7 @@ namespace XylemCommonUiLegacyGenCtl
|
|||||||
{
|
{
|
||||||
var responseJson = LocalWebRequest.GetRequest($"{ServiceUrls.MeterInfoForTestBench()}{PcbId}");
|
var responseJson = LocalWebRequest.GetRequest($"{ServiceUrls.MeterInfoForTestBench()}{PcbId}");
|
||||||
var a = JsonConvert.DeserializeObject<string[]>(responseJson);
|
var a = JsonConvert.DeserializeObject<string[]>(responseJson);
|
||||||
var SerialNumber = a[0];
|
SerialNumber = a[0];
|
||||||
if (!String.IsNullOrEmpty(SerialNumber))
|
if (!String.IsNullOrEmpty(SerialNumber))
|
||||||
{
|
{
|
||||||
OrderNumber = a[1];
|
OrderNumber = a[1];
|
||||||
@@ -330,186 +375,201 @@ namespace XylemCommonUiLegacyGenCtl
|
|||||||
|
|
||||||
private CancellationTokenSource CancellationTokenSource = new CancellationTokenSource();
|
private CancellationTokenSource CancellationTokenSource = new CancellationTokenSource();
|
||||||
|
|
||||||
|
public void Start()
|
||||||
|
{
|
||||||
|
Start(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Start(bool forceDisplayClear)
|
||||||
public void Start(bool forceDisplayClear = false)
|
|
||||||
{
|
{
|
||||||
|
|
||||||
if (!isBusy)
|
if (!isBusy)
|
||||||
{
|
{
|
||||||
|
DetectIsDone = false;
|
||||||
|
this.BackColor = Color.LightYellow;
|
||||||
var t = new Task(() =>
|
var t = new Task(() =>
|
||||||
{
|
{
|
||||||
var ctlCancellationToken = CancellationTokenSource.Token;
|
|
||||||
|
|
||||||
try
|
using (var overallMeterBatch = new MeterBatch("Start ctlRdy"))
|
||||||
{
|
{
|
||||||
|
using (var meter = new GenesisMeter())
|
||||||
var settingsToUse = new DefaultSettings();
|
|
||||||
|
|
||||||
meter = new GenesisMeter();
|
|
||||||
meter.SetupFromConfigFile(meterSlot, false, true, true);
|
|
||||||
|
|
||||||
overallMeterBatch.AddMeter(meter);
|
|
||||||
changeCurrentSlotState(TaskState.SetPcbId);
|
|
||||||
}
|
|
||||||
catch (Exception)
|
|
||||||
{
|
|
||||||
changeCurrentSlotState(TaskState.Fatal);
|
|
||||||
}
|
|
||||||
isBusy = true;
|
|
||||||
changeCurrentSlotState(TaskState.SetPcbId);
|
|
||||||
setMeterInfo("-", null, null);
|
|
||||||
if (ctlCancellationToken.IsCancellationRequested)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
try
|
|
||||||
{
|
|
||||||
|
|
||||||
if (currentState != TaskState.Fatal)
|
|
||||||
{
|
{
|
||||||
FlowState = MeterReadyResults.NotStarted;
|
var ctlCancellationToken = CancellationTokenSource.Token;
|
||||||
Path1State = MeterReadyResults.NotStarted;
|
LastLUT = "-";
|
||||||
Path2State = MeterReadyResults.NotStarted;
|
try
|
||||||
Path3State = MeterReadyResults.NotStarted;
|
{
|
||||||
|
|
||||||
if (string.IsNullOrEmpty(meter.PcbId))
|
var settingsToUse = new DefaultSettings();
|
||||||
{
|
|
||||||
PcbId = meter.GetPcbId();
|
|
||||||
|
meter.SetupFromConfigFile(meterSlot, false, true, true);
|
||||||
|
|
||||||
|
overallMeterBatch.AddMeter(meter);
|
||||||
|
changeCurrentSlotState(TaskState.SetPcbId);
|
||||||
}
|
}
|
||||||
else
|
catch (Exception)
|
||||||
{
|
{
|
||||||
PcbId = meter.PcbId;
|
changeCurrentSlotState(TaskState.Fatal);
|
||||||
}
|
}
|
||||||
|
isBusy = true;
|
||||||
|
changeCurrentSlotState(TaskState.SetPcbId);
|
||||||
|
setMeterInfo("-", null, null);
|
||||||
if (ctlCancellationToken.IsCancellationRequested)
|
if (ctlCancellationToken.IsCancellationRequested)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
StartGetMeterInfos(PcbId);
|
try
|
||||||
|
|
||||||
|
|
||||||
changeCurrentSlotState(TaskState.LoginInProgress);
|
|
||||||
if (ctlCancellationToken.IsCancellationRequested)
|
|
||||||
{
|
{
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (!string.IsNullOrEmpty(meter.PcbId) && meter.Login())
|
|
||||||
{
|
|
||||||
changeCurrentSlotState(TaskState.LoginDone);
|
|
||||||
if (ctlCancellationToken.IsCancellationRequested)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (forceDisplayClear)
|
|
||||||
{
|
|
||||||
meter.WriteRegister(Register.Genesisflow.TriggerIdle, 0, true, true);
|
|
||||||
}
|
|
||||||
meter.InitMeasurement();
|
|
||||||
|
|
||||||
|
if (currentState != TaskState.Fatal)
|
||||||
FlowRecords = new ConcurrentBag<FlowTestRecord>();
|
|
||||||
PathRecords = new ConcurrentBag<CalibrationRecord>();
|
|
||||||
meter.StreamingProtocol.OnRecordIsDecoded += StreamingProtocol_OnRecordIsDecoded;
|
|
||||||
meter.SyncStreamingBuffer(Xylem.Common.CommonCore.Consts.SyncMarkRecord.DecodeEveryPackage);
|
|
||||||
changeCurrentSlotState(TaskState.LedInProgress);
|
|
||||||
var nrOfChecksLeft = 50;//50 * 100ms = 5 Sekunden
|
|
||||||
var startChnl = 1;
|
|
||||||
while (nrOfChecksLeft > 0)
|
|
||||||
{
|
{
|
||||||
|
FlowState = MeterReadyResults.NotStarted;
|
||||||
|
Path1State = MeterReadyResults.NotStarted;
|
||||||
|
Path2State = MeterReadyResults.NotStarted;
|
||||||
|
Path3State = MeterReadyResults.NotStarted;
|
||||||
|
|
||||||
|
if (string.IsNullOrEmpty(meter.PcbId))
|
||||||
|
{
|
||||||
|
PcbId = meter.GetPcbId();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
PcbId = meter.PcbId;
|
||||||
|
}
|
||||||
if (ctlCancellationToken.IsCancellationRequested)
|
if (ctlCancellationToken.IsCancellationRequested)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (currentState == TaskState.LedInProgress)
|
StartGetMeterInfos(PcbId);
|
||||||
|
|
||||||
|
|
||||||
|
changeCurrentSlotState(TaskState.LoginInProgress);
|
||||||
|
if (ctlCancellationToken.IsCancellationRequested)
|
||||||
{
|
{
|
||||||
if (PathRecords.Any() || FlowRecords.Any())
|
return;
|
||||||
{
|
|
||||||
changeCurrentSlotState(TaskState.MessurementInProgress);
|
|
||||||
nrOfChecksLeft = 100;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else
|
if (!string.IsNullOrEmpty(meter.PcbId) && meter.Login())
|
||||||
{
|
{
|
||||||
//check every path
|
changeCurrentSlotState(TaskState.LoginDone);
|
||||||
if (FlowRecords.Any() && FlowState != MeterReadyResults.MixedInvalidRecords)
|
|
||||||
|
LastLUT = meter.LutCrc;
|
||||||
|
if (ctlCancellationToken.IsCancellationRequested)
|
||||||
{
|
{
|
||||||
if (FlowRecords.All(a => a.IsValid))
|
return;
|
||||||
|
}
|
||||||
|
if (forceDisplayClear)
|
||||||
|
{
|
||||||
|
meter.WriteRegister(Register.Genesisflow.TriggerIdle, 0, true, true);
|
||||||
|
}
|
||||||
|
meter.InitMeasurement();
|
||||||
|
|
||||||
|
|
||||||
|
FlowRecords = new ConcurrentBag<FlowTestRecord>();
|
||||||
|
PathRecords = new ConcurrentBag<CalibrationRecord>();
|
||||||
|
meter.StreamingProtocol.OnRecordIsDecoded += StreamingProtocol_OnRecordIsDecoded;
|
||||||
|
meter.SyncStreamingBuffer(Xylem.Common.CommonCore.Consts.SyncMarkRecord.DecodeEveryPackage);
|
||||||
|
changeCurrentSlotState(TaskState.LedInProgress);
|
||||||
|
var nrOfChecksLeft = 50;//50 * 100ms = 5 Sekunden
|
||||||
|
var startChnl = 1;
|
||||||
|
while (nrOfChecksLeft > 0)
|
||||||
|
{
|
||||||
|
if (ctlCancellationToken.IsCancellationRequested)
|
||||||
{
|
{
|
||||||
FlowState = MeterReadyResults.OnlyValidRecords;
|
return;
|
||||||
}
|
}
|
||||||
else if (FlowRecords.All(a => !a.IsValid))
|
if (currentState == TaskState.LedInProgress)
|
||||||
{
|
{
|
||||||
FlowState = MeterReadyResults.OnlyInvalidRecords;
|
if (PathRecords.Any() || FlowRecords.Any())
|
||||||
|
{
|
||||||
|
changeCurrentSlotState(TaskState.MessurementInProgress);
|
||||||
|
nrOfChecksLeft = 100;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
FlowState = MeterReadyResults.MixedInvalidRecords;
|
//check every path
|
||||||
|
if (FlowRecords.Any() && FlowState != MeterReadyResults.MixedInvalidRecords)
|
||||||
|
{
|
||||||
|
if (FlowRecords.All(a => a.IsValid))
|
||||||
|
{
|
||||||
|
FlowState = MeterReadyResults.OnlyValidRecords;
|
||||||
|
}
|
||||||
|
else if (FlowRecords.All(a => !a.IsValid))
|
||||||
|
{
|
||||||
|
FlowState = MeterReadyResults.OnlyInvalidRecords;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
FlowState = MeterReadyResults.MixedInvalidRecords;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
FlowState = MeterReadyResults.NoRecords;
|
||||||
|
}
|
||||||
|
if (PathRecords.Any())
|
||||||
|
{
|
||||||
|
Path1State = NewMethod(Path1State, PathRecords.Where(c => c.Channel == 1).ToList());
|
||||||
|
Path2State = NewMethod(Path2State, PathRecords.Where(c => c.Channel == 2).ToList());
|
||||||
|
Path3State = NewMethod(Path3State, PathRecords.Where(c => c.Channel == 3).ToList());
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
nrOfChecksLeft = nrOfChecksLeft - 1;
|
||||||
|
Thread.Sleep(100);
|
||||||
|
}
|
||||||
|
if (currentState == TaskState.LedInProgress)
|
||||||
|
{
|
||||||
|
changeCurrentSlotState(TaskState.LedFailed);
|
||||||
|
DetectIsDone = true;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
FlowState = MeterReadyResults.NoRecords;
|
var aggregate = new List<MeterReadyResults>();
|
||||||
}
|
aggregate.Add(FlowState);
|
||||||
if (PathRecords.Any())
|
aggregate.Add(Path1State);
|
||||||
{
|
aggregate.Add(Path2State);
|
||||||
Path1State = NewMethod(Path1State, PathRecords.Where(c => c.Channel == 1).ToList());
|
aggregate.Add(Path3State);
|
||||||
Path2State = NewMethod(Path2State, PathRecords.Where(c => c.Channel == 2).ToList());
|
|
||||||
Path3State = NewMethod(Path3State, PathRecords.Where(c => c.Channel == 3).ToList());
|
if (aggregate.All(a => a == MeterReadyResults.OnlyValidRecords))
|
||||||
|
{
|
||||||
|
changeCurrentSlotState(TaskState.MessurementDone);
|
||||||
|
}
|
||||||
|
else if (aggregate.Any(a => a == MeterReadyResults.OnlyInvalidRecords))
|
||||||
|
{
|
||||||
|
changeCurrentSlotState(TaskState.MessurementFailed);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
changeCurrentSlotState(TaskState.MessurementDoneWithHint);
|
||||||
|
}
|
||||||
|
DetectIsDone = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
|
||||||
nrOfChecksLeft = nrOfChecksLeft - 1;
|
|
||||||
Thread.Sleep(100);
|
|
||||||
}
|
|
||||||
if (currentState == TaskState.LedInProgress)
|
|
||||||
{
|
|
||||||
changeCurrentSlotState(TaskState.LedFailed);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
var aggregate = new List<MeterReadyResults>();
|
|
||||||
aggregate.Add(FlowState);
|
|
||||||
aggregate.Add(Path1State);
|
|
||||||
aggregate.Add(Path2State);
|
|
||||||
aggregate.Add(Path3State);
|
|
||||||
|
|
||||||
if (aggregate.All(a => a == MeterReadyResults.OnlyValidRecords))
|
|
||||||
{
|
|
||||||
changeCurrentSlotState(TaskState.MessurementDone);
|
|
||||||
}
|
|
||||||
else if (aggregate.Any(a => a == MeterReadyResults.OnlyInvalidRecords))
|
|
||||||
{
|
|
||||||
changeCurrentSlotState(TaskState.MessurementFailed);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
changeCurrentSlotState(TaskState.MessurementDoneWithHint);
|
changeCurrentSlotState(TaskState.LoginFailed);
|
||||||
|
DetectIsDone = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
PcbId = "";
|
||||||
|
DetectIsDone = true;
|
||||||
|
|
||||||
}
|
}
|
||||||
else
|
finally
|
||||||
{
|
{
|
||||||
changeCurrentSlotState(TaskState.LoginFailed);
|
isBusy = false;
|
||||||
|
|
||||||
|
meter?.Dispose();
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
|
|
||||||
MessageBox.Show(ex.Message + ex.StackTrace, "Error on check meter is ready");
|
|
||||||
}
|
|
||||||
finally
|
|
||||||
{
|
|
||||||
isBusy = false;
|
|
||||||
overallMeterBatch.RemoveMeter(meter);
|
|
||||||
meter?.Dispose();
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
});
|
});
|
||||||
t.Start();
|
t.Start();
|
||||||
}
|
}
|
||||||
@@ -583,7 +643,7 @@ namespace XylemCommonUiLegacyGenCtl
|
|||||||
|
|
||||||
|
|
||||||
private bool Light = false;
|
private bool Light = false;
|
||||||
private MeterBatch overallMeterBatch;
|
|
||||||
private int meterSlot;
|
private int meterSlot;
|
||||||
|
|
||||||
private void tmrBusy_Tick(object sender, EventArgs e)
|
private void tmrBusy_Tick(object sender, EventArgs e)
|
||||||
@@ -679,40 +739,8 @@ namespace XylemCommonUiLegacyGenCtl
|
|||||||
//
|
//
|
||||||
}
|
}
|
||||||
|
|
||||||
private void button1_Click(object sender, EventArgs e)
|
private void lblPcbId_Click_1(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
var vis = false;
|
|
||||||
//"◄►"
|
|
||||||
if (button1.Text == "►")
|
|
||||||
{
|
|
||||||
this.Width = 450;
|
|
||||||
Expand?.Invoke(sender, new PopEventArgs() { Show = true });
|
|
||||||
button1.Text = "◄";
|
|
||||||
vis = true;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
this.Width = 140;
|
|
||||||
Expand?.Invoke(sender, new PopEventArgs() { Show = false });
|
|
||||||
button1.Text = "►";
|
|
||||||
this.Width = 140;
|
|
||||||
vis = false;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
lblPreadjustment.Visible = vis;
|
|
||||||
lblFlowTest.Visible = vis;
|
|
||||||
lblLogin.Visible = vis;
|
|
||||||
lblLed.Visible = vis;
|
|
||||||
lblDataOverall.Visible = vis;
|
|
||||||
lblDataDisplay.Visible = vis;
|
|
||||||
lblDataP1.Visible = vis;
|
|
||||||
lblDataP2.Visible = vis;
|
|
||||||
lblDataP3.Visible = vis;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user