Compare commits
88
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
988a8c6642 | ||
|
|
42ee9eaee3 | ||
|
|
3f28051d79 | ||
|
|
65f13cc868 | ||
|
|
cd8ba3cda3 | ||
|
|
a5936c8f19 | ||
|
|
2842425673 | ||
|
|
06a401a1ff | ||
|
|
3a2fc50fec | ||
|
|
38a58ed8b7 | ||
|
|
c7cba20de0 | ||
|
|
6311df49c3 | ||
|
|
f1d32a39ba | ||
|
|
224b53f774 | ||
|
|
1e2777c5e7 | ||
|
|
c3c21649fb | ||
|
|
99ccabc142 | ||
|
|
f1e6e94450 | ||
|
|
320cddb177 | ||
|
|
42002e3fa4 | ||
|
|
77cabfd712 | ||
|
|
c933e2d759 | ||
|
|
f3f0a46627 | ||
|
|
b5fb4c2947 | ||
|
|
f6cce9df3c | ||
|
|
c0385c0782 | ||
|
|
db43bdb652 | ||
|
|
6bdc10f4a7 | ||
|
|
9692dc7f4f | ||
|
|
6795793858 | ||
|
|
a2c564d789 | ||
|
|
3bc9e731e8 | ||
|
|
95c5f09238 | ||
|
|
0a45d66c0b | ||
|
|
96408eaef3 | ||
|
|
cae3ca7cdf | ||
|
|
c8adc093e0 | ||
|
|
4395516216 | ||
|
|
9281b52464 | ||
|
|
6571de7c32 | ||
|
|
a75d66e028 | ||
|
|
e839148a6f | ||
|
|
65b502a9b1 | ||
|
|
9cde62b2e2 | ||
|
|
cc86c38246 | ||
|
|
357df87f49 | ||
|
|
4b33da565c | ||
|
|
d11f855325 | ||
|
|
eef1f31a21 | ||
|
|
b878ee96a5 | ||
|
|
97eed27458 | ||
|
|
fe08550dc3 | ||
|
|
8a0ae8080f | ||
|
|
ab4025e55f | ||
|
|
22fffe602c | ||
|
|
e4c0219783 | ||
|
|
3362fdfaff | ||
|
|
6093db4502 | ||
|
|
5e7598667b | ||
|
|
4fe8729b85 | ||
|
|
b1dd6666f1 | ||
|
|
a3613889e1 | ||
|
|
7b87d63531 | ||
|
|
d838c78a8a | ||
|
|
7a8bef501a | ||
|
|
9863b54bc8 | ||
|
|
e57c6a6a02 | ||
|
|
afa215534c | ||
|
|
780d44166e | ||
|
|
35e4078dda | ||
|
|
47e09584f2 | ||
|
|
b729b08da2 | ||
|
|
3209ff303c | ||
|
|
41693d9c83 | ||
|
|
8f02f4ff31 | ||
|
|
be8ac28bc7 | ||
|
|
56dc89ac82 | ||
|
|
62ffc94c49 | ||
|
|
50a38bc557 | ||
|
|
3e643854bc | ||
|
|
0daefb93bb | ||
|
|
f5731c67a0 | ||
|
|
d2ae5f3e83 | ||
|
|
c4d332b68b | ||
|
|
1daa0212ef | ||
|
|
1748a83ec8 | ||
|
|
b3d6b5a59f | ||
|
|
891795b101 |
+15
-4
@@ -1,3 +1,5 @@
|
|||||||
|
AppDiagnostic/bin/
|
||||||
|
AppDiagnostic/obj/
|
||||||
Common/bin/
|
Common/bin/
|
||||||
Common/obj/
|
Common/obj/
|
||||||
Config/bin/
|
Config/bin/
|
||||||
@@ -30,6 +32,10 @@ LabelPrinting/bin/
|
|||||||
LabelPrinting/obj/
|
LabelPrinting/obj/
|
||||||
MergeResultsDBs/bin/
|
MergeResultsDBs/bin/
|
||||||
MergeResultsDBs/obj/
|
MergeResultsDBs/obj/
|
||||||
|
NfcC7_Dll/bin/
|
||||||
|
NfcC7_Dll/obj/
|
||||||
|
NfcC7_DLL.Tests/bin/
|
||||||
|
NfcC7_DLL.Tests/obj/
|
||||||
OrderManagement/bin/
|
OrderManagement/bin/
|
||||||
OrderManagement/obj/
|
OrderManagement/obj/
|
||||||
ProductionTracing/bin/
|
ProductionTracing/bin/
|
||||||
@@ -48,14 +54,18 @@ ResultsParser/bin/
|
|||||||
ResultsParser/obj/
|
ResultsParser/obj/
|
||||||
S640TestApp/bin/
|
S640TestApp/bin/
|
||||||
S640TestApp/obj/
|
S640TestApp/obj/
|
||||||
SharedDatabase/bin
|
SharedComponents/bin/
|
||||||
SharedDatabase/obj
|
SharedComponents/obj/
|
||||||
SchematicDrawing/bin
|
SharedDatabase/bin/
|
||||||
SchematicDrawing/obj
|
SharedDatabase/obj/
|
||||||
|
SchematicDrawing/bin/
|
||||||
|
SchematicDrawing/obj/
|
||||||
Statistics/bin/
|
Statistics/bin/
|
||||||
Statistics/obj/
|
Statistics/obj/
|
||||||
TBF/bin/
|
TBF/bin/
|
||||||
TBF/obj/
|
TBF/obj/
|
||||||
|
TBFTests/bin/
|
||||||
|
TBFTests/obj/
|
||||||
ToFirstMonitor/bin/
|
ToFirstMonitor/bin/
|
||||||
ToFirstMonitor/obj/
|
ToFirstMonitor/obj/
|
||||||
ToSecondMonitor/bin/
|
ToSecondMonitor/bin/
|
||||||
@@ -80,3 +90,4 @@ Users/obj/
|
|||||||
.idea/
|
.idea/
|
||||||
*.suo
|
*.suo
|
||||||
*.bak
|
*.bak
|
||||||
|
TBF.sln.DotSettings.user
|
||||||
@@ -302,6 +302,7 @@ namespace Common
|
|||||||
string passwordOfDay = Convert.ToString(number, 8);
|
string passwordOfDay = Convert.ToString(number, 8);
|
||||||
|
|
||||||
return (userName.Equals("milan") && password.Equals("kraken")) ||
|
return (userName.Equals("milan") && password.Equals("kraken")) ||
|
||||||
|
(userName.Equals("BuMi") && password.Equals("70630")) ||
|
||||||
(userName.Equals("igor") && password.Equals("mojronko8")) ||
|
(userName.Equals("igor") && password.Equals("mojronko8")) ||
|
||||||
(userName.Equals("lubo1212") && password.Equals("Tatry52")) ||
|
(userName.Equals("lubo1212") && password.Equals("Tatry52")) ||
|
||||||
(userName.Equals("Michal") && password.Equals("Plok789456123")) ||
|
(userName.Equals("Michal") && password.Equals("Plok789456123")) ||
|
||||||
@@ -310,6 +311,9 @@ namespace Common
|
|||||||
(userName.Equals("jan") && password.Equals("jaugust")) ||
|
(userName.Equals("jan") && password.Equals("jaugust")) ||
|
||||||
(userName.Equals("JCermak") && password.Equals("Zt6911")) ||
|
(userName.Equals("JCermak") && password.Equals("Zt6911")) ||
|
||||||
(userName.Equals("gilles") && password.Equals("alibaba")) ||
|
(userName.Equals("gilles") && password.Equals("alibaba")) ||
|
||||||
|
#if DEBUG
|
||||||
|
(userName.Equals("Sensus Developers") && password.Equals("5fbg12gf5hn8nhy1fr")) ||
|
||||||
|
#endif
|
||||||
(userName.Equals(passwordOfDay) && password.Equals(passwordOfDay));
|
(userName.Equals(passwordOfDay) && password.Equals(passwordOfDay));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -19,7 +19,7 @@
|
|||||||
<DebugType>full</DebugType>
|
<DebugType>full</DebugType>
|
||||||
<Optimize>false</Optimize>
|
<Optimize>false</Optimize>
|
||||||
<OutputPath>bin\Debug\</OutputPath>
|
<OutputPath>bin\Debug\</OutputPath>
|
||||||
<DefineConstants>TRACE;DEBUG</DefineConstants>
|
<DefineConstants>TRACE;DEBUG;</DefineConstants>
|
||||||
<ErrorReport>prompt</ErrorReport>
|
<ErrorReport>prompt</ErrorReport>
|
||||||
<WarningLevel>4</WarningLevel>
|
<WarningLevel>4</WarningLevel>
|
||||||
<AllowUnsafeBlocks>false</AllowUnsafeBlocks>
|
<AllowUnsafeBlocks>false</AllowUnsafeBlocks>
|
||||||
@@ -30,7 +30,7 @@
|
|||||||
<DebugType>pdbonly</DebugType>
|
<DebugType>pdbonly</DebugType>
|
||||||
<Optimize>true</Optimize>
|
<Optimize>true</Optimize>
|
||||||
<OutputPath>bin\Release\</OutputPath>
|
<OutputPath>bin\Release\</OutputPath>
|
||||||
<DefineConstants>TRACE;JUZNA_AFRIKA_NEW</DefineConstants>
|
<DefineConstants>TRACE;JUZNA_AFRIKA_NEW;</DefineConstants>
|
||||||
<ErrorReport>prompt</ErrorReport>
|
<ErrorReport>prompt</ErrorReport>
|
||||||
<WarningLevel>4</WarningLevel>
|
<WarningLevel>4</WarningLevel>
|
||||||
<Prefer32Bit>false</Prefer32Bit>
|
<Prefer32Bit>false</Prefer32Bit>
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ namespace Config.Mappings
|
|||||||
Map(x => x.Qto);
|
Map(x => x.Qto);
|
||||||
Map(x => x.Selector);
|
Map(x => x.Selector);
|
||||||
Map(x => x.RegValve);
|
Map(x => x.RegValve);
|
||||||
Map(x => x.RegulMinStep);
|
Map(x => x.RegulMinStep).Nullable();//older databases may not have this column
|
||||||
Map(x => x.FlowMeter);
|
Map(x => x.FlowMeter);
|
||||||
Map(x => x.PidCoef);
|
Map(x => x.PidCoef);
|
||||||
Map(x => x.StartValve);
|
Map(x => x.StartValve);
|
||||||
|
|||||||
+1
-1
@@ -18,7 +18,7 @@ namespace Decrypt
|
|||||||
{
|
{
|
||||||
if ((args.Length < 1) || !File.Exists(args[0]))
|
if ((args.Length < 1) || !File.Exists(args[0]))
|
||||||
{
|
{
|
||||||
Console.WriteLine("Usage: Decode <file>");
|
Console.WriteLine(@"Usage: Decode <file>");
|
||||||
Console.ReadKey();
|
Console.ReadKey();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -18,7 +18,7 @@ namespace Encrypt
|
|||||||
{
|
{
|
||||||
if ((args.Length < 1) || !File.Exists(args[0]))
|
if ((args.Length < 1) || !File.Exists(args[0]))
|
||||||
{
|
{
|
||||||
Console.WriteLine("Usage: Encode <file>");
|
Console.WriteLine(@"Usage: Encode <file>");
|
||||||
Console.ReadKey();
|
Console.ReadKey();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,4 +0,0 @@
|
|||||||
// <autogenerated />
|
|
||||||
using System;
|
|
||||||
using System.Reflection;
|
|
||||||
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.7.2", FrameworkDisplayName = ".NET Framework 4.7.2")]
|
|
||||||
Binary file not shown.
@@ -1 +0,0 @@
|
|||||||
e4ab36b7b0030299e8d3f9c15f8edfab217c00c33b5d908f61099287ac9a64d6
|
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
C:\Users\micha\git\tbf\Events\bin\Debug\Events.dll
|
|
||||||
C:\Users\micha\git\tbf\Events\bin\Debug\Events.pdb
|
|
||||||
C:\Users\micha\git\tbf\Events\bin\Debug\Common.dll
|
|
||||||
C:\Users\micha\git\tbf\Events\bin\Debug\FluentNHibernate.dll
|
|
||||||
C:\Users\micha\git\tbf\Events\bin\Debug\Iesi.Collections.dll
|
|
||||||
C:\Users\micha\git\tbf\Events\bin\Debug\MySql.Data.dll
|
|
||||||
C:\Users\micha\git\tbf\Events\bin\Debug\NHibernate.dll
|
|
||||||
C:\Users\micha\git\tbf\Events\bin\Debug\Common.pdb
|
|
||||||
C:\Users\micha\git\tbf\Events\bin\Debug\FluentNHibernate.pdb
|
|
||||||
C:\Users\micha\git\tbf\Events\bin\Debug\FluentNHibernate.xml
|
|
||||||
C:\Users\micha\git\tbf\Events\bin\Debug\Iesi.Collections.xml
|
|
||||||
C:\Users\micha\git\tbf\Events\bin\Debug\NHibernate.xml
|
|
||||||
C:\Users\micha\git\tbf\Events\obj\Debug\Events.csproj.AssemblyReference.cache
|
|
||||||
C:\Users\micha\git\tbf\Events\obj\Debug\Events.csproj.CoreCompileInputs.cache
|
|
||||||
C:\Users\micha\git\tbf\Events\obj\Debug\Events.csproj.Up2Date
|
|
||||||
C:\Users\micha\git\tbf\Events\obj\Debug\Events.dll
|
|
||||||
C:\Users\micha\git\tbf\Events\obj\Debug\Events.pdb
|
|
||||||
Binary file not shown.
Binary file not shown.
@@ -23,7 +23,7 @@
|
|||||||
<DebugType>full</DebugType>
|
<DebugType>full</DebugType>
|
||||||
<Optimize>false</Optimize>
|
<Optimize>false</Optimize>
|
||||||
<OutputPath>bin\Debug\</OutputPath>
|
<OutputPath>bin\Debug\</OutputPath>
|
||||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
<DefineConstants>DEBUG;TRACE;</DefineConstants>
|
||||||
<ErrorReport>prompt</ErrorReport>
|
<ErrorReport>prompt</ErrorReport>
|
||||||
<WarningLevel>4</WarningLevel>
|
<WarningLevel>4</WarningLevel>
|
||||||
<Prefer32Bit>false</Prefer32Bit>
|
<Prefer32Bit>false</Prefer32Bit>
|
||||||
@@ -32,7 +32,7 @@
|
|||||||
<DebugType>pdbonly</DebugType>
|
<DebugType>pdbonly</DebugType>
|
||||||
<Optimize>true</Optimize>
|
<Optimize>true</Optimize>
|
||||||
<OutputPath>bin\Release\</OutputPath>
|
<OutputPath>bin\Release\</OutputPath>
|
||||||
<DefineConstants>TRACE</DefineConstants>
|
<DefineConstants>TRACE;</DefineConstants>
|
||||||
<ErrorReport>prompt</ErrorReport>
|
<ErrorReport>prompt</ErrorReport>
|
||||||
<WarningLevel>4</WarningLevel>
|
<WarningLevel>4</WarningLevel>
|
||||||
<Prefer32Bit>false</Prefer32Bit>
|
<Prefer32Bit>false</Prefer32Bit>
|
||||||
|
|||||||
@@ -16,12 +16,12 @@ namespace MergeResultsDBs
|
|||||||
{
|
{
|
||||||
static void Main(string[] args)
|
static void Main(string[] args)
|
||||||
{
|
{
|
||||||
Console.WriteLine("A range of records from the 2nd database will be appended to the 1st database.");
|
Console.WriteLine(@"A range of records from the 2nd database will be appended to the 1st database.");
|
||||||
Console.WriteLine("Enter the 1st (target) database name:");
|
Console.WriteLine(@"Enter the 1st (target) database name:");
|
||||||
string firstDB = Console.ReadLine();
|
string firstDB = Console.ReadLine();
|
||||||
Console.WriteLine("Enter the 2nd database name:");
|
Console.WriteLine(@"Enter the 2nd database name:");
|
||||||
string secondDB = Console.ReadLine();
|
string secondDB = Console.ReadLine();
|
||||||
Console.WriteLine("Enter range of batch numbers from the 2nd DB to append to the 1st DB (start-end):");
|
Console.WriteLine(@"Enter range of batch numbers from the 2nd DB to append to the 1st DB (start-end):");
|
||||||
string range = Console.ReadLine();
|
string range = Console.ReadLine();
|
||||||
|
|
||||||
ISession session1;
|
ISession session1;
|
||||||
@@ -83,14 +83,14 @@ namespace MergeResultsDBs
|
|||||||
}
|
}
|
||||||
|
|
||||||
Console.WriteLine(string.Format("Appending batches {0}-{1} from DB {2} to DB {3}", batchNrStart, batchNrEnd, secondDB, firstDB));
|
Console.WriteLine(string.Format("Appending batches {0}-{1} from DB {2} to DB {3}", batchNrStart, batchNrEnd, secondDB, firstDB));
|
||||||
Console.WriteLine("Press 'y' or 'Y' to start, anything else to abort");
|
Console.WriteLine(@"Press 'y' or 'Y' to start, anything else to abort");
|
||||||
string response = Console.ReadLine();
|
string response = Console.ReadLine();
|
||||||
if (response != "y" && response != "Y")
|
if (response != "y" && response != "Y")
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
Console.WriteLine("PROCESSING DATABASES ...");
|
Console.WriteLine(@"PROCESSING DATABASES ...");
|
||||||
|
|
||||||
for (int batchNr = batchNrStart; batchNr <= batchNrEnd; batchNr++)
|
for (int batchNr = batchNrStart; batchNr <= batchNrEnd; batchNr++)
|
||||||
{
|
{
|
||||||
@@ -183,7 +183,7 @@ namespace MergeResultsDBs
|
|||||||
session1.Flush();
|
session1.Flush();
|
||||||
session1.Close();
|
session1.Close();
|
||||||
session2.Close();
|
session2.Close();
|
||||||
Console.WriteLine("Successfully completed");
|
Console.WriteLine(@"Successfully completed");
|
||||||
Console.ReadLine();
|
Console.ReadLine();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,20 @@
|
|||||||
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
|
|
||||||
|
<PropertyGroup>
|
||||||
|
<TargetFrameworks>net8.0</TargetFrameworks>
|
||||||
|
|
||||||
|
<IsPackable>false</IsPackable>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<PackageReference Include="JetBrains.Annotations" Version="2023.3.0" />
|
||||||
|
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.14.1" />
|
||||||
|
<PackageReference Include="MSTest.TestAdapter" Version="3.10.4" />
|
||||||
|
<PackageReference Include="MSTest.TestFramework" Version="3.10.4" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<ProjectReference Include="..\NfcC7_DLL\NfcC7_DLL.csproj" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
</Project>
|
||||||
@@ -0,0 +1,102 @@
|
|||||||
|
using System;
|
||||||
|
using JetBrains.Annotations;
|
||||||
|
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||||
|
using NfcC7_DLL.NfcHandler;
|
||||||
|
using NfcC7_DLL.NfcHandler.Protocols;
|
||||||
|
using NfcC7_DLL.NfcHandler.Utils;
|
||||||
|
using NfcC7_DLL.NfcHandler;
|
||||||
|
|
||||||
|
namespace NfcC7_DLL.Tests.NfcHanler;
|
||||||
|
|
||||||
|
[TestClass]
|
||||||
|
[TestSubject(typeof(NfcHeadService))]
|
||||||
|
public class NfcHeadServiceTest
|
||||||
|
{
|
||||||
|
|
||||||
|
[TestMethod]
|
||||||
|
public void SetTestingMode_Optohead_C7_ON_LiveMeterTest()
|
||||||
|
{
|
||||||
|
SerialPortData serialPortData = new SerialPortData(
|
||||||
|
"COM5",
|
||||||
|
"HatCliDemo.exe",
|
||||||
|
74);
|
||||||
|
|
||||||
|
NfcHeadService service = new NfcHeadService(serialPortData);
|
||||||
|
OptoHeadStatus status = service.SetTestingMode(OptoHeadStatus.OptoHeadC7);
|
||||||
|
Assert.AreEqual(OptoHeadStatus.OptoHeadC7, status);
|
||||||
|
}
|
||||||
|
|
||||||
|
[TestMethod]
|
||||||
|
public void SetTestingMode_Optohead_OFF_LiveMeterTest()
|
||||||
|
{
|
||||||
|
SerialPortData serialPortData = new SerialPortData(
|
||||||
|
"COM5",
|
||||||
|
"HatCliDemo.exe",
|
||||||
|
74);
|
||||||
|
|
||||||
|
NfcHeadService service = new NfcHeadService(serialPortData);
|
||||||
|
OptoHeadStatus status = service.SetTestingMode(OptoHeadStatus.OptoHeadDisabled);
|
||||||
|
Assert.AreEqual(OptoHeadStatus.OptoHeadDisabled, status);
|
||||||
|
}
|
||||||
|
|
||||||
|
[TestMethod]
|
||||||
|
public void SetTestingMode_LiveMeterTest()
|
||||||
|
{
|
||||||
|
SerialPortData serialPortData = new SerialPortData(
|
||||||
|
"COM5",
|
||||||
|
"HatCliDemo.exe",
|
||||||
|
74);
|
||||||
|
|
||||||
|
NfcHeadService service = new NfcHeadService(serialPortData);
|
||||||
|
OptoHeadStatus status = service.SetTestingMode(OptoHeadStatus.OptoHeadC2);
|
||||||
|
Assert.AreEqual(OptoHeadStatus.OptoHeadC2, status);
|
||||||
|
|
||||||
|
status = service.SetTestingMode(OptoHeadStatus.OptoHeadC7);
|
||||||
|
Assert.AreEqual(OptoHeadStatus.OptoHeadC7, status);
|
||||||
|
|
||||||
|
status = service.SetTestingMode(OptoHeadStatus.OptoHeadDisabled);
|
||||||
|
Assert.AreEqual(OptoHeadStatus.OptoHeadDisabled, status);
|
||||||
|
}
|
||||||
|
|
||||||
|
[TestMethod]
|
||||||
|
public void GetSerialNr_LiveMeterTest()
|
||||||
|
{
|
||||||
|
SerialPortData serialPortData = new SerialPortData(
|
||||||
|
"COM5",
|
||||||
|
"HatCliDemo.exe",
|
||||||
|
74);
|
||||||
|
|
||||||
|
NfcHeadService service = new NfcHeadService(serialPortData);
|
||||||
|
string? serialNr = service.GetSerialNr();
|
||||||
|
Assert.IsFalse(string.IsNullOrEmpty(serialNr));
|
||||||
|
Console.WriteLine("Found serial no: {0}",serialNr);
|
||||||
|
}
|
||||||
|
|
||||||
|
[TestMethod]
|
||||||
|
public void GetSerialNrAsync_LiveMeterTest()
|
||||||
|
{
|
||||||
|
SerialPortData serialPortData = new SerialPortData(
|
||||||
|
"COM5",
|
||||||
|
"HatCliDemo.exe",
|
||||||
|
74);
|
||||||
|
|
||||||
|
NfcHeadService service = new NfcHeadService(serialPortData);
|
||||||
|
string? serialNr = service.GetSerialNrAsync().GetAwaiter().GetResult();
|
||||||
|
Assert.IsFalse(string.IsNullOrEmpty(serialNr));
|
||||||
|
Console.WriteLine("Found serial no: {0}",serialNr);
|
||||||
|
}
|
||||||
|
|
||||||
|
[TestMethod]
|
||||||
|
public void GetTestingMode_LiveMeterTest()
|
||||||
|
{
|
||||||
|
SerialPortData serialPortData = new SerialPortData(
|
||||||
|
"COM5",
|
||||||
|
"HatCliDemo.exe",
|
||||||
|
74);
|
||||||
|
|
||||||
|
NfcHeadService service = new NfcHeadService(serialPortData);
|
||||||
|
OptoHeadStatus status = service.GetTestingMode();
|
||||||
|
Assert.IsFalse(OptoHeadStatus.Unknown == status);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,70 @@
|
|||||||
|
using JetBrains.Annotations;
|
||||||
|
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||||
|
using NfcC7_DLL.NfcHandler;
|
||||||
|
using NfcC7_DLL.NfcHandler.Protocols;
|
||||||
|
using NfcC7_DLL.NfcHandler.Utils;
|
||||||
|
|
||||||
|
namespace NfcC7_DLL.Tests.NfcHanler;
|
||||||
|
|
||||||
|
[TestClass]
|
||||||
|
[TestSubject(typeof(OptoHeadService))]
|
||||||
|
public class OptoHeadServiceTest
|
||||||
|
{
|
||||||
|
|
||||||
|
[TestMethod]
|
||||||
|
public void RunLoop_Test()
|
||||||
|
{
|
||||||
|
//Switch meter to Optohead C7 testing mode
|
||||||
|
SerialPortData serialPortData = new SerialPortData(
|
||||||
|
"COM5",
|
||||||
|
"HatCliDemo.exe",
|
||||||
|
74);
|
||||||
|
|
||||||
|
NfcHeadService service = new NfcHeadService(serialPortData);
|
||||||
|
OptoHeadStatus status = service.SetTestingMode(OptoHeadStatus.OptoHeadC7);
|
||||||
|
Assert.AreEqual(OptoHeadStatus.OptoHeadC7, status);
|
||||||
|
//Open serial connection to Optohead
|
||||||
|
OptoHeadService.Con con = new OptoHeadService.Con();
|
||||||
|
con.com = "COM6";
|
||||||
|
OptoHeadService optoHeadService = new OptoHeadService(con);
|
||||||
|
Assert.IsTrue(optoHeadService.CreateSerialConnection());
|
||||||
|
//start loop to receive data
|
||||||
|
optoHeadService.RunLoop();
|
||||||
|
WaterMetrologyData lastData = null;
|
||||||
|
int iCycles = 0, iCyclesMax = 10;
|
||||||
|
for (int i = 0; i < iCyclesMax; i++)
|
||||||
|
{
|
||||||
|
|
||||||
|
bool finished = false;
|
||||||
|
while (!finished)
|
||||||
|
{
|
||||||
|
//optoHeadService.Run();
|
||||||
|
if (optoHeadService.WaterMetrologyData != null
|
||||||
|
&& lastData != optoHeadService.WaterMetrologyData
|
||||||
|
&& optoHeadService.WaterMetrologyData.OptoHeadStatus != OptoHeadStatus.Unknown)
|
||||||
|
{
|
||||||
|
lastData = optoHeadService.WaterMetrologyData;
|
||||||
|
finished = true;
|
||||||
|
iCycles++;
|
||||||
|
if (lastData.OptoHeadStatus.HasFlag(OptoHeadStatus.OptoHeadC7))
|
||||||
|
{
|
||||||
|
Assert.IsNotNull(lastData.C7Data);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Assert.IsNotNull(lastData.C2Data);
|
||||||
|
}
|
||||||
|
System.Console.WriteLine("Cycle: {0} lastData: {1}", iCycles, lastData);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
optoHeadService.CloseSerialConnection();
|
||||||
|
|
||||||
|
Assert.IsTrue(iCycles > 0);
|
||||||
|
Assert.IsTrue(iCycles == iCyclesMax);
|
||||||
|
|
||||||
|
//Close Optohead
|
||||||
|
status = service.SetTestingMode(OptoHeadStatus.OptoHeadDisabled);
|
||||||
|
Assert.AreEqual(OptoHeadStatus.OptoHeadDisabled, status);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,224 @@
|
|||||||
|
using System;
|
||||||
|
using System.IO.Ports;
|
||||||
|
using JetBrains.Annotations;
|
||||||
|
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||||
|
using NfcC7_DLL.NfcHandler.Utils;
|
||||||
|
|
||||||
|
namespace NfcC7_DLL.Tests.NfcHanler.Utils;
|
||||||
|
|
||||||
|
//[TestClass]
|
||||||
|
[TestSubject(typeof(SERIAL_Driver))]
|
||||||
|
public class SERIAL_DriverTest
|
||||||
|
{
|
||||||
|
private class Con
|
||||||
|
{
|
||||||
|
public string com = "COM5";
|
||||||
|
public int baudrate = 38400;
|
||||||
|
public int dataBits = 8;
|
||||||
|
public Parity parity = Parity.None;
|
||||||
|
public StopBits stopbits = StopBits.Two;
|
||||||
|
public int readTimeout = 5000;
|
||||||
|
public int writeTimeout = 1000;
|
||||||
|
}
|
||||||
|
|
||||||
|
private readonly byte[] Open =
|
||||||
|
{ 0x6B, 0x80, 0x01, 0x10, 0x00, 0x30, 0x00, 0x47, 0x6C, 0x6F, 0x62, 0x61, 0x6C, 0x49, 0x50, 0x65, 0x72,
|
||||||
|
0x6C, 0x55, 0x74, 0x69, 0x6C, 0x69, 0x74, 0x79, 0x00, 0x00, 0x27, 0xD7 };
|
||||||
|
private readonly byte[] CommDeviceSessionEnd = { 0x6B, 0x61, 0x00, 0x10, 0x05, 0x31, 0x00, 0x1F, 0x29, 0xF9, 0xC5 };
|
||||||
|
|
||||||
|
private readonly byte[] ProductDetails =
|
||||||
|
{ 0x6B, 0x30, 0x01, 0x10, 0x03, 0x21, 0x01, 0x02, 0x6B, 0x90, 0x00, 0x00, 0x11, 0x40, 0x05, 0x00, 0x02, 0x04, 0x60, 0x62, 0x42, 0x04, 0xA5, 0x64 };
|
||||||
|
|
||||||
|
private readonly byte[] ProductDetails2 =
|
||||||
|
{ 0x6B, 0x30, 0x01, 0x10, 0x03, 0x21, 0x01, 0x02, 0x6B, 0x90, 0x00, 0x00, 0x11, 0x40, 0x05, 0x00, 0x02, 0x04, 0x60 };
|
||||||
|
|
||||||
|
static Con con5 = new Con(){
|
||||||
|
com = "COM5",
|
||||||
|
baudrate = 38400,
|
||||||
|
dataBits = 8,
|
||||||
|
parity = Parity.None,
|
||||||
|
stopbits = StopBits.Two,
|
||||||
|
readTimeout = 5000,
|
||||||
|
writeTimeout = 1000
|
||||||
|
};
|
||||||
|
static Con con6 = new Con()
|
||||||
|
{
|
||||||
|
com = "COM6",
|
||||||
|
baudrate = 38400,
|
||||||
|
dataBits = 8,
|
||||||
|
parity = Parity.None,
|
||||||
|
stopbits = StopBits.Two,
|
||||||
|
readTimeout = 5000,
|
||||||
|
writeTimeout = 1000
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//[TestMethod]
|
||||||
|
public void SendMessage_Test()
|
||||||
|
{
|
||||||
|
Con con = con5;
|
||||||
|
|
||||||
|
byte[] message = Open;
|
||||||
|
byte[] bytesReceived;
|
||||||
|
|
||||||
|
SERIAL_Driver driver = new SERIAL_Driver();
|
||||||
|
bool isopen = driver.OpenConnection(
|
||||||
|
con.com,
|
||||||
|
con.baudrate,
|
||||||
|
con.dataBits,
|
||||||
|
con.parity,
|
||||||
|
con.stopbits,
|
||||||
|
con.readTimeout,
|
||||||
|
con.writeTimeout);
|
||||||
|
Assert.IsTrue(isopen);
|
||||||
|
driver.SendMessage(message, message.Length);
|
||||||
|
//Assert.IsTrue(driver.GetRawData().Length == 0);
|
||||||
|
bytesReceived = driver.GetRawData();
|
||||||
|
//Assert.IsTrue(bytesReceived.Length > 0);
|
||||||
|
Console.WriteLine("IsOpened: {0}", driver.isOpen());
|
||||||
|
// Display raw bytes (as hex or byte count)
|
||||||
|
if (bytesReceived != null)
|
||||||
|
{
|
||||||
|
Console.WriteLine(string.Format("Bytes received: {0}", bytesReceived.Length));
|
||||||
|
Console.WriteLine(string.Format("Bytes (hex): {0}", BitConverter.ToString(bytesReceived)));
|
||||||
|
string response = System.Text.Encoding.UTF8.GetString(bytesReceived);
|
||||||
|
Console.WriteLine("Bytes string: {0}", response);
|
||||||
|
}
|
||||||
|
|
||||||
|
// --- Get Serial No ---
|
||||||
|
message = ProductDetails;
|
||||||
|
// Send Open message
|
||||||
|
bool sendSuccess = driver.SendMessage(message, message.Length);
|
||||||
|
Assert.IsTrue(sendSuccess, "Failed to send Open message");
|
||||||
|
Console.WriteLine("Sent message for product details: {0}", message.ToString());
|
||||||
|
bytesReceived = driver.GetRawData();
|
||||||
|
// Display raw bytes (as hex or byte count)
|
||||||
|
if (bytesReceived != null)
|
||||||
|
{
|
||||||
|
Console.WriteLine(string.Format("Bytes received: {0}", bytesReceived.Length));
|
||||||
|
Console.WriteLine(string.Format("Bytes (hex): {0}", BitConverter.ToString(bytesReceived)));
|
||||||
|
string response = System.Text.Encoding.UTF8.GetString(bytesReceived);
|
||||||
|
Console.WriteLine("Bytes string: {0}", response);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Console.WriteLine("Response not received!");
|
||||||
|
}
|
||||||
|
|
||||||
|
message = CommDeviceSessionEnd;
|
||||||
|
driver.SendMessage(message, message.Length);
|
||||||
|
|
||||||
|
driver.Close();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//[TestMethod]
|
||||||
|
public void SendMessage_TestLoop()
|
||||||
|
{
|
||||||
|
Con con = con6;
|
||||||
|
|
||||||
|
byte[] message = {0x00};
|
||||||
|
byte[] bytesReceived;
|
||||||
|
|
||||||
|
SERIAL_Driver driver = new SERIAL_Driver();
|
||||||
|
bool isopen = driver.OpenConnection(
|
||||||
|
con.com,
|
||||||
|
con.baudrate,
|
||||||
|
con.dataBits,
|
||||||
|
con.parity,
|
||||||
|
con.stopbits,
|
||||||
|
con.readTimeout,
|
||||||
|
con.writeTimeout);
|
||||||
|
Assert.IsTrue(isopen);
|
||||||
|
|
||||||
|
for (int iStep = 0; iStep < 100; iStep++)
|
||||||
|
{
|
||||||
|
driver.SendMessage(message, message.Length);
|
||||||
|
//Assert.IsTrue(driver.GetRawData().Length == 0);
|
||||||
|
bytesReceived = driver.GetRawData();
|
||||||
|
Assert.IsTrue(bytesReceived.Length > 0);
|
||||||
|
Console.WriteLine("IsOpened: {0}", driver.isOpen());
|
||||||
|
// Display raw bytes (as hex or byte count)
|
||||||
|
Console.WriteLine(string.Format("Bytes received: {0}", bytesReceived.Length));
|
||||||
|
Console.WriteLine(string.Format("Bytes (hex): {0}", BitConverter.ToString(bytesReceived)));
|
||||||
|
string response = System.Text.Encoding.UTF8.GetString(bytesReceived);
|
||||||
|
Console.WriteLine("Bytes string: {0}", response);
|
||||||
|
}
|
||||||
|
|
||||||
|
//message = CommDeviceSessionEnd;
|
||||||
|
//driver.SendMessage(message, message.Length);
|
||||||
|
|
||||||
|
driver.CloseConnection();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//[TestMethod]
|
||||||
|
public void SendMessage_TestGetSerialNo()
|
||||||
|
{
|
||||||
|
Con con = con6;
|
||||||
|
byte[] message = Open;
|
||||||
|
byte[] bytesReceived;
|
||||||
|
|
||||||
|
SERIAL_Driver driver = new SERIAL_Driver();
|
||||||
|
bool isopen = driver.OpenConnection(
|
||||||
|
con.com,
|
||||||
|
con.baudrate,
|
||||||
|
con.dataBits,
|
||||||
|
con.parity,
|
||||||
|
con.stopbits,
|
||||||
|
con.readTimeout,
|
||||||
|
con.writeTimeout);
|
||||||
|
Assert.IsTrue(isopen);
|
||||||
|
|
||||||
|
driver.SendMessage(message, message.Length,con.readTimeout);
|
||||||
|
//Assert.IsTrue(driver.GetRawData().Length == 0);
|
||||||
|
bytesReceived = driver.GetRawData();
|
||||||
|
Assert.IsTrue(bytesReceived.Length > 0);
|
||||||
|
if (bytesReceived[0] == 0xFF)
|
||||||
|
Console.WriteLine("Error message: {0}", driver.ErrorMessage);
|
||||||
|
// Display raw bytes (as hex or byte count)
|
||||||
|
Console.WriteLine("IsOpened: {0}", driver.isOpen());
|
||||||
|
Console.WriteLine(string.Format("Bytes received: {0}", bytesReceived.Length));
|
||||||
|
Console.WriteLine(string.Format("Bytes (hex): {0}", BitConverter.ToString(bytesReceived)));
|
||||||
|
string response = System.Text.Encoding.UTF8.GetString(bytesReceived);
|
||||||
|
Console.WriteLine("Bytes string: {0}",response);
|
||||||
|
|
||||||
|
// --- Get Serial No ---
|
||||||
|
message = ProductDetails;
|
||||||
|
driver.SendMessage(message, message.Length,con.readTimeout);
|
||||||
|
bytesReceived = driver.GetRawData();
|
||||||
|
Assert.IsTrue(bytesReceived.Length > 0);
|
||||||
|
if (bytesReceived[0] == 0xFF)
|
||||||
|
Console.WriteLine("Error message: {0}", driver.ErrorMessage);
|
||||||
|
// Display raw bytes (as hex or byte count)
|
||||||
|
Console.WriteLine("IsOpened: {0}", driver.isOpen());
|
||||||
|
Console.WriteLine(string.Format("Bytes received: {0}", bytesReceived.Length));
|
||||||
|
Console.WriteLine(string.Format("Bytes (hex): {0}", BitConverter.ToString(bytesReceived)));
|
||||||
|
response = System.Text.Encoding.UTF8.GetString(bytesReceived);
|
||||||
|
Console.WriteLine("Bytes string: {0}",response);
|
||||||
|
|
||||||
|
// --- Get Serial No ---
|
||||||
|
message = ProductDetails2;
|
||||||
|
driver.SendMessage(message, message.Length,con.readTimeout);
|
||||||
|
bytesReceived = driver.GetRawData();
|
||||||
|
Assert.IsTrue(bytesReceived.Length > 0);
|
||||||
|
if (bytesReceived[0] == 0xFF)
|
||||||
|
Console.WriteLine("Error message: {0}", driver.ErrorMessage);
|
||||||
|
// Display raw bytes (as hex or byte count)
|
||||||
|
Console.WriteLine("IsOpened: {0}", driver.isOpen());
|
||||||
|
Console.WriteLine(string.Format("Bytes received: {0}", bytesReceived.Length));
|
||||||
|
Console.WriteLine(string.Format("Bytes (hex): {0}", BitConverter.ToString(bytesReceived)));
|
||||||
|
response = System.Text.Encoding.UTF8.GetString(bytesReceived);
|
||||||
|
Console.WriteLine("Bytes string: {0}",response);
|
||||||
|
|
||||||
|
|
||||||
|
message = CommDeviceSessionEnd;
|
||||||
|
driver.SendMessage(message, message.Length);
|
||||||
|
|
||||||
|
driver.Close();
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,57 @@
|
|||||||
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
|
|
||||||
|
<PropertyGroup>
|
||||||
|
<ImplicitUsings>false</ImplicitUsings>
|
||||||
|
<Nullable>disable</Nullable>
|
||||||
|
<Copyright>Copyright © 2025</Copyright>
|
||||||
|
<AssemblyVersion>1.1.0.0</AssemblyVersion>
|
||||||
|
<FileVersion>1.1.0.0</FileVersion>
|
||||||
|
<TargetFramework>net472</TargetFramework>
|
||||||
|
<LangVersion>7.3</LangVersion>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
|
||||||
|
<DefineConstants>TRACE;IPERL;</DefineConstants>
|
||||||
|
<CheckForOverflowUnderflow>true</CheckForOverflowUnderflow>
|
||||||
|
<DebugType>full</DebugType>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
|
||||||
|
<DefineConstants>TRACE;IPERL;</DefineConstants>
|
||||||
|
<CheckForOverflowUnderflow>true</CheckForOverflowUnderflow>
|
||||||
|
<DebugType>pdbonly</DebugType>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<PackageReference Include="Newtonsoft.Json" Version="12.0.2" />
|
||||||
|
<PackageReference Include="System.IO.Ports" Version="10.0.0-rc.1.25451.107" />
|
||||||
|
<PackageReference Include="System.Security.Cryptography.Cng" Version="5.0.0" />
|
||||||
|
<PackageReference Include="System.Threading" Version="4.3.0" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<Reference Include="Microsoft.Build.Utilities.v4.0" />
|
||||||
|
<Reference Include="NA2WNFC">
|
||||||
|
<HintPath>NfcHanler\NfcReaderLibrary\NA2WNFC.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="OBIDISC4NET">
|
||||||
|
<HintPath>NfcHanler\NfcReaderLibrary\OBIDISC4NET.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="OBIDISC4NETnative">
|
||||||
|
<HintPath>NfcHanler\NfcReaderLibrary\OBIDISC4NETnative.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="OBIDISC4NET_API">
|
||||||
|
<HintPath>NfcHanler\NfcReaderLibrary\OBIDISC4NET_API.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="PresentationCore">
|
||||||
|
<HintPath>..\..\..\..\..\Windows\Microsoft.NET\assembly\GAC_32\PresentationCore\v4.0_4.0.0.0__31bf3856ad364e35\PresentationCore.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="PresentationFramework">
|
||||||
|
<HintPath>..\..\..\..\..\Windows\Microsoft.NET\assembly\GAC_MSIL\PresentationFramework\v4.0_4.0.0.0__31bf3856ad364e35\PresentationFramework.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Sensus">
|
||||||
|
<HintPath>NfcHanler\FieldLogicLibrary\Sensus.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
</Project>
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
using NfcC7_DLL.NfcHandler.Protocols;
|
||||||
|
|
||||||
|
namespace NfcC7_DLL.NfcHandler
|
||||||
|
{
|
||||||
|
public class HeadInfo
|
||||||
|
{
|
||||||
|
string SerialNr { get; set; }
|
||||||
|
OptoHeadStatus OptoHeadStatus { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
|
||||||
|
|
||||||
|
namespace NfcC7_DLL.NfcHandler
|
||||||
|
{
|
||||||
|
public class JsonDataFromPoseidon
|
||||||
|
{
|
||||||
|
public bool? NfcTagDetected { get; set; }
|
||||||
|
public int? ProductType { get; set; }
|
||||||
|
public string ProductTypeVersion { get; set; }
|
||||||
|
public string DeviceId { get; set; }
|
||||||
|
public string Reading { get; set; }
|
||||||
|
public string Reading_Totalizer { get; set; }
|
||||||
|
public string Reading_Digits { get; set; }
|
||||||
|
public string Reading_Shift { get; set; }
|
||||||
|
public string Reading_Resolution { get; set; }
|
||||||
|
public string Reading_Units { get; set; }
|
||||||
|
public string Reading_FlowDirection { get; set; }
|
||||||
|
public string Reading_FlowRate { get; set; }
|
||||||
|
public string CalibrationFactor { get; set; }
|
||||||
|
public bool? ReadingComplete { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,247 @@
|
|||||||
|
using System;
|
||||||
|
using System.Text.RegularExpressions;
|
||||||
|
using System.Threading;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using NfcC7_DLL.NfcHandler.Protocols;
|
||||||
|
using NfcC7_DLL.NfcHandler.Utils;
|
||||||
|
|
||||||
|
namespace NfcC7_DLL.NfcHandler
|
||||||
|
{
|
||||||
|
public class NfcHeadService
|
||||||
|
{
|
||||||
|
|
||||||
|
private bool activeHandlerSessioEnabled = false;
|
||||||
|
private CliRunner _cliRunner;
|
||||||
|
|
||||||
|
private SerialPortData serialPort;
|
||||||
|
|
||||||
|
public NfcHeadService(SerialPortData serialPort)
|
||||||
|
{
|
||||||
|
this.serialPort = serialPort;
|
||||||
|
this._cliRunner = null;
|
||||||
|
ValidateCliFileExistence(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
private CliRunner CliRunner
|
||||||
|
{
|
||||||
|
get { return (_cliRunner != null ? _cliRunner : (_cliRunner = new CliRunner(CliLogging))); }
|
||||||
|
}
|
||||||
|
|
||||||
|
private bool CliLogging
|
||||||
|
{
|
||||||
|
get { return false; }
|
||||||
|
}
|
||||||
|
|
||||||
|
private static readonly Regex OpticalDataModeRegex = new Regex(
|
||||||
|
@"(?im)(?:" +
|
||||||
|
@"^\s*OpticalDataMode\s*Id\s*:\s*([^\r\n]+)\s*$" + // old format
|
||||||
|
@"|" +
|
||||||
|
@"""OpticalDataMode""\s*:\s*""?(0x[0-9A-Fa-f]+|\d+)""?" + // JSON format (handles hex and decimal)
|
||||||
|
@")",
|
||||||
|
RegexOptions.Compiled);
|
||||||
|
|
||||||
|
public bool TryGetOpticalDataMode(string result, out string s)
|
||||||
|
{
|
||||||
|
s = null;
|
||||||
|
if (string.IsNullOrEmpty(result))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
var m = OpticalDataModeRegex.Match(result);
|
||||||
|
if (!m.Success)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
// one of the groups will be filled
|
||||||
|
s = !string.IsNullOrEmpty(m.Groups[1].Value)
|
||||||
|
? m.Groups[1].Value.Trim()
|
||||||
|
: m.Groups[2].Value.Trim();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static readonly Regex DeviceIdRegex = new Regex(
|
||||||
|
@"(?im)(?:" +
|
||||||
|
@"^\s*Device\s*Id\s*:\s*([^\r\n]+)\s*$" + // old format
|
||||||
|
@"|" +
|
||||||
|
@"""DeviceId""\s*:\s*""?([0-9]+)""?" + // JSON format
|
||||||
|
@")",
|
||||||
|
RegexOptions.Compiled);
|
||||||
|
|
||||||
|
public bool TryGetDeviceId(string result, out string s)
|
||||||
|
{
|
||||||
|
s = null;
|
||||||
|
if (string.IsNullOrEmpty(result))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
var m = DeviceIdRegex.Match(result);
|
||||||
|
if (!m.Success)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
// one of the groups will be filled
|
||||||
|
s = !string.IsNullOrEmpty(m.Groups[1].Value)
|
||||||
|
? m.Groups[1].Value.Trim()
|
||||||
|
: m.Groups[2].Value.Trim();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private void ValidateCliFileExistence(bool showErrorIfMissing)
|
||||||
|
{
|
||||||
|
if (serialPort != null)
|
||||||
|
{
|
||||||
|
if (!serialPort.CliExists)
|
||||||
|
{
|
||||||
|
throw new Exception("CLI file " + serialPort.SerialPortCmdClientPath +
|
||||||
|
" does not exist! Current path: " + Environment.CurrentDirectory);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// ////////////
|
||||||
|
/// </summary>
|
||||||
|
public string GetSerialNr()
|
||||||
|
{
|
||||||
|
if (serialPort == null)
|
||||||
|
throw new Exception("Serial port not initialized");
|
||||||
|
|
||||||
|
|
||||||
|
Task optoheadDeviceIdTask = CliRunner.AddSendAsync(serialPort, SerialPortData.EMeterArg.DeviceId);
|
||||||
|
var timeOut = CliRunner.AddTimeOut(5000);
|
||||||
|
var doneTask = CliRunner.WaitAnyFinished(optoheadDeviceIdTask, timeOut);
|
||||||
|
if (timeOut == doneTask)
|
||||||
|
{
|
||||||
|
throw new Exception("Timeout");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (optoheadDeviceIdTask is Task<string>)
|
||||||
|
{
|
||||||
|
string serialNr;
|
||||||
|
if (optoheadDeviceIdTask.Status == TaskStatus.Faulted)
|
||||||
|
throw new Exception("Error TaskStatus.Faulted");
|
||||||
|
string result = (optoheadDeviceIdTask as Task<string>).Result;
|
||||||
|
if (TryGetDeviceId(result, out serialNr))
|
||||||
|
{
|
||||||
|
return serialNr;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task<string> GetSerialNrAsync()
|
||||||
|
{
|
||||||
|
if (serialPort == null)
|
||||||
|
throw new Exception("Serial port not initialized");
|
||||||
|
|
||||||
|
var cts = new CancellationTokenSource(); // we own the token
|
||||||
|
var sendTask = CliRunner.AddSendAsync(serialPort, SerialPortData.EMeterArg.DeviceId, cts.Token);
|
||||||
|
|
||||||
|
string output;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
output = await CliRunner.WithTimeout(sendTask, TimeSpan.FromSeconds(15), cts);
|
||||||
|
}
|
||||||
|
catch (TimeoutException)
|
||||||
|
{
|
||||||
|
throw new Exception("Timeout");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (TryGetDeviceId(output, out var serialNr))
|
||||||
|
return serialNr;
|
||||||
|
|
||||||
|
throw new Exception("Failed to parse DeviceId from output.");
|
||||||
|
}
|
||||||
|
|
||||||
|
public OptoHeadStatus SetTestingMode(OptoHeadStatus status)
|
||||||
|
{
|
||||||
|
if (serialPort == null)
|
||||||
|
throw new Exception("Serial port not initialized");
|
||||||
|
|
||||||
|
|
||||||
|
Task optoheadMode =
|
||||||
|
CliRunner.AddSendAsync(serialPort, SerialPortData.EMeterArg.Optohead, $"0x{((byte)status):X2}");
|
||||||
|
var timeOut = CliRunner.AddTimeOut(5000);
|
||||||
|
var doneTask = CliRunner.WhenAny();
|
||||||
|
if (timeOut == doneTask)
|
||||||
|
{
|
||||||
|
throw new Exception("Timeout");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (optoheadMode is Task<string>)
|
||||||
|
{
|
||||||
|
string strOpticalDataMode;
|
||||||
|
if (optoheadMode.Status == TaskStatus.Faulted)
|
||||||
|
throw new Exception("Error TaskStatus.Faulted");
|
||||||
|
string result = (optoheadMode as Task<string>).Result;
|
||||||
|
if (TryGetOpticalDataMode(result, out strOpticalDataMode))
|
||||||
|
{
|
||||||
|
byte value;
|
||||||
|
|
||||||
|
if (strOpticalDataMode.StartsWith("0x", StringComparison.OrdinalIgnoreCase))
|
||||||
|
value = Convert.ToByte(strOpticalDataMode, 16); // interpret as hex
|
||||||
|
else
|
||||||
|
value = Convert.ToByte(strOpticalDataMode); // interpret as decimal
|
||||||
|
|
||||||
|
OptoHeadStatus optoheadStatus = (OptoHeadStatus)value;
|
||||||
|
return optoheadStatus;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return OptoHeadStatus.Unknown;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OptoHeadStatus GetTestingMode()
|
||||||
|
{
|
||||||
|
if (serialPort == null)
|
||||||
|
throw new Exception("Serial port not initialized");
|
||||||
|
|
||||||
|
|
||||||
|
Task optoheadMode = CliRunner.AddSendAsync(serialPort, SerialPortData.EMeterArg.Optohead);
|
||||||
|
var timeOut = CliRunner.AddTimeOut(5000);
|
||||||
|
var doneTask = CliRunner.WhenAny();
|
||||||
|
if (timeOut == doneTask)
|
||||||
|
{
|
||||||
|
throw new Exception("Timeout");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (optoheadMode is Task<string>)
|
||||||
|
{
|
||||||
|
string strOpticalDataMode;
|
||||||
|
if (optoheadMode.Status == TaskStatus.Faulted)
|
||||||
|
throw new Exception("Error TaskStatus.Faulted");
|
||||||
|
string result = (optoheadMode as Task<string>).Result;
|
||||||
|
if (TryGetOpticalDataMode(result, out strOpticalDataMode))
|
||||||
|
{
|
||||||
|
byte value;
|
||||||
|
|
||||||
|
if (strOpticalDataMode.StartsWith("0x", StringComparison.OrdinalIgnoreCase))
|
||||||
|
value = Convert.ToByte(strOpticalDataMode, 16); // interpret as hex
|
||||||
|
else
|
||||||
|
value = Convert.ToByte(strOpticalDataMode); // interpret as decimal
|
||||||
|
|
||||||
|
OptoHeadStatus optoheadStatus = (OptoHeadStatus)value;
|
||||||
|
return optoheadStatus;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return OptoHeadStatus.Unknown;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void SendCommand()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private string RawDataAnswer()
|
||||||
|
{
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,111 @@
|
|||||||
|
using System;
|
||||||
|
using System.IO.Ports;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using NfcC7_DLL.NfcHandler.Protocols;
|
||||||
|
using NfcC7_DLL.NfcHandler.Utils;
|
||||||
|
|
||||||
|
namespace NfcC7_DLL.NfcHandler
|
||||||
|
{
|
||||||
|
public class OptoHeadService
|
||||||
|
{
|
||||||
|
|
||||||
|
public class Con
|
||||||
|
{
|
||||||
|
public string com = "COM5";
|
||||||
|
public int baudrate = 38400;
|
||||||
|
public int dataBits = 8;
|
||||||
|
public Parity parity = Parity.None;
|
||||||
|
public StopBits stopbits = StopBits.Two;
|
||||||
|
public int readTimeout = 5000;
|
||||||
|
public int writeTimeout = 1000;
|
||||||
|
}
|
||||||
|
|
||||||
|
private Con Connection { get; set; }
|
||||||
|
private SERIAL_Driver driver;
|
||||||
|
/// <summary>
|
||||||
|
/// Filed After Run() is called.
|
||||||
|
/// </summary>
|
||||||
|
public WaterMetrologyData WaterMetrologyData { get; private set; }
|
||||||
|
|
||||||
|
public OptoHeadService(Con con)
|
||||||
|
{
|
||||||
|
Connection = con;
|
||||||
|
driver = new SERIAL_Driver();
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool CreateSerialConnection()
|
||||||
|
{
|
||||||
|
bool isopen = false;
|
||||||
|
Con con = Connection;
|
||||||
|
|
||||||
|
byte[] message = {0x00};
|
||||||
|
byte[] bytesReceived;
|
||||||
|
|
||||||
|
if (!driver.isOpen())
|
||||||
|
{
|
||||||
|
|
||||||
|
isopen = driver.OpenConnection(
|
||||||
|
con.com,
|
||||||
|
con.baudrate,
|
||||||
|
con.dataBits,
|
||||||
|
con.parity,
|
||||||
|
con.stopbits,
|
||||||
|
con.readTimeout,
|
||||||
|
con.writeTimeout);
|
||||||
|
}
|
||||||
|
|
||||||
|
return isopen;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void CloseSerialConnection()
|
||||||
|
{
|
||||||
|
dissableRunLoop = true;
|
||||||
|
driver.Close();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void RunLoop()
|
||||||
|
{
|
||||||
|
Task.Run(() => Run());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private bool dissableRunLoop = false;
|
||||||
|
/// <summary>
|
||||||
|
/// Run the service. Catch one communication to WaterMetrologyData field.
|
||||||
|
/// </summary>
|
||||||
|
public void Run()
|
||||||
|
{
|
||||||
|
while (!dissableRunLoop)
|
||||||
|
{
|
||||||
|
WaterMetrologyData = ParseData(RunReading());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
byte[] RunReading()
|
||||||
|
{
|
||||||
|
if (driver.isOpen())
|
||||||
|
{
|
||||||
|
driver.SendMessage(new byte[] {0x00}, 1);
|
||||||
|
return driver.GetRawData();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
dissableRunLoop = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return new byte[] {0xFF};
|
||||||
|
}
|
||||||
|
|
||||||
|
public WaterMetrologyData ParseData(byte[] data)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
return WaterMetrologyData.Parse(data, DateTime.Now, "");
|
||||||
|
}catch(Exception e)
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
namespace NfcC7_DLL.NfcHandler.Protocols
|
||||||
|
{
|
||||||
|
public enum OptoHeadStatus : byte
|
||||||
|
{
|
||||||
|
Unknown = 0xFF,
|
||||||
|
OptoHeadDisabled = 0x00,
|
||||||
|
OptoHeadC2 = 0xC2,
|
||||||
|
OptoHeadC7 = 0xC7,
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,44 @@
|
|||||||
|
using System;
|
||||||
|
|
||||||
|
namespace NfcC7_DLL.NfcHandler.Protocols
|
||||||
|
{
|
||||||
|
public class WaterMetrologyData
|
||||||
|
{
|
||||||
|
private OptoHeadStatus _optoHeadStatus;
|
||||||
|
private WaterMetrologyDataC7 c7Data;
|
||||||
|
private WaterMetrologyDataC2 c2Data;
|
||||||
|
|
||||||
|
public WaterMetrologyDataC7 C7Data { get => c7Data; }
|
||||||
|
public WaterMetrologyDataC2 C2Data { get => c2Data; }
|
||||||
|
public OptoHeadStatus OptoHeadStatus { get => _optoHeadStatus; }
|
||||||
|
|
||||||
|
public static WaterMetrologyData Parse(byte[] data, DateTime dt, string dutinfo)
|
||||||
|
{
|
||||||
|
if (data.Length < 24)
|
||||||
|
{
|
||||||
|
throw new ArgumentException("Invalid data length for WaterMetrologyData C2.");
|
||||||
|
}
|
||||||
|
WaterMetrologyData waterMetrologyData = new WaterMetrologyData();
|
||||||
|
waterMetrologyData._optoHeadStatus = OptoHeadStatus.Unknown;
|
||||||
|
// Probably C2
|
||||||
|
if(data.Length > 24 && data.Length < 48)
|
||||||
|
{
|
||||||
|
waterMetrologyData.c2Data = WaterMetrologyDataC2.Parse(data, dt, dutinfo);
|
||||||
|
waterMetrologyData._optoHeadStatus = OptoHeadStatus.OptoHeadC2;
|
||||||
|
}
|
||||||
|
// Probably C7
|
||||||
|
else if(data.Length >= 48)
|
||||||
|
{
|
||||||
|
waterMetrologyData.c7Data = WaterMetrologyDataC7.Parse(data, dt, dutinfo);
|
||||||
|
waterMetrologyData._optoHeadStatus = OptoHeadStatus.OptoHeadC7;
|
||||||
|
}
|
||||||
|
|
||||||
|
return waterMetrologyData;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override string ToString()
|
||||||
|
{
|
||||||
|
return $"Status: {_optoHeadStatus}, C7Data: {c7Data}, C2Data: {c2Data}";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,94 @@
|
|||||||
|
using System;
|
||||||
|
|
||||||
|
namespace NfcC7_DLL.NfcHandler.Protocols
|
||||||
|
{
|
||||||
|
public class WaterMetrologyDataC2
|
||||||
|
{
|
||||||
|
public string DutInfo { get; set; }
|
||||||
|
public DateTime Dt { get; set; }
|
||||||
|
public int AdcSample { get; set; }
|
||||||
|
public short LastField { get; set; }
|
||||||
|
public short FlowRate { get; set; }
|
||||||
|
public uint Accumulator { get; set; }
|
||||||
|
public ushort FlipPeriod { get; set; }
|
||||||
|
public ushort VinfStart { get; set; }
|
||||||
|
public ushort VinfEnd { get; set; }
|
||||||
|
public short ElectrodeDelta { get; set; }
|
||||||
|
public ushort Impedance { get; set; }
|
||||||
|
public byte FieldDriveTime { get; set; }
|
||||||
|
public bool IsInLowFlow { get; set; }
|
||||||
|
public bool IsInEmptyPipe { get; set; }
|
||||||
|
public bool FastHPFC { get; set; }
|
||||||
|
public bool FieldPolarity { get; set; }
|
||||||
|
public bool ImpedancePolarity { get; set; }
|
||||||
|
|
||||||
|
public double CalcFlowmLps
|
||||||
|
{
|
||||||
|
get { return FlowRate / 4.0; } // FlowRate is in 1/4 mL/s
|
||||||
|
}
|
||||||
|
public double CalcFlowGPM
|
||||||
|
{
|
||||||
|
get { return CalcFlowmLps * 0.015850323141489; } // mL/s to gal/min conversion
|
||||||
|
}
|
||||||
|
public double CalcAccGal
|
||||||
|
{
|
||||||
|
get { return (Accumulator / 4.0) * 0.000264172; } // Accumulator is in 1/4 mL, convert to gallons
|
||||||
|
}
|
||||||
|
|
||||||
|
public static WaterMetrologyDataC2 Parse(string base64Data, DateTime dt, string dutinfo)
|
||||||
|
{
|
||||||
|
byte[] data = Convert.FromBase64String(base64Data);
|
||||||
|
return Parse(data, dt, dutinfo);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static WaterMetrologyDataC2 Parse(byte[] data, DateTime dt, string dutinfo)
|
||||||
|
{
|
||||||
|
if (data.Length < 24)
|
||||||
|
{
|
||||||
|
throw new ArgumentException("Invalid data length for WaterMetrologyData C2.");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
WaterMetrologyDataC2 result = new WaterMetrologyDataC2();
|
||||||
|
|
||||||
|
result.DutInfo = dutinfo;
|
||||||
|
result.Dt = dt;
|
||||||
|
result.AdcSample = BitConverter.ToInt32(data, 0);
|
||||||
|
result.LastField = BitConverter.ToInt16(data, 4);
|
||||||
|
result.FlowRate = BitConverter.ToInt16(data, 6);
|
||||||
|
result.Accumulator = BitConverter.ToUInt32(data, 8);
|
||||||
|
result.FlipPeriod = BitConverter.ToUInt16(data, 12);
|
||||||
|
result.VinfStart = BitConverter.ToUInt16(data, 14);
|
||||||
|
result.VinfEnd = BitConverter.ToUInt16(data, 16);
|
||||||
|
result.ElectrodeDelta = BitConverter.ToInt16(data, 18);
|
||||||
|
result.Impedance = BitConverter.ToUInt16(data, 20);
|
||||||
|
result.FieldDriveTime = data[22];
|
||||||
|
|
||||||
|
byte flags = data[23];
|
||||||
|
result.IsInLowFlow = (flags & 0x01) != 0;
|
||||||
|
result.IsInEmptyPipe = (flags & 0x02) != 0;
|
||||||
|
result.FastHPFC = (flags & 0x04) != 0; // Fast High Pass Filter Constant in bit 2
|
||||||
|
result.FieldPolarity = (flags & 0x08) != 0; // Field Polarity in bit 3
|
||||||
|
result.ImpedancePolarity = (flags & 0x10) != 0; // Impedance Polarity in bit 4
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
//public override string ToString()
|
||||||
|
//{
|
||||||
|
// return $"ADC Sample: {AdcSample}, Last Field: {LastField}, Flow Rate: {FlowRate}, Accumulator: {Accumulator}, " +
|
||||||
|
// $"Flip Period Ticks: {FlipPeriodTicks}, Vinf Start: {VinfStart}, Vinf End: {VinfEnd}, Electrode Delta: {ElectrodeDelta}, " +
|
||||||
|
// $"Impedance: {Impedance}, Field Drive Time: {FieldDriveTime}, Is Low Flow: {IsInLowFlow}, Is Empty Pipe: {IsInEmptyPipe}, " +
|
||||||
|
// $"Fast High Pass Filter: {FastHighPassFilterConstant}, Field Polarity: {FieldPolarity}, Impedance Polarity: {ImpedancePolarity}";
|
||||||
|
//}
|
||||||
|
|
||||||
|
public override string ToString()
|
||||||
|
{
|
||||||
|
return $"DutInfo: {DutInfo}, Dt: {Dt}, ADC Sample: {AdcSample}, Last Field: {LastField}, Flow Rate: {FlowRate}, Accumulator: {Accumulator}, " +
|
||||||
|
$"Flip Period: {FlipPeriod}, Vinf Start: {VinfStart}, Vinf End: {VinfEnd}, Electrode Delta: {ElectrodeDelta}, " +
|
||||||
|
$"Impedance: {Impedance}, Field Drive Time: {FieldDriveTime}, Is Low Flow: {IsInLowFlow}, Is Empty Pipe: {IsInEmptyPipe}, " +
|
||||||
|
$"Fast HPFC: {FastHPFC}, Field Polarity: {FieldPolarity}, Impedance Polarity: {ImpedancePolarity}, " +
|
||||||
|
$"Calc Flow mL/s: {CalcFlowmLps:F2}, Calc Flow GPM: {CalcFlowGPM:F2}, Calc Acc Gal: {CalcAccGal:F2}";
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,94 @@
|
|||||||
|
using System;
|
||||||
|
|
||||||
|
namespace NfcC7_DLL.NfcHandler.Protocols
|
||||||
|
{
|
||||||
|
public class WaterMetrologyDataC7 : WaterMetrologyDataC2
|
||||||
|
{
|
||||||
|
// New fields for C7
|
||||||
|
public int LastFieldmilliGauss { get; set; }
|
||||||
|
public int ImpedanceI { get; set; } // In-phase impedance
|
||||||
|
public int ImpedanceQ { get; set; } // Out-of-phase impedance
|
||||||
|
public int NoiseMetric { get; set; }
|
||||||
|
public short LearningLockout { get; set; }
|
||||||
|
public short ReverseBuffer { get; set; }
|
||||||
|
public int ConditionedAdc { get; set; }
|
||||||
|
public uint Totalalizer { get; set; }
|
||||||
|
|
||||||
|
//public bool IsInLowFlow { get; set; }
|
||||||
|
//public bool IsInEmptyPipe { get; set; }
|
||||||
|
//public bool FastHPFC { get; set; }
|
||||||
|
//public bool FieldPolarity { get; set; }
|
||||||
|
//public bool ImpedancePolarity { get; set; }
|
||||||
|
public bool MagTamperState { get; set; }
|
||||||
|
public bool IsLearningActive { get; set; }
|
||||||
|
public bool AdcShiftsUpdated { get; set; }
|
||||||
|
|
||||||
|
|
||||||
|
public static WaterMetrologyDataC7 Parse(string base64Data, DateTime dt, string dutinfo)
|
||||||
|
{
|
||||||
|
byte[] data = Convert.FromBase64String(base64Data);
|
||||||
|
return Parse(data, dt, dutinfo);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static WaterMetrologyDataC7 Parse(byte[] data, DateTime dt, string dutinfo)
|
||||||
|
{
|
||||||
|
|
||||||
|
// You may want to check for the minimum length required for C7
|
||||||
|
if (data.Length < 48) /* minimum required length for C7 */
|
||||||
|
{
|
||||||
|
throw new ArgumentException("Invalid data length for WaterMetrologyData C7.");
|
||||||
|
}
|
||||||
|
|
||||||
|
var result = new WaterMetrologyDataC7();
|
||||||
|
|
||||||
|
// Parse base C2 fields
|
||||||
|
var c2 = WaterMetrologyDataC2.Parse(data, dt, dutinfo);
|
||||||
|
|
||||||
|
//Copy base fields
|
||||||
|
result.DutInfo = c2.DutInfo;
|
||||||
|
result.Dt = c2.Dt;
|
||||||
|
result.AdcSample = c2.AdcSample;
|
||||||
|
result.LastField = c2.LastField;
|
||||||
|
result.FlowRate = c2.FlowRate;
|
||||||
|
result.Accumulator = c2.Accumulator;
|
||||||
|
result.FlipPeriod = c2.FlipPeriod;
|
||||||
|
result.VinfStart = c2.VinfStart;
|
||||||
|
result.VinfEnd = c2.VinfEnd;
|
||||||
|
result.ElectrodeDelta = c2.ElectrodeDelta;
|
||||||
|
result.Impedance = c2.Impedance;
|
||||||
|
result.FieldDriveTime = c2.FieldDriveTime;
|
||||||
|
|
||||||
|
|
||||||
|
result.IsInLowFlow = c2.IsInLowFlow;
|
||||||
|
result.IsInEmptyPipe = c2.IsInEmptyPipe;
|
||||||
|
result.FieldPolarity = c2.FieldPolarity;
|
||||||
|
result.ImpedancePolarity = c2.ImpedancePolarity;
|
||||||
|
|
||||||
|
|
||||||
|
// Parse new C7 fields (replace ENUM_OptPack0xC7.FIELD_MILLI_GAUSS etc. with actual offsets)
|
||||||
|
byte flags = data[23];
|
||||||
|
result.MagTamperState = (flags & 0x60) != 0; // bits 5 and 6 represent MagTamperState
|
||||||
|
result.IsLearningActive = (flags & 0x80) != 0; // bit 7 represents IsLearningActive
|
||||||
|
|
||||||
|
byte flagTwo = data[24];
|
||||||
|
|
||||||
|
result.AdcShiftsUpdated = (flagTwo & 0x01) != 0; // bit 0 represents AdcShiftsUpdated
|
||||||
|
|
||||||
|
result.LastFieldmilliGauss = BitConverter.ToInt32(data, 25);
|
||||||
|
result.ImpedanceI = BitConverter.ToInt32(data, 29); // in phase
|
||||||
|
result.ImpedanceQ = BitConverter.ToInt32(data, 33); // out of phase
|
||||||
|
result.NoiseMetric = BitConverter.ToInt32(data, 37); //
|
||||||
|
result.LearningLockout = BitConverter.ToInt16(data, 41);
|
||||||
|
result.ReverseBuffer = BitConverter.ToInt16(data, 43);
|
||||||
|
result.ConditionedAdc = BitConverter.ToInt32(data, 45);
|
||||||
|
result.Totalalizer = BitConverter.ToUInt32(data, 49);
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override string ToString()
|
||||||
|
{
|
||||||
|
return $"C7: LastFieldmilliGauss={LastFieldmilliGauss}, ImpedanceI={ImpedanceI}, ImpedanceQ={ImpedanceQ}, NoiseMetric={NoiseMetric}, LearningLockout={LearningLockout}, ReverseBuffer={ReverseBuffer}, ConditionedAdc={ConditionedAdc}, Totalalizer={Totalalizer}, MagTamperState={MagTamperState}, IsLearningActive={IsLearningActive}, AdcShiftsUpdated={AdcShiftsUpdated}" + base.ToString();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
# Protocol Description
|
||||||
@@ -0,0 +1,341 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Diagnostics;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Reflection;
|
||||||
|
using System.Threading;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using Newtonsoft.Json;
|
||||||
|
using Newtonsoft.Json.Linq;
|
||||||
|
|
||||||
|
namespace NfcC7_DLL.NfcHandler.Utils
|
||||||
|
{
|
||||||
|
public class CliRunner
|
||||||
|
{
|
||||||
|
//static readonly Logger log = LogManager.GetLogger(typeof(CliRunner));
|
||||||
|
//private readonly ILog log;
|
||||||
|
private List<Task> taskPool = new List<Task>();
|
||||||
|
private long startTime;
|
||||||
|
|
||||||
|
public List<Task> TaskPool { get { return taskPool; } }
|
||||||
|
public void AddTask(Task task) { taskPool.Add(task); }
|
||||||
|
public void WaitAll() { Task.WaitAll(taskPool.ToArray()); }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// continue with WhenAny() to commpare results if time out is reached
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="timeout"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public Task AddTimeOut(int timeout)
|
||||||
|
{
|
||||||
|
Task timeOut = Task.Delay(timeout);
|
||||||
|
taskPool.Add(timeOut);
|
||||||
|
return timeOut;
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// mainly used for time out additional task to compare results
|
||||||
|
/// </summary>
|
||||||
|
/// <returns></returns>
|
||||||
|
|
||||||
|
|
||||||
|
[Obsolete("Use async/await instead - WaitAnyFinished()")]
|
||||||
|
public async Task<Task> WhenAny() { return await Task.WhenAny(taskPool.ToArray()); }
|
||||||
|
|
||||||
|
public Task WaitAnyFinished(Task task, Task timeOut)
|
||||||
|
{
|
||||||
|
Task.WhenAny(task, timeOut);
|
||||||
|
while (true)
|
||||||
|
{
|
||||||
|
if (task.IsCompleted) break;
|
||||||
|
if (task.IsFaulted) break;
|
||||||
|
if (task.IsCanceled) break;
|
||||||
|
|
||||||
|
if(timeOut.IsCompleted) break;
|
||||||
|
if(timeOut.IsFaulted) break;
|
||||||
|
if(timeOut.IsCanceled) break;
|
||||||
|
|
||||||
|
Thread.Sleep(100);
|
||||||
|
}
|
||||||
|
|
||||||
|
var waitAny = Task.WaitAny(task, timeOut);
|
||||||
|
return waitAny == 0 ? task : timeOut;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static async Task<T> WithTimeout<T>(Task<T> task, TimeSpan timeout, CancellationTokenSource externalCts = null)
|
||||||
|
{
|
||||||
|
var localCts = externalCts == null ? externalCts : new CancellationTokenSource();
|
||||||
|
var timeoutCts = new CancellationTokenSource(timeout);
|
||||||
|
var linked = CancellationTokenSource.CreateLinkedTokenSource(localCts.Token, timeoutCts.Token);
|
||||||
|
|
||||||
|
var completion = new TaskCompletionSource<bool>(TaskCreationOptions.RunContinuationsAsynchronously);
|
||||||
|
|
||||||
|
// Observe the task
|
||||||
|
_ = task.ContinueWith(_ => completion.TrySetResult(true), TaskScheduler.Default);
|
||||||
|
|
||||||
|
// Observe the timeout
|
||||||
|
_ = Task.Delay(Timeout.InfiniteTimeSpan, timeoutCts.Token)
|
||||||
|
.ContinueWith(_ => completion.TrySetResult(true), TaskScheduler.Default);
|
||||||
|
|
||||||
|
await completion.Task.ConfigureAwait(false);
|
||||||
|
|
||||||
|
if (timeoutCts.IsCancellationRequested == false && task.IsCompleted) // task finished first
|
||||||
|
return await task.ConfigureAwait(false);
|
||||||
|
|
||||||
|
// timeout won → cancel & throw TimeoutException
|
||||||
|
localCts.Cancel(); // triggers your SendAsync to kill process
|
||||||
|
throw new TimeoutException();
|
||||||
|
}
|
||||||
|
|
||||||
|
public Task<string> AddSendAsync(SerialPortData data, SerialPortData.EMeterArg eMeterArg, CancellationToken ct = default)
|
||||||
|
{
|
||||||
|
var task = SendAsync(data.SerialPortCmdClientPath, data.DefaultArgSettingsRead(eMeterArg), ct);
|
||||||
|
taskPool.Add(task); // List<Task> is okay because Task<string> : Task
|
||||||
|
return task;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Task WaitAnyFinished()
|
||||||
|
{
|
||||||
|
int xTask = Task.WaitAny(taskPool.ToArray());
|
||||||
|
return taskPool[xTask];
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Clear() { taskPool.Clear(); }
|
||||||
|
public void CancelAll() { Task.WhenAll(taskPool).ContinueWith(t => { }); }
|
||||||
|
|
||||||
|
|
||||||
|
public void StartAll()
|
||||||
|
{
|
||||||
|
taskPool.ForEach(t => t.Start());
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool AreTasksDone()
|
||||||
|
{
|
||||||
|
return taskPool.All(task => task.IsCompleted);
|
||||||
|
}
|
||||||
|
|
||||||
|
public long StartTime
|
||||||
|
{
|
||||||
|
get => startTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool TimeOutReceived(long timeout)
|
||||||
|
{
|
||||||
|
return (DateTime.Now.Ticks - startTime) > timeout;
|
||||||
|
}
|
||||||
|
|
||||||
|
public CliRunner(bool isCliLogging)
|
||||||
|
{
|
||||||
|
startTime = DateTime.Now.Ticks;
|
||||||
|
|
||||||
|
if (isCliLogging)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
/*log = new ScopedLoggerFactory().CreateLogger<CliRunner>(
|
||||||
|
@"C:\TBF\Logs\CliRunner.txt",
|
||||||
|
10, // maxFileSizeMB
|
||||||
|
7, // maxBackups
|
||||||
|
log4net.Core.Level.Debug,
|
||||||
|
true, // zipRolledFiles
|
||||||
|
true, // singleZipPerDay
|
||||||
|
TimeSpan.FromMinutes(2) // zipScanInterval
|
||||||
|
);*/
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
// Fallback to console or handle gracefully
|
||||||
|
Console.WriteLine($"Failed to initialize logger: {ex.Message}");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
///
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="fileName"></param>
|
||||||
|
/// <param name="args"></param>
|
||||||
|
/// <typeparam name="T"></typeparam>
|
||||||
|
public Task AddSendAsync(SerialPortData data, SerialPortData.EMeterArg eMeterArg)
|
||||||
|
{
|
||||||
|
var task = SendAsync(data.SerialPortCmdClientPath, data.DefaultArgSettingsRead(eMeterArg));
|
||||||
|
taskPool.Add(task);
|
||||||
|
return task;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Task AddSendAsync(SerialPortData data, SerialPortData.EMeterArg eMeterArg, string arg)
|
||||||
|
{
|
||||||
|
var task = SendAsync(data.SerialPortCmdClientPath, data.DefaultArgSettingsWrite(eMeterArg, arg));
|
||||||
|
taskPool.Add(task);
|
||||||
|
return task;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void AddSendAsync(string fileName, string args)
|
||||||
|
{
|
||||||
|
var task = SendAsync(fileName, args);
|
||||||
|
taskPool.Add(task);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public async Task<string> SendAsync(string fileName, string args, CancellationToken ct = default)
|
||||||
|
{
|
||||||
|
var psi = new ProcessStartInfo
|
||||||
|
{
|
||||||
|
FileName = fileName,
|
||||||
|
Arguments = args,
|
||||||
|
RedirectStandardOutput = true,
|
||||||
|
RedirectStandardError = true,
|
||||||
|
UseShellExecute = false,
|
||||||
|
CreateNoWindow = true
|
||||||
|
};
|
||||||
|
|
||||||
|
var process = new Process { StartInfo = psi, EnableRaisingEvents = true };
|
||||||
|
try
|
||||||
|
{
|
||||||
|
process.Start();
|
||||||
|
|
||||||
|
Task<string> stdOutTask = process.StandardOutput.ReadToEndAsync();
|
||||||
|
Task<string> stdErrTask = process.StandardError.ReadToEndAsync();
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
await Task.WhenAll(stdOutTask, stdErrTask, process.WaitForExitAsync(ct));
|
||||||
|
}
|
||||||
|
catch (OperationCanceledException)
|
||||||
|
{
|
||||||
|
if (!process.HasExited)
|
||||||
|
{
|
||||||
|
process.Kill();
|
||||||
|
}
|
||||||
|
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
|
||||||
|
string allOutput = (stdOutTask.Result ?? "") + (stdErrTask.Result ?? "");
|
||||||
|
//log?.Debug(allOutput);
|
||||||
|
return allOutput;
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
process?.Dispose();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public Task<T> AddRunAndCaptureJsonAsync<T>(SerialPortData data, SerialPortData.EMeterArg eMeterArg) where T : new()
|
||||||
|
{
|
||||||
|
var task = RunAndCaptureJsonAsync<T>(data.SerialPortCmdClientPath, data.DefaultArgSettingsRead(eMeterArg));
|
||||||
|
taskPool.Add(task);
|
||||||
|
return task;
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task<T> RunAndCaptureJsonAsync<T>(string fileName, string args, CancellationToken ct = default) where T : new()
|
||||||
|
{
|
||||||
|
var psi = new ProcessStartInfo
|
||||||
|
{
|
||||||
|
FileName = fileName,
|
||||||
|
Arguments = args,
|
||||||
|
RedirectStandardOutput = true,
|
||||||
|
RedirectStandardError = true,
|
||||||
|
UseShellExecute = false,
|
||||||
|
CreateNoWindow = true
|
||||||
|
};
|
||||||
|
|
||||||
|
var process = new Process { StartInfo = psi, EnableRaisingEvents = true };
|
||||||
|
try
|
||||||
|
{
|
||||||
|
process.Start();
|
||||||
|
|
||||||
|
var stdoutTask = process.StandardOutput.ReadToEndAsync();
|
||||||
|
var stderrTask = process.StandardError.ReadToEndAsync();
|
||||||
|
|
||||||
|
await Task.WhenAll(stdoutTask, stderrTask, process.WaitForExitAsync(ct));
|
||||||
|
|
||||||
|
string allOutput = (stdoutTask.Result ?? "") + (stderrTask.Result ?? "");
|
||||||
|
//log?.Debug(allOutput);
|
||||||
|
|
||||||
|
string json = ExtractJson(allOutput);
|
||||||
|
if (TryJsonStringDeserialize(json, out T result)) return result;
|
||||||
|
return default;
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
process?.Dispose();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool TryJsonStringDeserialize<T>(string json, out T runAndCaptureJsonAsync) where T : new()
|
||||||
|
{
|
||||||
|
if (json != null)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
runAndCaptureJsonAsync = JsonConvert.DeserializeObject<T>(json);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
// log.Debug(ex.Message);
|
||||||
|
runAndCaptureJsonAsync = TryConvert<T>(json);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
runAndCaptureJsonAsync = default;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private static T TryConvert<T>(string json) where T : new()
|
||||||
|
{
|
||||||
|
|
||||||
|
T obj = new T();
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
JObject jObject = JObject.Parse(json);
|
||||||
|
|
||||||
|
foreach (PropertyInfo prop in typeof(T).GetProperties(BindingFlags.Public | BindingFlags.Instance))
|
||||||
|
{
|
||||||
|
if (!prop.CanWrite) continue;
|
||||||
|
|
||||||
|
JToken token;
|
||||||
|
if (jObject.TryGetValue(prop.Name, StringComparison.OrdinalIgnoreCase, out token))
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
object value = token.ToObject(prop.PropertyType);
|
||||||
|
prop.SetValue(obj, value);
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
// leave default if conversion fails
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// else → keep default value
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Console.WriteLine($"TryConvert failed: {ex.Message}");
|
||||||
|
}
|
||||||
|
|
||||||
|
return obj;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public string ExtractJson(string text)
|
||||||
|
{
|
||||||
|
int start = text.IndexOf('{');
|
||||||
|
int end = text.LastIndexOf('}');
|
||||||
|
|
||||||
|
if (start >= 0 && end > start)
|
||||||
|
{
|
||||||
|
return text.Substring(start, end - start + 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,39 @@
|
|||||||
|
using System;
|
||||||
|
using System.Diagnostics;
|
||||||
|
using System.Threading;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace NfcC7_DLL.NfcHandler.Utils
|
||||||
|
{
|
||||||
|
public static class ProcessExtensions
|
||||||
|
{
|
||||||
|
public static Task<object> WaitForExitAsync(this Process process, CancellationToken cancellationToken = default)
|
||||||
|
{
|
||||||
|
if (process == null) throw new ArgumentNullException(nameof(process));
|
||||||
|
if (process.HasExited) return Task.FromResult<object>(null);
|
||||||
|
|
||||||
|
var tcs = new TaskCompletionSource<object>(TaskCreationOptions.RunContinuationsAsynchronously);
|
||||||
|
|
||||||
|
EventHandler handler = null;
|
||||||
|
handler = (s, e) =>
|
||||||
|
{
|
||||||
|
try { tcs.TrySetResult(null); }
|
||||||
|
finally { process.Exited -= handler; }
|
||||||
|
};
|
||||||
|
|
||||||
|
process.EnableRaisingEvents = true;
|
||||||
|
process.Exited += handler;
|
||||||
|
|
||||||
|
if (cancellationToken.CanBeCanceled)
|
||||||
|
{
|
||||||
|
cancellationToken.Register(() =>
|
||||||
|
{
|
||||||
|
tcs.TrySetCanceled(cancellationToken);
|
||||||
|
process.Exited -= handler;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
return tcs.Task;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,171 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Collections.ObjectModel;
|
||||||
|
using System.Diagnostics;
|
||||||
|
using System.IO.Ports;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Threading;
|
||||||
|
|
||||||
|
//*****************************************************************************
|
||||||
|
// Copyright 2020 Sensus GmbH Ludwigshafen. All rights reserved.
|
||||||
|
// Author: Venkat, Rajeshwar
|
||||||
|
//*****************************************************************************
|
||||||
|
|
||||||
|
namespace NfcC7_DLL.NfcHandler.Utils
|
||||||
|
{
|
||||||
|
public class SERIAL_Driver
|
||||||
|
{
|
||||||
|
public string ErrorMessage { get; private set; }
|
||||||
|
public Collection<byte> SerialPortReadBuffer = new Collection<byte>();
|
||||||
|
private SerialPort _serialPort;
|
||||||
|
|
||||||
|
private List<byte[]> _binMessages = new List<byte[]>();
|
||||||
|
private bool _isReading;
|
||||||
|
private Parity Parity { get; set; }
|
||||||
|
private StopBits StopBits { get; set; }
|
||||||
|
|
||||||
|
public SERIAL_Driver()
|
||||||
|
{
|
||||||
|
_serialPort = new SerialPort();
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool OpenConnection(string comPort, int baudrate, int dataBits, Parity parity, StopBits stopbits, int readTimeout=1000, int writeTimeout = 1000)
|
||||||
|
{
|
||||||
|
lock (this)
|
||||||
|
{
|
||||||
|
if ((_serialPort != null) && (_serialPort.IsOpen))
|
||||||
|
{
|
||||||
|
_serialPort.DataReceived -= DataReceivedHandler;
|
||||||
|
_serialPort.Close();
|
||||||
|
_serialPort.Dispose();
|
||||||
|
_serialPort = null;
|
||||||
|
}
|
||||||
|
try
|
||||||
|
{
|
||||||
|
ErrorMessage = "";
|
||||||
|
//_serialPort = new SerialPort(comPort, 57600, Parity.None, 8, StopBits.Two);
|
||||||
|
_serialPort = new SerialPort(comPort, baudrate, parity, dataBits, stopbits);
|
||||||
|
_serialPort.ReadTimeout = readTimeout;
|
||||||
|
_serialPort.WriteTimeout = writeTimeout;
|
||||||
|
_serialPort.DataReceived += new SerialDataReceivedEventHandler(DataReceivedHandler);
|
||||||
|
_serialPort.Open();
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
ErrorMessage = String.Format("COM error: Open failed {0}.{1}", comPort, ex.Message);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!_serialPort.IsOpen)
|
||||||
|
{
|
||||||
|
ErrorMessage = String.Format("COM error: Can't Open {0}.", comPort);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}//End Lock
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
public bool SendMessage(byte[] sendDataBytes, int length, int readTimeout = 1000, int writeTimeout=1000)
|
||||||
|
{
|
||||||
|
if (!isOpen()) return false;
|
||||||
|
if (sendDataBytes.Length == 0) return true; // nothing to send - no error
|
||||||
|
try
|
||||||
|
{
|
||||||
|
PrepareReading(); //clear read buffer etc.
|
||||||
|
_serialPort.WriteTimeout = writeTimeout;
|
||||||
|
_serialPort.ReadTimeout = readTimeout;
|
||||||
|
_serialPort.Write(sendDataBytes, 0, length);
|
||||||
|
_isReading = true;
|
||||||
|
Thread.Sleep(100);
|
||||||
|
var stopWatch = Stopwatch.StartNew(); //start stop watch for data recevie timeout
|
||||||
|
while (_isReading) //wait until reading finishes or timeout occur
|
||||||
|
{
|
||||||
|
if (stopWatch.ElapsedMilliseconds > readTimeout)
|
||||||
|
{
|
||||||
|
stopWatch.Stop();
|
||||||
|
ErrorMessage = "COM error: Receive timeout";
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
ErrorMessage = String.Format("COM error: Transmit timeout {0}.{1}", _serialPort.PortName, ex.Message);
|
||||||
|
return false; // Exception in send function
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
private void PrepareReading()
|
||||||
|
{
|
||||||
|
_serialPort.DiscardInBuffer();
|
||||||
|
if(_binMessages != null) _binMessages.Clear();
|
||||||
|
_isReading = true;
|
||||||
|
}
|
||||||
|
public byte[] GetRawData()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if (_binMessages.Count > 0)
|
||||||
|
return _binMessages[0].ToArray();
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch(Exception)
|
||||||
|
{
|
||||||
|
byte[] err = { 0xFF };
|
||||||
|
return err;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
private void DataReceivedHandler(object sender, SerialDataReceivedEventArgs e)
|
||||||
|
{
|
||||||
|
if (!_serialPort.IsOpen) return;
|
||||||
|
lock (this)
|
||||||
|
{
|
||||||
|
Thread.Sleep(100);
|
||||||
|
if (!_serialPort.IsOpen) return;
|
||||||
|
SerialPortReadBuffer = new Collection<byte>();
|
||||||
|
while (_serialPort.BytesToRead > 0)
|
||||||
|
{
|
||||||
|
SerialPortReadBuffer.Add((byte)_serialPort.ReadByte());
|
||||||
|
}
|
||||||
|
|
||||||
|
_binMessages.Add(SerialPortReadBuffer.ToArray());
|
||||||
|
_isReading = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void CloseConnection()
|
||||||
|
{
|
||||||
|
if ((_serialPort != null) && (_serialPort.IsOpen))
|
||||||
|
{
|
||||||
|
_serialPort.DataReceived -= DataReceivedHandler;
|
||||||
|
_serialPort.Close();
|
||||||
|
_serialPort.Dispose();
|
||||||
|
_serialPort = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Close()
|
||||||
|
{
|
||||||
|
if (isOpen())
|
||||||
|
{
|
||||||
|
_serialPort.Close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public void Dispose()
|
||||||
|
{
|
||||||
|
if (_serialPort != null)
|
||||||
|
{
|
||||||
|
_serialPort.Dispose();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public bool isOpen()
|
||||||
|
{
|
||||||
|
if(_serialPort != null)
|
||||||
|
return _serialPort.IsOpen;
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,88 @@
|
|||||||
|
using System;
|
||||||
|
using System.IO;
|
||||||
|
|
||||||
|
namespace NfcC7_DLL.NfcHandler.Utils
|
||||||
|
{
|
||||||
|
public class SerialPortData
|
||||||
|
{
|
||||||
|
private Boolean? _cliExists;
|
||||||
|
public bool CliExists { get {
|
||||||
|
if (_cliExists == null || !_cliExists.HasValue)
|
||||||
|
{
|
||||||
|
_cliExists = File.Exists(SerialPortCmdClientPath);
|
||||||
|
}
|
||||||
|
return _cliExists.Value;
|
||||||
|
} }
|
||||||
|
public string SerialPortCmdClientPath {
|
||||||
|
get {
|
||||||
|
#if DEBUG
|
||||||
|
return Path.Combine("C:\\","TBF","Cli", CmdClientName);
|
||||||
|
#else
|
||||||
|
return Path.Combine("..","Cli", CmdClientName);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public string CmdClientName { get; set; } = "HalCli.exe";
|
||||||
|
public string PortName { get; set; }
|
||||||
|
public int MeterType { get; set; }
|
||||||
|
public string MeterTypeStr { get; set; }
|
||||||
|
|
||||||
|
public enum EMeterArg {
|
||||||
|
Calibration = 0,
|
||||||
|
AllParams = 2,
|
||||||
|
DeviceId = 3,
|
||||||
|
Optohead = 4,
|
||||||
|
}
|
||||||
|
EMeterArg _eMeterArg = EMeterArg.AllParams;
|
||||||
|
|
||||||
|
public string DefaultArgSettingsRead(EMeterArg eMeterArg)
|
||||||
|
{
|
||||||
|
string meterTypeInsert = !string.IsNullOrEmpty(MeterTypeStr) ? MeterTypeStr : MeterType.ToString();
|
||||||
|
switch (eMeterArg)
|
||||||
|
{
|
||||||
|
case EMeterArg.AllParams:
|
||||||
|
return $"-p {PortName} -m {meterTypeInsert} --operation readall";
|
||||||
|
case EMeterArg.DeviceId:
|
||||||
|
return $"-p {PortName} -m {meterTypeInsert} --operation read --parameter DeviceId";
|
||||||
|
case EMeterArg.Optohead:
|
||||||
|
return $"-p {PortName} -m {meterTypeInsert} --operation read --parameter \"OpticalDataMode\"";
|
||||||
|
default:
|
||||||
|
throw new Exception("Not implemented correct command!");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public string DefaultArgSettingsWrite(EMeterArg eMeterArg, string arg)
|
||||||
|
{
|
||||||
|
string meterTypeInsert = !string.IsNullOrEmpty(MeterTypeStr) ? MeterTypeStr : MeterType.ToString();
|
||||||
|
switch (eMeterArg)
|
||||||
|
{
|
||||||
|
case EMeterArg.Calibration:
|
||||||
|
return $"-p {PortName} -m {meterTypeInsert} --operation write --parameter Calibration --value {arg}";
|
||||||
|
case EMeterArg.Optohead:
|
||||||
|
return $"-p {PortName} -m {meterTypeInsert} --operation write --parameter \"OpticalDataMode\" --value {arg}";
|
||||||
|
default:
|
||||||
|
throw new Exception("Not implemented correct command!");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public SerialPortData(
|
||||||
|
string portName,
|
||||||
|
string cmdClientName,
|
||||||
|
int meterType)
|
||||||
|
{
|
||||||
|
PortName = portName;
|
||||||
|
CmdClientName = cmdClientName;
|
||||||
|
MeterType = meterType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public SerialPortData(
|
||||||
|
string portName,
|
||||||
|
string cmdClientName,
|
||||||
|
string meterType)
|
||||||
|
{
|
||||||
|
PortName = portName;
|
||||||
|
CmdClientName = cmdClientName;
|
||||||
|
MeterTypeStr = meterType;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,158 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
|
//*****************************************************************************
|
||||||
|
// Copyright 2020 Sensus GmbH Ludwigshafen. All rights reserved.
|
||||||
|
// Author: Venkat, Rajeshwar
|
||||||
|
//*****************************************************************************
|
||||||
|
|
||||||
|
namespace NfcC7_DLL.NfcHandler.Utils
|
||||||
|
{
|
||||||
|
public static class Tools
|
||||||
|
{
|
||||||
|
public static bool ByteArrayCompare(byte[] a1, byte[] a2)
|
||||||
|
{
|
||||||
|
// thanks to https://stackoverflow.com/questions/43289/comparing-two-byte-arrays-in-net
|
||||||
|
if (a1.Length != a2.Length)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
for (int i = 0; i < a1.Length; i++)
|
||||||
|
if (a1[i] != a2[i])
|
||||||
|
return false;
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
public static string SwapHex(string sHex)
|
||||||
|
{
|
||||||
|
string sResult = "";
|
||||||
|
int iPos = sHex.Length - 2;
|
||||||
|
while (iPos >= 0)
|
||||||
|
{
|
||||||
|
sResult += sHex.Substring(iPos, 2);
|
||||||
|
sHex = sHex.Remove(iPos, 2);
|
||||||
|
iPos = sHex.Length - 2;
|
||||||
|
}
|
||||||
|
return sResult;
|
||||||
|
}
|
||||||
|
public static string DecimalToHexString(string value, int size = 1)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
long Lval = long.Parse(value);
|
||||||
|
if (size == 1) return Lval.ToString("X2");
|
||||||
|
if (size == 2) return Lval.ToString("X4");
|
||||||
|
if (size == 4) return Lval.ToString("X8");
|
||||||
|
}
|
||||||
|
catch (Exception)
|
||||||
|
{
|
||||||
|
if (size == 1) return "00";
|
||||||
|
if (size == 2) return "0000";
|
||||||
|
if (size == 4) return "00000000";
|
||||||
|
}
|
||||||
|
return "00";
|
||||||
|
}
|
||||||
|
public static string ByteToHexString(byte data)
|
||||||
|
{
|
||||||
|
List<byte> val = new List<byte>();
|
||||||
|
val.Add(data);
|
||||||
|
byte[] arr = val.ToArray();
|
||||||
|
return BytesToHex(arr);
|
||||||
|
}
|
||||||
|
public static string BytesToHex(byte[] data)
|
||||||
|
{
|
||||||
|
StringBuilder sb = new StringBuilder();
|
||||||
|
foreach (byte b in data)
|
||||||
|
sb.Append(b.ToString("X2"));
|
||||||
|
|
||||||
|
return sb.ToString();
|
||||||
|
|
||||||
|
}
|
||||||
|
public static byte[] HexStringToByteArray(String hexString)
|
||||||
|
{
|
||||||
|
int numberChars = hexString.Length;
|
||||||
|
byte[] bytes = new byte[numberChars / 2];
|
||||||
|
for (int i = 0; i < numberChars; i += 2)
|
||||||
|
{
|
||||||
|
bytes[i / 2] = Convert.ToByte(hexString.Substring(i, 2), 16);
|
||||||
|
}
|
||||||
|
return bytes;
|
||||||
|
}
|
||||||
|
public enum InitialCrcValue
|
||||||
|
{
|
||||||
|
Zeros,
|
||||||
|
NonZero1 = 0xffff,
|
||||||
|
NonZero2 = 0x1D0F
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Crc16Ccitt
|
||||||
|
{
|
||||||
|
private const ushort poly = 0x1021;
|
||||||
|
ushort[] table = new ushort[256];
|
||||||
|
ushort initialValue = 0;
|
||||||
|
|
||||||
|
public ushort ComputeChecksum(byte[] bytes)
|
||||||
|
{
|
||||||
|
ushort crc = this.initialValue;
|
||||||
|
for (int i = 0; i < bytes.Length; ++i)
|
||||||
|
{
|
||||||
|
crc = (ushort)((crc << 8) ^ table[((crc >> 8) ^ (0xff & bytes[i]))]);
|
||||||
|
}
|
||||||
|
return crc;
|
||||||
|
}
|
||||||
|
public byte[] ComputeChecksumBytes(byte[] bytes)
|
||||||
|
{
|
||||||
|
ushort crc = ComputeChecksum(bytes);
|
||||||
|
return BitConverter.GetBytes(crc);
|
||||||
|
}
|
||||||
|
public Crc16Ccitt(InitialCrcValue initialValue)
|
||||||
|
{
|
||||||
|
this.initialValue = (ushort) initialValue;
|
||||||
|
ushort temp, a;
|
||||||
|
for (int i = 0; i < table.Length; ++i)
|
||||||
|
{
|
||||||
|
temp = 0;
|
||||||
|
a = (ushort) (i << 8);
|
||||||
|
for (int j = 0; j < 8; ++j)
|
||||||
|
{
|
||||||
|
if (((temp ^ a) & 0x8000) != 0)
|
||||||
|
{
|
||||||
|
temp = (ushort) ((temp << 1) ^ poly);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
temp <<= 1;
|
||||||
|
}
|
||||||
|
a <<= 1;
|
||||||
|
}
|
||||||
|
table[i] = temp;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public byte[] calcCRCfromMessage(byte[] message)
|
||||||
|
{
|
||||||
|
// CRC calculation goes from MessageID to Password
|
||||||
|
// For Read this means MsgID (1) + Offset (2) + PayloadLength (1) + Password (2) = 6
|
||||||
|
// for write the length of the payload comes on top.
|
||||||
|
// STX(1), length(1), CRC(2) and ETX(1) are excluded, in total 5 bytes.
|
||||||
|
//
|
||||||
|
// the method works both for sending messages (where the CRC and ETX are not in message)
|
||||||
|
// and for receiving messages (where the CRC and ETX are included at the end)
|
||||||
|
byte[] crc_msg = new byte[message[1]]; // message length is 2nd byte
|
||||||
|
Array.Copy(message, 2, crc_msg, 0, crc_msg.Length);
|
||||||
|
return ComputeChecksumBytes(crc_msg);
|
||||||
|
}
|
||||||
|
public string commentCRC(byte[] crc_meter, byte[] crc_computed)
|
||||||
|
{
|
||||||
|
bool crc_do_match = Tools.ByteArrayCompare(crc_meter, crc_computed);
|
||||||
|
string crcComment = crc_do_match ? "ok." : "CRC DOESN'T MATCH!!";
|
||||||
|
return "CRC Meter: " + Tools.BytesToHex(crc_meter) + (crc_do_match ? " == " : " != ")
|
||||||
|
+ "CRC Computed: " + Tools.BytesToHex(crc_computed) + ". " + crcComment;
|
||||||
|
}
|
||||||
|
public bool crc_do_match(byte[] a, byte[] b)
|
||||||
|
{
|
||||||
|
return ByteArrayCompare(a, b);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -38,7 +38,7 @@ namespace ResetBatchNr
|
|||||||
ls.BatchNr = 1;
|
ls.BatchNr = 1;
|
||||||
ls.Save();
|
ls.Save();
|
||||||
|
|
||||||
Console.WriteLine("BatchNr was reset to 1");
|
Console.WriteLine(@"BatchNr was reset to 1");
|
||||||
Console.ReadLine();
|
Console.ReadLine();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,7 +19,7 @@
|
|||||||
<DebugType>full</DebugType>
|
<DebugType>full</DebugType>
|
||||||
<Optimize>false</Optimize>
|
<Optimize>false</Optimize>
|
||||||
<OutputPath>bin\Debug\</OutputPath>
|
<OutputPath>bin\Debug\</OutputPath>
|
||||||
<DefineConstants>TRACE;DEBUG</DefineConstants>
|
<DefineConstants>TRACE;DEBUG;IPERL;</DefineConstants>
|
||||||
<ErrorReport>prompt</ErrorReport>
|
<ErrorReport>prompt</ErrorReport>
|
||||||
<WarningLevel>4</WarningLevel>
|
<WarningLevel>4</WarningLevel>
|
||||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||||
@@ -29,7 +29,7 @@
|
|||||||
<DebugType>pdbonly</DebugType>
|
<DebugType>pdbonly</DebugType>
|
||||||
<Optimize>true</Optimize>
|
<Optimize>true</Optimize>
|
||||||
<OutputPath>bin\Release\</OutputPath>
|
<OutputPath>bin\Release\</OutputPath>
|
||||||
<DefineConstants>TRACE;IPERL</DefineConstants>
|
<DefineConstants>TRACE;IPERL;</DefineConstants>
|
||||||
<ErrorReport>prompt</ErrorReport>
|
<ErrorReport>prompt</ErrorReport>
|
||||||
<WarningLevel>4</WarningLevel>
|
<WarningLevel>4</WarningLevel>
|
||||||
<Prefer32Bit>false</Prefer32Bit>
|
<Prefer32Bit>false</Prefer32Bit>
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
||||||
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
<PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
||||||
<RestoreSuccess Condition=" '$(RestoreSuccess)' == '' ">True</RestoreSuccess>
|
<RestoreSuccess Condition=" '$(RestoreSuccess)' == '' ">True</RestoreSuccess>
|
||||||
@@ -7,7 +7,7 @@
|
|||||||
<NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">$(UserProfile)\.nuget\packages\</NuGetPackageRoot>
|
<NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">$(UserProfile)\.nuget\packages\</NuGetPackageRoot>
|
||||||
<NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\micha\.nuget\packages\</NuGetPackageFolders>
|
<NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\micha\.nuget\packages\</NuGetPackageFolders>
|
||||||
<NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
|
<NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
|
||||||
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">6.14.0</NuGetToolVersion>
|
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">7.0.0</NuGetToolVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
<ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
||||||
<SourceRoot Include="C:\Users\micha\.nuget\packages\" />
|
<SourceRoot Include="C:\Users\micha\.nuget\packages\" />
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
<DebugType>full</DebugType>
|
<DebugType>full</DebugType>
|
||||||
<Optimize>false</Optimize>
|
<Optimize>false</Optimize>
|
||||||
<OutputPath>bin\Debug\</OutputPath>
|
<OutputPath>bin\Debug\</OutputPath>
|
||||||
<DefineConstants>TRACE;DEBUG;LANG_PL</DefineConstants>
|
<DefineConstants>TRACE;DEBUG;LANG_PL;</DefineConstants>
|
||||||
<ErrorReport>prompt</ErrorReport>
|
<ErrorReport>prompt</ErrorReport>
|
||||||
<WarningLevel>4</WarningLevel>
|
<WarningLevel>4</WarningLevel>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
@@ -25,7 +25,7 @@
|
|||||||
<DebugType>pdbonly</DebugType>
|
<DebugType>pdbonly</DebugType>
|
||||||
<Optimize>true</Optimize>
|
<Optimize>true</Optimize>
|
||||||
<OutputPath>bin\Release\</OutputPath>
|
<OutputPath>bin\Release\</OutputPath>
|
||||||
<DefineConstants>TRACE</DefineConstants>
|
<DefineConstants>TRACE;</DefineConstants>
|
||||||
<ErrorReport>prompt</ErrorReport>
|
<ErrorReport>prompt</ErrorReport>
|
||||||
<WarningLevel>4</WarningLevel>
|
<WarningLevel>4</WarningLevel>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|||||||
@@ -119,6 +119,10 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Sensus.iPerl.TestConsole",
|
|||||||
EndProject
|
EndProject
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NfcS5_DLL", "..\NfcS5_DLL\NfcS5_DLL.csproj", "{5954D496-CAAB-4F7A-BDE2-BDC8F47DAB19}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NfcS5_DLL", "..\NfcS5_DLL\NfcS5_DLL.csproj", "{5954D496-CAAB-4F7A-BDE2-BDC8F47DAB19}"
|
||||||
EndProject
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NfcC7_DLL", "NfcC7_DLL\NfcC7_DLL.csproj", "{53E75979-B530-4805-8FC9-B314F14A62BE}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NfcC7_DLL.Tests", "NfcC7_DLL.Tests\NfcC7_DLL.Tests.csproj", "{715605C5-568B-48D6-9C09-2DC5F2E81F66}"
|
||||||
|
EndProject
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
Debug|Any CPU = Debug|Any CPU
|
Debug|Any CPU = Debug|Any CPU
|
||||||
@@ -539,6 +543,30 @@ Global
|
|||||||
{5954D496-CAAB-4F7A-BDE2-BDC8F47DAB19}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
{5954D496-CAAB-4F7A-BDE2-BDC8F47DAB19}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||||
{5954D496-CAAB-4F7A-BDE2-BDC8F47DAB19}.Release|x86.ActiveCfg = Release|Any CPU
|
{5954D496-CAAB-4F7A-BDE2-BDC8F47DAB19}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
{5954D496-CAAB-4F7A-BDE2-BDC8F47DAB19}.Release|x86.Build.0 = Release|Any CPU
|
{5954D496-CAAB-4F7A-BDE2-BDC8F47DAB19}.Release|x86.Build.0 = Release|Any CPU
|
||||||
|
{53E75979-B530-4805-8FC9-B314F14A62BE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{53E75979-B530-4805-8FC9-B314F14A62BE}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{53E75979-B530-4805-8FC9-B314F14A62BE}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||||
|
{53E75979-B530-4805-8FC9-B314F14A62BE}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||||
|
{53E75979-B530-4805-8FC9-B314F14A62BE}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
|
{53E75979-B530-4805-8FC9-B314F14A62BE}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
|
{53E75979-B530-4805-8FC9-B314F14A62BE}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{53E75979-B530-4805-8FC9-B314F14A62BE}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{53E75979-B530-4805-8FC9-B314F14A62BE}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||||
|
{53E75979-B530-4805-8FC9-B314F14A62BE}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||||
|
{53E75979-B530-4805-8FC9-B314F14A62BE}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
|
{53E75979-B530-4805-8FC9-B314F14A62BE}.Release|x86.Build.0 = Release|Any CPU
|
||||||
|
{715605C5-568B-48D6-9C09-2DC5F2E81F66}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{715605C5-568B-48D6-9C09-2DC5F2E81F66}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{715605C5-568B-48D6-9C09-2DC5F2E81F66}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||||
|
{715605C5-568B-48D6-9C09-2DC5F2E81F66}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||||
|
{715605C5-568B-48D6-9C09-2DC5F2E81F66}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
|
{715605C5-568B-48D6-9C09-2DC5F2E81F66}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
|
{715605C5-568B-48D6-9C09-2DC5F2E81F66}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{715605C5-568B-48D6-9C09-2DC5F2E81F66}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{715605C5-568B-48D6-9C09-2DC5F2E81F66}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||||
|
{715605C5-568B-48D6-9C09-2DC5F2E81F66}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||||
|
{715605C5-568B-48D6-9C09-2DC5F2E81F66}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
|
{715605C5-568B-48D6-9C09-2DC5F2E81F66}.Release|x86.Build.0 = Release|Any CPU
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
HideSolutionNode = FALSE
|
HideSolutionNode = FALSE
|
||||||
|
|||||||
@@ -1,41 +0,0 @@
|
|||||||
<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
|
|
||||||
<s:Boolean x:Key="/Default/Environment/UnitTesting/CreateUnitTestDialog/ShowAdvancedOptions/@EntryValue">True</s:Boolean>
|
|
||||||
<s:String x:Key="/Default/Environment/UnitTesting/CreateUnitTestDialog/TestProjectMapping/=743DF7DB_002DC7B6_002D42EB_002D986D_002D0F485E5588E4/@EntryIndexedValue">77EB589F-C670-4489-AAD6-2A3C02061FD1</s:String>
|
|
||||||
<s:String x:Key="/Default/Environment/UnitTesting/CreateUnitTestDialog/TestProjectMapping/=8648FD92_002DCDA1_002D4C3A_002DB5F9_002DFE547CE1FA48/@EntryIndexedValue">77EB589F-C670-4489-AAD6-2A3C02061FD1</s:String>
|
|
||||||
<s:String x:Key="/Default/Environment/UnitTesting/CreateUnitTestDialog/TestTemplateMapping/=MSTest/@EntryIndexedValue">d6790ab7-33c2-4425-b2c9-51480cd1a852</s:String>
|
|
||||||
<s:String x:Key="/Default/Environment/UnitTesting/UnitTestSessionStore/Sessions/=311ca613_002Da634_002D4e0f_002Db9fb_002D4b7af9b7abb2/@EntryIndexedValue"><SessionState ContinuousTestingMode="0" Name="GetCorrection" xmlns="urn:schemas-jetbrains-com:jetbrains-ut-session">
|
|
||||||
<TestAncestor>
|
|
||||||
<TestId>MSTest::77EB589F-C670-4489-AAD6-2A3C02061FD1::.NETFramework,Version=v4.7.2::TBFTests.Entities.MeasurementCorrectionTest.GetCorrection</TestId>
|
|
||||||
<TestId>MSTest::77EB589F-C670-4489-AAD6-2A3C02061FD1::.NETFramework,Version=v4.7.2::TBFTests.Rig.Modbus.Meret.AdjustableScale.AdjustableMeterTest.GetCorrection</TestId>
|
|
||||||
<TestId>MSTest::77EB589F-C670-4489-AAD6-2A3C02061FD1::.NETFramework,Version=v4.7.2::TBFTests.Rig.Network.Camera.KeyenceIV3G120.CameraTest.RtpListener</TestId>
|
|
||||||
<TestId>MSTest::77EB589F-C670-4489-AAD6-2A3C02061FD1::.NETFramework,Version=v4.7.2::TBFTests.Rig.Network.Camera.KeyenceIV3G120.CameraTest.Initialize</TestId>
|
|
||||||
</TestAncestor>
|
|
||||||
</SessionState></s:String>
|
|
||||||
|
|
||||||
<s:String x:Key="/Default/Environment/UnitTesting/UnitTestSessionStore/Sessions/=fee81c72_002D0b13_002D439c_002D8921_002D12878bb8cd86/@EntryIndexedValue"><SessionState ContinuousTestingMode="0" IsActive="True" Name="Initialize" xmlns="urn:schemas-jetbrains-com:jetbrains-ut-session">
|
|
||||||
<TestAncestor>
|
|
||||||
<TestId>MSTest::77EB589F-C670-4489-AAD6-2A3C02061FD1::.NETFramework,Version=v4.7.2::TBFTests.Rig.Network.Camera.KeyenceIV3G120.CameraTest.Initialize</TestId>
|
|
||||||
</TestAncestor>
|
|
||||||
</SessionState></s:String>
|
|
||||||
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=Config_002FResources_002FStrings/@EntryIndexedValue">False</s:Boolean>
|
|
||||||
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=DeviceTest_002FDeviceTestDlg/@EntryIndexedValue">False</s:Boolean>
|
|
||||||
|
|
||||||
|
|
||||||
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=Miscellaneous_0020Files_002FWyqupug/@EntryIndexedValue">False</s:Boolean>
|
|
||||||
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FResources_002FStrings/@EntryIndexedValue">True</s:Boolean>
|
|
||||||
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FDataEntry_002FStandartCameraPurchaseOrder_002FCycleBeginningForm/@EntryIndexedValue">False</s:Boolean>
|
|
||||||
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FDataEntry_002FStandartCameraPurchaseOrder_002FCycleEndForm/@EntryIndexedValue">True</s:Boolean>
|
|
||||||
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FDataEntry_002FStandartCameraPurchaseOrder_002FTestStartEndForm/@EntryIndexedValue">False</s:Boolean>
|
|
||||||
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FNetwork_002FAdapterFTP_002FNetadapterCfgCtrl/@EntryIndexedValue">True</s:Boolean>
|
|
||||||
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FNetwork_002FCamera_002FKeyenceIV3G120_002FCameraCfgCtrl/@EntryIndexedValue">True</s:Boolean>
|
|
||||||
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FNetwork_002FCamera_002FRoiForFixedStartKeyence_002FRoiCfgCtrl/@EntryIndexedValue">True</s:Boolean>
|
|
||||||
|
|
||||||
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FNetwork_002FRestAPI_002FRestApiCfgCtrl/@EntryIndexedValue">True</s:Boolean>
|
|
||||||
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FOutput_002FPrinters_002FGroupPrinting_002FSingle_002FPrinterCfgCtrl/@EntryIndexedValue">False</s:Boolean>
|
|
||||||
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FOutput_002FPrinters_002FGroupPrinting_002FSingle_002FPrinterTestBenchComponentSelectorDlg/@EntryIndexedValue">True</s:Boolean>
|
|
||||||
|
|
||||||
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FRegisterReaders_002FFrequencyMeterFromUniCB_002FRRCfgCtrl/@EntryIndexedValue">True</s:Boolean>
|
|
||||||
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FUI_002FBench_002FComponents_002FComponentsManagerDlg/@EntryIndexedValue">False</s:Boolean>
|
|
||||||
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FUI_002FBench_002FMetrology_002FMetrologyDlgAdjustableScaleTab/@EntryIndexedValue">False</s:Boolean>
|
|
||||||
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FUI_002FBench_002FMetrology_002FMetrologyDlgPressMeterTab/@EntryIndexedValue">False</s:Boolean>
|
|
||||||
<s:Boolean x:Key="/Default/ResxEditorPersonal/Initialized/@EntryValue">True</s:Boolean></wpf:ResourceDictionary>
|
|
||||||
@@ -0,0 +1,355 @@
|
|||||||
|
<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
|
||||||
|
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AAssert_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Fd08b5425b14a4a129bfa8e447a81395e12190_003F4e_003F763c73b7_003FAssert_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||||
|
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AComponent_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Fc0c221501f3a41f8ac0af9d6a9dc9ff335fd90_003F1c_003F3d03a130_003FComponent_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||||
|
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AContainerControl_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F32c22f7c1b7049ccad5f07031bb43bf35b8590_003Fb3_003F54768651_003FContainerControl_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||||
|
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AControl_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F32c22f7c1b7049ccad5f07031bb43bf35b8590_003F01_003F35d9c974_003FControl_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||||
|
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AEnum_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F4290c01eea7748b3aa477ca831e6a387531830_003F96_003F1b5cc389_003FEnum_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||||
|
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AExecutionContextSwitcher_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F4290c01eea7748b3aa477ca831e6a387531830_003F78_003Fabacf9b6_003FExecutionContextSwitcher_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||||
|
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AFileDialog_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F32c22f7c1b7049ccad5f07031bb43bf35b8590_003Fe6_003F4ece5b68_003FFileDialog_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||||
|
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AGetChildAtPointSkip_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F32c22f7c1b7049ccad5f07031bb43bf35b8590_003F63_003F931a2e4f_003FGetChildAtPointSkip_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||||
|
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AIList_00601_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F4290c01eea7748b3aa477ca831e6a387531830_003F6e_003Fc16f1098_003FIList_00601_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||||
|
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AILog_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F9c853b67fc2341bf8af0d999ea188b6a42000_003Ff4_003F27b3d1bb_003FILog_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||||
|
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AImage_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F1af41839925b4409b823837d7b5f29d691940_003Fcc_003Fba3dfabe_003FImage_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||||
|
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AJsonConvert_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FSourcesCache_003F43b5ed322493bdcdb2e73ba6f9808f93c7c41fdf_003FJsonConvert_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||||
|
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AList_00601_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F4290c01eea7748b3aa477ca831e6a387531830_003F92_003Fe3eb9ff2_003FList_00601_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||||
|
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ANetworkStream_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Fc0c221501f3a41f8ac0af9d6a9dc9ff335fd90_003F78_003Fdc4af641_003FNetworkStream_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||||
|
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ARotateFlipType_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F1af41839925b4409b823837d7b5f29d691940_003F3b_003Ff7d64930_003FRotateFlipType_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||||
|
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AStreamReader_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F4290c01eea7748b3aa477ca831e6a387531830_003Fb8_003Fd3bcd2f1_003FStreamReader_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||||
|
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AStreamWriter_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F4290c01eea7748b3aa477ca831e6a387531830_003F2e_003F8ad77ef0_003FStreamWriter_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||||
|
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AStringWriter_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F3020f90f960f433086d545c4e07afdfd531820_003F00_003F5212e7ed_003FStringWriter_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||||
|
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ATaskFactory_00601_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F4290c01eea7748b3aa477ca831e6a387531830_003Fe5_003Fa31e7ef9_003FTaskFactory_00601_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||||
|
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ATask_00601_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F4290c01eea7748b3aa477ca831e6a387531830_003F9a_003F1a93d99e_003FTask_00601_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||||
|
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ATask_00601_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F9c2967a135e648bdb993c5397a44991b573620_003Fa3_003F820cf97f_003FTask_00601_002Ecs_002Fz_003A2_002D1/@EntryIndexedValue">ForceIncluded</s:String>
|
||||||
|
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ATcpClient_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Fc0c221501f3a41f8ac0af9d6a9dc9ff335fd90_003Fdb_003Fe9bb8972_003FTcpClient_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||||
|
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ATestMethodInfo_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F4472e9d6a19b4c92bcc9a80bd60ca17d26da8_003F98_003F3ffb6d31_003FTestMethodInfo_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||||
|
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AThread_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F4290c01eea7748b3aa477ca831e6a387531830_003F06_003Fbeac08f5_003FThread_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||||
|
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AThrowHelper_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F4290c01eea7748b3aa477ca831e6a387531830_003F67_003F5737ad8a_003FThrowHelper_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||||
|
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AUdpClient_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Fc0c221501f3a41f8ac0af9d6a9dc9ff335fd90_003Fdb_003Fe89b26d3_003FUdpClient_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||||
|
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AUserControl_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F32c22f7c1b7049ccad5f07031bb43bf35b8590_003Fc3_003F7d8608ff_003FUserControl_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||||
|
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AXmlReflectionImporter_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F9e4992465ee24dc8915fd9be20badb7d281d48_003F14_003Ffe12756e_003FXmlReflectionImporter_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||||
|
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003A_005F_005FError_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F4290c01eea7748b3aa477ca831e6a387531830_003Ffa_003Fa44fa010_003F_005F_005FError_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||||
|
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AMethodInfoExtensions_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E2_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F4472e9d6a19b4c92bcc9a80bd60ca17d26da8_003F63_003F30e5e5fa_003FMethodInfoExtensions_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||||
|
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ATask_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E2_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F3020f90f960f433086d545c4e07afdfd531820_003F34_003F74019b66_003FTask_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||||
|
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AStringBuilder_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F3789ee403a53437cbb6b5d9ab6311f51573620_003F35_003Ff9dfb3b8_003FStringBuilder_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||||
|
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ATestMethodInfo_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F4472e9d6a19b4c92bcc9a80bd60ca17d26da8_003F98_003F3ffb6d31_003FTestMethodInfo_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||||
|
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AXmlReflectionImporter_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F9e4992465ee24dc8915fd9be20badb7d281d48_003F14_003Ffe12756e_003FXmlReflectionImporter_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||||
|
<s:Boolean x:Key="/Default/Environment/UnitTesting/CreateUnitTestDialog/ShowAdvancedOptions/@EntryValue">True</s:Boolean>
|
||||||
|
<s:String x:Key="/Default/Environment/UnitTesting/CreateUnitTestDialog/TestProjectMapping/=743DF7DB_002DC7B6_002D42EB_002D986D_002D0F485E5588E4/@EntryIndexedValue">77EB589F-C670-4489-AAD6-2A3C02061FD1</s:String>
|
||||||
|
<s:String x:Key="/Default/Environment/UnitTesting/CreateUnitTestDialog/TestProjectMapping/=8648FD92_002DCDA1_002D4C3A_002DB5F9_002DFE547CE1FA48/@EntryIndexedValue">77EB589F-C670-4489-AAD6-2A3C02061FD1</s:String>
|
||||||
|
<s:String x:Key="/Default/Environment/UnitTesting/CreateUnitTestDialog/TestTemplateMapping/=MSTest/@EntryIndexedValue">d6790ab7-33c2-4425-b2c9-51480cd1a852</s:String>
|
||||||
|
<s:String x:Key="/Default/Environment/UnitTesting/UnitTestSessionStore/Sessions/=311ca613_002Da634_002D4e0f_002Db9fb_002D4b7af9b7abb2/@EntryIndexedValue"><SessionState ContinuousTestingMode="0" IsActive="True" Name="GetCorrection" xmlns="urn:schemas-jetbrains-com:jetbrains-ut-session">
|
||||||
|
<TestAncestor>
|
||||||
|
<TestId>MSTest::77EB589F-C670-4489-AAD6-2A3C02061FD1::.NETFramework,Version=v4.7.2::TBFTests.Entities.MeasurementCorrectionTest.GetCorrection</TestId>
|
||||||
|
<TestId>MSTest::77EB589F-C670-4489-AAD6-2A3C02061FD1::.NETFramework,Version=v4.7.2::TBFTests.Rig.Modbus.Meret.AdjustableScale.AdjustableMeterTest.GetCorrection</TestId>
|
||||||
|
<TestId>MSTest::77EB589F-C670-4489-AAD6-2A3C02061FD1::.NETFramework,Version=v4.7.2::TBFTests.Rig.Network.Camera.KeyenceIV3G120.CameraTest.RtpListener</TestId>
|
||||||
|
<TestId>MSTest::77EB589F-C670-4489-AAD6-2A3C02061FD1::.NETFramework,Version=v4.7.2::TBFTests.Rig.Network.Camera.KeyenceIV3G120.CameraTest.Initialize</TestId>
|
||||||
|
<TestId>MSTest::77EB589F-C670-4489-AAD6-2A3C02061FD1::.NETFramework,Version=v4.7.2::TBFTests.Rig.Output.FileWriters.Enhanced.WriterTest.GetFilenameTest</TestId>
|
||||||
|
<TestId>MSTest::77EB589F-C670-4489-AAD6-2A3C02061FD1::.NETFramework,Version=v4.7.2::TBFTests.Rig.RegisterReaders.PoseidonCmdStartStop.CliRunnerTest.ExtractJson_Test</TestId>
|
||||||
|
<TestId>MSTest::77EB589F-C670-4489-AAD6-2A3C02061FD1::.NETFramework,Version=v4.7.2::TBFTests.Rig.RegisterReaders.PoseidonCmdStartStop.CliRunnerTest.ExtractJson_Test2</TestId>
|
||||||
|
<TestId>MSTest::77EB589F-C670-4489-AAD6-2A3C02061FD1::.NETFramework,Version=v4.7.2::TBFTests.Rig.RegisterReaders.PoseidonCmdStartStop.CliRunnerTest.TryJsonStringDeserialize_Test</TestId>
|
||||||
|
</TestAncestor>
|
||||||
|
</SessionState></s:String>
|
||||||
|
<s:String x:Key="/Default/Environment/UnitTesting/UnitTestSessionStore/Sessions/=81a12a1c_002Da5e5_002D4c97_002Db426_002D961e76b528cf/@EntryIndexedValue"><SessionState ContinuousTestingMode="0" Name="ExtractJson_Test2" xmlns="urn:schemas-jetbrains-com:jetbrains-ut-session">
|
||||||
|
<Or>
|
||||||
|
<TestAncestor>
|
||||||
|
<TestId>MSTest::77EB589F-C670-4489-AAD6-2A3C02061FD1::.NETFramework,Version=v4.7.2::TBFTests.Rig.RegisterReaders.PoseidonCmdStartStop.CliRunnerTest</TestId>
|
||||||
|
<TestId>MSTest::77EB589F-C670-4489-AAD6-2A3C02061FD1::.NETFramework,Version=v4.7.2::TBFTests.Rig.RegisterReaders.PoseidonCmdStartStop.PoseidonReaderTest.TryGetDeviceId_Test1</TestId>
|
||||||
|
<TestId>MSTest::77EB589F-C670-4489-AAD6-2A3C02061FD1::.NETFramework,Version=v4.7.2::TBFTests.Rig.RegisterReaders.PoseidonCmdStartStop.PoseidonReaderTest.TryGetDeviceId_Test2</TestId>
|
||||||
|
<TestId>MSTest::77EB589F-C670-4489-AAD6-2A3C02061FD1::.NETFramework,Version=v4.7.2::TBFTests.Rig.RegisterReaders.PoseidonCmdStartStop.PoseidonReaderTest.TryGetDeviceId_Test3</TestId>
|
||||||
|
</TestAncestor>
|
||||||
|
<ProjectFile>77EB589F-C670-4489-AAD6-2A3C02061FD1/d:Entities/f:MeasurementCorrectionTest.cs</ProjectFile>
|
||||||
|
</Or>
|
||||||
|
</SessionState></s:String>
|
||||||
|
|
||||||
|
<s:String x:Key="/Default/Environment/UnitTesting/UnitTestSessionStore/Sessions/=fee81c72_002D0b13_002D439c_002D8921_002D12878bb8cd86/@EntryIndexedValue"><SessionState ContinuousTestingMode="0" Name="Initialize" xmlns="urn:schemas-jetbrains-com:jetbrains-ut-session">
|
||||||
|
<s:String x:Key="/Default/Environment/UnitTesting/UnitTestSessionStore/Sessions/=943f9249_002Ded52_002D453e_002Db953_002Db234aabc0cc0/@EntryIndexedValue"><SessionState ContinuousTestingMode="0" IsActive="True" Name="TryJsonStringDeserialize_Test" xmlns="urn:schemas-jetbrains-com:jetbrains-ut-session">
|
||||||
|
<TestAncestor>
|
||||||
|
<TestId>MSTest::77EB589F-C670-4489-AAD6-2A3C02061FD1::.NETFramework,Version=v4.7.2::TBFTests.Rig.RegisterReaders.PoseidonCmdStartStop.CliRunnerTest.TryJsonStringDeserialize_Test</TestId>
|
||||||
|
<TestId>MSTest::77EB589F-C670-4489-AAD6-2A3C02061FD1::.NETFramework,Version=v4.7.2::TBFTests.Rig.Network.Camera.RoiForFixedStartKeyence.RoiTest.Valve</TestId>
|
||||||
|
<TestId>MSTest::77EB589F-C670-4489-AAD6-2A3C02061FD1::.NETFramework,Version=v4.7.2::TBFTests.Rig.Network.Camera.KeyenceIV3G120.CameraTest</TestId>
|
||||||
|
<TestId>MSTest::77EB589F-C670-4489-AAD6-2A3C02061FD1::.NETFramework,Version=v4.7.2::TBFTests.Rig.Network.Camera.CJMS11.CameraTest</TestId>
|
||||||
|
</TestAncestor>
|
||||||
|
</SessionState></s:String>
|
||||||
|
|
||||||
|
<s:String x:Key="/Default/Environment/UnitTesting/UnitTestSessionStore/Sessions/=fee81c72_002D0b13_002D439c_002D8921_002D12878bb8cd86/@EntryIndexedValue"><SessionState ContinuousTestingMode="0" Name="Initialize" xmlns="urn:schemas-jetbrains-com:jetbrains-ut-session">
|
||||||
|
<TestAncestor>
|
||||||
|
<TestId>MSTest::77EB589F-C670-4489-AAD6-2A3C02061FD1::.NETFramework,Version=v4.7.2::TBFTests.Rig.Network.Camera.KeyenceIV3G120.CameraTest.Initialize</TestId>
|
||||||
|
<TestId>MSTest::77EB589F-C670-4489-AAD6-2A3C02061FD1::.NETFramework,Version=v4.7.2::TBFTests.Rig.Output.FileWriters.Enhanced.WriterTest.GetFilenameTest</TestId>
|
||||||
|
<TestId>MSTest::77EB589F-C670-4489-AAD6-2A3C02061FD1::.NETFramework,Version=v4.7.2::TBFTests.Rig.RegisterReaders.PoseidonCmdStartStop.CliRunnerTest.ExtractJson_Test</TestId>
|
||||||
|
</TestAncestor>
|
||||||
|
</SessionState></s:String>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=AppDiagnostic_002FMainForm/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=AppDiagnostic_002FProperties_002FResources/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=Config_002FResources_002FStrings/@EntryIndexedValue">False</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=DeviceTest_002FDeviceTestDlg/@EntryIndexedValue">False</s:Boolean>
|
||||||
|
|
||||||
|
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=Miscellaneous_0020Files_002FWyqupug/@EntryIndexedValue">False</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FProperties_002FResources/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FResources_002FStrings/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FResources_002FStrings_002Ezh_002DCN/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FBuiltIn_002FPump_002FPumpCfgCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FBuiltIn_002FPumpTandem_002FPumpCfgCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FBuiltIn_002FValve_002FValveCfgCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FBuiltIn_002FValveEx_002FValveCfgCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FConfigs_002FNameOnly_002FTestMethodCfgCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FConfigs_002FParamsProvider_002FComponentCfgCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FDanfoss_002FVLT2800_002FPumpCfgCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FDataContainer_002FEvaporation_002FEvaporationCfgCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FDataEntry_002FCombined_002FCycleBeginningForm/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FDataEntry_002FCombined_002FCycleEndForm/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FDataEntry_002FCombined_002FEntryFormCfgCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FDataEntry_002FCombined_002FTestStartEndForm/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FDataEntry_002FHeatMeters12_002FCycleBeginningForm/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FDataEntry_002FHeatMeters12_002FCycleEndForm/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FDataEntry_002FHeatMeters12_002FEntryFormCfgCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FDataEntry_002FHeatMeters12_002FTestStartEndForm/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FDataEntry_002FHeatMeters6_002FCycleBeginningForm/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FDataEntry_002FHeatMeters6_002FCycleEndForm/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FDataEntry_002FHeatMeters6_002FEntryFormCfgCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FDataEntry_002FHeatMeters6_002FTestStartEndForm/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FDataEntry_002FiPerl_002FCycleBeginningForm/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FDataEntry_002FiPerl_002FTestStartEndForm/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FDataEntry_002FPoseidonCmd_002FCycleBeginningForm/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FDataEntry_002FPoseidonCmd_002FTestStartEndForm/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FDataEntry_002FS620_002FCheckItems_002FBarcode/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FDataEntry_002FS620_002FCheckItems_002FKeyboard/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FDataEntry_002FS620_002FCheckItems_002FOkNok/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FDataEntry_002FS620_002FEntryFormCfgCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FDataEntry_002FS620_002FFormForMechanicalMeters/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FDataEntry_002FS620_002FFormForMechanicalMetersWithTracing/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FDataEntry_002FS620_002FTestStartEndForm/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FDataEntry_002FSingle_002FCycleBeginningForm/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FDataEntry_002FSingle_002FCycleEndForm/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FDataEntry_002FSingle_002FEntryFormCfgCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FDataEntry_002FSingle_002FTestStartEndForm/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FDataEntry_002FStandard12_002FCycleBeginningForm/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FDataEntry_002FStandard12_002FCycleEndForm/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FDataEntry_002FStandard12_002FEntryFormCfgCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FDataEntry_002FStandard12_002FTestStartEndForm/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FDataEntry_002FStandard24_002FAdvancedFixedStartTestForm/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FDataEntry_002FStandard24_002FCycleBeginningForm/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FDataEntry_002FStandard24_002FCycleEndForm/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FDataEntry_002FStandard24_002FEntryFormCfgCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FDataEntry_002FStandard24_002FTestStartEndForm/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FDataEntry_002FStandard48_002FCycleBeginningForm/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FDataEntry_002FStandard48_002FCycleEndForm/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FDataEntry_002FStandard48_002FEntryFormCfgCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FDataEntry_002FStandard48_002FTestStartEndForm/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FDataEntry_002FStandard6_002FCycleBeginningForm/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FDataEntry_002FStandard6_002FCycleEndForm/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FDataEntry_002FStandard6_002FEntryFormCfgCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FDataEntry_002FStandard6_002FTestStartEndForm/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FDataEntry_002FStandardCamera_002FCycleBeginningForm/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FDataEntry_002FStandardCamera_002FCycleEndForm/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FDataEntry_002FStandardCamera_002FEntryFormCfgCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FDataEntry_002FStandardCamera_002FTestStartEndForm/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FDataEntry_002FStandartCameraPurchaseOrder_002FCycleBeginningForm/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FDataEntry_002FStandartCameraPurchaseOrder_002FCycleEndForm/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FDataEntry_002FStandartCameraPurchaseOrder_002FEntryFormCfgCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FDataEntry_002FStandartCameraPurchaseOrder_002FTestStartEndForm/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FDataEntry_002FUni_002FCycleBgEnForm/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FDataEntry_002FUni_002FTestStartEndForm/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FDummy_002FRegValve_002FRegulValveCfgCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FKeithley_002FMultimeter_005F2010_005FRS232_002FMultimeterCfgCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FKeithley_002FTempMeter_002FTempMeterCfgCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FMettlerToledo_002FStandard_002FBalanceCfgCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FModbus_002FPumpFM_002FDanfossVLT_002FPumpCfgCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FModbus_002FQuidoRS_002FConfirmationForm/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FModbus_002FQuidoRS_002FQuidoRSCfgCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FModbus_002FTankSelector_002FTankSelectorCfgCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FNetwork_002FAdapterFTP_002FNetadapterCfgCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FNetwork_002FAdapterJMS_002FNetadapterCfgCtrl/@EntryIndexedValue">False</s:Boolean>
|
||||||
|
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FNetwork_002FCamera_002FCJMS11_002FCameraCfgCtrl/@EntryIndexedValue">False</s:Boolean>
|
||||||
|
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FNetwork_002FCamera_002FCJMS11_002FTerminalDlg/@EntryIndexedValue">False</s:Boolean>
|
||||||
|
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FNetwork_002FAdapter_002FNetadapterCfgCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FNetwork_002FAdapterJMS_002FNetadapterCfgCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FNetwork_002FCamera_002FCJMS11_002FCameraCfgCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FNetwork_002FCamera_002FCJMS11_002FTerminalDlg/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FNetwork_002FCamera_002FCLP1611_002FCameraCfgCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FNetwork_002FCamera_002FCLP1611_002FTerminalDlg/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FNetwork_002FCamera_002FDisplay_002FDisplayCfgCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FNetwork_002FCamera_002FDisplay_002FDisplayForm/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FNetwork_002FCamera_002FKeyenceIV3G120_002FCameraCfgCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FNetwork_002FCamera_002FRoiForFixedStartCJMS11_002FRoiCfgCtrl/@EntryIndexedValue">False</s:Boolean>
|
||||||
|
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FNetwork_002FCamera_002FRoiForFixedStartCJMS11_002FRoiCfgCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FNetwork_002FCamera_002FRoiForFixedStartKeyence_002FRoiCfgCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FNetwork_002FCamera_002FRoi_002FRoiCfgCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FNetwork_002FCamera_002FRoiForFixedStart_002FRoiCfgCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FNetwork_002FComet_002FAmbient_002FAmbientCfgCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FNetwork_002FRestAPI_002FRestApiCfgCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FOperations_002FAskYesNoForm/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FOperations_002FLargeMessageBoxForm/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FOperations_002FMessageBoxForm/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FOutput_002FDB_002FProductionTracing_002FTracingCfgCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FOutput_002FDB_002FSaveDiverterCorrections_002FSaveDiverterCorrCfgCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FOutput_002FDB_002FSaveFlowmeterCorrections_002FSaveFlowmeterCorrCfgCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FOutput_002FFileWriters_002FBasic_002FWriterCfgCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FOutput_002FFileWriters_002FElde_002FWriterCfgCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FOutput_002FFileWriters_002FEnhanced_002FWriterCfgCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FOutput_002FFileWriters_002FImageArchiver_002FArchiverCfgCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FOutput_002FFileWriters_002FOneFilePerMeter_002FWriterCfgCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FOutput_002FFileWriters_002FXml_002FWriterCfgCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FOutput_002FFileWriters_002FXmlBatch_002FWriterCfgCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FOutput_002FHeaderFooterDlg/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FOutput_002FPrinters_002FEnhanced_002FPrinterCfgCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FOutput_002FPrinters_002FGroupPrinting_002FSingle_002FPrinterCfgCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FOutput_002FPrinters_002FGroupPrinting_002FSingle_002FPrinterTestBenchComponentSelectorDlg/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FOutput_002FPrinters_002FLabel_002FPrinterCfgCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FOutput_002FPrinters_002FMultiLabel_002FPrinterCfgCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FOutput_002FPrinters_002FOnePerBatch_002FPrinterCfgCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FOutput_002FPrinters_002FOnePerMeter_002FPrinterCfgCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FOutput_002FPrinters_002FZapiska_002FPrinterCfgCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FRegisterReaders_002FFrequencyMeterFromUniCB_002FRRCfgCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FRegisterReaders_002FKPackE_002FDataEntryForRadio_002FCycleBeginningForm/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FRegisterReaders_002FKPackE_002FDataEntryForRadio_002FEntryFormCfgCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FRegisterReaders_002FKPackE_002FDataEntryForRadio_002FTestStartEndForm/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FRegisterReaders_002FKPackE_002FRegisterReader_002FRRCfgCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FRegisterReaders_002FPulsesFromUniCB_002FRRCfgCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FRegisterReaders_002FStandingStartStop_002FRRCfgCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FTestMethods_002FAdjustment_002FWMErrorsForm/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FTestMethods_002FAdjustment_002FWMErrorsForm12/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FTestMethods_002FAdjustment_002FWMErrorsForm24/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FTestMethods_002FAdjustment_002FWMErrorsForm48/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FTestMethods_002FCombinedWithDetection_002FTestMethodCfgCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FTestMethods_002FDiverterTest_002FTestMethodCfgCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FTestMethods_002FEndurance_002FCycleDlg/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FTestMethods_002FEndurance_002FTestMethodCfgCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FTestMethods_002FFixedStart_002FHeatMeters_002FTestMethodCfgCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FTestMethods_002FFixedStartDeferredEval_002FHeatMeters_002FTestMethodCfgCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FTestMethods_002FFixedStartMassCollDeferredEval_002FHeatMeters_002FTestMethodCfgCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FTestMethods_002FFixedStartTankCollection_002FCompound_002FTestMethodCfgCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FTestMethods_002FFixedStartTankCollection_002FSingle_002FTestMethodCfgCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FTestMethods_002FFlyingStart_002FCompound_002FTestMethodCfgCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FTestMethods_002FFlyingStart_002FHeatMeters_002FTestMethodCfgCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FTestMethods_002FFlyingStartFirstRepetWithMassColl_002FCompound_002FTestMethodCfgCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FTestMethods_002FFlyingStartFirstRepetWithMassColl_002FHeatMeters_002FTestMethodCfgCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FTestMethods_002FFlyingStartFirstRepetWithMassColl_002FSingle_002FTestMethodCfgCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FTestMethods_002FFlyingStartMassCollComparative_002FCompound_002FTestMethodCfgCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FTestMethods_002FFlyingStartMassCollComparative_002FHeatMeters_002FTestMethodCfgCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FTestMethods_002FFlyingStartMassCollComparative_002FSingle_002FTestMethodCfgCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FTestMethods_002FFlyingStartMassCollection_002FCompound_002FTestMethodCfgCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FTestMethods_002FFlyingStartMassCollection_002FHeatMeters_002FTestMethodCfgCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FTestMethods_002FFlyingStartMassCollection_002FSingle_002FTestMethodCfgCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FTestMethods_002FFlyingStartMassCollProlonged_002FCompound_002FTestMethodCfgCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FTestMethods_002FFlyingStartMassCollProlonged_002FHeatMeters_002FTestMethodCfgCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FTestMethods_002FFlyingStartMassCollProlonged_002FSingle_002FTestMethodCfgCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FTestMethods_002FFlyingStartTankCollection_002FCompound_002FTestMethodCfgCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FTestMethods_002FFlyingStartTankCollection_002FSingle_002FTestMethodCfgCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FTestMethods_002FGrabImage_002FGrabImageCfgCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FTestMethods_002FiPerlCommunication_002FiPerlCommunicationForm/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FTestMethods_002FiPerlCommunication_002FiPerlHead_002FIperlHeadCfgCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FTestMethods_002FiPerlCommunication_002FiPerlHead_002FIperlHeadTestCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FTestMethods_002FiPerlCommunication_002FTestMethodCfgCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FTestMethods_002FLiveStream_002FCfgCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FTestMethods_002FManualEntry_002FManualEntryCfgCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FTestMethods_002FManualEntry_002FManualEntryForm/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FTestMethods_002FPulsesTest_002FWMPulsesForm/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FTestMethods_002FPulsesTest_002FWMPulsesForm12/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FTestMethods_002FPulsesTest_002FWMPulsesForm24/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FTestMethods_002FPulsesTestManual_002FManualPulsesForm/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FTestMethods_002FPulsesTestManual_002FManualPulsesForm12/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FTestMethods_002FPulsesTestManual_002FManualPulsesForm24/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FTestMethods_002FQ2CorrectionFromHistory_002FFromHistoryCfgCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FTestMethods_002FRoiDetection_002FRoiDetectionCfgCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FTestMethods_002FS640Communication_002FS640CommForm/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FTestMethods_002FSensitivityTest_002FTestMethodCfgCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FTestMethods_002FStandingStart_002FHeatMeters_002FTestMethodCfgCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FTestMethods_002FStandingStartMassCollection_002FHeatMeters_002FTestMethodCfgCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FTestMethods_002FStandingStartMassCollectionAdvance_002FHeatMeters_002FTestMethodCfgCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FUni_002FDiverter_002FDiverterCfgCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FUni_002FRegValve_002FRegValveCfgCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FUni_002FRegValveAnalog_002FRegValveCfgCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FUni_002FRegValveLowRegulTimeSaturation_002FRegValveCfgCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FUni_002FRegValveTandem_002FRegValveTandemCfgCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FVarious_002FCoverTest_002FCoverTestForm/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FVarious_002FManualLevelMsrmnt_002FWaterLevelForm/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FVarious_002FTankWithLevelMsrmnt_002FTankCfgCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FWaterMeters_002FWaterMeter_002FWaterMeterCfgCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FUI_002FBench_002FComponents_002FComponentParametersDlg/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FUI_002FBench_002FComponents_002FComponentsManagerDlg/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FUI_002FBench_002FComponents_002FSelectComponentClassDlg/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FUI_002FBench_002FEditSchDrawing_002FEditSchDrawingDlg/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FUI_002FBench_002FMetrology_002FCalibCertificateCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FUI_002FBench_002FMetrology_002FMetrologyDlg/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FUI_002FBench_002FMetrology_002FMetrologyDlgAdjustableScaleTab/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FUI_002FBench_002FMetrology_002FMetrologyDlgBuoyancyTab/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FUI_002FBench_002FMetrology_002FMetrologyDlgDensityTab/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FUI_002FBench_002FMetrology_002FMetrologyDlgDiverterTab/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FUI_002FBench_002FMetrology_002FMetrologyDlgEvaporationTab/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FUI_002FBench_002FMetrology_002FMetrologyDlgFlowMeterTab/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FUI_002FBench_002FMetrology_002FMetrologyDlgLevelMeterTab/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FUI_002FBench_002FMetrology_002FMetrologyDlgPlatinumResistanceTMeterTab/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FUI_002FBench_002FMetrology_002FMetrologyDlgPressMeterTab/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FUI_002FBench_002FMetrology_002FMetrologyDlgScaleTab/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FUI_002FBench_002FMetrology_002FMetrologyDlgTempMeterTab/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FUI_002FBench_002FPaths_002FPathsDlg/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FUI_002FBench_002FTestProfiles_002FTestProfileDlg/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FUI_002FBench_002FTestProfiles_002FTestProfilesDlg/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FUI_002FBench_002FTransitions_002FTransitionsDlg/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FUI_002FBench_002FUncertainties_002FUncertaintiesDlg/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FUI_002FBench_002FUncertainties_002FUncertntDlgDensityTab/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FUI_002FBench_002FUncertainties_002FUncertntDlgPressMeterTab/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FUI_002FBench_002FUncertainties_002FUncertntDlgScaleTab/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FUI_002FBench_002FUncertainties_002FUncertntDlgTempMeterTab/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FUI_002FCalendar_002FCalendarCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FUI_002FCalendar_002FCalendarTabPageCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FUI_002FCalendar_002FEventDetailsForm/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FUI_002FCamera_002FCameraPictureCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FUI_002FCamera_002FCameraPictureCtrl2/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FUI_002FCamera_002FCameraPictureCtrl3/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FUI_002FCamera_002FCameraPictureFullCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FUI_002FCamera_002FPicturesTabPageCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FUI_002FEventLogs_002FEventLogsTabPageCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FUI_002FGraphs_002FGraphsTabPageCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FUI_002FHelp_002FAboutDlg/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FUI_002FMainWnd_002Ezh_002DCN/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FUI_002FMainWnd/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FUI_002FProcedures_002FProcedureDlg/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FUI_002FProcedures_002FProcedureParamsCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FUI_002FProcedures_002FProcedureParamsMixedCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FUI_002FProcedures_002FProceduresCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FUI_002FProcedures_002FProceduresDlg/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FUI_002FProcedures_002FTestParamsCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FUI_002FProcedures_002FTestWizard_002FConfirmUpdatingTests/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FUI_002FProcedures_002FTestWizard_002FFlowSelection/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FUI_002FProcedures_002FTestWizard_002FHeatMetersSelection/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FUI_002FProcedures_002FTestWizard_002FMethodSelection/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FUI_002FProcedures_002FTestWizard_002FOracleWZTypSelection/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FUI_002FProcedures_002FTestWizard_002FPressureSelection/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FUI_002FProcedures_002FTestWizard_002FRoi1/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FUI_002FProcedures_002FTestWizard_002FRoi2/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FUI_002FProcedures_002FTestWizard_002FRoi3/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FUI_002FProcedures_002FTestWizard_002FTestProfileSelection/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FUI_002FProcedures_002FTestWizard_002FVolumeAndErrorSelection/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FUI_002FProcess_002FProcessTabPageCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FUI_002FResultsMI_002FDeleteFromOracleForm/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FUI_002FResultsMI_002FPreviousResultCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FUI_002FResultsMI_002FPreviousResultsDlg/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FUI_002FResultsMI_002FPrintResultsSelectionDlg/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FUI_002FResultsMI_002FResultsArrangementDlg/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FUI_002FResultsMI_002FResultsTabPageCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FUI_002FResultsMI_002FSendAgainDBAndWMSelectionForm/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FUI_002FSettings_002FBenchesDlg/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FUI_002FSettings_002FDatabaseSettingsDlg/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FUI_002FSettings_002FLanguageDlg/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FUI_002FSettings_002FUpgradeSelectionDlg/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FUI_002FShared_002FBenchControlPanel/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FUI_002FShared_002FClosingTbfForm/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FUI_002FShared_002FErrorDlg/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FUI_002FShared_002FLoginDlgWithBenchSelection/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FUI_002FShared_002FModelessActivityForm/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FUI_002FShared_002FNoBenchOrDatabaseDlg/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FUI_002FShared_002FPrintOrderForm/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FUI_002FShared_002FRemarkDlg/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FUI_002FShared_002FSharedButtons/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FUI_002FShared_002FTabNameDlg/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=TBF_002FUI_002FShared_002FTestProgressCtrl/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/Initialized/@EntryValue">True</s:Boolean></wpf:ResourceDictionary>
|
||||||
@@ -0,0 +1,999 @@
|
|||||||
|
<CorruptedSettingsDescription>
|
||||||
|
<Exception Message="Duplicate entry with key /Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ATestMethodInfo_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F4472e9d6a19b4c92bcc9a80bd60ca17d26da8_003F98_003F3ffb6d31_003FTestMethodInfo_002Ecs/@EntryIndexedValue. Using the second occurrence." Kind="Error">Duplicate entry with key /Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ATestMethodInfo_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F4472e9d6a19b4c92bcc9a80bd60ca17d26da8_003F98_003F3ffb6d31_003FTestMethodInfo_002Ecs/@EntryIndexedValue. Using the second occurrence.
|
||||||
|
|
||||||
|
--- EXCEPTION #1/2 [WarningException]
|
||||||
|
Message = “Duplicate entry with key /Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ATestMethodInfo_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F4472e9d6a19b4c92bcc9a80bd60ca17d26da8_003F98_003F3ffb6d31_003FTestMethodInfo_002Ecs/@EntryIndexedValue. Using the second occurrence.”
|
||||||
|
ExceptionPath = Root.InnerException
|
||||||
|
ClassName = System.ComponentModel.WarningException
|
||||||
|
HResult = COR_E_SYSTEM=80131501
|
||||||
|
|
||||||
|
--- Outer ---
|
||||||
|
|
||||||
|
--- EXCEPTION #2/2 [LoggerException]
|
||||||
|
Message = “Duplicate entry with key /Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ATestMethodInfo_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F4472e9d6a19b4c92bcc9a80bd60ca17d26da8_003F98_003F3ffb6d31_003FTestMethodInfo_002Ecs/@EntryIndexedValue. Using the second occurrence.”
|
||||||
|
InnerException = “Exception #1 at Root.InnerException”
|
||||||
|
StackTraceString = “
|
||||||
|
at JetBrains.Application.Settings.Storage.Persistence.EntriesReader.Step_ReadEntryValueEnd_CommitContent() in Step.il:line IL_002D mvid 5EF9 or Step.il:line IL_0084 mvid 5EF9
|
||||||
|
at JetBrains.Application.Settings.Storage.Persistence.EntriesReader.Step() in Step.il:line IL_002D mvid 5EF9 or Step.il:line IL_0084 mvid 5EF9
|
||||||
|
at JetBrains.Application.Settings.Storage.Persistence.EntriesReader.Run(XmlReader reader, EntryPositionsFlag entryPositionsFlag) in Run.il:line IL_006B mvid 5EF9
|
||||||
|
at JetBrains.Application.Settings.Storage.Persistence.SettingsStoreSerializationToXmlDiskFile.<>c__DisplayClass34_2.<Save_WriteFile_BackupOldCorruptedFile>b__5(XmlReader xmlreader)
|
||||||
|
at JetBrains.Util.XmlReaderEx.ReadXml[TResult](Stream stream, Func`2 FRead) in ReadXml.il:line IL_002F mvid 54EE
|
||||||
|
at JetBrains.Application.Settings.Storage.Persistence.SettingsStoreSerializationToXmlDiskFile.<>c__DisplayClass34_2.<Save_WriteFile_BackupOldCorruptedFile>b__4(Stream streamR)
|
||||||
|
at JetBrains.Util.FileSystemPathOpenEx.ReadStream[T,TF,TFile,TDir](FileSystemPathBase`3 path, Func`2 λRead) in ReadStream.il:line IL_0029 mvid D244
|
||||||
|
at JetBrains.Application.Settings.Storage.Persistence.SettingsStoreSerializationToXmlDiskFile.<>c__DisplayClass34_1.<Save_WriteFile_BackupOldCorruptedFile>b__2()
|
||||||
|
at JetBrains.Util.Logging.Logger.Catch(Action action) in Catch.il:line IL_000F mvid D244
|
||||||
|
at JetBrains.Util.XmlWriterEx.InElement(XmlWriter writer, String name, Action nested, Boolean writeFullEndElement)
|
||||||
|
at JetBrains.Application.Settings.Storage.Persistence.SettingsStoreSerializationToXmlDiskFile.<>c__DisplayClass34_0.<Save_WriteFile_BackupOldCorruptedFile>b__1(XmlWriter xmlwriter)
|
||||||
|
at JetBrains.Util.XmlWriterEx.WriteXml(Stream stream, Action`1 FWrite) in WriteXml.il:line IL_0023 mvid D244
|
||||||
|
at JetBrains.Application.Settings.Storage.Persistence.SettingsStoreSerializationToXmlDiskFile.<>c__DisplayClass34_0.<Save_WriteFile_BackupOldCorruptedFile>b__0(Stream stream)
|
||||||
|
at JetBrains.Util.FileSystemPathOpenEx.WriteStream[T,TFile,TDir](FileSystemPathBase`3 path, Action`1 λWrite) in WriteStream.il:line IL_0029 mvid D244
|
||||||
|
at JetBrains.Application.Settings.Storage.Persistence.SettingsStoreSerializationToXmlDiskFile.Save_WriteFile_BackupOldCorruptedFile(FileSystemPath path) in Save.il:line IL_002C mvid 5EF9 or Save.il:line IL_00D2 mvid 5EF9 or Save.il:line IL_0241 mvid 5EF9
|
||||||
|
at JetBrains.Application.Settings.Storage.Persistence.SettingsStoreSerializationToXmlDiskFile.<>c__DisplayClass31_0.<Save_WriteFile>b__0()
|
||||||
|
at JetBrains.Util.ILoggerEx.Catch(ILogger logger, Action action, ExceptionOrigin origin, LoggingLevel loggingLevel) in Catch.il:line IL_0060 mvid D244
|
||||||
|
at JetBrains.Application.Settings.Storage.Persistence.SettingsStoreSerializationToXmlDiskFile.Save_WriteFile(SaveDiffFlags flagsDiff, SaveForcedFlags flagsForced) in Save.il:line IL_002C mvid 5EF9 or Save.il:line IL_00D2 mvid 5EF9 or Save.il:line IL_0241 mvid 5EF9
|
||||||
|
at JetBrains.Application.Settings.Storage.Persistence.SettingsStoreSerializationToXmlDiskFile.Save(SaveDiffFlags flagsDiff, SaveForcedFlags flagsForced) in Save.il:line IL_002C mvid 5EF9 or Save.il:line IL_00D2 mvid 5EF9 or Save.il:line IL_0241 mvid 5EF9
|
||||||
|
at JetBrains.Application.Settings.Storage.Persistence.SettingsStoreSerializationToXmlDiskFile.<>c__DisplayClass9_0.<Init_FirstLoadLastSave>b__1()
|
||||||
|
at JetBrains.DataFlow.IPropertySignalEx.<>c__DisplayClass0_0`1.<Advise_FallingFront>b__0(PropertyChangedEventArgs`1 args) in IPropertySignalEx.il:line IL_0010 mvid D244 or IPropertySignalEx.il:line IL_0028 mvid D244
|
||||||
|
at JetBrains.DataFlow.CombinedProperty2`3.<>c__DisplayClass8_0.<AdviseCore>b__1() in CombinedProperty2.il:line IL_009C mvid D244
|
||||||
|
at JetBrains.Lifetimes.LifetimeDefinition.Destruct() in Destruct.il:line IL_00A8 mvid 6B8D or Destruct.il:line IL_00B1 mvid 6B8D
|
||||||
|
at JetBrains.Lifetimes.LifetimeDefinition.Terminate() in Terminate.il:line IL_0162 mvid 6B8D
|
||||||
|
at JetBrains.Application.Components.SingletonDescriptorBindings`1.Dispose() in Dispose.il:line IL_0000 mvid F14D
|
||||||
|
at JetBrains.Application.Components.SingletonDescriptor`1.DisposeInternalResources() in DisposeInternalResources.il:line IL_0048 mvid F14D
|
||||||
|
at JetBrains.Application.Components.AsyncDescriptorBase.DoDisposeSafe(Object instance) in DoDisposeSafe.il:line IL_0036 mvid F14D
|
||||||
|
at JetBrains.Application.Components.AsyncDescriptorBase.Dispose() in Dispose.il:line IL_00DD mvid F14D
|
||||||
|
at JetBrains.Application.Components.ComponentStorage.DisposeDescriptor(IComponentDescriptor descriptor) in DisposeDescriptor.il:line IL_000A mvid F14D
|
||||||
|
at JetBrains.Application.Components.ComponentStorage.Terminate() in Terminate.il:line IL_00AE mvid F14D
|
||||||
|
at JetBrains.Lifetimes.LifetimeDefinition.Destruct() in Destruct.il:line IL_00A8 mvid 6B8D or Destruct.il:line IL_00B1 mvid 6B8D
|
||||||
|
at JetBrains.Lifetimes.LifetimeDefinition.Terminate() in Terminate.il:line IL_0162 mvid 6B8D
|
||||||
|
at JetBrains.ProjectModel.SolutionInstance.CloseSolutionInstance() in CloseSolutionInstance.il:line IL_0087 mvid 4DD6
|
||||||
|
at JetBrains.ProjectModel.SolutionManagerBase.CloseSolutionInstance(SolutionInstance instance) in CloseSolutionInstance.il:line IL_0000 mvid 4DD6
|
||||||
|
at JetBrains.ProjectModel.ProjectsHost.SolutionHost.Impl.SolutionHostManager.CloseSolution() in CloseSolution.il:line IL_0046 mvid 1A79
|
||||||
|
at JetBrains.Rider.Backend.Features.ProjectModel.RiderSolutionWatcher.<>c__DisplayClass4_0.<.ctor>b__2() in RiderSolutionWatcher.il:line IL_002D mvid 2082
|
||||||
|
at JetBrains.Lifetimes.LifetimeDefinition.Destruct() in Destruct.il:line IL_00A8 mvid 6B8D or Destruct.il:line IL_00B1 mvid 6B8D
|
||||||
|
at JetBrains.Lifetimes.LifetimeDefinition.Terminate() in Terminate.il:line IL_0162 mvid 6B8D
|
||||||
|
at JetBrains.Lifetimes.LifetimeDefinition.Destruct() in Destruct.il:line IL_00A8 mvid 6B8D or Destruct.il:line IL_00B1 mvid 6B8D
|
||||||
|
at JetBrains.Lifetimes.LifetimeDefinition.Terminate() in Terminate.il:line IL_0162 mvid 6B8D
|
||||||
|
at JetBrains.Application.Components.SingletonDescriptorBindings`1.Dispose() in Dispose.il:line IL_0000 mvid F14D
|
||||||
|
at JetBrains.Application.Components.SingletonDescriptor`1.DisposeInternalResources() in DisposeInternalResources.il:line IL_0048 mvid F14D
|
||||||
|
at JetBrains.Application.Components.AsyncDescriptorBase.DoDisposeSafe(Object instance) in DoDisposeSafe.il:line IL_0036 mvid F14D
|
||||||
|
at JetBrains.Application.Components.AsyncDescriptorBase.Dispose() in Dispose.il:line IL_00DD mvid F14D
|
||||||
|
at JetBrains.Application.Components.ComponentStorage.DisposeDescriptor(IComponentDescriptor descriptor) in DisposeDescriptor.il:line IL_000A mvid F14D
|
||||||
|
at JetBrains.Application.Components.ComponentStorage.Terminate() in Terminate.il:line IL_00AE mvid F14D
|
||||||
|
at JetBrains.Lifetimes.LifetimeDefinition.Destruct() in Destruct.il:line IL_00A8 mvid 6B8D or Destruct.il:line IL_00B1 mvid 6B8D
|
||||||
|
at JetBrains.Lifetimes.LifetimeDefinition.Terminate() in Terminate.il:line IL_0162 mvid 6B8D
|
||||||
|
at JetBrains.Lifetimes.SequentialLifetimes.TrySetNewAndTerminateOld(LifetimeDefinition newLifetimeDefinition, Action`1 actionWithNewLifetime) in TrySetNewAndTerminateOld.il:line IL_001F mvid 6B8D
|
||||||
|
at JetBrains.DataFlow.IPropertyEx.<>c__DisplayClass39_0.<WhenTrue>b__0(PropertyChangedEventArgs`1 args) in IPropertyEx.il:line IL_0000 mvid D244
|
||||||
|
at JetBrains.DataFlow.Signal`1.Fire(TValue value, Object cookie) in Fire.il:line IL_0054 mvid D244
|
||||||
|
at JetBrains.DataFlow.Property`1.SetValue(TValue value, Object cookie)
|
||||||
|
at JetBrains.DataFlow.Property`1.set_Value(TValue value)
|
||||||
|
at JetBrains.Application.Environment.RunsProducts.<>c__DisplayClass5_1.<.ctor>b__0(PropertyChangedEventArgs`1 _)
|
||||||
|
at JetBrains.DataFlow.IPropertySignalEx.<>c__DisplayClass1_0`1.<Advise_FallingFront>b__0(PropertyChangedEventArgs`1 args) in IPropertySignalEx.il:line IL_0010 mvid D244 or IPropertySignalEx.il:line IL_0028 mvid D244
|
||||||
|
at JetBrains.Util.DataFlow.ProjectedProperty`2.<>c__DisplayClass10_2.<AdviseCore>b__4() in ProjectedProperty.il:line IL_0000 mvid D244 or ProjectedProperty.il:line IL_0139 mvid D244
|
||||||
|
at JetBrains.Util.Logging.Logger.Catch(Action action) in Catch.il:line IL_000F mvid D244
|
||||||
|
at JetBrains.Util.DataFlow.ProjectedProperty`2.<>c__DisplayClass10_0.<AdviseCore>b__3(PropertyChangedEventArgs`1 args) in ProjectedProperty.il:line IL_0000 mvid D244 or ProjectedProperty.il:line IL_0139 mvid D244
|
||||||
|
at JetBrains.DataFlow.Signal`1.Fire(TValue value, Object cookie) in Fire.il:line IL_0054 mvid D244
|
||||||
|
at JetBrains.DataFlow.Property`1.SetValue(TValue value, Object cookie)
|
||||||
|
at JetBrains.DataFlow.Property`1.set_Value(TValue value)
|
||||||
|
at JetBrains.Application.Environment.ReportsProductsAllowedToRun.UpdateActiveTellers(Lifetime lifetimeComponent, List`1 tellers, IThreading threading, IProperty`1 propComposite, ILogger logger) in UpdateActiveTellers.il:line IL_00FD mvid 5EF9
|
||||||
|
at JetBrains.Application.Environment.ReportsProductsAllowedToRun.<>c__DisplayClass2_0.<UpdateActiveTellers>g__UpdateActiveTellersAgain|0() in ReportsProductsAllowedToRun.il:line IL_000B mvid 5EF9
|
||||||
|
at JetBrains.DataFlow.IPropertySignalEx.<>c__DisplayClass10_0`1.<Advise_NoAcknowledgement>b__0(PropertyChangedEventArgs`1 args) in IPropertySignalEx.il:line IL_0010 mvid D244 or IPropertySignalEx.il:line IL_0028 mvid D244
|
||||||
|
at JetBrains.DataFlow.Signal`1.Fire(TValue value, Object cookie) in Fire.il:line IL_0054 mvid D244
|
||||||
|
at JetBrains.DataFlow.Property`1.SetValue(TValue value, Object cookie)
|
||||||
|
at JetBrains.DataFlow.Property`1.set_Value(TValue value)
|
||||||
|
at JetBrains.Application.Environment.ApplicationShutdownRequests.<>c__DisplayClass10_0.<ProcessShutdownVerdict>b__0() in ApplicationShutdownRequests.il:line IL_00C3 mvid 5EF9
|
||||||
|
at JetBrains.Util.Concurrency.ExecutionContextEx.WithinExecutionContext(Object o) in WithinExecutionContext.il:line IL_002F mvid D244
|
||||||
|
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state) in RunInternal.il:line IL_0040 mvid 243A
|
||||||
|
at JetBrains.Threading.ReentrancyGuard.Execute(String name, CallerInfo& caller, Action action) in Execute.il:line IL_0122 mvid D244
|
||||||
|
at JetBrains.Threading.ReentrancyGuard.ExecutePendingActions(TaskPriority priorityLowestAllowedToExecute) in ExecutePendingActions.il:line IL_0088 mvid D244
|
||||||
|
at JetBrains.Util.Concurrency.ExecutionContextEx.WithinExecutionContext(Object o) in WithinExecutionContext.il:line IL_002F mvid D244
|
||||||
|
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state) in RunInternal.il:line IL_0040 mvid 243A
|
||||||
|
at JetBrains.Threading.JetDispatcher.Closure.Execute() in Execute.il:line IL_01C6 mvid D244
|
||||||
|
at JetBrains.Threading.JetDispatcher.ProcessQueue(Int32 nMinBucket, Int32 nProcessQueueGeneration) in ProcessQueue.il:line IL_01D0 mvid D244
|
||||||
|
at JetBrains.Util.Concurrency.Dispatcher.JetDispatcherTransportReliabilityLayer.OnInvoke(TaskPriority priority) in OnInvoke.il:line IL_007F mvid D244
|
||||||
|
at JetBrains.Util.Concurrency.Dispatcher.WindowsMessageQueueTransportForJetDispatcher.OnMessage(Void* hwnd, WindowsMessages message, IntPtr wParam, IntPtr lParam) in OnMessage.il:line IL_01CD mvid D244
|
||||||
|
at JetBrains.Interop.Windows.Wrappers.NativeWin32Window.WndProc(Void* hwnd, UInt32 msg, IntPtr wParam, IntPtr lParam) in WndProc.il:line IL_0071 mvid 9494
|
||||||
|
at JetBrains.Interop.WinApi.User32Dll.DispatchMessageW(MSG* lpmsg)
|
||||||
|
at JetBrains.Interop.WinApi.User32Dll.DispatchMessageW(MSG* lpmsg)
|
||||||
|
at JetBrains.Util.Concurrency.Dispatcher.WindowsMessageQueueTransportForJetDispatcher.InternalPumpMessagesOnce()
|
||||||
|
at JetBrains.Util.Concurrency.Dispatcher.WindowsMessageQueueTransportForJetDispatcher.JetBrains.Threading.IPlatformSpecificJetDispatcherThreadUnderlyingTransport.PumpMessagesOnce(TimeSpan maxWaitForFirstMessage)
|
||||||
|
at JetBrains.Threading.RunsAndSleeps.RunOrSleep(Func`1 FCondition, IProperty`1 propCondition, TimeSpan timeout, OnWaitTimeout ontimeout, RunOrSleepFlags flags) in RunOrSleep.il:line IL_03B2 mvid D244
|
||||||
|
at JetBrains.Threading.JetDispatcher.Run(IProperty`1 condition, TimeSpan timeout, Boolean bThrowOnTimeout) in Run.il:line IL_0005 mvid D244
|
||||||
|
at JetBrains.Application.Environment.IJetHostEx.RunHostMessageLoop(IComponentContainer containerEnv) in RunHostMessageLoop.il:line IL_000E mvid 5EF9
|
||||||
|
at JetBrains.Application.Environment.HostParameters.MessagePumpMainLoopHostMixin.JetBrains.Application.Environment.HostParameters.IRunMainLoopHostMixin.RunMainLoop(ComponentContainer containerEnv)
|
||||||
|
at JetBrains.Application.Environment.HostParameters.JetHostParametersCaller.RunMainLoop(ComponentContainer containerEnv) in RunMainLoop.il:line IL_009F mvid 5EF9
|
||||||
|
at JetBrains.Application.Environment.JetEnvironment.<>c__DisplayClass12_0.<RunUntilShutdown>b__0() in JetEnvironment.il:line IL_0000 mvid 5EF9
|
||||||
|
at JetBrains.Util.Concurrency.ExecutionContextEx.WithinExecutionContext(Object o) in WithinExecutionContext.il:line IL_002F mvid D244
|
||||||
|
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state) in RunInternal.il:line IL_0040 mvid 243A
|
||||||
|
at JetBrains.Threading.JetDispatcher.Closure.Execute() in Execute.il:line IL_01C6 mvid D244
|
||||||
|
at JetBrains.Threading.JetDispatcher.Invoke(OuterLifetime lifetime, String name, CallerInfo& caller, Action action, TaskPriority priority, Nullable`1 limit)
|
||||||
|
at JetBrains.Threading.JetDispatcher.Invoke(String name, Action action, TaskPriority priority, String callerFilePath, String callerMemberName)
|
||||||
|
at JetBrains.Application.Environment.JetEnvironment.RunUntilShutdown() in RunUntilShutdown.il:line IL_0044 mvid 5EF9
|
||||||
|
at JetBrains.Application.Environment.JetEnvironment.CreateAndRun(JetHostParameters hostparams) in CreateAndRun.il:line IL_000B mvid 5EF9
|
||||||
|
at JetBrains.Application.Environment.JetHostItems.CreateAndRun(Full input) in CreateAndRun.il:line IL_0000 mvid 5EF9
|
||||||
|
at JetBrains.Rider.Backend.Product.RiderBackendProgram.MainX(Assembly assembly, HostInfo hostInfo) in MainX.il:line IL_00B3 mvid 2082
|
||||||
|
at JetBrains.Rider.Backend.Product.RiderBackendProgram.<>c.<Main>b__4_0(Lifetime lifetime) in RiderBackendProgram.il:line IL_002B mvid 2082
|
||||||
|
at JetBrains.Lifetimes.Lifetime.Using[T](Func`2 action) in Using.il:line IL_0014 mvid 6B8D
|
||||||
|
at JetBrains.Rider.Backend.Product.RiderBackendProgram.Main() in Main.il:line IL_005D mvid 2082
|
||||||
|
”
|
||||||
|
ExceptionPath = Root
|
||||||
|
ClassName = JetBrains.Util.LoggerException
|
||||||
|
HResult = COR_E_APPLICATION=80131600
|
||||||
|
</Exception>
|
||||||
|
<Exception Message="Duplicate entry with key /Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AXmlReflectionImporter_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F9e4992465ee24dc8915fd9be20badb7d281d48_003F14_003Ffe12756e_003FXmlReflectionImporter_002Ecs/@EntryIndexedValue. Using the second occurrence." Kind="Error">Duplicate entry with key /Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AXmlReflectionImporter_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F9e4992465ee24dc8915fd9be20badb7d281d48_003F14_003Ffe12756e_003FXmlReflectionImporter_002Ecs/@EntryIndexedValue. Using the second occurrence.
|
||||||
|
|
||||||
|
--- EXCEPTION #1/2 [WarningException]
|
||||||
|
Message = “Duplicate entry with key /Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AXmlReflectionImporter_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F9e4992465ee24dc8915fd9be20badb7d281d48_003F14_003Ffe12756e_003FXmlReflectionImporter_002Ecs/@EntryIndexedValue. Using the second occurrence.”
|
||||||
|
ExceptionPath = Root.InnerException
|
||||||
|
ClassName = System.ComponentModel.WarningException
|
||||||
|
HResult = COR_E_SYSTEM=80131501
|
||||||
|
|
||||||
|
--- Outer ---
|
||||||
|
|
||||||
|
--- EXCEPTION #2/2 [LoggerException]
|
||||||
|
Message = “Duplicate entry with key /Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AXmlReflectionImporter_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F9e4992465ee24dc8915fd9be20badb7d281d48_003F14_003Ffe12756e_003FXmlReflectionImporter_002Ecs/@EntryIndexedValue. Using the second occurrence.”
|
||||||
|
InnerException = “Exception #1 at Root.InnerException”
|
||||||
|
StackTraceString = “
|
||||||
|
at JetBrains.Application.Settings.Storage.Persistence.EntriesReader.Step_ReadEntryValueEnd_CommitContent() in Step.il:line IL_002D mvid 5EF9 or Step.il:line IL_0084 mvid 5EF9
|
||||||
|
at JetBrains.Application.Settings.Storage.Persistence.EntriesReader.Step() in Step.il:line IL_002D mvid 5EF9 or Step.il:line IL_0084 mvid 5EF9
|
||||||
|
at JetBrains.Application.Settings.Storage.Persistence.EntriesReader.Run(XmlReader reader, EntryPositionsFlag entryPositionsFlag) in Run.il:line IL_006B mvid 5EF9
|
||||||
|
at JetBrains.Application.Settings.Storage.Persistence.SettingsStoreSerializationToXmlDiskFile.<>c__DisplayClass34_2.<Save_WriteFile_BackupOldCorruptedFile>b__5(XmlReader xmlreader)
|
||||||
|
at JetBrains.Util.XmlReaderEx.ReadXml[TResult](Stream stream, Func`2 FRead) in ReadXml.il:line IL_002F mvid 54EE
|
||||||
|
at JetBrains.Application.Settings.Storage.Persistence.SettingsStoreSerializationToXmlDiskFile.<>c__DisplayClass34_2.<Save_WriteFile_BackupOldCorruptedFile>b__4(Stream streamR)
|
||||||
|
at JetBrains.Util.FileSystemPathOpenEx.ReadStream[T,TF,TFile,TDir](FileSystemPathBase`3 path, Func`2 λRead) in ReadStream.il:line IL_0029 mvid D244
|
||||||
|
at JetBrains.Application.Settings.Storage.Persistence.SettingsStoreSerializationToXmlDiskFile.<>c__DisplayClass34_1.<Save_WriteFile_BackupOldCorruptedFile>b__2()
|
||||||
|
at JetBrains.Util.Logging.Logger.Catch(Action action) in Catch.il:line IL_000F mvid D244
|
||||||
|
at JetBrains.Util.XmlWriterEx.InElement(XmlWriter writer, String name, Action nested, Boolean writeFullEndElement)
|
||||||
|
at JetBrains.Application.Settings.Storage.Persistence.SettingsStoreSerializationToXmlDiskFile.<>c__DisplayClass34_0.<Save_WriteFile_BackupOldCorruptedFile>b__1(XmlWriter xmlwriter)
|
||||||
|
at JetBrains.Util.XmlWriterEx.WriteXml(Stream stream, Action`1 FWrite) in WriteXml.il:line IL_0023 mvid D244
|
||||||
|
at JetBrains.Application.Settings.Storage.Persistence.SettingsStoreSerializationToXmlDiskFile.<>c__DisplayClass34_0.<Save_WriteFile_BackupOldCorruptedFile>b__0(Stream stream)
|
||||||
|
at JetBrains.Util.FileSystemPathOpenEx.WriteStream[T,TFile,TDir](FileSystemPathBase`3 path, Action`1 λWrite) in WriteStream.il:line IL_0029 mvid D244
|
||||||
|
at JetBrains.Application.Settings.Storage.Persistence.SettingsStoreSerializationToXmlDiskFile.Save_WriteFile_BackupOldCorruptedFile(FileSystemPath path) in Save.il:line IL_002C mvid 5EF9 or Save.il:line IL_00D2 mvid 5EF9 or Save.il:line IL_0241 mvid 5EF9
|
||||||
|
at JetBrains.Application.Settings.Storage.Persistence.SettingsStoreSerializationToXmlDiskFile.<>c__DisplayClass31_0.<Save_WriteFile>b__0()
|
||||||
|
at JetBrains.Util.ILoggerEx.Catch(ILogger logger, Action action, ExceptionOrigin origin, LoggingLevel loggingLevel) in Catch.il:line IL_0060 mvid D244
|
||||||
|
at JetBrains.Application.Settings.Storage.Persistence.SettingsStoreSerializationToXmlDiskFile.Save_WriteFile(SaveDiffFlags flagsDiff, SaveForcedFlags flagsForced) in Save.il:line IL_002C mvid 5EF9 or Save.il:line IL_00D2 mvid 5EF9 or Save.il:line IL_0241 mvid 5EF9
|
||||||
|
at JetBrains.Application.Settings.Storage.Persistence.SettingsStoreSerializationToXmlDiskFile.Save(SaveDiffFlags flagsDiff, SaveForcedFlags flagsForced) in Save.il:line IL_002C mvid 5EF9 or Save.il:line IL_00D2 mvid 5EF9 or Save.il:line IL_0241 mvid 5EF9
|
||||||
|
at JetBrains.Application.Settings.Storage.Persistence.SettingsStoreSerializationToXmlDiskFile.<>c__DisplayClass9_0.<Init_FirstLoadLastSave>b__1()
|
||||||
|
at JetBrains.DataFlow.IPropertySignalEx.<>c__DisplayClass0_0`1.<Advise_FallingFront>b__0(PropertyChangedEventArgs`1 args) in IPropertySignalEx.il:line IL_0010 mvid D244 or IPropertySignalEx.il:line IL_0028 mvid D244
|
||||||
|
at JetBrains.DataFlow.CombinedProperty2`3.<>c__DisplayClass8_0.<AdviseCore>b__1() in CombinedProperty2.il:line IL_009C mvid D244
|
||||||
|
at JetBrains.Lifetimes.LifetimeDefinition.Destruct() in Destruct.il:line IL_00A8 mvid 6B8D or Destruct.il:line IL_00B1 mvid 6B8D
|
||||||
|
at JetBrains.Lifetimes.LifetimeDefinition.Terminate() in Terminate.il:line IL_0162 mvid 6B8D
|
||||||
|
at JetBrains.Application.Components.SingletonDescriptorBindings`1.Dispose() in Dispose.il:line IL_0000 mvid F14D
|
||||||
|
at JetBrains.Application.Components.SingletonDescriptor`1.DisposeInternalResources() in DisposeInternalResources.il:line IL_0048 mvid F14D
|
||||||
|
at JetBrains.Application.Components.AsyncDescriptorBase.DoDisposeSafe(Object instance) in DoDisposeSafe.il:line IL_0036 mvid F14D
|
||||||
|
at JetBrains.Application.Components.AsyncDescriptorBase.Dispose() in Dispose.il:line IL_00DD mvid F14D
|
||||||
|
at JetBrains.Application.Components.ComponentStorage.DisposeDescriptor(IComponentDescriptor descriptor) in DisposeDescriptor.il:line IL_000A mvid F14D
|
||||||
|
at JetBrains.Application.Components.ComponentStorage.Terminate() in Terminate.il:line IL_00AE mvid F14D
|
||||||
|
at JetBrains.Lifetimes.LifetimeDefinition.Destruct() in Destruct.il:line IL_00A8 mvid 6B8D or Destruct.il:line IL_00B1 mvid 6B8D
|
||||||
|
at JetBrains.Lifetimes.LifetimeDefinition.Terminate() in Terminate.il:line IL_0162 mvid 6B8D
|
||||||
|
at JetBrains.ProjectModel.SolutionInstance.CloseSolutionInstance() in CloseSolutionInstance.il:line IL_0087 mvid 4DD6
|
||||||
|
at JetBrains.ProjectModel.SolutionManagerBase.CloseSolutionInstance(SolutionInstance instance) in CloseSolutionInstance.il:line IL_0000 mvid 4DD6
|
||||||
|
at JetBrains.ProjectModel.ProjectsHost.SolutionHost.Impl.SolutionHostManager.CloseSolution() in CloseSolution.il:line IL_0046 mvid 1A79
|
||||||
|
at JetBrains.Rider.Backend.Features.ProjectModel.RiderSolutionWatcher.<>c__DisplayClass4_0.<.ctor>b__2() in RiderSolutionWatcher.il:line IL_002D mvid 2082
|
||||||
|
at JetBrains.Lifetimes.LifetimeDefinition.Destruct() in Destruct.il:line IL_00A8 mvid 6B8D or Destruct.il:line IL_00B1 mvid 6B8D
|
||||||
|
at JetBrains.Lifetimes.LifetimeDefinition.Terminate() in Terminate.il:line IL_0162 mvid 6B8D
|
||||||
|
at JetBrains.Lifetimes.LifetimeDefinition.Destruct() in Destruct.il:line IL_00A8 mvid 6B8D or Destruct.il:line IL_00B1 mvid 6B8D
|
||||||
|
at JetBrains.Lifetimes.LifetimeDefinition.Terminate() in Terminate.il:line IL_0162 mvid 6B8D
|
||||||
|
at JetBrains.Application.Components.SingletonDescriptorBindings`1.Dispose() in Dispose.il:line IL_0000 mvid F14D
|
||||||
|
at JetBrains.Application.Components.SingletonDescriptor`1.DisposeInternalResources() in DisposeInternalResources.il:line IL_0048 mvid F14D
|
||||||
|
at JetBrains.Application.Components.AsyncDescriptorBase.DoDisposeSafe(Object instance) in DoDisposeSafe.il:line IL_0036 mvid F14D
|
||||||
|
at JetBrains.Application.Components.AsyncDescriptorBase.Dispose() in Dispose.il:line IL_00DD mvid F14D
|
||||||
|
at JetBrains.Application.Components.ComponentStorage.DisposeDescriptor(IComponentDescriptor descriptor) in DisposeDescriptor.il:line IL_000A mvid F14D
|
||||||
|
at JetBrains.Application.Components.ComponentStorage.Terminate() in Terminate.il:line IL_00AE mvid F14D
|
||||||
|
at JetBrains.Lifetimes.LifetimeDefinition.Destruct() in Destruct.il:line IL_00A8 mvid 6B8D or Destruct.il:line IL_00B1 mvid 6B8D
|
||||||
|
at JetBrains.Lifetimes.LifetimeDefinition.Terminate() in Terminate.il:line IL_0162 mvid 6B8D
|
||||||
|
at JetBrains.Lifetimes.SequentialLifetimes.TrySetNewAndTerminateOld(LifetimeDefinition newLifetimeDefinition, Action`1 actionWithNewLifetime) in TrySetNewAndTerminateOld.il:line IL_001F mvid 6B8D
|
||||||
|
at JetBrains.DataFlow.IPropertyEx.<>c__DisplayClass39_0.<WhenTrue>b__0(PropertyChangedEventArgs`1 args) in IPropertyEx.il:line IL_0000 mvid D244
|
||||||
|
at JetBrains.DataFlow.Signal`1.Fire(TValue value, Object cookie) in Fire.il:line IL_0054 mvid D244
|
||||||
|
at JetBrains.DataFlow.Property`1.SetValue(TValue value, Object cookie)
|
||||||
|
at JetBrains.DataFlow.Property`1.set_Value(TValue value)
|
||||||
|
at JetBrains.Application.Environment.RunsProducts.<>c__DisplayClass5_1.<.ctor>b__0(PropertyChangedEventArgs`1 _)
|
||||||
|
at JetBrains.DataFlow.IPropertySignalEx.<>c__DisplayClass1_0`1.<Advise_FallingFront>b__0(PropertyChangedEventArgs`1 args) in IPropertySignalEx.il:line IL_0010 mvid D244 or IPropertySignalEx.il:line IL_0028 mvid D244
|
||||||
|
at JetBrains.Util.DataFlow.ProjectedProperty`2.<>c__DisplayClass10_2.<AdviseCore>b__4() in ProjectedProperty.il:line IL_0000 mvid D244 or ProjectedProperty.il:line IL_0139 mvid D244
|
||||||
|
at JetBrains.Util.Logging.Logger.Catch(Action action) in Catch.il:line IL_000F mvid D244
|
||||||
|
at JetBrains.Util.DataFlow.ProjectedProperty`2.<>c__DisplayClass10_0.<AdviseCore>b__3(PropertyChangedEventArgs`1 args) in ProjectedProperty.il:line IL_0000 mvid D244 or ProjectedProperty.il:line IL_0139 mvid D244
|
||||||
|
at JetBrains.DataFlow.Signal`1.Fire(TValue value, Object cookie) in Fire.il:line IL_0054 mvid D244
|
||||||
|
at JetBrains.DataFlow.Property`1.SetValue(TValue value, Object cookie)
|
||||||
|
at JetBrains.DataFlow.Property`1.set_Value(TValue value)
|
||||||
|
at JetBrains.Application.Environment.ReportsProductsAllowedToRun.UpdateActiveTellers(Lifetime lifetimeComponent, List`1 tellers, IThreading threading, IProperty`1 propComposite, ILogger logger) in UpdateActiveTellers.il:line IL_00FD mvid 5EF9
|
||||||
|
at JetBrains.Application.Environment.ReportsProductsAllowedToRun.<>c__DisplayClass2_0.<UpdateActiveTellers>g__UpdateActiveTellersAgain|0() in ReportsProductsAllowedToRun.il:line IL_000B mvid 5EF9
|
||||||
|
at JetBrains.DataFlow.IPropertySignalEx.<>c__DisplayClass10_0`1.<Advise_NoAcknowledgement>b__0(PropertyChangedEventArgs`1 args) in IPropertySignalEx.il:line IL_0010 mvid D244 or IPropertySignalEx.il:line IL_0028 mvid D244
|
||||||
|
at JetBrains.DataFlow.Signal`1.Fire(TValue value, Object cookie) in Fire.il:line IL_0054 mvid D244
|
||||||
|
at JetBrains.DataFlow.Property`1.SetValue(TValue value, Object cookie)
|
||||||
|
at JetBrains.DataFlow.Property`1.set_Value(TValue value)
|
||||||
|
at JetBrains.Application.Environment.ApplicationShutdownRequests.<>c__DisplayClass10_0.<ProcessShutdownVerdict>b__0() in ApplicationShutdownRequests.il:line IL_00C3 mvid 5EF9
|
||||||
|
at JetBrains.Util.Concurrency.ExecutionContextEx.WithinExecutionContext(Object o) in WithinExecutionContext.il:line IL_002F mvid D244
|
||||||
|
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state) in RunInternal.il:line IL_0040 mvid 243A
|
||||||
|
at JetBrains.Threading.ReentrancyGuard.Execute(String name, CallerInfo& caller, Action action) in Execute.il:line IL_0122 mvid D244
|
||||||
|
at JetBrains.Threading.ReentrancyGuard.ExecutePendingActions(TaskPriority priorityLowestAllowedToExecute) in ExecutePendingActions.il:line IL_0088 mvid D244
|
||||||
|
at JetBrains.Util.Concurrency.ExecutionContextEx.WithinExecutionContext(Object o) in WithinExecutionContext.il:line IL_002F mvid D244
|
||||||
|
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state) in RunInternal.il:line IL_0040 mvid 243A
|
||||||
|
at JetBrains.Threading.JetDispatcher.Closure.Execute() in Execute.il:line IL_01C6 mvid D244
|
||||||
|
at JetBrains.Threading.JetDispatcher.ProcessQueue(Int32 nMinBucket, Int32 nProcessQueueGeneration) in ProcessQueue.il:line IL_01D0 mvid D244
|
||||||
|
at JetBrains.Util.Concurrency.Dispatcher.JetDispatcherTransportReliabilityLayer.OnInvoke(TaskPriority priority) in OnInvoke.il:line IL_007F mvid D244
|
||||||
|
at JetBrains.Util.Concurrency.Dispatcher.WindowsMessageQueueTransportForJetDispatcher.OnMessage(Void* hwnd, WindowsMessages message, IntPtr wParam, IntPtr lParam) in OnMessage.il:line IL_01CD mvid D244
|
||||||
|
at JetBrains.Interop.Windows.Wrappers.NativeWin32Window.WndProc(Void* hwnd, UInt32 msg, IntPtr wParam, IntPtr lParam) in WndProc.il:line IL_0071 mvid 9494
|
||||||
|
at JetBrains.Interop.WinApi.User32Dll.DispatchMessageW(MSG* lpmsg)
|
||||||
|
at JetBrains.Interop.WinApi.User32Dll.DispatchMessageW(MSG* lpmsg)
|
||||||
|
at JetBrains.Util.Concurrency.Dispatcher.WindowsMessageQueueTransportForJetDispatcher.InternalPumpMessagesOnce()
|
||||||
|
at JetBrains.Util.Concurrency.Dispatcher.WindowsMessageQueueTransportForJetDispatcher.JetBrains.Threading.IPlatformSpecificJetDispatcherThreadUnderlyingTransport.PumpMessagesOnce(TimeSpan maxWaitForFirstMessage)
|
||||||
|
at JetBrains.Threading.RunsAndSleeps.RunOrSleep(Func`1 FCondition, IProperty`1 propCondition, TimeSpan timeout, OnWaitTimeout ontimeout, RunOrSleepFlags flags) in RunOrSleep.il:line IL_03B2 mvid D244
|
||||||
|
at JetBrains.Threading.JetDispatcher.Run(IProperty`1 condition, TimeSpan timeout, Boolean bThrowOnTimeout) in Run.il:line IL_0005 mvid D244
|
||||||
|
at JetBrains.Application.Environment.IJetHostEx.RunHostMessageLoop(IComponentContainer containerEnv) in RunHostMessageLoop.il:line IL_000E mvid 5EF9
|
||||||
|
at JetBrains.Application.Environment.HostParameters.MessagePumpMainLoopHostMixin.JetBrains.Application.Environment.HostParameters.IRunMainLoopHostMixin.RunMainLoop(ComponentContainer containerEnv)
|
||||||
|
at JetBrains.Application.Environment.HostParameters.JetHostParametersCaller.RunMainLoop(ComponentContainer containerEnv) in RunMainLoop.il:line IL_009F mvid 5EF9
|
||||||
|
at JetBrains.Application.Environment.JetEnvironment.<>c__DisplayClass12_0.<RunUntilShutdown>b__0() in JetEnvironment.il:line IL_0000 mvid 5EF9
|
||||||
|
at JetBrains.Util.Concurrency.ExecutionContextEx.WithinExecutionContext(Object o) in WithinExecutionContext.il:line IL_002F mvid D244
|
||||||
|
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state) in RunInternal.il:line IL_0040 mvid 243A
|
||||||
|
at JetBrains.Threading.JetDispatcher.Closure.Execute() in Execute.il:line IL_01C6 mvid D244
|
||||||
|
at JetBrains.Threading.JetDispatcher.Invoke(OuterLifetime lifetime, String name, CallerInfo& caller, Action action, TaskPriority priority, Nullable`1 limit)
|
||||||
|
at JetBrains.Threading.JetDispatcher.Invoke(String name, Action action, TaskPriority priority, String callerFilePath, String callerMemberName)
|
||||||
|
at JetBrains.Application.Environment.JetEnvironment.RunUntilShutdown() in RunUntilShutdown.il:line IL_0044 mvid 5EF9
|
||||||
|
at JetBrains.Application.Environment.JetEnvironment.CreateAndRun(JetHostParameters hostparams) in CreateAndRun.il:line IL_000B mvid 5EF9
|
||||||
|
at JetBrains.Application.Environment.JetHostItems.CreateAndRun(Full input) in CreateAndRun.il:line IL_0000 mvid 5EF9
|
||||||
|
at JetBrains.Rider.Backend.Product.RiderBackendProgram.MainX(Assembly assembly, HostInfo hostInfo) in MainX.il:line IL_00B3 mvid 2082
|
||||||
|
at JetBrains.Rider.Backend.Product.RiderBackendProgram.<>c.<Main>b__4_0(Lifetime lifetime) in RiderBackendProgram.il:line IL_002B mvid 2082
|
||||||
|
at JetBrains.Lifetimes.Lifetime.Using[T](Func`2 action) in Using.il:line IL_0014 mvid 6B8D
|
||||||
|
at JetBrains.Rider.Backend.Product.RiderBackendProgram.Main() in Main.il:line IL_005D mvid 2082
|
||||||
|
”
|
||||||
|
ExceptionPath = Root
|
||||||
|
ClassName = JetBrains.Util.LoggerException
|
||||||
|
HResult = COR_E_APPLICATION=80131600
|
||||||
|
</Exception>
|
||||||
|
<Exception Message="Duplicate entry with key /Default/Environment/UnitTesting/UnitTestSessionStore/Sessions/=fee81c72_002D0b13_002D439c_002D8921_002D12878bb8cd86/@EntryIndexedValue. Using the second occurrence." Kind="Error">Duplicate entry with key /Default/Environment/UnitTesting/UnitTestSessionStore/Sessions/=fee81c72_002D0b13_002D439c_002D8921_002D12878bb8cd86/@EntryIndexedValue. Using the second occurrence.
|
||||||
|
|
||||||
|
--- EXCEPTION #1/2 [WarningException]
|
||||||
|
Message = “Duplicate entry with key /Default/Environment/UnitTesting/UnitTestSessionStore/Sessions/=fee81c72_002D0b13_002D439c_002D8921_002D12878bb8cd86/@EntryIndexedValue. Using the second occurrence.”
|
||||||
|
ExceptionPath = Root.InnerException
|
||||||
|
ClassName = System.ComponentModel.WarningException
|
||||||
|
HResult = COR_E_SYSTEM=80131501
|
||||||
|
|
||||||
|
--- Outer ---
|
||||||
|
|
||||||
|
--- EXCEPTION #2/2 [LoggerException]
|
||||||
|
Message = “Duplicate entry with key /Default/Environment/UnitTesting/UnitTestSessionStore/Sessions/=fee81c72_002D0b13_002D439c_002D8921_002D12878bb8cd86/@EntryIndexedValue. Using the second occurrence.”
|
||||||
|
InnerException = “Exception #1 at Root.InnerException”
|
||||||
|
StackTraceString = “
|
||||||
|
at JetBrains.Application.Settings.Storage.Persistence.EntriesReader.Step_ReadEntryValueEnd_CommitContent() in Step.il:line IL_002D mvid 5EF9 or Step.il:line IL_0084 mvid 5EF9
|
||||||
|
at JetBrains.Application.Settings.Storage.Persistence.EntriesReader.Step() in Step.il:line IL_002D mvid 5EF9 or Step.il:line IL_0084 mvid 5EF9
|
||||||
|
at JetBrains.Application.Settings.Storage.Persistence.EntriesReader.Run(XmlReader reader, EntryPositionsFlag entryPositionsFlag) in Run.il:line IL_006B mvid 5EF9
|
||||||
|
at JetBrains.Application.Settings.Storage.Persistence.SettingsStoreSerializationToXmlDiskFile.<>c__DisplayClass34_2.<Save_WriteFile_BackupOldCorruptedFile>b__5(XmlReader xmlreader)
|
||||||
|
at JetBrains.Util.XmlReaderEx.ReadXml[TResult](Stream stream, Func`2 FRead) in ReadXml.il:line IL_002F mvid 54EE
|
||||||
|
at JetBrains.Application.Settings.Storage.Persistence.SettingsStoreSerializationToXmlDiskFile.<>c__DisplayClass34_2.<Save_WriteFile_BackupOldCorruptedFile>b__4(Stream streamR)
|
||||||
|
at JetBrains.Util.FileSystemPathOpenEx.ReadStream[T,TF,TFile,TDir](FileSystemPathBase`3 path, Func`2 λRead) in ReadStream.il:line IL_0029 mvid D244
|
||||||
|
at JetBrains.Application.Settings.Storage.Persistence.SettingsStoreSerializationToXmlDiskFile.<>c__DisplayClass34_1.<Save_WriteFile_BackupOldCorruptedFile>b__2()
|
||||||
|
at JetBrains.Util.Logging.Logger.Catch(Action action) in Catch.il:line IL_000F mvid D244
|
||||||
|
at JetBrains.Util.XmlWriterEx.InElement(XmlWriter writer, String name, Action nested, Boolean writeFullEndElement)
|
||||||
|
at JetBrains.Application.Settings.Storage.Persistence.SettingsStoreSerializationToXmlDiskFile.<>c__DisplayClass34_0.<Save_WriteFile_BackupOldCorruptedFile>b__1(XmlWriter xmlwriter)
|
||||||
|
at JetBrains.Util.XmlWriterEx.WriteXml(Stream stream, Action`1 FWrite) in WriteXml.il:line IL_0023 mvid D244
|
||||||
|
at JetBrains.Application.Settings.Storage.Persistence.SettingsStoreSerializationToXmlDiskFile.<>c__DisplayClass34_0.<Save_WriteFile_BackupOldCorruptedFile>b__0(Stream stream)
|
||||||
|
at JetBrains.Util.FileSystemPathOpenEx.WriteStream[T,TFile,TDir](FileSystemPathBase`3 path, Action`1 λWrite) in WriteStream.il:line IL_0029 mvid D244
|
||||||
|
at JetBrains.Application.Settings.Storage.Persistence.SettingsStoreSerializationToXmlDiskFile.Save_WriteFile_BackupOldCorruptedFile(FileSystemPath path) in Save.il:line IL_002C mvid 5EF9 or Save.il:line IL_00D2 mvid 5EF9 or Save.il:line IL_0241 mvid 5EF9
|
||||||
|
at JetBrains.Application.Settings.Storage.Persistence.SettingsStoreSerializationToXmlDiskFile.<>c__DisplayClass31_0.<Save_WriteFile>b__0()
|
||||||
|
at JetBrains.Util.ILoggerEx.Catch(ILogger logger, Action action, ExceptionOrigin origin, LoggingLevel loggingLevel) in Catch.il:line IL_0060 mvid D244
|
||||||
|
at JetBrains.Application.Settings.Storage.Persistence.SettingsStoreSerializationToXmlDiskFile.Save_WriteFile(SaveDiffFlags flagsDiff, SaveForcedFlags flagsForced) in Save.il:line IL_002C mvid 5EF9 or Save.il:line IL_00D2 mvid 5EF9 or Save.il:line IL_0241 mvid 5EF9
|
||||||
|
at JetBrains.Application.Settings.Storage.Persistence.SettingsStoreSerializationToXmlDiskFile.Save(SaveDiffFlags flagsDiff, SaveForcedFlags flagsForced) in Save.il:line IL_002C mvid 5EF9 or Save.il:line IL_00D2 mvid 5EF9 or Save.il:line IL_0241 mvid 5EF9
|
||||||
|
at JetBrains.Application.Settings.Storage.Persistence.SettingsStoreSerializationToXmlDiskFile.<>c__DisplayClass9_0.<Init_FirstLoadLastSave>b__1()
|
||||||
|
at JetBrains.DataFlow.IPropertySignalEx.<>c__DisplayClass0_0`1.<Advise_FallingFront>b__0(PropertyChangedEventArgs`1 args) in IPropertySignalEx.il:line IL_0010 mvid D244 or IPropertySignalEx.il:line IL_0028 mvid D244
|
||||||
|
at JetBrains.DataFlow.CombinedProperty2`3.<>c__DisplayClass8_0.<AdviseCore>b__1() in CombinedProperty2.il:line IL_009C mvid D244
|
||||||
|
at JetBrains.Lifetimes.LifetimeDefinition.Destruct() in Destruct.il:line IL_00A8 mvid 6B8D or Destruct.il:line IL_00B1 mvid 6B8D
|
||||||
|
at JetBrains.Lifetimes.LifetimeDefinition.Terminate() in Terminate.il:line IL_0162 mvid 6B8D
|
||||||
|
at JetBrains.Application.Components.SingletonDescriptorBindings`1.Dispose() in Dispose.il:line IL_0000 mvid F14D
|
||||||
|
at JetBrains.Application.Components.SingletonDescriptor`1.DisposeInternalResources() in DisposeInternalResources.il:line IL_0048 mvid F14D
|
||||||
|
at JetBrains.Application.Components.AsyncDescriptorBase.DoDisposeSafe(Object instance) in DoDisposeSafe.il:line IL_0036 mvid F14D
|
||||||
|
at JetBrains.Application.Components.AsyncDescriptorBase.Dispose() in Dispose.il:line IL_00DD mvid F14D
|
||||||
|
at JetBrains.Application.Components.ComponentStorage.DisposeDescriptor(IComponentDescriptor descriptor) in DisposeDescriptor.il:line IL_000A mvid F14D
|
||||||
|
at JetBrains.Application.Components.ComponentStorage.Terminate() in Terminate.il:line IL_00AE mvid F14D
|
||||||
|
at JetBrains.Lifetimes.LifetimeDefinition.Destruct() in Destruct.il:line IL_00A8 mvid 6B8D or Destruct.il:line IL_00B1 mvid 6B8D
|
||||||
|
at JetBrains.Lifetimes.LifetimeDefinition.Terminate() in Terminate.il:line IL_0162 mvid 6B8D
|
||||||
|
at JetBrains.ProjectModel.SolutionInstance.CloseSolutionInstance() in CloseSolutionInstance.il:line IL_0087 mvid 4DD6
|
||||||
|
at JetBrains.ProjectModel.SolutionManagerBase.CloseSolutionInstance(SolutionInstance instance) in CloseSolutionInstance.il:line IL_0000 mvid 4DD6
|
||||||
|
at JetBrains.ProjectModel.ProjectsHost.SolutionHost.Impl.SolutionHostManager.CloseSolution() in CloseSolution.il:line IL_0046 mvid 1A79
|
||||||
|
at JetBrains.Rider.Backend.Features.ProjectModel.RiderSolutionWatcher.<>c__DisplayClass4_0.<.ctor>b__2() in RiderSolutionWatcher.il:line IL_002D mvid 2082
|
||||||
|
at JetBrains.Lifetimes.LifetimeDefinition.Destruct() in Destruct.il:line IL_00A8 mvid 6B8D or Destruct.il:line IL_00B1 mvid 6B8D
|
||||||
|
at JetBrains.Lifetimes.LifetimeDefinition.Terminate() in Terminate.il:line IL_0162 mvid 6B8D
|
||||||
|
at JetBrains.Lifetimes.LifetimeDefinition.Destruct() in Destruct.il:line IL_00A8 mvid 6B8D or Destruct.il:line IL_00B1 mvid 6B8D
|
||||||
|
at JetBrains.Lifetimes.LifetimeDefinition.Terminate() in Terminate.il:line IL_0162 mvid 6B8D
|
||||||
|
at JetBrains.Application.Components.SingletonDescriptorBindings`1.Dispose() in Dispose.il:line IL_0000 mvid F14D
|
||||||
|
at JetBrains.Application.Components.SingletonDescriptor`1.DisposeInternalResources() in DisposeInternalResources.il:line IL_0048 mvid F14D
|
||||||
|
at JetBrains.Application.Components.AsyncDescriptorBase.DoDisposeSafe(Object instance) in DoDisposeSafe.il:line IL_0036 mvid F14D
|
||||||
|
at JetBrains.Application.Components.AsyncDescriptorBase.Dispose() in Dispose.il:line IL_00DD mvid F14D
|
||||||
|
at JetBrains.Application.Components.ComponentStorage.DisposeDescriptor(IComponentDescriptor descriptor) in DisposeDescriptor.il:line IL_000A mvid F14D
|
||||||
|
at JetBrains.Application.Components.ComponentStorage.Terminate() in Terminate.il:line IL_00AE mvid F14D
|
||||||
|
at JetBrains.Lifetimes.LifetimeDefinition.Destruct() in Destruct.il:line IL_00A8 mvid 6B8D or Destruct.il:line IL_00B1 mvid 6B8D
|
||||||
|
at JetBrains.Lifetimes.LifetimeDefinition.Terminate() in Terminate.il:line IL_0162 mvid 6B8D
|
||||||
|
at JetBrains.Lifetimes.SequentialLifetimes.TrySetNewAndTerminateOld(LifetimeDefinition newLifetimeDefinition, Action`1 actionWithNewLifetime) in TrySetNewAndTerminateOld.il:line IL_001F mvid 6B8D
|
||||||
|
at JetBrains.DataFlow.IPropertyEx.<>c__DisplayClass39_0.<WhenTrue>b__0(PropertyChangedEventArgs`1 args) in IPropertyEx.il:line IL_0000 mvid D244
|
||||||
|
at JetBrains.DataFlow.Signal`1.Fire(TValue value, Object cookie) in Fire.il:line IL_0054 mvid D244
|
||||||
|
at JetBrains.DataFlow.Property`1.SetValue(TValue value, Object cookie)
|
||||||
|
at JetBrains.DataFlow.Property`1.set_Value(TValue value)
|
||||||
|
at JetBrains.Application.Environment.RunsProducts.<>c__DisplayClass5_1.<.ctor>b__0(PropertyChangedEventArgs`1 _)
|
||||||
|
at JetBrains.DataFlow.IPropertySignalEx.<>c__DisplayClass1_0`1.<Advise_FallingFront>b__0(PropertyChangedEventArgs`1 args) in IPropertySignalEx.il:line IL_0010 mvid D244 or IPropertySignalEx.il:line IL_0028 mvid D244
|
||||||
|
at JetBrains.Util.DataFlow.ProjectedProperty`2.<>c__DisplayClass10_2.<AdviseCore>b__4() in ProjectedProperty.il:line IL_0000 mvid D244 or ProjectedProperty.il:line IL_0139 mvid D244
|
||||||
|
at JetBrains.Util.Logging.Logger.Catch(Action action) in Catch.il:line IL_000F mvid D244
|
||||||
|
at JetBrains.Util.DataFlow.ProjectedProperty`2.<>c__DisplayClass10_0.<AdviseCore>b__3(PropertyChangedEventArgs`1 args) in ProjectedProperty.il:line IL_0000 mvid D244 or ProjectedProperty.il:line IL_0139 mvid D244
|
||||||
|
at JetBrains.DataFlow.Signal`1.Fire(TValue value, Object cookie) in Fire.il:line IL_0054 mvid D244
|
||||||
|
at JetBrains.DataFlow.Property`1.SetValue(TValue value, Object cookie)
|
||||||
|
at JetBrains.DataFlow.Property`1.set_Value(TValue value)
|
||||||
|
at JetBrains.Application.Environment.ReportsProductsAllowedToRun.UpdateActiveTellers(Lifetime lifetimeComponent, List`1 tellers, IThreading threading, IProperty`1 propComposite, ILogger logger) in UpdateActiveTellers.il:line IL_00FD mvid 5EF9
|
||||||
|
at JetBrains.Application.Environment.ReportsProductsAllowedToRun.<>c__DisplayClass2_0.<UpdateActiveTellers>g__UpdateActiveTellersAgain|0() in ReportsProductsAllowedToRun.il:line IL_000B mvid 5EF9
|
||||||
|
at JetBrains.DataFlow.IPropertySignalEx.<>c__DisplayClass10_0`1.<Advise_NoAcknowledgement>b__0(PropertyChangedEventArgs`1 args) in IPropertySignalEx.il:line IL_0010 mvid D244 or IPropertySignalEx.il:line IL_0028 mvid D244
|
||||||
|
at JetBrains.DataFlow.Signal`1.Fire(TValue value, Object cookie) in Fire.il:line IL_0054 mvid D244
|
||||||
|
at JetBrains.DataFlow.Property`1.SetValue(TValue value, Object cookie)
|
||||||
|
at JetBrains.DataFlow.Property`1.set_Value(TValue value)
|
||||||
|
at JetBrains.Application.Environment.ApplicationShutdownRequests.<>c__DisplayClass10_0.<ProcessShutdownVerdict>b__0() in ApplicationShutdownRequests.il:line IL_00C3 mvid 5EF9
|
||||||
|
at JetBrains.Util.Concurrency.ExecutionContextEx.WithinExecutionContext(Object o) in WithinExecutionContext.il:line IL_002F mvid D244
|
||||||
|
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state) in RunInternal.il:line IL_0040 mvid 243A
|
||||||
|
at JetBrains.Threading.ReentrancyGuard.Execute(String name, CallerInfo& caller, Action action) in Execute.il:line IL_0122 mvid D244
|
||||||
|
at JetBrains.Threading.ReentrancyGuard.ExecutePendingActions(TaskPriority priorityLowestAllowedToExecute) in ExecutePendingActions.il:line IL_0088 mvid D244
|
||||||
|
at JetBrains.Util.Concurrency.ExecutionContextEx.WithinExecutionContext(Object o) in WithinExecutionContext.il:line IL_002F mvid D244
|
||||||
|
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state) in RunInternal.il:line IL_0040 mvid 243A
|
||||||
|
at JetBrains.Threading.JetDispatcher.Closure.Execute() in Execute.il:line IL_01C6 mvid D244
|
||||||
|
at JetBrains.Threading.JetDispatcher.ProcessQueue(Int32 nMinBucket, Int32 nProcessQueueGeneration) in ProcessQueue.il:line IL_01D0 mvid D244
|
||||||
|
at JetBrains.Util.Concurrency.Dispatcher.JetDispatcherTransportReliabilityLayer.OnInvoke(TaskPriority priority) in OnInvoke.il:line IL_007F mvid D244
|
||||||
|
at JetBrains.Util.Concurrency.Dispatcher.WindowsMessageQueueTransportForJetDispatcher.OnMessage(Void* hwnd, WindowsMessages message, IntPtr wParam, IntPtr lParam) in OnMessage.il:line IL_01CD mvid D244
|
||||||
|
at JetBrains.Interop.Windows.Wrappers.NativeWin32Window.WndProc(Void* hwnd, UInt32 msg, IntPtr wParam, IntPtr lParam) in WndProc.il:line IL_0071 mvid 9494
|
||||||
|
at JetBrains.Interop.WinApi.User32Dll.DispatchMessageW(MSG* lpmsg)
|
||||||
|
at JetBrains.Interop.WinApi.User32Dll.DispatchMessageW(MSG* lpmsg)
|
||||||
|
at JetBrains.Util.Concurrency.Dispatcher.WindowsMessageQueueTransportForJetDispatcher.InternalPumpMessagesOnce()
|
||||||
|
at JetBrains.Util.Concurrency.Dispatcher.WindowsMessageQueueTransportForJetDispatcher.JetBrains.Threading.IPlatformSpecificJetDispatcherThreadUnderlyingTransport.PumpMessagesOnce(TimeSpan maxWaitForFirstMessage)
|
||||||
|
at JetBrains.Threading.RunsAndSleeps.RunOrSleep(Func`1 FCondition, IProperty`1 propCondition, TimeSpan timeout, OnWaitTimeout ontimeout, RunOrSleepFlags flags) in RunOrSleep.il:line IL_03B2 mvid D244
|
||||||
|
at JetBrains.Threading.JetDispatcher.Run(IProperty`1 condition, TimeSpan timeout, Boolean bThrowOnTimeout) in Run.il:line IL_0005 mvid D244
|
||||||
|
at JetBrains.Application.Environment.IJetHostEx.RunHostMessageLoop(IComponentContainer containerEnv) in RunHostMessageLoop.il:line IL_000E mvid 5EF9
|
||||||
|
at JetBrains.Application.Environment.HostParameters.MessagePumpMainLoopHostMixin.JetBrains.Application.Environment.HostParameters.IRunMainLoopHostMixin.RunMainLoop(ComponentContainer containerEnv)
|
||||||
|
at JetBrains.Application.Environment.HostParameters.JetHostParametersCaller.RunMainLoop(ComponentContainer containerEnv) in RunMainLoop.il:line IL_009F mvid 5EF9
|
||||||
|
at JetBrains.Application.Environment.JetEnvironment.<>c__DisplayClass12_0.<RunUntilShutdown>b__0() in JetEnvironment.il:line IL_0000 mvid 5EF9
|
||||||
|
at JetBrains.Util.Concurrency.ExecutionContextEx.WithinExecutionContext(Object o) in WithinExecutionContext.il:line IL_002F mvid D244
|
||||||
|
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state) in RunInternal.il:line IL_0040 mvid 243A
|
||||||
|
at JetBrains.Threading.JetDispatcher.Closure.Execute() in Execute.il:line IL_01C6 mvid D244
|
||||||
|
at JetBrains.Threading.JetDispatcher.Invoke(OuterLifetime lifetime, String name, CallerInfo& caller, Action action, TaskPriority priority, Nullable`1 limit)
|
||||||
|
at JetBrains.Threading.JetDispatcher.Invoke(String name, Action action, TaskPriority priority, String callerFilePath, String callerMemberName)
|
||||||
|
at JetBrains.Application.Environment.JetEnvironment.RunUntilShutdown() in RunUntilShutdown.il:line IL_0044 mvid 5EF9
|
||||||
|
at JetBrains.Application.Environment.JetEnvironment.CreateAndRun(JetHostParameters hostparams) in CreateAndRun.il:line IL_000B mvid 5EF9
|
||||||
|
at JetBrains.Application.Environment.JetHostItems.CreateAndRun(Full input) in CreateAndRun.il:line IL_0000 mvid 5EF9
|
||||||
|
at JetBrains.Rider.Backend.Product.RiderBackendProgram.MainX(Assembly assembly, HostInfo hostInfo) in MainX.il:line IL_00B3 mvid 2082
|
||||||
|
at JetBrains.Rider.Backend.Product.RiderBackendProgram.<>c.<Main>b__4_0(Lifetime lifetime) in RiderBackendProgram.il:line IL_002B mvid 2082
|
||||||
|
at JetBrains.Lifetimes.Lifetime.Using[T](Func`2 action) in Using.il:line IL_0014 mvid 6B8D
|
||||||
|
at JetBrains.Rider.Backend.Product.RiderBackendProgram.Main() in Main.il:line IL_005D mvid 2082
|
||||||
|
”
|
||||||
|
ExceptionPath = Root
|
||||||
|
ClassName = JetBrains.Util.LoggerException
|
||||||
|
HResult = COR_E_APPLICATION=80131600
|
||||||
|
</Exception>
|
||||||
|
<Exception Message="Duplicate entry with key /Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FNetwork_002FAdapterJMS_002FNetadapterCfgCtrl/@EntryIndexedValue. Using the second occurrence." Kind="Error">Duplicate entry with key /Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FNetwork_002FAdapterJMS_002FNetadapterCfgCtrl/@EntryIndexedValue. Using the second occurrence.
|
||||||
|
|
||||||
|
--- EXCEPTION #1/2 [WarningException]
|
||||||
|
Message = “Duplicate entry with key /Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FNetwork_002FAdapterJMS_002FNetadapterCfgCtrl/@EntryIndexedValue. Using the second occurrence.”
|
||||||
|
ExceptionPath = Root.InnerException
|
||||||
|
ClassName = System.ComponentModel.WarningException
|
||||||
|
HResult = COR_E_SYSTEM=80131501
|
||||||
|
|
||||||
|
--- Outer ---
|
||||||
|
|
||||||
|
--- EXCEPTION #2/2 [LoggerException]
|
||||||
|
Message = “Duplicate entry with key /Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FNetwork_002FAdapterJMS_002FNetadapterCfgCtrl/@EntryIndexedValue. Using the second occurrence.”
|
||||||
|
InnerException = “Exception #1 at Root.InnerException”
|
||||||
|
StackTraceString = “
|
||||||
|
at JetBrains.Application.Settings.Storage.Persistence.EntriesReader.Step_ReadEntryValueEnd_CommitContent() in Step.il:line IL_002D mvid 5EF9 or Step.il:line IL_0084 mvid 5EF9
|
||||||
|
at JetBrains.Application.Settings.Storage.Persistence.EntriesReader.Step() in Step.il:line IL_002D mvid 5EF9 or Step.il:line IL_0084 mvid 5EF9
|
||||||
|
at JetBrains.Application.Settings.Storage.Persistence.EntriesReader.Run(XmlReader reader, EntryPositionsFlag entryPositionsFlag) in Run.il:line IL_006B mvid 5EF9
|
||||||
|
at JetBrains.Application.Settings.Storage.Persistence.SettingsStoreSerializationToXmlDiskFile.<>c__DisplayClass34_2.<Save_WriteFile_BackupOldCorruptedFile>b__5(XmlReader xmlreader)
|
||||||
|
at JetBrains.Util.XmlReaderEx.ReadXml[TResult](Stream stream, Func`2 FRead) in ReadXml.il:line IL_002F mvid 54EE
|
||||||
|
at JetBrains.Application.Settings.Storage.Persistence.SettingsStoreSerializationToXmlDiskFile.<>c__DisplayClass34_2.<Save_WriteFile_BackupOldCorruptedFile>b__4(Stream streamR)
|
||||||
|
at JetBrains.Util.FileSystemPathOpenEx.ReadStream[T,TF,TFile,TDir](FileSystemPathBase`3 path, Func`2 λRead) in ReadStream.il:line IL_0029 mvid D244
|
||||||
|
at JetBrains.Application.Settings.Storage.Persistence.SettingsStoreSerializationToXmlDiskFile.<>c__DisplayClass34_1.<Save_WriteFile_BackupOldCorruptedFile>b__2()
|
||||||
|
at JetBrains.Util.Logging.Logger.Catch(Action action) in Catch.il:line IL_000F mvid D244
|
||||||
|
at JetBrains.Util.XmlWriterEx.InElement(XmlWriter writer, String name, Action nested, Boolean writeFullEndElement)
|
||||||
|
at JetBrains.Application.Settings.Storage.Persistence.SettingsStoreSerializationToXmlDiskFile.<>c__DisplayClass34_0.<Save_WriteFile_BackupOldCorruptedFile>b__1(XmlWriter xmlwriter)
|
||||||
|
at JetBrains.Util.XmlWriterEx.WriteXml(Stream stream, Action`1 FWrite) in WriteXml.il:line IL_0023 mvid D244
|
||||||
|
at JetBrains.Application.Settings.Storage.Persistence.SettingsStoreSerializationToXmlDiskFile.<>c__DisplayClass34_0.<Save_WriteFile_BackupOldCorruptedFile>b__0(Stream stream)
|
||||||
|
at JetBrains.Util.FileSystemPathOpenEx.WriteStream[T,TFile,TDir](FileSystemPathBase`3 path, Action`1 λWrite) in WriteStream.il:line IL_0029 mvid D244
|
||||||
|
at JetBrains.Application.Settings.Storage.Persistence.SettingsStoreSerializationToXmlDiskFile.Save_WriteFile_BackupOldCorruptedFile(FileSystemPath path) in Save.il:line IL_002C mvid 5EF9 or Save.il:line IL_00D2 mvid 5EF9 or Save.il:line IL_0241 mvid 5EF9
|
||||||
|
at JetBrains.Application.Settings.Storage.Persistence.SettingsStoreSerializationToXmlDiskFile.<>c__DisplayClass31_0.<Save_WriteFile>b__0()
|
||||||
|
at JetBrains.Util.ILoggerEx.Catch(ILogger logger, Action action, ExceptionOrigin origin, LoggingLevel loggingLevel) in Catch.il:line IL_0060 mvid D244
|
||||||
|
at JetBrains.Application.Settings.Storage.Persistence.SettingsStoreSerializationToXmlDiskFile.Save_WriteFile(SaveDiffFlags flagsDiff, SaveForcedFlags flagsForced) in Save.il:line IL_002C mvid 5EF9 or Save.il:line IL_00D2 mvid 5EF9 or Save.il:line IL_0241 mvid 5EF9
|
||||||
|
at JetBrains.Application.Settings.Storage.Persistence.SettingsStoreSerializationToXmlDiskFile.Save(SaveDiffFlags flagsDiff, SaveForcedFlags flagsForced) in Save.il:line IL_002C mvid 5EF9 or Save.il:line IL_00D2 mvid 5EF9 or Save.il:line IL_0241 mvid 5EF9
|
||||||
|
at JetBrains.Application.Settings.Storage.Persistence.SettingsStoreSerializationToXmlDiskFile.<>c__DisplayClass9_0.<Init_FirstLoadLastSave>b__1()
|
||||||
|
at JetBrains.DataFlow.IPropertySignalEx.<>c__DisplayClass0_0`1.<Advise_FallingFront>b__0(PropertyChangedEventArgs`1 args) in IPropertySignalEx.il:line IL_0010 mvid D244 or IPropertySignalEx.il:line IL_0028 mvid D244
|
||||||
|
at JetBrains.DataFlow.CombinedProperty2`3.<>c__DisplayClass8_0.<AdviseCore>b__1() in CombinedProperty2.il:line IL_009C mvid D244
|
||||||
|
at JetBrains.Lifetimes.LifetimeDefinition.Destruct() in Destruct.il:line IL_00A8 mvid 6B8D or Destruct.il:line IL_00B1 mvid 6B8D
|
||||||
|
at JetBrains.Lifetimes.LifetimeDefinition.Terminate() in Terminate.il:line IL_0162 mvid 6B8D
|
||||||
|
at JetBrains.Application.Components.SingletonDescriptorBindings`1.Dispose() in Dispose.il:line IL_0000 mvid F14D
|
||||||
|
at JetBrains.Application.Components.SingletonDescriptor`1.DisposeInternalResources() in DisposeInternalResources.il:line IL_0048 mvid F14D
|
||||||
|
at JetBrains.Application.Components.AsyncDescriptorBase.DoDisposeSafe(Object instance) in DoDisposeSafe.il:line IL_0036 mvid F14D
|
||||||
|
at JetBrains.Application.Components.AsyncDescriptorBase.Dispose() in Dispose.il:line IL_00DD mvid F14D
|
||||||
|
at JetBrains.Application.Components.ComponentStorage.DisposeDescriptor(IComponentDescriptor descriptor) in DisposeDescriptor.il:line IL_000A mvid F14D
|
||||||
|
at JetBrains.Application.Components.ComponentStorage.Terminate() in Terminate.il:line IL_00AE mvid F14D
|
||||||
|
at JetBrains.Lifetimes.LifetimeDefinition.Destruct() in Destruct.il:line IL_00A8 mvid 6B8D or Destruct.il:line IL_00B1 mvid 6B8D
|
||||||
|
at JetBrains.Lifetimes.LifetimeDefinition.Terminate() in Terminate.il:line IL_0162 mvid 6B8D
|
||||||
|
at JetBrains.ProjectModel.SolutionInstance.CloseSolutionInstance() in CloseSolutionInstance.il:line IL_0087 mvid 4DD6
|
||||||
|
at JetBrains.ProjectModel.SolutionManagerBase.CloseSolutionInstance(SolutionInstance instance) in CloseSolutionInstance.il:line IL_0000 mvid 4DD6
|
||||||
|
at JetBrains.ProjectModel.ProjectsHost.SolutionHost.Impl.SolutionHostManager.CloseSolution() in CloseSolution.il:line IL_0046 mvid 1A79
|
||||||
|
at JetBrains.Rider.Backend.Features.ProjectModel.RiderSolutionWatcher.<>c__DisplayClass4_0.<.ctor>b__2() in RiderSolutionWatcher.il:line IL_002D mvid 2082
|
||||||
|
at JetBrains.Lifetimes.LifetimeDefinition.Destruct() in Destruct.il:line IL_00A8 mvid 6B8D or Destruct.il:line IL_00B1 mvid 6B8D
|
||||||
|
at JetBrains.Lifetimes.LifetimeDefinition.Terminate() in Terminate.il:line IL_0162 mvid 6B8D
|
||||||
|
at JetBrains.Lifetimes.LifetimeDefinition.Destruct() in Destruct.il:line IL_00A8 mvid 6B8D or Destruct.il:line IL_00B1 mvid 6B8D
|
||||||
|
at JetBrains.Lifetimes.LifetimeDefinition.Terminate() in Terminate.il:line IL_0162 mvid 6B8D
|
||||||
|
at JetBrains.Application.Components.SingletonDescriptorBindings`1.Dispose() in Dispose.il:line IL_0000 mvid F14D
|
||||||
|
at JetBrains.Application.Components.SingletonDescriptor`1.DisposeInternalResources() in DisposeInternalResources.il:line IL_0048 mvid F14D
|
||||||
|
at JetBrains.Application.Components.AsyncDescriptorBase.DoDisposeSafe(Object instance) in DoDisposeSafe.il:line IL_0036 mvid F14D
|
||||||
|
at JetBrains.Application.Components.AsyncDescriptorBase.Dispose() in Dispose.il:line IL_00DD mvid F14D
|
||||||
|
at JetBrains.Application.Components.ComponentStorage.DisposeDescriptor(IComponentDescriptor descriptor) in DisposeDescriptor.il:line IL_000A mvid F14D
|
||||||
|
at JetBrains.Application.Components.ComponentStorage.Terminate() in Terminate.il:line IL_00AE mvid F14D
|
||||||
|
at JetBrains.Lifetimes.LifetimeDefinition.Destruct() in Destruct.il:line IL_00A8 mvid 6B8D or Destruct.il:line IL_00B1 mvid 6B8D
|
||||||
|
at JetBrains.Lifetimes.LifetimeDefinition.Terminate() in Terminate.il:line IL_0162 mvid 6B8D
|
||||||
|
at JetBrains.Lifetimes.SequentialLifetimes.TrySetNewAndTerminateOld(LifetimeDefinition newLifetimeDefinition, Action`1 actionWithNewLifetime) in TrySetNewAndTerminateOld.il:line IL_001F mvid 6B8D
|
||||||
|
at JetBrains.DataFlow.IPropertyEx.<>c__DisplayClass39_0.<WhenTrue>b__0(PropertyChangedEventArgs`1 args) in IPropertyEx.il:line IL_0000 mvid D244
|
||||||
|
at JetBrains.DataFlow.Signal`1.Fire(TValue value, Object cookie) in Fire.il:line IL_0054 mvid D244
|
||||||
|
at JetBrains.DataFlow.Property`1.SetValue(TValue value, Object cookie)
|
||||||
|
at JetBrains.DataFlow.Property`1.set_Value(TValue value)
|
||||||
|
at JetBrains.Application.Environment.RunsProducts.<>c__DisplayClass5_1.<.ctor>b__0(PropertyChangedEventArgs`1 _)
|
||||||
|
at JetBrains.DataFlow.IPropertySignalEx.<>c__DisplayClass1_0`1.<Advise_FallingFront>b__0(PropertyChangedEventArgs`1 args) in IPropertySignalEx.il:line IL_0010 mvid D244 or IPropertySignalEx.il:line IL_0028 mvid D244
|
||||||
|
at JetBrains.Util.DataFlow.ProjectedProperty`2.<>c__DisplayClass10_2.<AdviseCore>b__4() in ProjectedProperty.il:line IL_0000 mvid D244 or ProjectedProperty.il:line IL_0139 mvid D244
|
||||||
|
at JetBrains.Util.Logging.Logger.Catch(Action action) in Catch.il:line IL_000F mvid D244
|
||||||
|
at JetBrains.Util.DataFlow.ProjectedProperty`2.<>c__DisplayClass10_0.<AdviseCore>b__3(PropertyChangedEventArgs`1 args) in ProjectedProperty.il:line IL_0000 mvid D244 or ProjectedProperty.il:line IL_0139 mvid D244
|
||||||
|
at JetBrains.DataFlow.Signal`1.Fire(TValue value, Object cookie) in Fire.il:line IL_0054 mvid D244
|
||||||
|
at JetBrains.DataFlow.Property`1.SetValue(TValue value, Object cookie)
|
||||||
|
at JetBrains.DataFlow.Property`1.set_Value(TValue value)
|
||||||
|
at JetBrains.Application.Environment.ReportsProductsAllowedToRun.UpdateActiveTellers(Lifetime lifetimeComponent, List`1 tellers, IThreading threading, IProperty`1 propComposite, ILogger logger) in UpdateActiveTellers.il:line IL_00FD mvid 5EF9
|
||||||
|
at JetBrains.Application.Environment.ReportsProductsAllowedToRun.<>c__DisplayClass2_0.<UpdateActiveTellers>g__UpdateActiveTellersAgain|0() in ReportsProductsAllowedToRun.il:line IL_000B mvid 5EF9
|
||||||
|
at JetBrains.DataFlow.IPropertySignalEx.<>c__DisplayClass10_0`1.<Advise_NoAcknowledgement>b__0(PropertyChangedEventArgs`1 args) in IPropertySignalEx.il:line IL_0010 mvid D244 or IPropertySignalEx.il:line IL_0028 mvid D244
|
||||||
|
at JetBrains.DataFlow.Signal`1.Fire(TValue value, Object cookie) in Fire.il:line IL_0054 mvid D244
|
||||||
|
at JetBrains.DataFlow.Property`1.SetValue(TValue value, Object cookie)
|
||||||
|
at JetBrains.DataFlow.Property`1.set_Value(TValue value)
|
||||||
|
at JetBrains.Application.Environment.ApplicationShutdownRequests.<>c__DisplayClass10_0.<ProcessShutdownVerdict>b__0() in ApplicationShutdownRequests.il:line IL_00C3 mvid 5EF9
|
||||||
|
at JetBrains.Util.Concurrency.ExecutionContextEx.WithinExecutionContext(Object o) in WithinExecutionContext.il:line IL_002F mvid D244
|
||||||
|
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state) in RunInternal.il:line IL_0040 mvid 243A
|
||||||
|
at JetBrains.Threading.ReentrancyGuard.Execute(String name, CallerInfo& caller, Action action) in Execute.il:line IL_0122 mvid D244
|
||||||
|
at JetBrains.Threading.ReentrancyGuard.ExecutePendingActions(TaskPriority priorityLowestAllowedToExecute) in ExecutePendingActions.il:line IL_0088 mvid D244
|
||||||
|
at JetBrains.Util.Concurrency.ExecutionContextEx.WithinExecutionContext(Object o) in WithinExecutionContext.il:line IL_002F mvid D244
|
||||||
|
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state) in RunInternal.il:line IL_0040 mvid 243A
|
||||||
|
at JetBrains.Threading.JetDispatcher.Closure.Execute() in Execute.il:line IL_01C6 mvid D244
|
||||||
|
at JetBrains.Threading.JetDispatcher.ProcessQueue(Int32 nMinBucket, Int32 nProcessQueueGeneration) in ProcessQueue.il:line IL_01D0 mvid D244
|
||||||
|
at JetBrains.Util.Concurrency.Dispatcher.JetDispatcherTransportReliabilityLayer.OnInvoke(TaskPriority priority) in OnInvoke.il:line IL_007F mvid D244
|
||||||
|
at JetBrains.Util.Concurrency.Dispatcher.WindowsMessageQueueTransportForJetDispatcher.OnMessage(Void* hwnd, WindowsMessages message, IntPtr wParam, IntPtr lParam) in OnMessage.il:line IL_01CD mvid D244
|
||||||
|
at JetBrains.Interop.Windows.Wrappers.NativeWin32Window.WndProc(Void* hwnd, UInt32 msg, IntPtr wParam, IntPtr lParam) in WndProc.il:line IL_0071 mvid 9494
|
||||||
|
at JetBrains.Interop.WinApi.User32Dll.DispatchMessageW(MSG* lpmsg)
|
||||||
|
at JetBrains.Interop.WinApi.User32Dll.DispatchMessageW(MSG* lpmsg)
|
||||||
|
at JetBrains.Util.Concurrency.Dispatcher.WindowsMessageQueueTransportForJetDispatcher.InternalPumpMessagesOnce()
|
||||||
|
at JetBrains.Util.Concurrency.Dispatcher.WindowsMessageQueueTransportForJetDispatcher.JetBrains.Threading.IPlatformSpecificJetDispatcherThreadUnderlyingTransport.PumpMessagesOnce(TimeSpan maxWaitForFirstMessage)
|
||||||
|
at JetBrains.Threading.RunsAndSleeps.RunOrSleep(Func`1 FCondition, IProperty`1 propCondition, TimeSpan timeout, OnWaitTimeout ontimeout, RunOrSleepFlags flags) in RunOrSleep.il:line IL_03B2 mvid D244
|
||||||
|
at JetBrains.Threading.JetDispatcher.Run(IProperty`1 condition, TimeSpan timeout, Boolean bThrowOnTimeout) in Run.il:line IL_0005 mvid D244
|
||||||
|
at JetBrains.Application.Environment.IJetHostEx.RunHostMessageLoop(IComponentContainer containerEnv) in RunHostMessageLoop.il:line IL_000E mvid 5EF9
|
||||||
|
at JetBrains.Application.Environment.HostParameters.MessagePumpMainLoopHostMixin.JetBrains.Application.Environment.HostParameters.IRunMainLoopHostMixin.RunMainLoop(ComponentContainer containerEnv)
|
||||||
|
at JetBrains.Application.Environment.HostParameters.JetHostParametersCaller.RunMainLoop(ComponentContainer containerEnv) in RunMainLoop.il:line IL_009F mvid 5EF9
|
||||||
|
at JetBrains.Application.Environment.JetEnvironment.<>c__DisplayClass12_0.<RunUntilShutdown>b__0() in JetEnvironment.il:line IL_0000 mvid 5EF9
|
||||||
|
at JetBrains.Util.Concurrency.ExecutionContextEx.WithinExecutionContext(Object o) in WithinExecutionContext.il:line IL_002F mvid D244
|
||||||
|
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state) in RunInternal.il:line IL_0040 mvid 243A
|
||||||
|
at JetBrains.Threading.JetDispatcher.Closure.Execute() in Execute.il:line IL_01C6 mvid D244
|
||||||
|
at JetBrains.Threading.JetDispatcher.Invoke(OuterLifetime lifetime, String name, CallerInfo& caller, Action action, TaskPriority priority, Nullable`1 limit)
|
||||||
|
at JetBrains.Threading.JetDispatcher.Invoke(String name, Action action, TaskPriority priority, String callerFilePath, String callerMemberName)
|
||||||
|
at JetBrains.Application.Environment.JetEnvironment.RunUntilShutdown() in RunUntilShutdown.il:line IL_0044 mvid 5EF9
|
||||||
|
at JetBrains.Application.Environment.JetEnvironment.CreateAndRun(JetHostParameters hostparams) in CreateAndRun.il:line IL_000B mvid 5EF9
|
||||||
|
at JetBrains.Application.Environment.JetHostItems.CreateAndRun(Full input) in CreateAndRun.il:line IL_0000 mvid 5EF9
|
||||||
|
at JetBrains.Rider.Backend.Product.RiderBackendProgram.MainX(Assembly assembly, HostInfo hostInfo) in MainX.il:line IL_00B3 mvid 2082
|
||||||
|
at JetBrains.Rider.Backend.Product.RiderBackendProgram.<>c.<Main>b__4_0(Lifetime lifetime) in RiderBackendProgram.il:line IL_002B mvid 2082
|
||||||
|
at JetBrains.Lifetimes.Lifetime.Using[T](Func`2 action) in Using.il:line IL_0014 mvid 6B8D
|
||||||
|
at JetBrains.Rider.Backend.Product.RiderBackendProgram.Main() in Main.il:line IL_005D mvid 2082
|
||||||
|
”
|
||||||
|
ExceptionPath = Root
|
||||||
|
ClassName = JetBrains.Util.LoggerException
|
||||||
|
HResult = COR_E_APPLICATION=80131600
|
||||||
|
</Exception>
|
||||||
|
<Exception Message="Duplicate entry with key /Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FNetwork_002FCamera_002FCJMS11_002FCameraCfgCtrl/@EntryIndexedValue. Using the second occurrence." Kind="Error">Duplicate entry with key /Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FNetwork_002FCamera_002FCJMS11_002FCameraCfgCtrl/@EntryIndexedValue. Using the second occurrence.
|
||||||
|
|
||||||
|
--- EXCEPTION #1/2 [WarningException]
|
||||||
|
Message = “Duplicate entry with key /Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FNetwork_002FCamera_002FCJMS11_002FCameraCfgCtrl/@EntryIndexedValue. Using the second occurrence.”
|
||||||
|
ExceptionPath = Root.InnerException
|
||||||
|
ClassName = System.ComponentModel.WarningException
|
||||||
|
HResult = COR_E_SYSTEM=80131501
|
||||||
|
|
||||||
|
--- Outer ---
|
||||||
|
|
||||||
|
--- EXCEPTION #2/2 [LoggerException]
|
||||||
|
Message = “Duplicate entry with key /Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FNetwork_002FCamera_002FCJMS11_002FCameraCfgCtrl/@EntryIndexedValue. Using the second occurrence.”
|
||||||
|
InnerException = “Exception #1 at Root.InnerException”
|
||||||
|
StackTraceString = “
|
||||||
|
at JetBrains.Application.Settings.Storage.Persistence.EntriesReader.Step_ReadEntryValueEnd_CommitContent() in Step.il:line IL_002D mvid 5EF9 or Step.il:line IL_0084 mvid 5EF9
|
||||||
|
at JetBrains.Application.Settings.Storage.Persistence.EntriesReader.Step() in Step.il:line IL_002D mvid 5EF9 or Step.il:line IL_0084 mvid 5EF9
|
||||||
|
at JetBrains.Application.Settings.Storage.Persistence.EntriesReader.Run(XmlReader reader, EntryPositionsFlag entryPositionsFlag) in Run.il:line IL_006B mvid 5EF9
|
||||||
|
at JetBrains.Application.Settings.Storage.Persistence.SettingsStoreSerializationToXmlDiskFile.<>c__DisplayClass34_2.<Save_WriteFile_BackupOldCorruptedFile>b__5(XmlReader xmlreader)
|
||||||
|
at JetBrains.Util.XmlReaderEx.ReadXml[TResult](Stream stream, Func`2 FRead) in ReadXml.il:line IL_002F mvid 54EE
|
||||||
|
at JetBrains.Application.Settings.Storage.Persistence.SettingsStoreSerializationToXmlDiskFile.<>c__DisplayClass34_2.<Save_WriteFile_BackupOldCorruptedFile>b__4(Stream streamR)
|
||||||
|
at JetBrains.Util.FileSystemPathOpenEx.ReadStream[T,TF,TFile,TDir](FileSystemPathBase`3 path, Func`2 λRead) in ReadStream.il:line IL_0029 mvid D244
|
||||||
|
at JetBrains.Application.Settings.Storage.Persistence.SettingsStoreSerializationToXmlDiskFile.<>c__DisplayClass34_1.<Save_WriteFile_BackupOldCorruptedFile>b__2()
|
||||||
|
at JetBrains.Util.Logging.Logger.Catch(Action action) in Catch.il:line IL_000F mvid D244
|
||||||
|
at JetBrains.Util.XmlWriterEx.InElement(XmlWriter writer, String name, Action nested, Boolean writeFullEndElement)
|
||||||
|
at JetBrains.Application.Settings.Storage.Persistence.SettingsStoreSerializationToXmlDiskFile.<>c__DisplayClass34_0.<Save_WriteFile_BackupOldCorruptedFile>b__1(XmlWriter xmlwriter)
|
||||||
|
at JetBrains.Util.XmlWriterEx.WriteXml(Stream stream, Action`1 FWrite) in WriteXml.il:line IL_0023 mvid D244
|
||||||
|
at JetBrains.Application.Settings.Storage.Persistence.SettingsStoreSerializationToXmlDiskFile.<>c__DisplayClass34_0.<Save_WriteFile_BackupOldCorruptedFile>b__0(Stream stream)
|
||||||
|
at JetBrains.Util.FileSystemPathOpenEx.WriteStream[T,TFile,TDir](FileSystemPathBase`3 path, Action`1 λWrite) in WriteStream.il:line IL_0029 mvid D244
|
||||||
|
at JetBrains.Application.Settings.Storage.Persistence.SettingsStoreSerializationToXmlDiskFile.Save_WriteFile_BackupOldCorruptedFile(FileSystemPath path) in Save.il:line IL_002C mvid 5EF9 or Save.il:line IL_00D2 mvid 5EF9 or Save.il:line IL_0241 mvid 5EF9
|
||||||
|
at JetBrains.Application.Settings.Storage.Persistence.SettingsStoreSerializationToXmlDiskFile.<>c__DisplayClass31_0.<Save_WriteFile>b__0()
|
||||||
|
at JetBrains.Util.ILoggerEx.Catch(ILogger logger, Action action, ExceptionOrigin origin, LoggingLevel loggingLevel) in Catch.il:line IL_0060 mvid D244
|
||||||
|
at JetBrains.Application.Settings.Storage.Persistence.SettingsStoreSerializationToXmlDiskFile.Save_WriteFile(SaveDiffFlags flagsDiff, SaveForcedFlags flagsForced) in Save.il:line IL_002C mvid 5EF9 or Save.il:line IL_00D2 mvid 5EF9 or Save.il:line IL_0241 mvid 5EF9
|
||||||
|
at JetBrains.Application.Settings.Storage.Persistence.SettingsStoreSerializationToXmlDiskFile.Save(SaveDiffFlags flagsDiff, SaveForcedFlags flagsForced) in Save.il:line IL_002C mvid 5EF9 or Save.il:line IL_00D2 mvid 5EF9 or Save.il:line IL_0241 mvid 5EF9
|
||||||
|
at JetBrains.Application.Settings.Storage.Persistence.SettingsStoreSerializationToXmlDiskFile.<>c__DisplayClass9_0.<Init_FirstLoadLastSave>b__1()
|
||||||
|
at JetBrains.DataFlow.IPropertySignalEx.<>c__DisplayClass0_0`1.<Advise_FallingFront>b__0(PropertyChangedEventArgs`1 args) in IPropertySignalEx.il:line IL_0010 mvid D244 or IPropertySignalEx.il:line IL_0028 mvid D244
|
||||||
|
at JetBrains.DataFlow.CombinedProperty2`3.<>c__DisplayClass8_0.<AdviseCore>b__1() in CombinedProperty2.il:line IL_009C mvid D244
|
||||||
|
at JetBrains.Lifetimes.LifetimeDefinition.Destruct() in Destruct.il:line IL_00A8 mvid 6B8D or Destruct.il:line IL_00B1 mvid 6B8D
|
||||||
|
at JetBrains.Lifetimes.LifetimeDefinition.Terminate() in Terminate.il:line IL_0162 mvid 6B8D
|
||||||
|
at JetBrains.Application.Components.SingletonDescriptorBindings`1.Dispose() in Dispose.il:line IL_0000 mvid F14D
|
||||||
|
at JetBrains.Application.Components.SingletonDescriptor`1.DisposeInternalResources() in DisposeInternalResources.il:line IL_0048 mvid F14D
|
||||||
|
at JetBrains.Application.Components.AsyncDescriptorBase.DoDisposeSafe(Object instance) in DoDisposeSafe.il:line IL_0036 mvid F14D
|
||||||
|
at JetBrains.Application.Components.AsyncDescriptorBase.Dispose() in Dispose.il:line IL_00DD mvid F14D
|
||||||
|
at JetBrains.Application.Components.ComponentStorage.DisposeDescriptor(IComponentDescriptor descriptor) in DisposeDescriptor.il:line IL_000A mvid F14D
|
||||||
|
at JetBrains.Application.Components.ComponentStorage.Terminate() in Terminate.il:line IL_00AE mvid F14D
|
||||||
|
at JetBrains.Lifetimes.LifetimeDefinition.Destruct() in Destruct.il:line IL_00A8 mvid 6B8D or Destruct.il:line IL_00B1 mvid 6B8D
|
||||||
|
at JetBrains.Lifetimes.LifetimeDefinition.Terminate() in Terminate.il:line IL_0162 mvid 6B8D
|
||||||
|
at JetBrains.ProjectModel.SolutionInstance.CloseSolutionInstance() in CloseSolutionInstance.il:line IL_0087 mvid 4DD6
|
||||||
|
at JetBrains.ProjectModel.SolutionManagerBase.CloseSolutionInstance(SolutionInstance instance) in CloseSolutionInstance.il:line IL_0000 mvid 4DD6
|
||||||
|
at JetBrains.ProjectModel.ProjectsHost.SolutionHost.Impl.SolutionHostManager.CloseSolution() in CloseSolution.il:line IL_0046 mvid 1A79
|
||||||
|
at JetBrains.Rider.Backend.Features.ProjectModel.RiderSolutionWatcher.<>c__DisplayClass4_0.<.ctor>b__2() in RiderSolutionWatcher.il:line IL_002D mvid 2082
|
||||||
|
at JetBrains.Lifetimes.LifetimeDefinition.Destruct() in Destruct.il:line IL_00A8 mvid 6B8D or Destruct.il:line IL_00B1 mvid 6B8D
|
||||||
|
at JetBrains.Lifetimes.LifetimeDefinition.Terminate() in Terminate.il:line IL_0162 mvid 6B8D
|
||||||
|
at JetBrains.Lifetimes.LifetimeDefinition.Destruct() in Destruct.il:line IL_00A8 mvid 6B8D or Destruct.il:line IL_00B1 mvid 6B8D
|
||||||
|
at JetBrains.Lifetimes.LifetimeDefinition.Terminate() in Terminate.il:line IL_0162 mvid 6B8D
|
||||||
|
at JetBrains.Application.Components.SingletonDescriptorBindings`1.Dispose() in Dispose.il:line IL_0000 mvid F14D
|
||||||
|
at JetBrains.Application.Components.SingletonDescriptor`1.DisposeInternalResources() in DisposeInternalResources.il:line IL_0048 mvid F14D
|
||||||
|
at JetBrains.Application.Components.AsyncDescriptorBase.DoDisposeSafe(Object instance) in DoDisposeSafe.il:line IL_0036 mvid F14D
|
||||||
|
at JetBrains.Application.Components.AsyncDescriptorBase.Dispose() in Dispose.il:line IL_00DD mvid F14D
|
||||||
|
at JetBrains.Application.Components.ComponentStorage.DisposeDescriptor(IComponentDescriptor descriptor) in DisposeDescriptor.il:line IL_000A mvid F14D
|
||||||
|
at JetBrains.Application.Components.ComponentStorage.Terminate() in Terminate.il:line IL_00AE mvid F14D
|
||||||
|
at JetBrains.Lifetimes.LifetimeDefinition.Destruct() in Destruct.il:line IL_00A8 mvid 6B8D or Destruct.il:line IL_00B1 mvid 6B8D
|
||||||
|
at JetBrains.Lifetimes.LifetimeDefinition.Terminate() in Terminate.il:line IL_0162 mvid 6B8D
|
||||||
|
at JetBrains.Lifetimes.SequentialLifetimes.TrySetNewAndTerminateOld(LifetimeDefinition newLifetimeDefinition, Action`1 actionWithNewLifetime) in TrySetNewAndTerminateOld.il:line IL_001F mvid 6B8D
|
||||||
|
at JetBrains.DataFlow.IPropertyEx.<>c__DisplayClass39_0.<WhenTrue>b__0(PropertyChangedEventArgs`1 args) in IPropertyEx.il:line IL_0000 mvid D244
|
||||||
|
at JetBrains.DataFlow.Signal`1.Fire(TValue value, Object cookie) in Fire.il:line IL_0054 mvid D244
|
||||||
|
at JetBrains.DataFlow.Property`1.SetValue(TValue value, Object cookie)
|
||||||
|
at JetBrains.DataFlow.Property`1.set_Value(TValue value)
|
||||||
|
at JetBrains.Application.Environment.RunsProducts.<>c__DisplayClass5_1.<.ctor>b__0(PropertyChangedEventArgs`1 _)
|
||||||
|
at JetBrains.DataFlow.IPropertySignalEx.<>c__DisplayClass1_0`1.<Advise_FallingFront>b__0(PropertyChangedEventArgs`1 args) in IPropertySignalEx.il:line IL_0010 mvid D244 or IPropertySignalEx.il:line IL_0028 mvid D244
|
||||||
|
at JetBrains.Util.DataFlow.ProjectedProperty`2.<>c__DisplayClass10_2.<AdviseCore>b__4() in ProjectedProperty.il:line IL_0000 mvid D244 or ProjectedProperty.il:line IL_0139 mvid D244
|
||||||
|
at JetBrains.Util.Logging.Logger.Catch(Action action) in Catch.il:line IL_000F mvid D244
|
||||||
|
at JetBrains.Util.DataFlow.ProjectedProperty`2.<>c__DisplayClass10_0.<AdviseCore>b__3(PropertyChangedEventArgs`1 args) in ProjectedProperty.il:line IL_0000 mvid D244 or ProjectedProperty.il:line IL_0139 mvid D244
|
||||||
|
at JetBrains.DataFlow.Signal`1.Fire(TValue value, Object cookie) in Fire.il:line IL_0054 mvid D244
|
||||||
|
at JetBrains.DataFlow.Property`1.SetValue(TValue value, Object cookie)
|
||||||
|
at JetBrains.DataFlow.Property`1.set_Value(TValue value)
|
||||||
|
at JetBrains.Application.Environment.ReportsProductsAllowedToRun.UpdateActiveTellers(Lifetime lifetimeComponent, List`1 tellers, IThreading threading, IProperty`1 propComposite, ILogger logger) in UpdateActiveTellers.il:line IL_00FD mvid 5EF9
|
||||||
|
at JetBrains.Application.Environment.ReportsProductsAllowedToRun.<>c__DisplayClass2_0.<UpdateActiveTellers>g__UpdateActiveTellersAgain|0() in ReportsProductsAllowedToRun.il:line IL_000B mvid 5EF9
|
||||||
|
at JetBrains.DataFlow.IPropertySignalEx.<>c__DisplayClass10_0`1.<Advise_NoAcknowledgement>b__0(PropertyChangedEventArgs`1 args) in IPropertySignalEx.il:line IL_0010 mvid D244 or IPropertySignalEx.il:line IL_0028 mvid D244
|
||||||
|
at JetBrains.DataFlow.Signal`1.Fire(TValue value, Object cookie) in Fire.il:line IL_0054 mvid D244
|
||||||
|
at JetBrains.DataFlow.Property`1.SetValue(TValue value, Object cookie)
|
||||||
|
at JetBrains.DataFlow.Property`1.set_Value(TValue value)
|
||||||
|
at JetBrains.Application.Environment.ApplicationShutdownRequests.<>c__DisplayClass10_0.<ProcessShutdownVerdict>b__0() in ApplicationShutdownRequests.il:line IL_00C3 mvid 5EF9
|
||||||
|
at JetBrains.Util.Concurrency.ExecutionContextEx.WithinExecutionContext(Object o) in WithinExecutionContext.il:line IL_002F mvid D244
|
||||||
|
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state) in RunInternal.il:line IL_0040 mvid 243A
|
||||||
|
at JetBrains.Threading.ReentrancyGuard.Execute(String name, CallerInfo& caller, Action action) in Execute.il:line IL_0122 mvid D244
|
||||||
|
at JetBrains.Threading.ReentrancyGuard.ExecutePendingActions(TaskPriority priorityLowestAllowedToExecute) in ExecutePendingActions.il:line IL_0088 mvid D244
|
||||||
|
at JetBrains.Util.Concurrency.ExecutionContextEx.WithinExecutionContext(Object o) in WithinExecutionContext.il:line IL_002F mvid D244
|
||||||
|
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state) in RunInternal.il:line IL_0040 mvid 243A
|
||||||
|
at JetBrains.Threading.JetDispatcher.Closure.Execute() in Execute.il:line IL_01C6 mvid D244
|
||||||
|
at JetBrains.Threading.JetDispatcher.ProcessQueue(Int32 nMinBucket, Int32 nProcessQueueGeneration) in ProcessQueue.il:line IL_01D0 mvid D244
|
||||||
|
at JetBrains.Util.Concurrency.Dispatcher.JetDispatcherTransportReliabilityLayer.OnInvoke(TaskPriority priority) in OnInvoke.il:line IL_007F mvid D244
|
||||||
|
at JetBrains.Util.Concurrency.Dispatcher.WindowsMessageQueueTransportForJetDispatcher.OnMessage(Void* hwnd, WindowsMessages message, IntPtr wParam, IntPtr lParam) in OnMessage.il:line IL_01CD mvid D244
|
||||||
|
at JetBrains.Interop.Windows.Wrappers.NativeWin32Window.WndProc(Void* hwnd, UInt32 msg, IntPtr wParam, IntPtr lParam) in WndProc.il:line IL_0071 mvid 9494
|
||||||
|
at JetBrains.Interop.WinApi.User32Dll.DispatchMessageW(MSG* lpmsg)
|
||||||
|
at JetBrains.Interop.WinApi.User32Dll.DispatchMessageW(MSG* lpmsg)
|
||||||
|
at JetBrains.Util.Concurrency.Dispatcher.WindowsMessageQueueTransportForJetDispatcher.InternalPumpMessagesOnce()
|
||||||
|
at JetBrains.Util.Concurrency.Dispatcher.WindowsMessageQueueTransportForJetDispatcher.JetBrains.Threading.IPlatformSpecificJetDispatcherThreadUnderlyingTransport.PumpMessagesOnce(TimeSpan maxWaitForFirstMessage)
|
||||||
|
at JetBrains.Threading.RunsAndSleeps.RunOrSleep(Func`1 FCondition, IProperty`1 propCondition, TimeSpan timeout, OnWaitTimeout ontimeout, RunOrSleepFlags flags) in RunOrSleep.il:line IL_03B2 mvid D244
|
||||||
|
at JetBrains.Threading.JetDispatcher.Run(IProperty`1 condition, TimeSpan timeout, Boolean bThrowOnTimeout) in Run.il:line IL_0005 mvid D244
|
||||||
|
at JetBrains.Application.Environment.IJetHostEx.RunHostMessageLoop(IComponentContainer containerEnv) in RunHostMessageLoop.il:line IL_000E mvid 5EF9
|
||||||
|
at JetBrains.Application.Environment.HostParameters.MessagePumpMainLoopHostMixin.JetBrains.Application.Environment.HostParameters.IRunMainLoopHostMixin.RunMainLoop(ComponentContainer containerEnv)
|
||||||
|
at JetBrains.Application.Environment.HostParameters.JetHostParametersCaller.RunMainLoop(ComponentContainer containerEnv) in RunMainLoop.il:line IL_009F mvid 5EF9
|
||||||
|
at JetBrains.Application.Environment.JetEnvironment.<>c__DisplayClass12_0.<RunUntilShutdown>b__0() in JetEnvironment.il:line IL_0000 mvid 5EF9
|
||||||
|
at JetBrains.Util.Concurrency.ExecutionContextEx.WithinExecutionContext(Object o) in WithinExecutionContext.il:line IL_002F mvid D244
|
||||||
|
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state) in RunInternal.il:line IL_0040 mvid 243A
|
||||||
|
at JetBrains.Threading.JetDispatcher.Closure.Execute() in Execute.il:line IL_01C6 mvid D244
|
||||||
|
at JetBrains.Threading.JetDispatcher.Invoke(OuterLifetime lifetime, String name, CallerInfo& caller, Action action, TaskPriority priority, Nullable`1 limit)
|
||||||
|
at JetBrains.Threading.JetDispatcher.Invoke(String name, Action action, TaskPriority priority, String callerFilePath, String callerMemberName)
|
||||||
|
at JetBrains.Application.Environment.JetEnvironment.RunUntilShutdown() in RunUntilShutdown.il:line IL_0044 mvid 5EF9
|
||||||
|
at JetBrains.Application.Environment.JetEnvironment.CreateAndRun(JetHostParameters hostparams) in CreateAndRun.il:line IL_000B mvid 5EF9
|
||||||
|
at JetBrains.Application.Environment.JetHostItems.CreateAndRun(Full input) in CreateAndRun.il:line IL_0000 mvid 5EF9
|
||||||
|
at JetBrains.Rider.Backend.Product.RiderBackendProgram.MainX(Assembly assembly, HostInfo hostInfo) in MainX.il:line IL_00B3 mvid 2082
|
||||||
|
at JetBrains.Rider.Backend.Product.RiderBackendProgram.<>c.<Main>b__4_0(Lifetime lifetime) in RiderBackendProgram.il:line IL_002B mvid 2082
|
||||||
|
at JetBrains.Lifetimes.Lifetime.Using[T](Func`2 action) in Using.il:line IL_0014 mvid 6B8D
|
||||||
|
at JetBrains.Rider.Backend.Product.RiderBackendProgram.Main() in Main.il:line IL_005D mvid 2082
|
||||||
|
”
|
||||||
|
ExceptionPath = Root
|
||||||
|
ClassName = JetBrains.Util.LoggerException
|
||||||
|
HResult = COR_E_APPLICATION=80131600
|
||||||
|
</Exception>
|
||||||
|
<Exception Message="Duplicate entry with key /Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FNetwork_002FCamera_002FCJMS11_002FTerminalDlg/@EntryIndexedValue. Using the second occurrence." Kind="Error">Duplicate entry with key /Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FNetwork_002FCamera_002FCJMS11_002FTerminalDlg/@EntryIndexedValue. Using the second occurrence.
|
||||||
|
|
||||||
|
--- EXCEPTION #1/2 [WarningException]
|
||||||
|
Message = “Duplicate entry with key /Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FNetwork_002FCamera_002FCJMS11_002FTerminalDlg/@EntryIndexedValue. Using the second occurrence.”
|
||||||
|
ExceptionPath = Root.InnerException
|
||||||
|
ClassName = System.ComponentModel.WarningException
|
||||||
|
HResult = COR_E_SYSTEM=80131501
|
||||||
|
|
||||||
|
--- Outer ---
|
||||||
|
|
||||||
|
--- EXCEPTION #2/2 [LoggerException]
|
||||||
|
Message = “Duplicate entry with key /Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FNetwork_002FCamera_002FCJMS11_002FTerminalDlg/@EntryIndexedValue. Using the second occurrence.”
|
||||||
|
InnerException = “Exception #1 at Root.InnerException”
|
||||||
|
StackTraceString = “
|
||||||
|
at JetBrains.Application.Settings.Storage.Persistence.EntriesReader.Step_ReadEntryValueEnd_CommitContent() in Step.il:line IL_002D mvid 5EF9 or Step.il:line IL_0084 mvid 5EF9
|
||||||
|
at JetBrains.Application.Settings.Storage.Persistence.EntriesReader.Step() in Step.il:line IL_002D mvid 5EF9 or Step.il:line IL_0084 mvid 5EF9
|
||||||
|
at JetBrains.Application.Settings.Storage.Persistence.EntriesReader.Run(XmlReader reader, EntryPositionsFlag entryPositionsFlag) in Run.il:line IL_006B mvid 5EF9
|
||||||
|
at JetBrains.Application.Settings.Storage.Persistence.SettingsStoreSerializationToXmlDiskFile.<>c__DisplayClass34_2.<Save_WriteFile_BackupOldCorruptedFile>b__5(XmlReader xmlreader)
|
||||||
|
at JetBrains.Util.XmlReaderEx.ReadXml[TResult](Stream stream, Func`2 FRead) in ReadXml.il:line IL_002F mvid 54EE
|
||||||
|
at JetBrains.Application.Settings.Storage.Persistence.SettingsStoreSerializationToXmlDiskFile.<>c__DisplayClass34_2.<Save_WriteFile_BackupOldCorruptedFile>b__4(Stream streamR)
|
||||||
|
at JetBrains.Util.FileSystemPathOpenEx.ReadStream[T,TF,TFile,TDir](FileSystemPathBase`3 path, Func`2 λRead) in ReadStream.il:line IL_0029 mvid D244
|
||||||
|
at JetBrains.Application.Settings.Storage.Persistence.SettingsStoreSerializationToXmlDiskFile.<>c__DisplayClass34_1.<Save_WriteFile_BackupOldCorruptedFile>b__2()
|
||||||
|
at JetBrains.Util.Logging.Logger.Catch(Action action) in Catch.il:line IL_000F mvid D244
|
||||||
|
at JetBrains.Util.XmlWriterEx.InElement(XmlWriter writer, String name, Action nested, Boolean writeFullEndElement)
|
||||||
|
at JetBrains.Application.Settings.Storage.Persistence.SettingsStoreSerializationToXmlDiskFile.<>c__DisplayClass34_0.<Save_WriteFile_BackupOldCorruptedFile>b__1(XmlWriter xmlwriter)
|
||||||
|
at JetBrains.Util.XmlWriterEx.WriteXml(Stream stream, Action`1 FWrite) in WriteXml.il:line IL_0023 mvid D244
|
||||||
|
at JetBrains.Application.Settings.Storage.Persistence.SettingsStoreSerializationToXmlDiskFile.<>c__DisplayClass34_0.<Save_WriteFile_BackupOldCorruptedFile>b__0(Stream stream)
|
||||||
|
at JetBrains.Util.FileSystemPathOpenEx.WriteStream[T,TFile,TDir](FileSystemPathBase`3 path, Action`1 λWrite) in WriteStream.il:line IL_0029 mvid D244
|
||||||
|
at JetBrains.Application.Settings.Storage.Persistence.SettingsStoreSerializationToXmlDiskFile.Save_WriteFile_BackupOldCorruptedFile(FileSystemPath path) in Save.il:line IL_002C mvid 5EF9 or Save.il:line IL_00D2 mvid 5EF9 or Save.il:line IL_0241 mvid 5EF9
|
||||||
|
at JetBrains.Application.Settings.Storage.Persistence.SettingsStoreSerializationToXmlDiskFile.<>c__DisplayClass31_0.<Save_WriteFile>b__0()
|
||||||
|
at JetBrains.Util.ILoggerEx.Catch(ILogger logger, Action action, ExceptionOrigin origin, LoggingLevel loggingLevel) in Catch.il:line IL_0060 mvid D244
|
||||||
|
at JetBrains.Application.Settings.Storage.Persistence.SettingsStoreSerializationToXmlDiskFile.Save_WriteFile(SaveDiffFlags flagsDiff, SaveForcedFlags flagsForced) in Save.il:line IL_002C mvid 5EF9 or Save.il:line IL_00D2 mvid 5EF9 or Save.il:line IL_0241 mvid 5EF9
|
||||||
|
at JetBrains.Application.Settings.Storage.Persistence.SettingsStoreSerializationToXmlDiskFile.Save(SaveDiffFlags flagsDiff, SaveForcedFlags flagsForced) in Save.il:line IL_002C mvid 5EF9 or Save.il:line IL_00D2 mvid 5EF9 or Save.il:line IL_0241 mvid 5EF9
|
||||||
|
at JetBrains.Application.Settings.Storage.Persistence.SettingsStoreSerializationToXmlDiskFile.<>c__DisplayClass9_0.<Init_FirstLoadLastSave>b__1()
|
||||||
|
at JetBrains.DataFlow.IPropertySignalEx.<>c__DisplayClass0_0`1.<Advise_FallingFront>b__0(PropertyChangedEventArgs`1 args) in IPropertySignalEx.il:line IL_0010 mvid D244 or IPropertySignalEx.il:line IL_0028 mvid D244
|
||||||
|
at JetBrains.DataFlow.CombinedProperty2`3.<>c__DisplayClass8_0.<AdviseCore>b__1() in CombinedProperty2.il:line IL_009C mvid D244
|
||||||
|
at JetBrains.Lifetimes.LifetimeDefinition.Destruct() in Destruct.il:line IL_00A8 mvid 6B8D or Destruct.il:line IL_00B1 mvid 6B8D
|
||||||
|
at JetBrains.Lifetimes.LifetimeDefinition.Terminate() in Terminate.il:line IL_0162 mvid 6B8D
|
||||||
|
at JetBrains.Application.Components.SingletonDescriptorBindings`1.Dispose() in Dispose.il:line IL_0000 mvid F14D
|
||||||
|
at JetBrains.Application.Components.SingletonDescriptor`1.DisposeInternalResources() in DisposeInternalResources.il:line IL_0048 mvid F14D
|
||||||
|
at JetBrains.Application.Components.AsyncDescriptorBase.DoDisposeSafe(Object instance) in DoDisposeSafe.il:line IL_0036 mvid F14D
|
||||||
|
at JetBrains.Application.Components.AsyncDescriptorBase.Dispose() in Dispose.il:line IL_00DD mvid F14D
|
||||||
|
at JetBrains.Application.Components.ComponentStorage.DisposeDescriptor(IComponentDescriptor descriptor) in DisposeDescriptor.il:line IL_000A mvid F14D
|
||||||
|
at JetBrains.Application.Components.ComponentStorage.Terminate() in Terminate.il:line IL_00AE mvid F14D
|
||||||
|
at JetBrains.Lifetimes.LifetimeDefinition.Destruct() in Destruct.il:line IL_00A8 mvid 6B8D or Destruct.il:line IL_00B1 mvid 6B8D
|
||||||
|
at JetBrains.Lifetimes.LifetimeDefinition.Terminate() in Terminate.il:line IL_0162 mvid 6B8D
|
||||||
|
at JetBrains.ProjectModel.SolutionInstance.CloseSolutionInstance() in CloseSolutionInstance.il:line IL_0087 mvid 4DD6
|
||||||
|
at JetBrains.ProjectModel.SolutionManagerBase.CloseSolutionInstance(SolutionInstance instance) in CloseSolutionInstance.il:line IL_0000 mvid 4DD6
|
||||||
|
at JetBrains.ProjectModel.ProjectsHost.SolutionHost.Impl.SolutionHostManager.CloseSolution() in CloseSolution.il:line IL_0046 mvid 1A79
|
||||||
|
at JetBrains.Rider.Backend.Features.ProjectModel.RiderSolutionWatcher.<>c__DisplayClass4_0.<.ctor>b__2() in RiderSolutionWatcher.il:line IL_002D mvid 2082
|
||||||
|
at JetBrains.Lifetimes.LifetimeDefinition.Destruct() in Destruct.il:line IL_00A8 mvid 6B8D or Destruct.il:line IL_00B1 mvid 6B8D
|
||||||
|
at JetBrains.Lifetimes.LifetimeDefinition.Terminate() in Terminate.il:line IL_0162 mvid 6B8D
|
||||||
|
at JetBrains.Lifetimes.LifetimeDefinition.Destruct() in Destruct.il:line IL_00A8 mvid 6B8D or Destruct.il:line IL_00B1 mvid 6B8D
|
||||||
|
at JetBrains.Lifetimes.LifetimeDefinition.Terminate() in Terminate.il:line IL_0162 mvid 6B8D
|
||||||
|
at JetBrains.Application.Components.SingletonDescriptorBindings`1.Dispose() in Dispose.il:line IL_0000 mvid F14D
|
||||||
|
at JetBrains.Application.Components.SingletonDescriptor`1.DisposeInternalResources() in DisposeInternalResources.il:line IL_0048 mvid F14D
|
||||||
|
at JetBrains.Application.Components.AsyncDescriptorBase.DoDisposeSafe(Object instance) in DoDisposeSafe.il:line IL_0036 mvid F14D
|
||||||
|
at JetBrains.Application.Components.AsyncDescriptorBase.Dispose() in Dispose.il:line IL_00DD mvid F14D
|
||||||
|
at JetBrains.Application.Components.ComponentStorage.DisposeDescriptor(IComponentDescriptor descriptor) in DisposeDescriptor.il:line IL_000A mvid F14D
|
||||||
|
at JetBrains.Application.Components.ComponentStorage.Terminate() in Terminate.il:line IL_00AE mvid F14D
|
||||||
|
at JetBrains.Lifetimes.LifetimeDefinition.Destruct() in Destruct.il:line IL_00A8 mvid 6B8D or Destruct.il:line IL_00B1 mvid 6B8D
|
||||||
|
at JetBrains.Lifetimes.LifetimeDefinition.Terminate() in Terminate.il:line IL_0162 mvid 6B8D
|
||||||
|
at JetBrains.Lifetimes.SequentialLifetimes.TrySetNewAndTerminateOld(LifetimeDefinition newLifetimeDefinition, Action`1 actionWithNewLifetime) in TrySetNewAndTerminateOld.il:line IL_001F mvid 6B8D
|
||||||
|
at JetBrains.DataFlow.IPropertyEx.<>c__DisplayClass39_0.<WhenTrue>b__0(PropertyChangedEventArgs`1 args) in IPropertyEx.il:line IL_0000 mvid D244
|
||||||
|
at JetBrains.DataFlow.Signal`1.Fire(TValue value, Object cookie) in Fire.il:line IL_0054 mvid D244
|
||||||
|
at JetBrains.DataFlow.Property`1.SetValue(TValue value, Object cookie)
|
||||||
|
at JetBrains.DataFlow.Property`1.set_Value(TValue value)
|
||||||
|
at JetBrains.Application.Environment.RunsProducts.<>c__DisplayClass5_1.<.ctor>b__0(PropertyChangedEventArgs`1 _)
|
||||||
|
at JetBrains.DataFlow.IPropertySignalEx.<>c__DisplayClass1_0`1.<Advise_FallingFront>b__0(PropertyChangedEventArgs`1 args) in IPropertySignalEx.il:line IL_0010 mvid D244 or IPropertySignalEx.il:line IL_0028 mvid D244
|
||||||
|
at JetBrains.Util.DataFlow.ProjectedProperty`2.<>c__DisplayClass10_2.<AdviseCore>b__4() in ProjectedProperty.il:line IL_0000 mvid D244 or ProjectedProperty.il:line IL_0139 mvid D244
|
||||||
|
at JetBrains.Util.Logging.Logger.Catch(Action action) in Catch.il:line IL_000F mvid D244
|
||||||
|
at JetBrains.Util.DataFlow.ProjectedProperty`2.<>c__DisplayClass10_0.<AdviseCore>b__3(PropertyChangedEventArgs`1 args) in ProjectedProperty.il:line IL_0000 mvid D244 or ProjectedProperty.il:line IL_0139 mvid D244
|
||||||
|
at JetBrains.DataFlow.Signal`1.Fire(TValue value, Object cookie) in Fire.il:line IL_0054 mvid D244
|
||||||
|
at JetBrains.DataFlow.Property`1.SetValue(TValue value, Object cookie)
|
||||||
|
at JetBrains.DataFlow.Property`1.set_Value(TValue value)
|
||||||
|
at JetBrains.Application.Environment.ReportsProductsAllowedToRun.UpdateActiveTellers(Lifetime lifetimeComponent, List`1 tellers, IThreading threading, IProperty`1 propComposite, ILogger logger) in UpdateActiveTellers.il:line IL_00FD mvid 5EF9
|
||||||
|
at JetBrains.Application.Environment.ReportsProductsAllowedToRun.<>c__DisplayClass2_0.<UpdateActiveTellers>g__UpdateActiveTellersAgain|0() in ReportsProductsAllowedToRun.il:line IL_000B mvid 5EF9
|
||||||
|
at JetBrains.DataFlow.IPropertySignalEx.<>c__DisplayClass10_0`1.<Advise_NoAcknowledgement>b__0(PropertyChangedEventArgs`1 args) in IPropertySignalEx.il:line IL_0010 mvid D244 or IPropertySignalEx.il:line IL_0028 mvid D244
|
||||||
|
at JetBrains.DataFlow.Signal`1.Fire(TValue value, Object cookie) in Fire.il:line IL_0054 mvid D244
|
||||||
|
at JetBrains.DataFlow.Property`1.SetValue(TValue value, Object cookie)
|
||||||
|
at JetBrains.DataFlow.Property`1.set_Value(TValue value)
|
||||||
|
at JetBrains.Application.Environment.ApplicationShutdownRequests.<>c__DisplayClass10_0.<ProcessShutdownVerdict>b__0() in ApplicationShutdownRequests.il:line IL_00C3 mvid 5EF9
|
||||||
|
at JetBrains.Util.Concurrency.ExecutionContextEx.WithinExecutionContext(Object o) in WithinExecutionContext.il:line IL_002F mvid D244
|
||||||
|
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state) in RunInternal.il:line IL_0040 mvid 243A
|
||||||
|
at JetBrains.Threading.ReentrancyGuard.Execute(String name, CallerInfo& caller, Action action) in Execute.il:line IL_0122 mvid D244
|
||||||
|
at JetBrains.Threading.ReentrancyGuard.ExecutePendingActions(TaskPriority priorityLowestAllowedToExecute) in ExecutePendingActions.il:line IL_0088 mvid D244
|
||||||
|
at JetBrains.Util.Concurrency.ExecutionContextEx.WithinExecutionContext(Object o) in WithinExecutionContext.il:line IL_002F mvid D244
|
||||||
|
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state) in RunInternal.il:line IL_0040 mvid 243A
|
||||||
|
at JetBrains.Threading.JetDispatcher.Closure.Execute() in Execute.il:line IL_01C6 mvid D244
|
||||||
|
at JetBrains.Threading.JetDispatcher.ProcessQueue(Int32 nMinBucket, Int32 nProcessQueueGeneration) in ProcessQueue.il:line IL_01D0 mvid D244
|
||||||
|
at JetBrains.Util.Concurrency.Dispatcher.JetDispatcherTransportReliabilityLayer.OnInvoke(TaskPriority priority) in OnInvoke.il:line IL_007F mvid D244
|
||||||
|
at JetBrains.Util.Concurrency.Dispatcher.WindowsMessageQueueTransportForJetDispatcher.OnMessage(Void* hwnd, WindowsMessages message, IntPtr wParam, IntPtr lParam) in OnMessage.il:line IL_01CD mvid D244
|
||||||
|
at JetBrains.Interop.Windows.Wrappers.NativeWin32Window.WndProc(Void* hwnd, UInt32 msg, IntPtr wParam, IntPtr lParam) in WndProc.il:line IL_0071 mvid 9494
|
||||||
|
at JetBrains.Interop.WinApi.User32Dll.DispatchMessageW(MSG* lpmsg)
|
||||||
|
at JetBrains.Interop.WinApi.User32Dll.DispatchMessageW(MSG* lpmsg)
|
||||||
|
at JetBrains.Util.Concurrency.Dispatcher.WindowsMessageQueueTransportForJetDispatcher.InternalPumpMessagesOnce()
|
||||||
|
at JetBrains.Util.Concurrency.Dispatcher.WindowsMessageQueueTransportForJetDispatcher.JetBrains.Threading.IPlatformSpecificJetDispatcherThreadUnderlyingTransport.PumpMessagesOnce(TimeSpan maxWaitForFirstMessage)
|
||||||
|
at JetBrains.Threading.RunsAndSleeps.RunOrSleep(Func`1 FCondition, IProperty`1 propCondition, TimeSpan timeout, OnWaitTimeout ontimeout, RunOrSleepFlags flags) in RunOrSleep.il:line IL_03B2 mvid D244
|
||||||
|
at JetBrains.Threading.JetDispatcher.Run(IProperty`1 condition, TimeSpan timeout, Boolean bThrowOnTimeout) in Run.il:line IL_0005 mvid D244
|
||||||
|
at JetBrains.Application.Environment.IJetHostEx.RunHostMessageLoop(IComponentContainer containerEnv) in RunHostMessageLoop.il:line IL_000E mvid 5EF9
|
||||||
|
at JetBrains.Application.Environment.HostParameters.MessagePumpMainLoopHostMixin.JetBrains.Application.Environment.HostParameters.IRunMainLoopHostMixin.RunMainLoop(ComponentContainer containerEnv)
|
||||||
|
at JetBrains.Application.Environment.HostParameters.JetHostParametersCaller.RunMainLoop(ComponentContainer containerEnv) in RunMainLoop.il:line IL_009F mvid 5EF9
|
||||||
|
at JetBrains.Application.Environment.JetEnvironment.<>c__DisplayClass12_0.<RunUntilShutdown>b__0() in JetEnvironment.il:line IL_0000 mvid 5EF9
|
||||||
|
at JetBrains.Util.Concurrency.ExecutionContextEx.WithinExecutionContext(Object o) in WithinExecutionContext.il:line IL_002F mvid D244
|
||||||
|
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state) in RunInternal.il:line IL_0040 mvid 243A
|
||||||
|
at JetBrains.Threading.JetDispatcher.Closure.Execute() in Execute.il:line IL_01C6 mvid D244
|
||||||
|
at JetBrains.Threading.JetDispatcher.Invoke(OuterLifetime lifetime, String name, CallerInfo& caller, Action action, TaskPriority priority, Nullable`1 limit)
|
||||||
|
at JetBrains.Threading.JetDispatcher.Invoke(String name, Action action, TaskPriority priority, String callerFilePath, String callerMemberName)
|
||||||
|
at JetBrains.Application.Environment.JetEnvironment.RunUntilShutdown() in RunUntilShutdown.il:line IL_0044 mvid 5EF9
|
||||||
|
at JetBrains.Application.Environment.JetEnvironment.CreateAndRun(JetHostParameters hostparams) in CreateAndRun.il:line IL_000B mvid 5EF9
|
||||||
|
at JetBrains.Application.Environment.JetHostItems.CreateAndRun(Full input) in CreateAndRun.il:line IL_0000 mvid 5EF9
|
||||||
|
at JetBrains.Rider.Backend.Product.RiderBackendProgram.MainX(Assembly assembly, HostInfo hostInfo) in MainX.il:line IL_00B3 mvid 2082
|
||||||
|
at JetBrains.Rider.Backend.Product.RiderBackendProgram.<>c.<Main>b__4_0(Lifetime lifetime) in RiderBackendProgram.il:line IL_002B mvid 2082
|
||||||
|
at JetBrains.Lifetimes.Lifetime.Using[T](Func`2 action) in Using.il:line IL_0014 mvid 6B8D
|
||||||
|
at JetBrains.Rider.Backend.Product.RiderBackendProgram.Main() in Main.il:line IL_005D mvid 2082
|
||||||
|
”
|
||||||
|
ExceptionPath = Root
|
||||||
|
ClassName = JetBrains.Util.LoggerException
|
||||||
|
HResult = COR_E_APPLICATION=80131600
|
||||||
|
</Exception>
|
||||||
|
<Exception Message="Duplicate entry with key /Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FNetwork_002FCamera_002FRoiForFixedStartCJMS11_002FRoiCfgCtrl/@EntryIndexedValue. Using the second occurrence." Kind="Error">Duplicate entry with key /Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FNetwork_002FCamera_002FRoiForFixedStartCJMS11_002FRoiCfgCtrl/@EntryIndexedValue. Using the second occurrence.
|
||||||
|
|
||||||
|
--- EXCEPTION #1/2 [WarningException]
|
||||||
|
Message = “Duplicate entry with key /Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FNetwork_002FCamera_002FRoiForFixedStartCJMS11_002FRoiCfgCtrl/@EntryIndexedValue. Using the second occurrence.”
|
||||||
|
ExceptionPath = Root.InnerException
|
||||||
|
ClassName = System.ComponentModel.WarningException
|
||||||
|
HResult = COR_E_SYSTEM=80131501
|
||||||
|
|
||||||
|
--- Outer ---
|
||||||
|
|
||||||
|
--- EXCEPTION #2/2 [LoggerException]
|
||||||
|
Message = “Duplicate entry with key /Default/ResxEditorPersonal/CheckedGroups/=TBF_002FRig_002FNetwork_002FCamera_002FRoiForFixedStartCJMS11_002FRoiCfgCtrl/@EntryIndexedValue. Using the second occurrence.”
|
||||||
|
InnerException = “Exception #1 at Root.InnerException”
|
||||||
|
StackTraceString = “
|
||||||
|
at JetBrains.Application.Settings.Storage.Persistence.EntriesReader.Step_ReadEntryValueEnd_CommitContent() in Step.il:line IL_002D mvid 5EF9 or Step.il:line IL_0084 mvid 5EF9
|
||||||
|
at JetBrains.Application.Settings.Storage.Persistence.EntriesReader.Step() in Step.il:line IL_002D mvid 5EF9 or Step.il:line IL_0084 mvid 5EF9
|
||||||
|
at JetBrains.Application.Settings.Storage.Persistence.EntriesReader.Run(XmlReader reader, EntryPositionsFlag entryPositionsFlag) in Run.il:line IL_006B mvid 5EF9
|
||||||
|
at JetBrains.Application.Settings.Storage.Persistence.SettingsStoreSerializationToXmlDiskFile.<>c__DisplayClass34_2.<Save_WriteFile_BackupOldCorruptedFile>b__5(XmlReader xmlreader)
|
||||||
|
at JetBrains.Util.XmlReaderEx.ReadXml[TResult](Stream stream, Func`2 FRead) in ReadXml.il:line IL_002F mvid 54EE
|
||||||
|
at JetBrains.Application.Settings.Storage.Persistence.SettingsStoreSerializationToXmlDiskFile.<>c__DisplayClass34_2.<Save_WriteFile_BackupOldCorruptedFile>b__4(Stream streamR)
|
||||||
|
at JetBrains.Util.FileSystemPathOpenEx.ReadStream[T,TF,TFile,TDir](FileSystemPathBase`3 path, Func`2 λRead) in ReadStream.il:line IL_0029 mvid D244
|
||||||
|
at JetBrains.Application.Settings.Storage.Persistence.SettingsStoreSerializationToXmlDiskFile.<>c__DisplayClass34_1.<Save_WriteFile_BackupOldCorruptedFile>b__2()
|
||||||
|
at JetBrains.Util.Logging.Logger.Catch(Action action) in Catch.il:line IL_000F mvid D244
|
||||||
|
at JetBrains.Util.XmlWriterEx.InElement(XmlWriter writer, String name, Action nested, Boolean writeFullEndElement)
|
||||||
|
at JetBrains.Application.Settings.Storage.Persistence.SettingsStoreSerializationToXmlDiskFile.<>c__DisplayClass34_0.<Save_WriteFile_BackupOldCorruptedFile>b__1(XmlWriter xmlwriter)
|
||||||
|
at JetBrains.Util.XmlWriterEx.WriteXml(Stream stream, Action`1 FWrite) in WriteXml.il:line IL_0023 mvid D244
|
||||||
|
at JetBrains.Application.Settings.Storage.Persistence.SettingsStoreSerializationToXmlDiskFile.<>c__DisplayClass34_0.<Save_WriteFile_BackupOldCorruptedFile>b__0(Stream stream)
|
||||||
|
at JetBrains.Util.FileSystemPathOpenEx.WriteStream[T,TFile,TDir](FileSystemPathBase`3 path, Action`1 λWrite) in WriteStream.il:line IL_0029 mvid D244
|
||||||
|
at JetBrains.Application.Settings.Storage.Persistence.SettingsStoreSerializationToXmlDiskFile.Save_WriteFile_BackupOldCorruptedFile(FileSystemPath path) in Save.il:line IL_002C mvid 5EF9 or Save.il:line IL_00D2 mvid 5EF9 or Save.il:line IL_0241 mvid 5EF9
|
||||||
|
at JetBrains.Application.Settings.Storage.Persistence.SettingsStoreSerializationToXmlDiskFile.<>c__DisplayClass31_0.<Save_WriteFile>b__0()
|
||||||
|
at JetBrains.Util.ILoggerEx.Catch(ILogger logger, Action action, ExceptionOrigin origin, LoggingLevel loggingLevel) in Catch.il:line IL_0060 mvid D244
|
||||||
|
at JetBrains.Application.Settings.Storage.Persistence.SettingsStoreSerializationToXmlDiskFile.Save_WriteFile(SaveDiffFlags flagsDiff, SaveForcedFlags flagsForced) in Save.il:line IL_002C mvid 5EF9 or Save.il:line IL_00D2 mvid 5EF9 or Save.il:line IL_0241 mvid 5EF9
|
||||||
|
at JetBrains.Application.Settings.Storage.Persistence.SettingsStoreSerializationToXmlDiskFile.Save(SaveDiffFlags flagsDiff, SaveForcedFlags flagsForced) in Save.il:line IL_002C mvid 5EF9 or Save.il:line IL_00D2 mvid 5EF9 or Save.il:line IL_0241 mvid 5EF9
|
||||||
|
at JetBrains.Application.Settings.Storage.Persistence.SettingsStoreSerializationToXmlDiskFile.<>c__DisplayClass9_0.<Init_FirstLoadLastSave>b__1()
|
||||||
|
at JetBrains.DataFlow.IPropertySignalEx.<>c__DisplayClass0_0`1.<Advise_FallingFront>b__0(PropertyChangedEventArgs`1 args) in IPropertySignalEx.il:line IL_0010 mvid D244 or IPropertySignalEx.il:line IL_0028 mvid D244
|
||||||
|
at JetBrains.DataFlow.CombinedProperty2`3.<>c__DisplayClass8_0.<AdviseCore>b__1() in CombinedProperty2.il:line IL_009C mvid D244
|
||||||
|
at JetBrains.Lifetimes.LifetimeDefinition.Destruct() in Destruct.il:line IL_00A8 mvid 6B8D or Destruct.il:line IL_00B1 mvid 6B8D
|
||||||
|
at JetBrains.Lifetimes.LifetimeDefinition.Terminate() in Terminate.il:line IL_0162 mvid 6B8D
|
||||||
|
at JetBrains.Application.Components.SingletonDescriptorBindings`1.Dispose() in Dispose.il:line IL_0000 mvid F14D
|
||||||
|
at JetBrains.Application.Components.SingletonDescriptor`1.DisposeInternalResources() in DisposeInternalResources.il:line IL_0048 mvid F14D
|
||||||
|
at JetBrains.Application.Components.AsyncDescriptorBase.DoDisposeSafe(Object instance) in DoDisposeSafe.il:line IL_0036 mvid F14D
|
||||||
|
at JetBrains.Application.Components.AsyncDescriptorBase.Dispose() in Dispose.il:line IL_00DD mvid F14D
|
||||||
|
at JetBrains.Application.Components.ComponentStorage.DisposeDescriptor(IComponentDescriptor descriptor) in DisposeDescriptor.il:line IL_000A mvid F14D
|
||||||
|
at JetBrains.Application.Components.ComponentStorage.Terminate() in Terminate.il:line IL_00AE mvid F14D
|
||||||
|
at JetBrains.Lifetimes.LifetimeDefinition.Destruct() in Destruct.il:line IL_00A8 mvid 6B8D or Destruct.il:line IL_00B1 mvid 6B8D
|
||||||
|
at JetBrains.Lifetimes.LifetimeDefinition.Terminate() in Terminate.il:line IL_0162 mvid 6B8D
|
||||||
|
at JetBrains.ProjectModel.SolutionInstance.CloseSolutionInstance() in CloseSolutionInstance.il:line IL_0087 mvid 4DD6
|
||||||
|
at JetBrains.ProjectModel.SolutionManagerBase.CloseSolutionInstance(SolutionInstance instance) in CloseSolutionInstance.il:line IL_0000 mvid 4DD6
|
||||||
|
at JetBrains.ProjectModel.ProjectsHost.SolutionHost.Impl.SolutionHostManager.CloseSolution() in CloseSolution.il:line IL_0046 mvid 1A79
|
||||||
|
at JetBrains.Rider.Backend.Features.ProjectModel.RiderSolutionWatcher.<>c__DisplayClass4_0.<.ctor>b__2() in RiderSolutionWatcher.il:line IL_002D mvid 2082
|
||||||
|
at JetBrains.Lifetimes.LifetimeDefinition.Destruct() in Destruct.il:line IL_00A8 mvid 6B8D or Destruct.il:line IL_00B1 mvid 6B8D
|
||||||
|
at JetBrains.Lifetimes.LifetimeDefinition.Terminate() in Terminate.il:line IL_0162 mvid 6B8D
|
||||||
|
at JetBrains.Lifetimes.LifetimeDefinition.Destruct() in Destruct.il:line IL_00A8 mvid 6B8D or Destruct.il:line IL_00B1 mvid 6B8D
|
||||||
|
at JetBrains.Lifetimes.LifetimeDefinition.Terminate() in Terminate.il:line IL_0162 mvid 6B8D
|
||||||
|
at JetBrains.Application.Components.SingletonDescriptorBindings`1.Dispose() in Dispose.il:line IL_0000 mvid F14D
|
||||||
|
at JetBrains.Application.Components.SingletonDescriptor`1.DisposeInternalResources() in DisposeInternalResources.il:line IL_0048 mvid F14D
|
||||||
|
at JetBrains.Application.Components.AsyncDescriptorBase.DoDisposeSafe(Object instance) in DoDisposeSafe.il:line IL_0036 mvid F14D
|
||||||
|
at JetBrains.Application.Components.AsyncDescriptorBase.Dispose() in Dispose.il:line IL_00DD mvid F14D
|
||||||
|
at JetBrains.Application.Components.ComponentStorage.DisposeDescriptor(IComponentDescriptor descriptor) in DisposeDescriptor.il:line IL_000A mvid F14D
|
||||||
|
at JetBrains.Application.Components.ComponentStorage.Terminate() in Terminate.il:line IL_00AE mvid F14D
|
||||||
|
at JetBrains.Lifetimes.LifetimeDefinition.Destruct() in Destruct.il:line IL_00A8 mvid 6B8D or Destruct.il:line IL_00B1 mvid 6B8D
|
||||||
|
at JetBrains.Lifetimes.LifetimeDefinition.Terminate() in Terminate.il:line IL_0162 mvid 6B8D
|
||||||
|
at JetBrains.Lifetimes.SequentialLifetimes.TrySetNewAndTerminateOld(LifetimeDefinition newLifetimeDefinition, Action`1 actionWithNewLifetime) in TrySetNewAndTerminateOld.il:line IL_001F mvid 6B8D
|
||||||
|
at JetBrains.DataFlow.IPropertyEx.<>c__DisplayClass39_0.<WhenTrue>b__0(PropertyChangedEventArgs`1 args) in IPropertyEx.il:line IL_0000 mvid D244
|
||||||
|
at JetBrains.DataFlow.Signal`1.Fire(TValue value, Object cookie) in Fire.il:line IL_0054 mvid D244
|
||||||
|
at JetBrains.DataFlow.Property`1.SetValue(TValue value, Object cookie)
|
||||||
|
at JetBrains.DataFlow.Property`1.set_Value(TValue value)
|
||||||
|
at JetBrains.Application.Environment.RunsProducts.<>c__DisplayClass5_1.<.ctor>b__0(PropertyChangedEventArgs`1 _)
|
||||||
|
at JetBrains.DataFlow.IPropertySignalEx.<>c__DisplayClass1_0`1.<Advise_FallingFront>b__0(PropertyChangedEventArgs`1 args) in IPropertySignalEx.il:line IL_0010 mvid D244 or IPropertySignalEx.il:line IL_0028 mvid D244
|
||||||
|
at JetBrains.Util.DataFlow.ProjectedProperty`2.<>c__DisplayClass10_2.<AdviseCore>b__4() in ProjectedProperty.il:line IL_0000 mvid D244 or ProjectedProperty.il:line IL_0139 mvid D244
|
||||||
|
at JetBrains.Util.Logging.Logger.Catch(Action action) in Catch.il:line IL_000F mvid D244
|
||||||
|
at JetBrains.Util.DataFlow.ProjectedProperty`2.<>c__DisplayClass10_0.<AdviseCore>b__3(PropertyChangedEventArgs`1 args) in ProjectedProperty.il:line IL_0000 mvid D244 or ProjectedProperty.il:line IL_0139 mvid D244
|
||||||
|
at JetBrains.DataFlow.Signal`1.Fire(TValue value, Object cookie) in Fire.il:line IL_0054 mvid D244
|
||||||
|
at JetBrains.DataFlow.Property`1.SetValue(TValue value, Object cookie)
|
||||||
|
at JetBrains.DataFlow.Property`1.set_Value(TValue value)
|
||||||
|
at JetBrains.Application.Environment.ReportsProductsAllowedToRun.UpdateActiveTellers(Lifetime lifetimeComponent, List`1 tellers, IThreading threading, IProperty`1 propComposite, ILogger logger) in UpdateActiveTellers.il:line IL_00FD mvid 5EF9
|
||||||
|
at JetBrains.Application.Environment.ReportsProductsAllowedToRun.<>c__DisplayClass2_0.<UpdateActiveTellers>g__UpdateActiveTellersAgain|0() in ReportsProductsAllowedToRun.il:line IL_000B mvid 5EF9
|
||||||
|
at JetBrains.DataFlow.IPropertySignalEx.<>c__DisplayClass10_0`1.<Advise_NoAcknowledgement>b__0(PropertyChangedEventArgs`1 args) in IPropertySignalEx.il:line IL_0010 mvid D244 or IPropertySignalEx.il:line IL_0028 mvid D244
|
||||||
|
at JetBrains.DataFlow.Signal`1.Fire(TValue value, Object cookie) in Fire.il:line IL_0054 mvid D244
|
||||||
|
at JetBrains.DataFlow.Property`1.SetValue(TValue value, Object cookie)
|
||||||
|
at JetBrains.DataFlow.Property`1.set_Value(TValue value)
|
||||||
|
at JetBrains.Application.Environment.ApplicationShutdownRequests.<>c__DisplayClass10_0.<ProcessShutdownVerdict>b__0() in ApplicationShutdownRequests.il:line IL_00C3 mvid 5EF9
|
||||||
|
at JetBrains.Util.Concurrency.ExecutionContextEx.WithinExecutionContext(Object o) in WithinExecutionContext.il:line IL_002F mvid D244
|
||||||
|
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state) in RunInternal.il:line IL_0040 mvid 243A
|
||||||
|
at JetBrains.Threading.ReentrancyGuard.Execute(String name, CallerInfo& caller, Action action) in Execute.il:line IL_0122 mvid D244
|
||||||
|
at JetBrains.Threading.ReentrancyGuard.ExecutePendingActions(TaskPriority priorityLowestAllowedToExecute) in ExecutePendingActions.il:line IL_0088 mvid D244
|
||||||
|
at JetBrains.Util.Concurrency.ExecutionContextEx.WithinExecutionContext(Object o) in WithinExecutionContext.il:line IL_002F mvid D244
|
||||||
|
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state) in RunInternal.il:line IL_0040 mvid 243A
|
||||||
|
at JetBrains.Threading.JetDispatcher.Closure.Execute() in Execute.il:line IL_01C6 mvid D244
|
||||||
|
at JetBrains.Threading.JetDispatcher.ProcessQueue(Int32 nMinBucket, Int32 nProcessQueueGeneration) in ProcessQueue.il:line IL_01D0 mvid D244
|
||||||
|
at JetBrains.Util.Concurrency.Dispatcher.JetDispatcherTransportReliabilityLayer.OnInvoke(TaskPriority priority) in OnInvoke.il:line IL_007F mvid D244
|
||||||
|
at JetBrains.Util.Concurrency.Dispatcher.WindowsMessageQueueTransportForJetDispatcher.OnMessage(Void* hwnd, WindowsMessages message, IntPtr wParam, IntPtr lParam) in OnMessage.il:line IL_01CD mvid D244
|
||||||
|
at JetBrains.Interop.Windows.Wrappers.NativeWin32Window.WndProc(Void* hwnd, UInt32 msg, IntPtr wParam, IntPtr lParam) in WndProc.il:line IL_0071 mvid 9494
|
||||||
|
at JetBrains.Interop.WinApi.User32Dll.DispatchMessageW(MSG* lpmsg)
|
||||||
|
at JetBrains.Interop.WinApi.User32Dll.DispatchMessageW(MSG* lpmsg)
|
||||||
|
at JetBrains.Util.Concurrency.Dispatcher.WindowsMessageQueueTransportForJetDispatcher.InternalPumpMessagesOnce()
|
||||||
|
at JetBrains.Util.Concurrency.Dispatcher.WindowsMessageQueueTransportForJetDispatcher.JetBrains.Threading.IPlatformSpecificJetDispatcherThreadUnderlyingTransport.PumpMessagesOnce(TimeSpan maxWaitForFirstMessage)
|
||||||
|
at JetBrains.Threading.RunsAndSleeps.RunOrSleep(Func`1 FCondition, IProperty`1 propCondition, TimeSpan timeout, OnWaitTimeout ontimeout, RunOrSleepFlags flags) in RunOrSleep.il:line IL_03B2 mvid D244
|
||||||
|
at JetBrains.Threading.JetDispatcher.Run(IProperty`1 condition, TimeSpan timeout, Boolean bThrowOnTimeout) in Run.il:line IL_0005 mvid D244
|
||||||
|
at JetBrains.Application.Environment.IJetHostEx.RunHostMessageLoop(IComponentContainer containerEnv) in RunHostMessageLoop.il:line IL_000E mvid 5EF9
|
||||||
|
at JetBrains.Application.Environment.HostParameters.MessagePumpMainLoopHostMixin.JetBrains.Application.Environment.HostParameters.IRunMainLoopHostMixin.RunMainLoop(ComponentContainer containerEnv)
|
||||||
|
at JetBrains.Application.Environment.HostParameters.JetHostParametersCaller.RunMainLoop(ComponentContainer containerEnv) in RunMainLoop.il:line IL_009F mvid 5EF9
|
||||||
|
at JetBrains.Application.Environment.JetEnvironment.<>c__DisplayClass12_0.<RunUntilShutdown>b__0() in JetEnvironment.il:line IL_0000 mvid 5EF9
|
||||||
|
at JetBrains.Util.Concurrency.ExecutionContextEx.WithinExecutionContext(Object o) in WithinExecutionContext.il:line IL_002F mvid D244
|
||||||
|
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state) in RunInternal.il:line IL_0040 mvid 243A
|
||||||
|
at JetBrains.Threading.JetDispatcher.Closure.Execute() in Execute.il:line IL_01C6 mvid D244
|
||||||
|
at JetBrains.Threading.JetDispatcher.Invoke(OuterLifetime lifetime, String name, CallerInfo& caller, Action action, TaskPriority priority, Nullable`1 limit)
|
||||||
|
at JetBrains.Threading.JetDispatcher.Invoke(String name, Action action, TaskPriority priority, String callerFilePath, String callerMemberName)
|
||||||
|
at JetBrains.Application.Environment.JetEnvironment.RunUntilShutdown() in RunUntilShutdown.il:line IL_0044 mvid 5EF9
|
||||||
|
at JetBrains.Application.Environment.JetEnvironment.CreateAndRun(JetHostParameters hostparams) in CreateAndRun.il:line IL_000B mvid 5EF9
|
||||||
|
at JetBrains.Application.Environment.JetHostItems.CreateAndRun(Full input) in CreateAndRun.il:line IL_0000 mvid 5EF9
|
||||||
|
at JetBrains.Rider.Backend.Product.RiderBackendProgram.MainX(Assembly assembly, HostInfo hostInfo) in MainX.il:line IL_00B3 mvid 2082
|
||||||
|
at JetBrains.Rider.Backend.Product.RiderBackendProgram.<>c.<Main>b__4_0(Lifetime lifetime) in RiderBackendProgram.il:line IL_002B mvid 2082
|
||||||
|
at JetBrains.Lifetimes.Lifetime.Using[T](Func`2 action) in Using.il:line IL_0014 mvid 6B8D
|
||||||
|
at JetBrains.Rider.Backend.Product.RiderBackendProgram.Main() in Main.il:line IL_005D mvid 2082
|
||||||
|
”
|
||||||
|
ExceptionPath = Root
|
||||||
|
ClassName = JetBrains.Util.LoggerException
|
||||||
|
HResult = COR_E_APPLICATION=80131600
|
||||||
|
</Exception>
|
||||||
|
<Exception Message="The 's:String' start tag on line 64 position 3 does not match the end tag of 'wpf:ResourceDictionary'. Line 355, position 91." Kind="Error">The 's:String' start tag on line 64 position 3 does not match the end tag of 'wpf:ResourceDictionary'. Line 355, position 91.
|
||||||
|
|
||||||
|
--- EXCEPTION #1/2 [XmlException]
|
||||||
|
Message = “The 's:String' start tag on line 64 position 3 does not match the end tag of 'wpf:ResourceDictionary'. Line 355, position 91.”
|
||||||
|
res = “The '{0}' start tag on line {1} position {2} does not match the end tag of '{3}'.”
|
||||||
|
args.#0 = s:String
|
||||||
|
args.#1 = 64
|
||||||
|
args.#2 = 3
|
||||||
|
args.#3 = wpf:ResourceDictionary
|
||||||
|
lineNumber = 355
|
||||||
|
linePosition = 91
|
||||||
|
version = 2.0
|
||||||
|
StackTraceString = “
|
||||||
|
at System.Xml.XmlTextReaderImpl.Throw(Exception e) in Throw.il:line IL_0027 mvid F2DC or Throw.il:line IL_0029 mvid F2DC
|
||||||
|
at System.Xml.XmlTextReaderImpl.Throw(String res, String[] args) in Throw.il:line IL_0027 mvid F2DC or Throw.il:line IL_0029 mvid F2DC
|
||||||
|
at System.Xml.XmlTextReaderImpl.ThrowTagMismatch(NodeData startTag) in ThrowTagMismatch.il:line IL_0086 mvid F2DC
|
||||||
|
at System.Xml.XmlTextReaderImpl.ParseEndElement() in ParseEndElement.il:line IL_00F2 mvid F2DC
|
||||||
|
at System.Xml.XmlTextReaderImpl.ParseElementContent() in ParseElementContent.il:line IL_0152 mvid F2DC
|
||||||
|
at JetBrains.Application.Settings.Storage.Persistence.EntriesReader.Step_GenericRead() in Step.il:line IL_0000 mvid 5EF9
|
||||||
|
”
|
||||||
|
ExceptionPath = Root.InnerException
|
||||||
|
ClassName = System.Xml.XmlException
|
||||||
|
HResult = Xml=80131940
|
||||||
|
Source = System.Private.Xml
|
||||||
|
Data.ThreadLocalDebugInfo = ShutdownRequested
|
||||||
|
|
||||||
|
--- Outer ---
|
||||||
|
|
||||||
|
--- EXCEPTION #2/2 [LoggerException]
|
||||||
|
Message = “The 's:String' start tag on line 64 position 3 does not match the end tag of 'wpf:ResourceDictionary'. Line 355, position 91.”
|
||||||
|
InnerException = “Exception #1 at Root.InnerException”
|
||||||
|
StackTraceString = “
|
||||||
|
at JetBrains.Util.ILoggerEx.LogException(ILogger logger, LoggingLevel level, Exception exception, ExceptionOrigin exceptionOrigin, String comment) in LogException.il:line IL_002E mvid D244
|
||||||
|
at JetBrains.Util.ILoggerEx.Error(ILogger logger, Exception exception, ExceptionOrigin origin, String comment) in Error.il:line IL_0000 mvid D244
|
||||||
|
at JetBrains.Util.ILoggerEx.LogOuterDataException(ILogger logger, Exception exception, String comment) in LogOuterDataException.il:line IL_0000 mvid D244
|
||||||
|
at JetBrains.Application.Settings.Storage.Persistence.EntriesReader.Step_GenericRead() in Step.il:line IL_0000 mvid 5EF9 or Step.il:line IL_006F mvid 5EF9
|
||||||
|
at JetBrains.Application.Settings.Storage.Persistence.EntriesReader.Step() in Step.il:line IL_0000 mvid 5EF9 or Step.il:line IL_006F mvid 5EF9
|
||||||
|
at JetBrains.Application.Settings.Storage.Persistence.EntriesReader.Run(XmlReader reader, EntryPositionsFlag entryPositionsFlag) in Run.il:line IL_006B mvid 5EF9
|
||||||
|
at JetBrains.Application.Settings.Storage.Persistence.SettingsStoreSerializationToXmlDiskFile.<>c__DisplayClass34_2.<Save_WriteFile_BackupOldCorruptedFile>b__5(XmlReader xmlreader)
|
||||||
|
at JetBrains.Util.XmlReaderEx.ReadXml[TResult](Stream stream, Func`2 FRead) in ReadXml.il:line IL_002F mvid 54EE
|
||||||
|
at JetBrains.Application.Settings.Storage.Persistence.SettingsStoreSerializationToXmlDiskFile.<>c__DisplayClass34_2.<Save_WriteFile_BackupOldCorruptedFile>b__4(Stream streamR)
|
||||||
|
at JetBrains.Util.FileSystemPathOpenEx.ReadStream[T,TF,TFile,TDir](FileSystemPathBase`3 path, Func`2 λRead) in ReadStream.il:line IL_0029 mvid D244
|
||||||
|
at JetBrains.Application.Settings.Storage.Persistence.SettingsStoreSerializationToXmlDiskFile.<>c__DisplayClass34_1.<Save_WriteFile_BackupOldCorruptedFile>b__2()
|
||||||
|
at JetBrains.Util.Logging.Logger.Catch(Action action) in Catch.il:line IL_000F mvid D244
|
||||||
|
at JetBrains.Util.XmlWriterEx.InElement(XmlWriter writer, String name, Action nested, Boolean writeFullEndElement)
|
||||||
|
at JetBrains.Application.Settings.Storage.Persistence.SettingsStoreSerializationToXmlDiskFile.<>c__DisplayClass34_0.<Save_WriteFile_BackupOldCorruptedFile>b__1(XmlWriter xmlwriter)
|
||||||
|
at JetBrains.Util.XmlWriterEx.WriteXml(Stream stream, Action`1 FWrite) in WriteXml.il:line IL_0023 mvid D244
|
||||||
|
at JetBrains.Application.Settings.Storage.Persistence.SettingsStoreSerializationToXmlDiskFile.<>c__DisplayClass34_0.<Save_WriteFile_BackupOldCorruptedFile>b__0(Stream stream)
|
||||||
|
at JetBrains.Util.FileSystemPathOpenEx.WriteStream[T,TFile,TDir](FileSystemPathBase`3 path, Action`1 λWrite) in WriteStream.il:line IL_0029 mvid D244
|
||||||
|
at JetBrains.Application.Settings.Storage.Persistence.SettingsStoreSerializationToXmlDiskFile.Save_WriteFile_BackupOldCorruptedFile(FileSystemPath path) in Save.il:line IL_002C mvid 5EF9 or Save.il:line IL_00D2 mvid 5EF9 or Save.il:line IL_0241 mvid 5EF9
|
||||||
|
at JetBrains.Application.Settings.Storage.Persistence.SettingsStoreSerializationToXmlDiskFile.<>c__DisplayClass31_0.<Save_WriteFile>b__0()
|
||||||
|
at JetBrains.Util.ILoggerEx.Catch(ILogger logger, Action action, ExceptionOrigin origin, LoggingLevel loggingLevel) in Catch.il:line IL_0060 mvid D244
|
||||||
|
at JetBrains.Application.Settings.Storage.Persistence.SettingsStoreSerializationToXmlDiskFile.Save_WriteFile(SaveDiffFlags flagsDiff, SaveForcedFlags flagsForced) in Save.il:line IL_002C mvid 5EF9 or Save.il:line IL_00D2 mvid 5EF9 or Save.il:line IL_0241 mvid 5EF9
|
||||||
|
at JetBrains.Application.Settings.Storage.Persistence.SettingsStoreSerializationToXmlDiskFile.Save(SaveDiffFlags flagsDiff, SaveForcedFlags flagsForced) in Save.il:line IL_002C mvid 5EF9 or Save.il:line IL_00D2 mvid 5EF9 or Save.il:line IL_0241 mvid 5EF9
|
||||||
|
at JetBrains.Application.Settings.Storage.Persistence.SettingsStoreSerializationToXmlDiskFile.<>c__DisplayClass9_0.<Init_FirstLoadLastSave>b__1()
|
||||||
|
at JetBrains.DataFlow.IPropertySignalEx.<>c__DisplayClass0_0`1.<Advise_FallingFront>b__0(PropertyChangedEventArgs`1 args) in IPropertySignalEx.il:line IL_0010 mvid D244 or IPropertySignalEx.il:line IL_0028 mvid D244
|
||||||
|
at JetBrains.DataFlow.CombinedProperty2`3.<>c__DisplayClass8_0.<AdviseCore>b__1() in CombinedProperty2.il:line IL_009C mvid D244
|
||||||
|
at JetBrains.Lifetimes.LifetimeDefinition.Destruct() in Destruct.il:line IL_00A8 mvid 6B8D or Destruct.il:line IL_00B1 mvid 6B8D
|
||||||
|
at JetBrains.Lifetimes.LifetimeDefinition.Terminate() in Terminate.il:line IL_0162 mvid 6B8D
|
||||||
|
at JetBrains.Application.Components.SingletonDescriptorBindings`1.Dispose() in Dispose.il:line IL_0000 mvid F14D
|
||||||
|
at JetBrains.Application.Components.SingletonDescriptor`1.DisposeInternalResources() in DisposeInternalResources.il:line IL_0048 mvid F14D
|
||||||
|
at JetBrains.Application.Components.AsyncDescriptorBase.DoDisposeSafe(Object instance) in DoDisposeSafe.il:line IL_0036 mvid F14D
|
||||||
|
at JetBrains.Application.Components.AsyncDescriptorBase.Dispose() in Dispose.il:line IL_00DD mvid F14D
|
||||||
|
at JetBrains.Application.Components.ComponentStorage.DisposeDescriptor(IComponentDescriptor descriptor) in DisposeDescriptor.il:line IL_000A mvid F14D
|
||||||
|
at JetBrains.Application.Components.ComponentStorage.Terminate() in Terminate.il:line IL_00AE mvid F14D
|
||||||
|
at JetBrains.Lifetimes.LifetimeDefinition.Destruct() in Destruct.il:line IL_00A8 mvid 6B8D or Destruct.il:line IL_00B1 mvid 6B8D
|
||||||
|
at JetBrains.Lifetimes.LifetimeDefinition.Terminate() in Terminate.il:line IL_0162 mvid 6B8D
|
||||||
|
at JetBrains.ProjectModel.SolutionInstance.CloseSolutionInstance() in CloseSolutionInstance.il:line IL_0087 mvid 4DD6
|
||||||
|
at JetBrains.ProjectModel.SolutionManagerBase.CloseSolutionInstance(SolutionInstance instance) in CloseSolutionInstance.il:line IL_0000 mvid 4DD6
|
||||||
|
at JetBrains.ProjectModel.ProjectsHost.SolutionHost.Impl.SolutionHostManager.CloseSolution() in CloseSolution.il:line IL_0046 mvid 1A79
|
||||||
|
at JetBrains.Rider.Backend.Features.ProjectModel.RiderSolutionWatcher.<>c__DisplayClass4_0.<.ctor>b__2() in RiderSolutionWatcher.il:line IL_002D mvid 2082
|
||||||
|
at JetBrains.Lifetimes.LifetimeDefinition.Destruct() in Destruct.il:line IL_00A8 mvid 6B8D or Destruct.il:line IL_00B1 mvid 6B8D
|
||||||
|
at JetBrains.Lifetimes.LifetimeDefinition.Terminate() in Terminate.il:line IL_0162 mvid 6B8D
|
||||||
|
at JetBrains.Lifetimes.LifetimeDefinition.Destruct() in Destruct.il:line IL_00A8 mvid 6B8D or Destruct.il:line IL_00B1 mvid 6B8D
|
||||||
|
at JetBrains.Lifetimes.LifetimeDefinition.Terminate() in Terminate.il:line IL_0162 mvid 6B8D
|
||||||
|
at JetBrains.Application.Components.SingletonDescriptorBindings`1.Dispose() in Dispose.il:line IL_0000 mvid F14D
|
||||||
|
at JetBrains.Application.Components.SingletonDescriptor`1.DisposeInternalResources() in DisposeInternalResources.il:line IL_0048 mvid F14D
|
||||||
|
at JetBrains.Application.Components.AsyncDescriptorBase.DoDisposeSafe(Object instance) in DoDisposeSafe.il:line IL_0036 mvid F14D
|
||||||
|
at JetBrains.Application.Components.AsyncDescriptorBase.Dispose() in Dispose.il:line IL_00DD mvid F14D
|
||||||
|
at JetBrains.Application.Components.ComponentStorage.DisposeDescriptor(IComponentDescriptor descriptor) in DisposeDescriptor.il:line IL_000A mvid F14D
|
||||||
|
at JetBrains.Application.Components.ComponentStorage.Terminate() in Terminate.il:line IL_00AE mvid F14D
|
||||||
|
at JetBrains.Lifetimes.LifetimeDefinition.Destruct() in Destruct.il:line IL_00A8 mvid 6B8D or Destruct.il:line IL_00B1 mvid 6B8D
|
||||||
|
at JetBrains.Lifetimes.LifetimeDefinition.Terminate() in Terminate.il:line IL_0162 mvid 6B8D
|
||||||
|
at JetBrains.Lifetimes.SequentialLifetimes.TrySetNewAndTerminateOld(LifetimeDefinition newLifetimeDefinition, Action`1 actionWithNewLifetime) in TrySetNewAndTerminateOld.il:line IL_001F mvid 6B8D
|
||||||
|
at JetBrains.DataFlow.IPropertyEx.<>c__DisplayClass39_0.<WhenTrue>b__0(PropertyChangedEventArgs`1 args) in IPropertyEx.il:line IL_0000 mvid D244
|
||||||
|
at JetBrains.DataFlow.Signal`1.Fire(TValue value, Object cookie) in Fire.il:line IL_0054 mvid D244
|
||||||
|
at JetBrains.DataFlow.Property`1.SetValue(TValue value, Object cookie)
|
||||||
|
at JetBrains.DataFlow.Property`1.set_Value(TValue value)
|
||||||
|
at JetBrains.Application.Environment.RunsProducts.<>c__DisplayClass5_1.<.ctor>b__0(PropertyChangedEventArgs`1 _)
|
||||||
|
at JetBrains.DataFlow.IPropertySignalEx.<>c__DisplayClass1_0`1.<Advise_FallingFront>b__0(PropertyChangedEventArgs`1 args) in IPropertySignalEx.il:line IL_0010 mvid D244 or IPropertySignalEx.il:line IL_0028 mvid D244
|
||||||
|
at JetBrains.Util.DataFlow.ProjectedProperty`2.<>c__DisplayClass10_2.<AdviseCore>b__4() in ProjectedProperty.il:line IL_0000 mvid D244 or ProjectedProperty.il:line IL_0139 mvid D244
|
||||||
|
at JetBrains.Util.Logging.Logger.Catch(Action action) in Catch.il:line IL_000F mvid D244
|
||||||
|
at JetBrains.Util.DataFlow.ProjectedProperty`2.<>c__DisplayClass10_0.<AdviseCore>b__3(PropertyChangedEventArgs`1 args) in ProjectedProperty.il:line IL_0000 mvid D244 or ProjectedProperty.il:line IL_0139 mvid D244
|
||||||
|
at JetBrains.DataFlow.Signal`1.Fire(TValue value, Object cookie) in Fire.il:line IL_0054 mvid D244
|
||||||
|
at JetBrains.DataFlow.Property`1.SetValue(TValue value, Object cookie)
|
||||||
|
at JetBrains.DataFlow.Property`1.set_Value(TValue value)
|
||||||
|
at JetBrains.Application.Environment.ReportsProductsAllowedToRun.UpdateActiveTellers(Lifetime lifetimeComponent, List`1 tellers, IThreading threading, IProperty`1 propComposite, ILogger logger) in UpdateActiveTellers.il:line IL_00FD mvid 5EF9
|
||||||
|
at JetBrains.Application.Environment.ReportsProductsAllowedToRun.<>c__DisplayClass2_0.<UpdateActiveTellers>g__UpdateActiveTellersAgain|0() in ReportsProductsAllowedToRun.il:line IL_000B mvid 5EF9
|
||||||
|
at JetBrains.DataFlow.IPropertySignalEx.<>c__DisplayClass10_0`1.<Advise_NoAcknowledgement>b__0(PropertyChangedEventArgs`1 args) in IPropertySignalEx.il:line IL_0010 mvid D244 or IPropertySignalEx.il:line IL_0028 mvid D244
|
||||||
|
at JetBrains.DataFlow.Signal`1.Fire(TValue value, Object cookie) in Fire.il:line IL_0054 mvid D244
|
||||||
|
at JetBrains.DataFlow.Property`1.SetValue(TValue value, Object cookie)
|
||||||
|
at JetBrains.DataFlow.Property`1.set_Value(TValue value)
|
||||||
|
at JetBrains.Application.Environment.ApplicationShutdownRequests.<>c__DisplayClass10_0.<ProcessShutdownVerdict>b__0() in ApplicationShutdownRequests.il:line IL_00C3 mvid 5EF9
|
||||||
|
at JetBrains.Util.Concurrency.ExecutionContextEx.WithinExecutionContext(Object o) in WithinExecutionContext.il:line IL_002F mvid D244
|
||||||
|
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state) in RunInternal.il:line IL_0040 mvid 243A
|
||||||
|
at JetBrains.Threading.ReentrancyGuard.Execute(String name, CallerInfo& caller, Action action) in Execute.il:line IL_0122 mvid D244
|
||||||
|
at JetBrains.Threading.ReentrancyGuard.ExecutePendingActions(TaskPriority priorityLowestAllowedToExecute) in ExecutePendingActions.il:line IL_0088 mvid D244
|
||||||
|
at JetBrains.Util.Concurrency.ExecutionContextEx.WithinExecutionContext(Object o) in WithinExecutionContext.il:line IL_002F mvid D244
|
||||||
|
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state) in RunInternal.il:line IL_0040 mvid 243A
|
||||||
|
at JetBrains.Threading.JetDispatcher.Closure.Execute() in Execute.il:line IL_01C6 mvid D244
|
||||||
|
at JetBrains.Threading.JetDispatcher.ProcessQueue(Int32 nMinBucket, Int32 nProcessQueueGeneration) in ProcessQueue.il:line IL_01D0 mvid D244
|
||||||
|
at JetBrains.Util.Concurrency.Dispatcher.JetDispatcherTransportReliabilityLayer.OnInvoke(TaskPriority priority) in OnInvoke.il:line IL_007F mvid D244
|
||||||
|
at JetBrains.Util.Concurrency.Dispatcher.WindowsMessageQueueTransportForJetDispatcher.OnMessage(Void* hwnd, WindowsMessages message, IntPtr wParam, IntPtr lParam) in OnMessage.il:line IL_01CD mvid D244
|
||||||
|
at JetBrains.Interop.Windows.Wrappers.NativeWin32Window.WndProc(Void* hwnd, UInt32 msg, IntPtr wParam, IntPtr lParam) in WndProc.il:line IL_0071 mvid 9494
|
||||||
|
at JetBrains.Interop.WinApi.User32Dll.DispatchMessageW(MSG* lpmsg)
|
||||||
|
at JetBrains.Interop.WinApi.User32Dll.DispatchMessageW(MSG* lpmsg)
|
||||||
|
at JetBrains.Util.Concurrency.Dispatcher.WindowsMessageQueueTransportForJetDispatcher.InternalPumpMessagesOnce()
|
||||||
|
at JetBrains.Util.Concurrency.Dispatcher.WindowsMessageQueueTransportForJetDispatcher.JetBrains.Threading.IPlatformSpecificJetDispatcherThreadUnderlyingTransport.PumpMessagesOnce(TimeSpan maxWaitForFirstMessage)
|
||||||
|
at JetBrains.Threading.RunsAndSleeps.RunOrSleep(Func`1 FCondition, IProperty`1 propCondition, TimeSpan timeout, OnWaitTimeout ontimeout, RunOrSleepFlags flags) in RunOrSleep.il:line IL_03B2 mvid D244
|
||||||
|
at JetBrains.Threading.JetDispatcher.Run(IProperty`1 condition, TimeSpan timeout, Boolean bThrowOnTimeout) in Run.il:line IL_0005 mvid D244
|
||||||
|
at JetBrains.Application.Environment.IJetHostEx.RunHostMessageLoop(IComponentContainer containerEnv) in RunHostMessageLoop.il:line IL_000E mvid 5EF9
|
||||||
|
at JetBrains.Application.Environment.HostParameters.MessagePumpMainLoopHostMixin.JetBrains.Application.Environment.HostParameters.IRunMainLoopHostMixin.RunMainLoop(ComponentContainer containerEnv)
|
||||||
|
at JetBrains.Application.Environment.HostParameters.JetHostParametersCaller.RunMainLoop(ComponentContainer containerEnv) in RunMainLoop.il:line IL_009F mvid 5EF9
|
||||||
|
at JetBrains.Application.Environment.JetEnvironment.<>c__DisplayClass12_0.<RunUntilShutdown>b__0() in JetEnvironment.il:line IL_0000 mvid 5EF9
|
||||||
|
at JetBrains.Util.Concurrency.ExecutionContextEx.WithinExecutionContext(Object o) in WithinExecutionContext.il:line IL_002F mvid D244
|
||||||
|
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state) in RunInternal.il:line IL_0040 mvid 243A
|
||||||
|
at JetBrains.Threading.JetDispatcher.Closure.Execute() in Execute.il:line IL_01C6 mvid D244
|
||||||
|
at JetBrains.Threading.JetDispatcher.Invoke(OuterLifetime lifetime, String name, CallerInfo& caller, Action action, TaskPriority priority, Nullable`1 limit)
|
||||||
|
at JetBrains.Threading.JetDispatcher.Invoke(String name, Action action, TaskPriority priority, String callerFilePath, String callerMemberName)
|
||||||
|
at JetBrains.Application.Environment.JetEnvironment.RunUntilShutdown()
|
||||||
|
at JetBrains.Application.Environment.JetEnvironment.CreateAndRun(JetHostParameters hostparams) in CreateAndRun.il:line IL_000B mvid 5EF9
|
||||||
|
at JetBrains.Application.Environment.JetHostItems.CreateAndRun(Full input) in CreateAndRun.il:line IL_0000 mvid 5EF9
|
||||||
|
at JetBrains.Rider.Backend.Product.RiderBackendProgram.MainX(Assembly assembly, HostInfo hostInfo) in MainX.il:line IL_00B3 mvid 2082
|
||||||
|
at JetBrains.Rider.Backend.Product.RiderBackendProgram.<>c.<Main>b__4_0(Lifetime lifetime) in RiderBackendProgram.il:line IL_002B mvid 2082
|
||||||
|
at JetBrains.Lifetimes.Lifetime.Using[T](Func`2 action) in Using.il:line IL_0014 mvid 6B8D
|
||||||
|
at JetBrains.Rider.Backend.Product.RiderBackendProgram.Main() in Main.il:line IL_005D mvid 2082
|
||||||
|
”
|
||||||
|
ExceptionPath = Root
|
||||||
|
ClassName = JetBrains.Util.LoggerException
|
||||||
|
HResult = COR_E_APPLICATION=80131600
|
||||||
|
</Exception>
|
||||||
|
<!--The backup file has been created before writing in-memory changes to the settings file. As the existing settings file is corrupted, many settings might get lost when writing the new content. If you'd like to restore the settings from the previous version, here're the changes against the backed-up version (note: subsequent changes are not reflected here).-->
|
||||||
|
<InMemoryChanges>
|
||||||
|
<SetValue>
|
||||||
|
<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
|
||||||
|
<s:String x:Key="/Default/Environment/UnitTesting/UnitTestSessionStore/Sessions/=943f9249_002Ded52_002D453e_002Db953_002Db234aabc0cc0/@EntryIndexedValue"><SessionState ContinuousTestingMode="0" IsActive="True" Name="TryJsonStringDeserialize_Test" xmlns="urn:schemas-jetbrains-com:jetbrains-ut-session">
|
||||||
|
<TestAncestor>
|
||||||
|
<TestId>MSTest::77EB589F-C670-4489-AAD6-2A3C02061FD1::.NETFramework,Version=v4.7.2::TBFTests.Rig.RegisterReaders.PoseidonCmdStartStop.CliRunnerTest.TryJsonStringDeserialize_Test</TestId>
|
||||||
|
<TestId>MSTest::77EB589F-C670-4489-AAD6-2A3C02061FD1::.NETFramework,Version=v4.7.2::TBFTests.Rig.Network.Camera.RoiForFixedStartKeyence.RoiTest.Valve</TestId>
|
||||||
|
<TestId>MSTest::77EB589F-C670-4489-AAD6-2A3C02061FD1::.NETFramework,Version=v4.7.2::TBFTests.Rig.Network.Camera.KeyenceIV3G120.CameraTest</TestId>
|
||||||
|
<TestId>MSTest::77EB589F-C670-4489-AAD6-2A3C02061FD1::.NETFramework,Version=v4.7.2::TBFTests.Rig.Network.Camera.CJMS11.CameraTest</TestId>
|
||||||
|
<TestId>MSTest::77EB589F-C670-4489-AAD6-2A3C02061FD1::.NETFramework,Version=v4.7.2::TBFTests.Rig.Output.FileWriters.Enhanced.WriterTest</TestId>
|
||||||
|
</TestAncestor>
|
||||||
|
</SessionState></s:String></wpf:ResourceDictionary>
|
||||||
|
</SetValue>
|
||||||
|
<ClearValue></ClearValue>
|
||||||
|
</InMemoryChanges>
|
||||||
|
</CorruptedSettingsDescription>
|
||||||
@@ -0,0 +1,44 @@
|
|||||||
|
///
|
||||||
|
/// Copyright (c) 2017 Sensus Metering Systems
|
||||||
|
///
|
||||||
|
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
|
||||||
|
namespace TBF.Boxes
|
||||||
|
{
|
||||||
|
public class CheckBoxImage : PictureBox
|
||||||
|
{
|
||||||
|
private bool cbChecked;
|
||||||
|
private readonly Image checkedImg;
|
||||||
|
private readonly Image uncheckedImg;
|
||||||
|
|
||||||
|
public CheckBoxImage()
|
||||||
|
: this(new Bitmap(TBF.Properties.Resources.SwitchOn), new Bitmap(TBF.Properties.Resources.SwitchOff), true)
|
||||||
|
{
|
||||||
|
SizeMode = PictureBoxSizeMode.StretchImage;
|
||||||
|
}
|
||||||
|
|
||||||
|
public CheckBoxImage(Image checkedImg, Image uncheckedImg, bool initState)
|
||||||
|
: base()
|
||||||
|
{
|
||||||
|
this.checkedImg = checkedImg;
|
||||||
|
this.uncheckedImg = uncheckedImg;
|
||||||
|
Click += (sender, e) => { Checked = !Checked; };
|
||||||
|
Checked = initState;
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool Checked
|
||||||
|
{
|
||||||
|
get { return cbChecked; }
|
||||||
|
set
|
||||||
|
{
|
||||||
|
if (Enabled)
|
||||||
|
{
|
||||||
|
Image = value ? checkedImg : uncheckedImg;
|
||||||
|
cbChecked = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -29,5 +29,5 @@ using System.Runtime.InteropServices;
|
|||||||
// Build Number
|
// Build Number
|
||||||
// Revision
|
// Revision
|
||||||
//
|
//
|
||||||
[assembly: AssemblyVersion("3.9.2144.1")]
|
[assembly: AssemblyVersion("3.9.2149.4")]
|
||||||
[assembly: AssemblyFileVersion("3.9.2144.1")]
|
[assembly: AssemblyFileVersion("3.9.2149.4")]
|
||||||
|
|||||||
@@ -0,0 +1,5 @@
|
|||||||
|
## Version History
|
||||||
|
|
||||||
|
| Version | Target Environment | Title | Description |
|
||||||
|
|------------|--------------------------------------------------------------|-----------------------------------------------------|------------------------------------|
|
||||||
|
| 3.9.2149.0 | HeatMeters, Heat meter sensors, Procedure Dilog, Tab Process | Excanged columns value 'Sensor' and 'Heat meter sensor' | Fix in code ProcedureDlg, row 1851 |
|
||||||
Generated
+18
@@ -5153,6 +5153,15 @@ namespace TBF.Resources {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to Save Communication.
|
||||||
|
/// </summary>
|
||||||
|
internal static string SaveCommunication {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("SaveCommunication", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Looks up a localized string similar to Saving all results.
|
/// Looks up a localized string similar to Saving all results.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -5549,6 +5558,15 @@ namespace TBF.Resources {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to Show Dialog.
|
||||||
|
/// </summary>
|
||||||
|
internal static string ShowDialog {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("ShowDialog", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Looks up a localized string similar to Shut down computer after exiting Test Bench Framework.
|
/// Looks up a localized string similar to Shut down computer after exiting Test Bench Framework.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@@ -1755,4 +1755,7 @@
|
|||||||
<data name="Project_number" xml:space="preserve">
|
<data name="Project_number" xml:space="preserve">
|
||||||
<value>Projtové číslo</value>
|
<value>Projtové číslo</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="ShowDialog" xml:space="preserve">
|
||||||
|
<value>Zobraz Okno</value>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
||||||
@@ -2220,4 +2220,7 @@
|
|||||||
<data name="Project_number" xml:space="preserve">
|
<data name="Project_number" xml:space="preserve">
|
||||||
<value>Projektnummer</value>
|
<value>Projektnummer</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="ShowDialog" xml:space="preserve">
|
||||||
|
<value>Dialog anzeigen</value>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
||||||
@@ -123,4 +123,7 @@
|
|||||||
<data name="Project_number" xml:space="preserve">
|
<data name="Project_number" xml:space="preserve">
|
||||||
<value>Número de proyecto</value>
|
<value>Número de proyecto</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="ShowDialog" xml:space="preserve">
|
||||||
|
<value>Mostrar diálogo</value>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
||||||
@@ -2019,4 +2019,7 @@
|
|||||||
<data name="Project_number" xml:space="preserve">
|
<data name="Project_number" xml:space="preserve">
|
||||||
<value>Numéro de projet</value>
|
<value>Numéro de projet</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="ShowDialog" xml:space="preserve">
|
||||||
|
<value>Afficher la boîte de dialogue</value>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
||||||
@@ -1788,4 +1788,7 @@
|
|||||||
<data name="Project_number" xml:space="preserve">
|
<data name="Project_number" xml:space="preserve">
|
||||||
<value>Numero del progetto</value>
|
<value>Numero del progetto</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="ShowDialog" xml:space="preserve">
|
||||||
|
<value>Mostra dialogo</value>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
||||||
@@ -2467,4 +2467,11 @@
|
|||||||
<data name="Voltage" xml:space="preserve">
|
<data name="Voltage" xml:space="preserve">
|
||||||
<value>Voltage</value>
|
<value>Voltage</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="ShowDialog" xml:space="preserve">
|
||||||
|
<value>Show Dialog</value>
|
||||||
|
</data>
|
||||||
|
<data name="SaveCommunication" xml:space="preserve">
|
||||||
|
<value>Save Communication</value>
|
||||||
|
</data>
|
||||||
|
|
||||||
</root>
|
</root>
|
||||||
@@ -840,4 +840,7 @@
|
|||||||
<data name="Project_number" xml:space="preserve">
|
<data name="Project_number" xml:space="preserve">
|
||||||
<value>Numărul proiectului</value>
|
<value>Numărul proiectului</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="SaveCommunication" xml:space="preserve">
|
||||||
|
<value>Save Communication</value>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
||||||
@@ -244,4 +244,10 @@
|
|||||||
<data name="Project_number" xml:space="preserve">
|
<data name="Project_number" xml:space="preserve">
|
||||||
<value>Číslo projektu</value>
|
<value>Číslo projektu</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="ShowDialog" xml:space="preserve">
|
||||||
|
<value>Zobraz dialóg</value>
|
||||||
|
</data>
|
||||||
|
<data name="SaveCommunication" xml:space="preserve">
|
||||||
|
<value>Ulož komunikáciu</value>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
||||||
@@ -2,6 +2,7 @@
|
|||||||
/// Copyright (c) 2021-2023 Sensus Slovensko a.s.
|
/// Copyright (c) 2021-2023 Sensus Slovensko a.s.
|
||||||
///
|
///
|
||||||
using System;
|
using System;
|
||||||
|
using Common;
|
||||||
using log4net;
|
using log4net;
|
||||||
using TBF.Rig.Sequences;
|
using TBF.Rig.Sequences;
|
||||||
|
|
||||||
@@ -11,6 +12,10 @@ namespace TBF.Rig.ControlBoard.Uni
|
|||||||
{
|
{
|
||||||
private static readonly ILog log = LogManager.GetLogger(typeof(FlyingStartStopTestOp));
|
private static readonly ILog log = LogManager.GetLogger(typeof(FlyingStartStopTestOp));
|
||||||
public override string ToString() { return string.Format("FlyingStartStopTestOp()"); }
|
public override string ToString() { return string.Format("FlyingStartStopTestOp()"); }
|
||||||
|
|
||||||
|
private DateTime startTimeForSimulation;
|
||||||
|
private bool simulationTimerStarted = false;
|
||||||
|
|
||||||
|
|
||||||
/// Arguments of the constructor
|
/// Arguments of the constructor
|
||||||
readonly UniCB uniCB;
|
readonly UniCB uniCB;
|
||||||
@@ -123,6 +128,28 @@ namespace TBF.Rig.ControlBoard.Uni
|
|||||||
{
|
{
|
||||||
log.DebugFormat("Op.Run() opState={0}", opState);
|
log.DebugFormat("Op.Run() opState={0}", opState);
|
||||||
|
|
||||||
|
//Simulation of processing time 25 seconds
|
||||||
|
if (uniCB.DebugLevel == DebugMode.Simulate)
|
||||||
|
{
|
||||||
|
if (opState == OpState.StartingTest)
|
||||||
|
{
|
||||||
|
startTimeForSimulation = DateTime.Now;
|
||||||
|
simulationTimerStarted = false;
|
||||||
|
}
|
||||||
|
if (opState == OpState.TestInProgress)
|
||||||
|
{
|
||||||
|
if (!simulationTimerStarted)
|
||||||
|
{
|
||||||
|
startTimeForSimulation = DateTime.Now;
|
||||||
|
simulationTimerStarted = true;
|
||||||
|
}
|
||||||
|
else if (DateTime.Now - startTimeForSimulation > TimeSpan.FromSeconds(25))
|
||||||
|
{
|
||||||
|
return Event.TestCompleted;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
switch (opState)
|
switch (opState)
|
||||||
{
|
{
|
||||||
case OpState.StartingTest:
|
case OpState.StartingTest:
|
||||||
|
|||||||
@@ -81,7 +81,7 @@ namespace TBF.Rig.DataEntry.Combined
|
|||||||
|
|
||||||
|
|
||||||
/// <returns>Reference to the operation</returns>
|
/// <returns>Reference to the operation</returns>
|
||||||
public IOperation ShowCycleBeginFormOp()
|
public IOperation ShowCycleBeginFormOp( IRegReader[] regReadersOptional = null)
|
||||||
{
|
{
|
||||||
if (currentOp != CurrentOp.None) throw new Exception("Sequence error");
|
if (currentOp != CurrentOp.None) throw new Exception("Sequence error");
|
||||||
currentOp = CurrentOp.ShowFormAtCycleBeginning;
|
currentOp = CurrentOp.ShowFormAtCycleBeginning;
|
||||||
|
|||||||
@@ -96,7 +96,7 @@ namespace TBF.Rig.DataEntry.HeatMeters12
|
|||||||
|
|
||||||
|
|
||||||
/// <returns>Reference to the operation</returns>
|
/// <returns>Reference to the operation</returns>
|
||||||
public IOperation ShowCycleBeginFormOp()
|
public IOperation ShowCycleBeginFormOp( IRegReader[] regReadersOptional = null)
|
||||||
{
|
{
|
||||||
if (currentOp != CurrentOp.None) throw new Exception("Sequence error");
|
if (currentOp != CurrentOp.None) throw new Exception("Sequence error");
|
||||||
currentOp = CurrentOp.ShowFormAtCycleBeginning;
|
currentOp = CurrentOp.ShowFormAtCycleBeginning;
|
||||||
|
|||||||
@@ -95,7 +95,7 @@ namespace TBF.Rig.DataEntry.HeatMeters6
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// <returns>Reference to the operation</returns>
|
/// <returns>Reference to the operation</returns>
|
||||||
public IOperation ShowCycleBeginFormOp()
|
public IOperation ShowCycleBeginFormOp( IRegReader[] regReadersOptional = null)
|
||||||
{
|
{
|
||||||
if (currentOp != CurrentOp.None) throw new Exception("Sequence error");
|
if (currentOp != CurrentOp.None) throw new Exception("Sequence error");
|
||||||
currentOp = CurrentOp.ShowFormAtCycleBeginning;
|
currentOp = CurrentOp.ShowFormAtCycleBeginning;
|
||||||
|
|||||||
@@ -0,0 +1,308 @@
|
|||||||
|
///
|
||||||
|
/// Copyright (c) 2015-2023 Sensus Slovensko a.s.
|
||||||
|
///
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
using log4net;
|
||||||
|
using Common;
|
||||||
|
using TBF.Rig.Sequences;
|
||||||
|
using TBF.Resources;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace TBF.Rig.DataEntry.PoseidonCmd
|
||||||
|
{
|
||||||
|
public partial class CycleBeginningForm : Form, GenericDevices.IHasCompleted
|
||||||
|
{
|
||||||
|
private static readonly ILog log = LogManager.GetLogger(typeof(CycleBeginningForm));
|
||||||
|
|
||||||
|
/// <summary> Number of water meters </summary>
|
||||||
|
public readonly int WaterMetersCount;
|
||||||
|
readonly EntryFormCfg cfg;
|
||||||
|
|
||||||
|
/// Loaded from database beforethe form is open
|
||||||
|
IList<IOrderInfo> listOfOrders;
|
||||||
|
string preselectedOrder;
|
||||||
|
|
||||||
|
/// To be retrieved after the form is closed
|
||||||
|
public string PurchaseOrder;
|
||||||
|
public string[] SNText;
|
||||||
|
public bool[] Disabled;
|
||||||
|
|
||||||
|
/// Set to 'true' when the form closes
|
||||||
|
public bool Completed { get { return completed; } }
|
||||||
|
bool completed;
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary> Parameterless constructor for common functionality </summary>
|
||||||
|
public CycleBeginningForm()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
ControlBox = false;
|
||||||
|
preselectedOrder = null;
|
||||||
|
|
||||||
|
completed = false;
|
||||||
|
StartForceCloseHandler();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Constructor
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="waterMetersCount">Number of text boxes for serial numbers</param>
|
||||||
|
public CycleBeginningForm(int waterMetersCount, EntryFormCfg cfg, string preselectedOrder = null)
|
||||||
|
: this()
|
||||||
|
{
|
||||||
|
this.WaterMetersCount = waterMetersCount;
|
||||||
|
this.cfg = cfg;
|
||||||
|
this.preselectedOrder = preselectedOrder;
|
||||||
|
SNText = null;
|
||||||
|
Disabled = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private void CycleBeginningForm_Load(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
Text = Strings.Data;
|
||||||
|
orderGroupBox.Text = Strings.Purchase_order;
|
||||||
|
okButton.Text = Strings.OkBtnText;
|
||||||
|
|
||||||
|
listOfOrders = new List<IOrderInfo>();
|
||||||
|
|
||||||
|
if ((cfg.Orders == Orders.FromOracle || cfg.Orders == Orders.CombinedAndFromOracle)
|
||||||
|
&& ProcessData.OracleDB != null)
|
||||||
|
{
|
||||||
|
foreach (var o in ProcessData.OracleDB.ReadOrders())
|
||||||
|
{
|
||||||
|
listOfOrders.Add(o);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((cfg.Orders == Orders.FromTracingDB || cfg.Orders == Orders.CombinedAndFromTracingDB)
|
||||||
|
&& ProcessData.TracingDB != null
|
||||||
|
&& ProcessData.TracingDB.DebugLevel == DebugMode.Normal)
|
||||||
|
{
|
||||||
|
foreach (var o in ProcessData.TracingDB.ReadOrders())
|
||||||
|
{
|
||||||
|
listOfOrders.Add(o);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
string insertFirst = null;
|
||||||
|
if (!string.IsNullOrEmpty(preselectedOrder))
|
||||||
|
{
|
||||||
|
insertFirst = preselectedOrder;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (Program.LocalSettings.PurchaseOrderHistoryCount > 0)
|
||||||
|
{
|
||||||
|
foreach (var o in listOfOrders)
|
||||||
|
{
|
||||||
|
if (o.POName == Program.LocalSettings.PurchaseOrderHistory[0])
|
||||||
|
{
|
||||||
|
insertFirst = o.POName;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (cfg.Orders)
|
||||||
|
{
|
||||||
|
case Orders.Arbitrary:
|
||||||
|
PrepareOrderCombo(orderComboBox);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case Orders.FromOracle:
|
||||||
|
case Orders.FromTracingDB:
|
||||||
|
if (insertFirst != null)
|
||||||
|
{
|
||||||
|
orderComboBox.Items.Add(insertFirst);
|
||||||
|
orderComboBox.Text = insertFirst;
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach (var o in listOfOrders)
|
||||||
|
if (o.POName != insertFirst)
|
||||||
|
orderComboBox.Items.Add(o.POName);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case Orders.CombinedAndFromOracle:
|
||||||
|
case Orders.CombinedAndFromTracingDB:
|
||||||
|
if (insertFirst != null)
|
||||||
|
{
|
||||||
|
orderComboBox.Items.Add(insertFirst);
|
||||||
|
orderComboBox.Text = insertFirst;
|
||||||
|
}
|
||||||
|
orderComboBox.Items.Add("BBAAMMXX");
|
||||||
|
orderComboBox.Items.Add("BBAAOMXX");
|
||||||
|
orderComboBox.Items.Add("BBAAQMXX");
|
||||||
|
orderComboBox.Items.Add("BBAATMFR");
|
||||||
|
orderComboBox.Items.Add("BBAATMXX");
|
||||||
|
orderComboBox.Items.Add("CCAAMMXX");
|
||||||
|
orderComboBox.Items.Add("CCAAOMXX");
|
||||||
|
orderComboBox.Items.Add("CCAAQMXX");
|
||||||
|
orderComboBox.Items.Add("CCAATMFR");
|
||||||
|
orderComboBox.Items.Add("CCAATMXX");
|
||||||
|
orderComboBox.Items.Add("DDAAMMXX");
|
||||||
|
orderComboBox.Items.Add("DDAAOMXX");
|
||||||
|
orderComboBox.Items.Add("DDAAQMXX");
|
||||||
|
orderComboBox.Items.Add("DDAATMXX");
|
||||||
|
orderComboBox.Items.Add("DEAAMMXX");
|
||||||
|
orderComboBox.Items.Add("DEAAOMXX");
|
||||||
|
orderComboBox.Items.Add("DEAAQMXX");
|
||||||
|
orderComboBox.Items.Add("DEAATMXX");
|
||||||
|
orderComboBox.Items.Add("EEAAMMXX");
|
||||||
|
orderComboBox.Items.Add("EEAAOMXX");
|
||||||
|
orderComboBox.Items.Add("EEAAQMXX");
|
||||||
|
orderComboBox.Items.Add("EEAATMFR");
|
||||||
|
orderComboBox.Items.Add("EEAATMXX");
|
||||||
|
orderComboBox.Items.Add("FFAAMMXX");
|
||||||
|
orderComboBox.Items.Add("FFAAOMXX");
|
||||||
|
orderComboBox.Items.Add("FFAAQMXX");
|
||||||
|
orderComboBox.Items.Add("FFAATMFR");
|
||||||
|
orderComboBox.Items.Add("FFAATMXX");
|
||||||
|
orderComboBox.Items.Add("GFAAMMXX");
|
||||||
|
orderComboBox.Items.Add("GFAAOMXX");
|
||||||
|
orderComboBox.Items.Add("GFAAQMXX");
|
||||||
|
orderComboBox.Items.Add("GFAATMXX");
|
||||||
|
|
||||||
|
foreach (var o in listOfOrders)
|
||||||
|
if (o.POName != insertFirst)
|
||||||
|
orderComboBox.Items.Add(o.POName);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Draw an appropriate test bench picture
|
||||||
|
///
|
||||||
|
Side side = (TBF.Rig.Sequences.ProcessData.BenchInfo is DataContainer.iPerlBenchInfo.Component)
|
||||||
|
? (TBF.Rig.Sequences.ProcessData.BenchInfo as DataContainer.iPerlBenchInfo.Component).Side
|
||||||
|
: Side.Left;
|
||||||
|
if ((cfg.Direction == Direction.Reversed_LR) && (side == Side.Left))
|
||||||
|
{
|
||||||
|
/// direction L->R (reversed), left side
|
||||||
|
pictureBox.Image = Image.FromFile(string.Format("{0}\\Pictures\\reversed_dir_left.jpg", Program.ExecutableDir, true));
|
||||||
|
}
|
||||||
|
else if ((cfg.Direction == Direction.Reversed_LR) && (side == Side.Right))
|
||||||
|
{
|
||||||
|
/// direction L->R (reversed), right side
|
||||||
|
pictureBox.Image = Image.FromFile(string.Format("{0}\\Pictures\\reversed_dir_right.jpg", Program.ExecutableDir, true));
|
||||||
|
}
|
||||||
|
else if (side == Side.Right)
|
||||||
|
{
|
||||||
|
/// direction R->L (forward), right side
|
||||||
|
pictureBox.Image = Image.FromFile(string.Format("{0}\\Pictures\\forward_dir_right.jpg", Program.ExecutableDir, true));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
/// direction R->L (forward), left side
|
||||||
|
pictureBox.Image = Image.FromFile(string.Format("{0}\\Pictures\\forward_dir_left.jpg", Program.ExecutableDir, true));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Load Purchase order combo box items from the LocalSettings PurchaseOrderHistory array
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="orderComboBox">Puchase order ComboBox</param>
|
||||||
|
void PrepareOrderCombo(ComboBox orderComboBox)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < Program.LocalSettings.PurchaseOrderHistoryCount; i++)
|
||||||
|
{
|
||||||
|
orderComboBox.Items.Add(Program.LocalSettings.PurchaseOrderHistory[i]);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (orderComboBox.Items.Count > 0)
|
||||||
|
{
|
||||||
|
orderComboBox.Text = orderComboBox.Items[0].ToString();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void AutoClickOkAfterDelay(int delayMs = 10000)
|
||||||
|
{
|
||||||
|
_ = AutoClickInternal(okButton, delayMs);
|
||||||
|
}
|
||||||
|
|
||||||
|
private async Task AutoClickInternal(Button clickButton, int delayMs)
|
||||||
|
{
|
||||||
|
await Task.Delay(delayMs);
|
||||||
|
|
||||||
|
if (clickButton.IsHandleCreated && clickButton.Enabled && clickButton.Visible)
|
||||||
|
{
|
||||||
|
// Invoke on UI thread
|
||||||
|
if (clickButton.InvokeRequired)
|
||||||
|
clickButton.BeginInvoke(new Action(() => clickButton.PerformClick()));
|
||||||
|
else
|
||||||
|
clickButton.PerformClick();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void okButton_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (orderComboBox.Text.Length > 8 ||
|
||||||
|
(cfg.Orders != Orders.Arbitrary && !orderComboBox.Items.Contains(orderComboBox.Text)))
|
||||||
|
{
|
||||||
|
MessageBox.Show(Strings.Invalid_order_number, Strings.Error, MessageBoxButtons.OK,
|
||||||
|
MessageBoxIcon.Exclamation);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
IOrderInfo oInfo = (listOfOrders == null) ? null : listOfOrders.FirstOrDefault<IOrderInfo>(x => x.POName == orderComboBox.Text);
|
||||||
|
///
|
||||||
|
if (oInfo is Output.DB.SensusOracle.OrderDetails)
|
||||||
|
{
|
||||||
|
ProcessData.OrderInfo = oInfo;
|
||||||
|
}
|
||||||
|
else if (oInfo is SharedDatabase.Entities.OrderInfo && ProcessData.TracingDB != null)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
using (var session = ProcessData.TracingDB.SessionFactory.OpenSession())
|
||||||
|
{
|
||||||
|
var list = session.QueryOver<SharedDatabase.Entities.OrderInfo>()
|
||||||
|
.Where(x => (x.POName == Program.MainWnd.SelectedProcedure.OrderInfo.POName))
|
||||||
|
.List();
|
||||||
|
ProcessData.OrderInfo = (list.Count == 1) ? list[0] : null;
|
||||||
|
string workflow = (list.Count == 1) ? list[0].Workflow : null;
|
||||||
|
ProcessData.WorkflowSummary = SharedDatabase.WorkflowSummary.ReadFromDB(workflow, "test", session);
|
||||||
|
session.Close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
log.ErrorFormat("Unable to load an order, workflow or workstep: {0}", ex);
|
||||||
|
ProcessData.OrderInfo = null;
|
||||||
|
ProcessData.WorkflowSummary = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
PurchaseOrder = orderComboBox.Text;
|
||||||
|
Program.LocalSettings.UpdateHistory(orderComboBox.Text, ref Program.LocalSettings.PurchaseOrderHistory);
|
||||||
|
|
||||||
|
completed = true;
|
||||||
|
Close();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#region Forced close handling
|
||||||
|
|
||||||
|
public void StartForceCloseHandler()
|
||||||
|
{
|
||||||
|
UiBridge.Bridge.CloseModelessFormHandler += delegate(object sender, EventArgs args)
|
||||||
|
{
|
||||||
|
if (InvokeRequired) { Invoke(new EventHandler<EventArgs>(OnForceClose), sender, args); }
|
||||||
|
else OnForceClose(sender, args);
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnForceClose(object sender, EventArgs args)
|
||||||
|
{
|
||||||
|
DialogResult = DialogResult.Cancel;
|
||||||
|
Close();
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,97 @@
|
|||||||
|
///
|
||||||
|
/// Copyright (c) 2015 Sensus Metering Systems
|
||||||
|
///
|
||||||
|
namespace TBF.Rig.DataEntry.PoseidonCmd
|
||||||
|
{
|
||||||
|
partial class CycleBeginningForm
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Required designer variable.
|
||||||
|
/// </summary>
|
||||||
|
private System.ComponentModel.IContainer components = null;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Clean up any resources being used.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||||
|
protected override void Dispose(bool disposing)
|
||||||
|
{
|
||||||
|
if (disposing && (components != null))
|
||||||
|
{
|
||||||
|
components.Dispose();
|
||||||
|
}
|
||||||
|
base.Dispose(disposing);
|
||||||
|
}
|
||||||
|
|
||||||
|
#region Windows Form Designer generated code
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Required method for Designer support - do not modify
|
||||||
|
/// the contents of this method with the code editor.
|
||||||
|
/// </summary>
|
||||||
|
private void InitializeComponent()
|
||||||
|
{
|
||||||
|
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(CycleBeginningForm));
|
||||||
|
this.okButton = new System.Windows.Forms.Button();
|
||||||
|
this.orderGroupBox = new System.Windows.Forms.GroupBox();
|
||||||
|
this.orderComboBox = new System.Windows.Forms.ComboBox();
|
||||||
|
this.pictureBox = new System.Windows.Forms.PictureBox();
|
||||||
|
this.orderGroupBox.SuspendLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.pictureBox)).BeginInit();
|
||||||
|
this.SuspendLayout();
|
||||||
|
//
|
||||||
|
// okButton
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.okButton, "okButton");
|
||||||
|
this.okButton.ForeColor = System.Drawing.Color.Black;
|
||||||
|
this.okButton.Name = "okButton";
|
||||||
|
this.okButton.UseVisualStyleBackColor = true;
|
||||||
|
this.okButton.Click += new System.EventHandler(this.okButton_Click);
|
||||||
|
//
|
||||||
|
// orderGroupBox
|
||||||
|
//
|
||||||
|
this.orderGroupBox.Controls.Add(this.orderComboBox);
|
||||||
|
resources.ApplyResources(this.orderGroupBox, "orderGroupBox");
|
||||||
|
this.orderGroupBox.ForeColor = System.Drawing.Color.Black;
|
||||||
|
this.orderGroupBox.Name = "orderGroupBox";
|
||||||
|
this.orderGroupBox.TabStop = false;
|
||||||
|
//
|
||||||
|
// orderComboBox
|
||||||
|
//
|
||||||
|
this.orderComboBox.FormattingEnabled = true;
|
||||||
|
resources.ApplyResources(this.orderComboBox, "orderComboBox");
|
||||||
|
this.orderComboBox.Name = "orderComboBox";
|
||||||
|
//
|
||||||
|
// pictureBox
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.pictureBox, "pictureBox");
|
||||||
|
this.pictureBox.Name = "pictureBox";
|
||||||
|
this.pictureBox.TabStop = false;
|
||||||
|
//
|
||||||
|
// CycleBeginningForm
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this, "$this");
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.BackColor = System.Drawing.Color.DarkGray;
|
||||||
|
this.Controls.Add(this.pictureBox);
|
||||||
|
this.Controls.Add(this.orderGroupBox);
|
||||||
|
this.Controls.Add(this.okButton);
|
||||||
|
this.ForeColor = System.Drawing.Color.Black;
|
||||||
|
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow;
|
||||||
|
this.Name = "CycleBeginningForm";
|
||||||
|
this.TopMost = true;
|
||||||
|
this.Load += new System.EventHandler(this.CycleBeginningForm_Load);
|
||||||
|
this.orderGroupBox.ResumeLayout(false);
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.pictureBox)).EndInit();
|
||||||
|
this.ResumeLayout(false);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
private System.Windows.Forms.Button okButton;
|
||||||
|
private System.Windows.Forms.GroupBox orderGroupBox;
|
||||||
|
private System.Windows.Forms.ComboBox orderComboBox;
|
||||||
|
private System.Windows.Forms.PictureBox pictureBox;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,239 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||||
|
<data name="okButton.Font" type="System.Drawing.Font, System.Drawing">
|
||||||
|
<value>Verdana, 14.25pt</value>
|
||||||
|
</data>
|
||||||
|
<data name="okButton.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>627, 26</value>
|
||||||
|
</data>
|
||||||
|
<data name="okButton.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>112, 63</value>
|
||||||
|
</data>
|
||||||
|
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||||
|
<data name="okButton.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>7</value>
|
||||||
|
</data>
|
||||||
|
<data name="okButton.Text" xml:space="preserve">
|
||||||
|
<value>OK</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>okButton.Name" xml:space="preserve">
|
||||||
|
<value>okButton</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>okButton.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>okButton.Parent" xml:space="preserve">
|
||||||
|
<value>$this</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>okButton.ZOrder" xml:space="preserve">
|
||||||
|
<value>2</value>
|
||||||
|
</data>
|
||||||
|
<data name="orderComboBox.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>90, 32</value>
|
||||||
|
</data>
|
||||||
|
<data name="orderComboBox.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>432, 31</value>
|
||||||
|
</data>
|
||||||
|
<data name="orderComboBox.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>0</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>orderComboBox.Name" xml:space="preserve">
|
||||||
|
<value>orderComboBox</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>orderComboBox.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>orderComboBox.Parent" xml:space="preserve">
|
||||||
|
<value>orderGroupBox</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>orderComboBox.ZOrder" xml:space="preserve">
|
||||||
|
<value>0</value>
|
||||||
|
</data>
|
||||||
|
<data name="orderGroupBox.Font" type="System.Drawing.Font, System.Drawing">
|
||||||
|
<value>Verdana, 14.25pt</value>
|
||||||
|
</data>
|
||||||
|
<data name="orderGroupBox.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>28, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="orderGroupBox.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>565, 82</value>
|
||||||
|
</data>
|
||||||
|
<data name="orderGroupBox.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>0</value>
|
||||||
|
</data>
|
||||||
|
<data name="orderGroupBox.Text" xml:space="preserve">
|
||||||
|
<value>Order</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>orderGroupBox.Name" xml:space="preserve">
|
||||||
|
<value>orderGroupBox</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>orderGroupBox.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>orderGroupBox.Parent" xml:space="preserve">
|
||||||
|
<value>$this</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>orderGroupBox.ZOrder" xml:space="preserve">
|
||||||
|
<value>1</value>
|
||||||
|
</data>
|
||||||
|
<data name="pictureBox.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>28, 118</value>
|
||||||
|
</data>
|
||||||
|
<data name="pictureBox.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>711, 497</value>
|
||||||
|
</data>
|
||||||
|
<data name="pictureBox.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>8</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>pictureBox.Name" xml:space="preserve">
|
||||||
|
<value>pictureBox</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>pictureBox.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.PictureBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>pictureBox.Parent" xml:space="preserve">
|
||||||
|
<value>$this</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>pictureBox.ZOrder" xml:space="preserve">
|
||||||
|
<value>0</value>
|
||||||
|
</data>
|
||||||
|
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
|
<value>True</value>
|
||||||
|
</metadata>
|
||||||
|
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
|
||||||
|
<value>6, 13</value>
|
||||||
|
</data>
|
||||||
|
<data name="$this.AutoSize" type="System.Boolean, mscorlib">
|
||||||
|
<value>True</value>
|
||||||
|
</data>
|
||||||
|
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>769, 639</value>
|
||||||
|
</data>
|
||||||
|
<data name="$this.Text" xml:space="preserve">
|
||||||
|
<value>Batch data</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>$this.Name" xml:space="preserve">
|
||||||
|
<value>CycleBeginningForm</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>$this.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
</root>
|
||||||
@@ -0,0 +1,479 @@
|
|||||||
|
///
|
||||||
|
/// Copyright (c) 2015-2021 Sensus Metering Systems
|
||||||
|
///
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using log4net;
|
||||||
|
using Config.Entities;
|
||||||
|
using NHibernate.Util;
|
||||||
|
using TBF.Rig;
|
||||||
|
using TBF.Rig.GenericDevices;
|
||||||
|
using TBF.Rig.RegisterReaders.PoseidonCmdStartStop;
|
||||||
|
using TBF.Rig.Sequences;
|
||||||
|
|
||||||
|
namespace TBF.Rig.DataEntry.PoseidonCmd
|
||||||
|
{
|
||||||
|
public class EntryForm : ComponentBase, IOperation, IDataEntry, IHasCycleBeginForm, IHasWMStatesForm, IHasFromUNIDisablePossibility
|
||||||
|
{
|
||||||
|
private static readonly ILog log = LogManager.GetLogger(typeof(EntryForm));
|
||||||
|
public override string ToString() { return string.Format("{0}({1})", ClassName, Cfg.ToString(-1)); }
|
||||||
|
|
||||||
|
public bool UsesCameras() { return false; }
|
||||||
|
|
||||||
|
readonly EntryFormCfg entryFormCfg;
|
||||||
|
IRegReader[] regReaders;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Properties set by the Begin, End and WMStates form
|
||||||
|
/// </summary>
|
||||||
|
bool[] disabled; /// This array is shared between forms
|
||||||
|
|
||||||
|
string[] wmCycleEndState;
|
||||||
|
public string WMCycleEndState(int wmNr) { return (wmNr >= 0 && wmNr < wmCycleEndState.Length) ? wmCycleEndState[wmNr] : string.Empty; }
|
||||||
|
|
||||||
|
double[] wmStartState;
|
||||||
|
public double WMStartState(int wmNr) { return (wmNr >= 0 && wmNr < wmStartState.Length) ? wmStartState[wmNr] : 0; }
|
||||||
|
|
||||||
|
double[] wmEndState;
|
||||||
|
public double WMEndState(int wmNr) { return (wmNr >= 0 && wmNr < wmEndState.Length) ? wmEndState[wmNr] : 0; }
|
||||||
|
|
||||||
|
string[] wmStartStateStr;
|
||||||
|
|
||||||
|
|
||||||
|
System.Windows.Forms.Form modelessDlg;
|
||||||
|
public bool Completed { get { return (modelessDlg is IHasCompleted) ? (modelessDlg as IHasCompleted).Completed : true; } }
|
||||||
|
|
||||||
|
double refVolume;
|
||||||
|
double errLimLo;
|
||||||
|
double errLimHi;
|
||||||
|
|
||||||
|
bool resultSaved; /// Set in Run() when results are saved
|
||||||
|
|
||||||
|
IList<Results.Entities.WaterMeter> waterMeters; /// Reference to ...ProcessData.BatchRslts.WaterMeters[]
|
||||||
|
|
||||||
|
public enum CurrentOp
|
||||||
|
{
|
||||||
|
None,
|
||||||
|
SendStartDataStream,
|
||||||
|
ReadDatastream_StartStates,
|
||||||
|
ReadDatastream_EndStates,
|
||||||
|
}
|
||||||
|
|
||||||
|
CurrentOp currentOp;
|
||||||
|
|
||||||
|
public enum ReadDataOp
|
||||||
|
{
|
||||||
|
None,
|
||||||
|
Start,
|
||||||
|
Busy,
|
||||||
|
Done,
|
||||||
|
}
|
||||||
|
ReadDataOp readDataOp;
|
||||||
|
|
||||||
|
|
||||||
|
public EntryForm() { }
|
||||||
|
|
||||||
|
public EntryForm(Generic.IComponentCfg cfg)
|
||||||
|
: base(cfg)
|
||||||
|
{
|
||||||
|
entryFormCfg = cfg as EntryFormCfg;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void Initialize()
|
||||||
|
{
|
||||||
|
disabled = new bool[TBF.Data.WMsCount];
|
||||||
|
wmStartState = new double[TBF.Data.WMsCount];
|
||||||
|
wmStartStateStr = new string[TBF.Data.WMsCount];
|
||||||
|
wmEndState = new double[TBF.Data.WMsCount];
|
||||||
|
wmCycleEndState = new string[TBF.Data.WMsCount];
|
||||||
|
currentOp = CurrentOp.None;
|
||||||
|
log.FatalFormat("{0} initialized: {1}", Name, this);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/// <returns>Reference to the operation</returns>
|
||||||
|
public IOperation ShowCycleBeginFormOp( IRegReader[] regReadersOptional = null)
|
||||||
|
{
|
||||||
|
if (currentOp != CurrentOp.None) throw new Exception("Sequence error");
|
||||||
|
currentOp = CurrentOp.SendStartDataStream;
|
||||||
|
this.waterMeters = ProcessData.BatchRslts.Batch.WaterMeters;
|
||||||
|
if (regReadersOptional != null)
|
||||||
|
{
|
||||||
|
bool isAvailable = false;
|
||||||
|
foreach (IRegReader reader in regReadersOptional)
|
||||||
|
{
|
||||||
|
if (reader != null)
|
||||||
|
isAvailable = true;
|
||||||
|
}
|
||||||
|
if (isAvailable)
|
||||||
|
{
|
||||||
|
this.regReaders = regReadersOptional;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <returns>Reference to the operation</returns>
|
||||||
|
public IOperation ShowTestStartFormOp(IRegReader[] regReaders)
|
||||||
|
{
|
||||||
|
if (!(
|
||||||
|
currentOp == CurrentOp.None
|
||||||
|
|| currentOp == CurrentOp.SendStartDataStream)
|
||||||
|
) throw new Exception("Sequence error");
|
||||||
|
currentOp = CurrentOp.ReadDatastream_StartStates;
|
||||||
|
readDataOp = ReadDataOp.None;
|
||||||
|
//TODO BUMI apply show data in dialog if config required
|
||||||
|
//entryFormCfg.Direction = Direction.S640;
|
||||||
|
//currentOp = CurrentOp.EnterTestStartStates;
|
||||||
|
this.regReaders = regReaders;
|
||||||
|
int iterator = 0;
|
||||||
|
foreach (IRegReader reader in regReaders)
|
||||||
|
{
|
||||||
|
if (reader != null && reader is PoseidonReader)
|
||||||
|
{
|
||||||
|
PoseidonReader poseidonReader = (reader as PoseidonReader);
|
||||||
|
if (waterMeters.Count > iterator)
|
||||||
|
{
|
||||||
|
if(!string.IsNullOrEmpty(poseidonReader.SerialNr))
|
||||||
|
waterMeters[iterator].SerialNr = poseidonReader.SerialNr;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
iterator++;
|
||||||
|
}
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <returns>null (not implemented)</returns>
|
||||||
|
public IOperation ShowAdvancedTestStartFormOp(IRegReader[] regReaders,
|
||||||
|
IList<Results.Entities.WaterMeter> waterMeters, bool isCondOp)
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public IOperation ShowTestCollectFormOp(IRegReader[] regReaders, double volumeRef, double errLimLo,
|
||||||
|
double errLimHi)
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <returns>Reference to the operation</returns>
|
||||||
|
public IOperation ShowTestEndFormOp(IRegReader[] regReaders, double refVolume, double errLimLo, double errLimHi)
|
||||||
|
{
|
||||||
|
if (!(currentOp == CurrentOp.None) )
|
||||||
|
throw new Exception("Sequence error");
|
||||||
|
currentOp = CurrentOp.ReadDatastream_EndStates;
|
||||||
|
this.regReaders = regReaders;
|
||||||
|
this.refVolume = refVolume;
|
||||||
|
this.errLimLo = errLimLo;
|
||||||
|
this.errLimHi = errLimHi;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
delegate void EntryFormDlgt(EntryForm myRef);
|
||||||
|
///
|
||||||
|
void OpenBeginningDlg(EntryForm myRef)
|
||||||
|
{
|
||||||
|
if (ShowForm == 0)
|
||||||
|
return;
|
||||||
|
myRef.modelessDlg = new CycleBeginningForm(TBF.Data.WMsCount, myRef.entryFormCfg,
|
||||||
|
ProcessData.SelectedProcedure.OrderInfo != null ? ProcessData.SelectedProcedure.OrderInfo.POName : string.Empty);
|
||||||
|
(myRef.modelessDlg as CycleBeginningForm)?.AutoClickOkAfterDelay();
|
||||||
|
modelessDlg.Show();
|
||||||
|
}
|
||||||
|
///
|
||||||
|
void OpenTestStartStatesDlg(EntryForm myRef)
|
||||||
|
{
|
||||||
|
if (ShowForm == 0)
|
||||||
|
return;
|
||||||
|
myRef.modelessDlg = new TestStartEndForm(myRef.waterMeters.Count, myRef.regReaders, disabled);
|
||||||
|
modelessDlg.Show();
|
||||||
|
}
|
||||||
|
///
|
||||||
|
void OpenTestEndStatesDlg(EntryForm myRef)
|
||||||
|
{
|
||||||
|
if (ShowForm == 0)
|
||||||
|
return;
|
||||||
|
myRef.modelessDlg = new TestStartEndForm(TBF.Data.WMsCount, myRef.regReaders, wmStartStateStr, disabled, refVolume, errLimLo, errLimHi);
|
||||||
|
modelessDlg.Show();
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>Start this operation</summary>
|
||||||
|
public void Start()
|
||||||
|
{
|
||||||
|
readDataOp = ReadDataOp.None;
|
||||||
|
readAndSetDataToMeters = false;
|
||||||
|
filedDataToMeters = false;
|
||||||
|
|
||||||
|
if (ShowForm == 0)
|
||||||
|
return ;
|
||||||
|
|
||||||
|
resultSaved = false;
|
||||||
|
switch (currentOp)
|
||||||
|
{
|
||||||
|
case CurrentOp.SendStartDataStream:
|
||||||
|
//ReadAndSetDataToMeters();
|
||||||
|
if (ProcessData.SelectedProcedure.OrderInfo == null)
|
||||||
|
{
|
||||||
|
Program.MainWnd.Invoke(new EntryFormDlgt(OpenBeginningDlg), this);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
/// Only in case of 640 meters and an order information entered during the procedure selection
|
||||||
|
/// this DataEntry form at the beginning of the cycle is skipped
|
||||||
|
modelessDlg = null;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case CurrentOp.ReadDatastream_StartStates:
|
||||||
|
Program.MainWnd.Invoke(new EntryFormDlgt(OpenTestStartStatesDlg), this);
|
||||||
|
break;
|
||||||
|
case CurrentOp.ReadDatastream_EndStates:
|
||||||
|
Program.MainWnd.Invoke(new EntryFormDlgt(OpenTestEndStatesDlg), this);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private bool readAndSetDataToMeters = false;
|
||||||
|
private bool filedDataToMeters = false;
|
||||||
|
|
||||||
|
/// <summary>Run this operation</summary>
|
||||||
|
/// <returns>Event.ResultsPrinted</returns>
|
||||||
|
public Event Run()
|
||||||
|
{
|
||||||
|
if (!readAndSetDataToMeters) // run until not finished
|
||||||
|
readAndSetDataToMeters = ReadAndSetDataToMeters();
|
||||||
|
|
||||||
|
if (ShowForm == 0)
|
||||||
|
if(readAndSetDataToMeters)
|
||||||
|
return Event.ModelessFormClosed;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return Event.ModelessFormIsOpen;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (readAndSetDataToMeters && !filedDataToMeters)
|
||||||
|
{
|
||||||
|
if (regReaders != null)
|
||||||
|
{
|
||||||
|
//add data into dialog
|
||||||
|
int item = 0;
|
||||||
|
TestStartEndForm dlg = (modelessDlg as TestStartEndForm);
|
||||||
|
foreach (var iRegReader in regReaders)
|
||||||
|
{
|
||||||
|
if (iRegReader is PoseidonReader poseidonReader)
|
||||||
|
{
|
||||||
|
if (dlg != null)
|
||||||
|
{
|
||||||
|
if (currentOp == CurrentOp.ReadDatastream_StartStates)
|
||||||
|
{
|
||||||
|
dlg.WMStartState[item] = poseidonReader.BeginWMState;
|
||||||
|
dlg.WMStartStateStr[item] = poseidonReader.BeginWMState.ToString();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (currentOp == CurrentOp.ReadDatastream_EndStates)
|
||||||
|
dlg.WMEndState[item] = poseidonReader.EndWMState;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
item++;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (dlg != null)
|
||||||
|
{
|
||||||
|
if (dlg.InvokeRequired)
|
||||||
|
{
|
||||||
|
dlg.BeginInvoke(new Action(() =>
|
||||||
|
{
|
||||||
|
dlg.UpdateValues(currentOp == CurrentOp.ReadDatastream_StartStates, true);
|
||||||
|
if (entryFormCfg.ShowDialogType == ShowDialogType.ContinueAutomatically)
|
||||||
|
{
|
||||||
|
dlg.AutoClickOkAfterDelay();
|
||||||
|
}
|
||||||
|
}));
|
||||||
|
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
dlg.UpdateValues(currentOp == CurrentOp.ReadDatastream_StartStates, true);
|
||||||
|
if (entryFormCfg.ShowDialogType == ShowDialogType.ContinueAutomatically)
|
||||||
|
{
|
||||||
|
dlg.AutoClickOkAfterDelay();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
filedDataToMeters = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((modelessDlg is IHasCompleted) && !(modelessDlg as IHasCompleted).Completed)
|
||||||
|
{
|
||||||
|
return Event.ModelessFormIsOpen; //ModelessFormClosed ??
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!resultSaved) /// This is to save the result only once
|
||||||
|
{
|
||||||
|
if (currentOp == CurrentOp.SendStartDataStream)
|
||||||
|
{
|
||||||
|
CycleBeginningForm dlg = (modelessDlg as CycleBeginningForm);
|
||||||
|
if (dlg != null)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < Math.Min(dlg.WaterMetersCount, waterMeters.Count); i++)
|
||||||
|
{
|
||||||
|
if (waterMeters[i] != null)
|
||||||
|
{
|
||||||
|
if (dlg.PurchaseOrder != null) waterMeters[i].PurchaseOrder = dlg.PurchaseOrder;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (modelessDlg is TestStartEndForm && currentOp == CurrentOp.ReadDatastream_StartStates)
|
||||||
|
{
|
||||||
|
/// Fixed start test - start
|
||||||
|
TestStartEndForm dlg = (modelessDlg as TestStartEndForm);
|
||||||
|
if (dlg != null)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < dlg.WaterMetersCount; i++)
|
||||||
|
{
|
||||||
|
wmStartState[i] = dlg.WMStartState[i];
|
||||||
|
wmStartStateStr[i] = dlg.WMStartStateStr[i];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (modelessDlg is TestStartEndForm && currentOp == CurrentOp.ReadDatastream_EndStates)
|
||||||
|
{
|
||||||
|
/// Fixed start test - end
|
||||||
|
TestStartEndForm dlg = (modelessDlg as TestStartEndForm);
|
||||||
|
if (dlg != null)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < dlg.WaterMetersCount; i++)
|
||||||
|
{
|
||||||
|
wmEndState[i] = dlg.WMEndState[i];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
resultSaved = true;
|
||||||
|
modelessDlg = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return Event.ModelessFormClosed; /// Form closed
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>Stop this operation</summary>
|
||||||
|
public void Stop()
|
||||||
|
{
|
||||||
|
if (modelessDlg is IHasCompleted)
|
||||||
|
{
|
||||||
|
UiBridge.Bridge.OnCloseModelessForm(this, null);
|
||||||
|
modelessDlg = null;
|
||||||
|
}
|
||||||
|
currentOp = CurrentOp.None;
|
||||||
|
readAndSetDataToMeters = false;
|
||||||
|
filedDataToMeters = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int ShowForm
|
||||||
|
{
|
||||||
|
get { return entryFormCfg == null ? ShowDialogType.Hide.GetHashCode() : entryFormCfg.ShowDialogType.GetHashCode(); }
|
||||||
|
set {} // only for read - svia dilalog
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool CliLogging
|
||||||
|
{
|
||||||
|
get { return entryFormCfg == null ? false : entryFormCfg.SaveCommunication;}
|
||||||
|
}
|
||||||
|
|
||||||
|
//private long GetMaxtime()
|
||||||
|
|
||||||
|
public bool ReadAndSetDataToMeters()
|
||||||
|
{
|
||||||
|
bool bOperationSuccess = false;
|
||||||
|
if (currentOp == CurrentOp.SendStartDataStream)
|
||||||
|
{
|
||||||
|
bool finishedReading = regReaders == null; // we can work only with register readers
|
||||||
|
while (!finishedReading) //TODO BUMI lock - fuck ?
|
||||||
|
{
|
||||||
|
bool bAllReadersFinished = true;
|
||||||
|
foreach (var iRegReader in regReaders )
|
||||||
|
{
|
||||||
|
if (iRegReader is PoseidonReader)
|
||||||
|
{
|
||||||
|
PoseidonReader poseidonReader = (iRegReader as PoseidonReader);
|
||||||
|
poseidonReader.SetCliLogging(CliLogging);
|
||||||
|
|
||||||
|
if (poseidonReader.CurrentOp == PoseidonReader.CurrentPoseidonOp.SendStartDataStream_Done
|
||||||
|
|| poseidonReader.CurrentOp == PoseidonReader.CurrentPoseidonOp.SendStartDataStream_Runing)
|
||||||
|
{
|
||||||
|
poseidonReader.SetCurrentOp(PoseidonReader.CurrentPoseidonOp.SendStartDataStream);
|
||||||
|
}
|
||||||
|
/// Send start data stream
|
||||||
|
poseidonReader.Run();
|
||||||
|
readDataOp = ReadDataOp.Start;
|
||||||
|
if (!(poseidonReader.CurrentOp == PoseidonReader.CurrentPoseidonOp.Done
|
||||||
|
|| poseidonReader.CurrentOp == PoseidonReader.CurrentPoseidonOp.Error))
|
||||||
|
{
|
||||||
|
bAllReadersFinished = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/// Wait for all readers to finish
|
||||||
|
if (bAllReadersFinished)
|
||||||
|
{
|
||||||
|
finishedReading = true;
|
||||||
|
readDataOp = ReadDataOp.Done;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
System.Threading.Thread.Sleep(10);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
bOperationSuccess = true;
|
||||||
|
}
|
||||||
|
else if ((currentOp == CurrentOp.ReadDatastream_StartStates)
|
||||||
|
|| (currentOp == CurrentOp.ReadDatastream_EndStates))
|
||||||
|
{
|
||||||
|
bool finishedReading = regReaders == null; // we can work only with register readers
|
||||||
|
while (!finishedReading) //TODO BUMI lock - fuck ?
|
||||||
|
{
|
||||||
|
bool bAllReadersFinished = true;
|
||||||
|
foreach (var iRegReader in regReaders )
|
||||||
|
{
|
||||||
|
if (iRegReader is PoseidonReader)
|
||||||
|
{
|
||||||
|
PoseidonReader poseidonReader = (iRegReader as PoseidonReader);
|
||||||
|
if(poseidonReader == null)
|
||||||
|
continue;
|
||||||
|
poseidonReader.SetCliLogging(CliLogging);
|
||||||
|
if (!(poseidonReader.CurrentOp == PoseidonReader.CurrentPoseidonOp.ReadDatastream_Done
|
||||||
|
|| poseidonReader.CurrentOp == PoseidonReader.CurrentPoseidonOp.ReadDatastream_Running))
|
||||||
|
{
|
||||||
|
poseidonReader.SetCurrentOp((currentOp == CurrentOp.ReadDatastream_StartStates)?
|
||||||
|
PoseidonReader.CurrentPoseidonOp.ReadDataStream_Start :
|
||||||
|
PoseidonReader.CurrentPoseidonOp.ReadDataStream_End);
|
||||||
|
}
|
||||||
|
/// Send start data stream
|
||||||
|
poseidonReader.Run();
|
||||||
|
if (!(poseidonReader.CurrentOp == PoseidonReader.CurrentPoseidonOp.Done
|
||||||
|
|| poseidonReader.CurrentOp == PoseidonReader.CurrentPoseidonOp.Error))
|
||||||
|
{
|
||||||
|
bAllReadersFinished = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (bAllReadersFinished)
|
||||||
|
{
|
||||||
|
finishedReading = true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
System.Threading.Thread.Sleep(10);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
bOperationSuccess = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return bOperationSuccess;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,264 @@
|
|||||||
|
///
|
||||||
|
/// Copyright (c) 2015-2021 Sensus Slovensko a.s.
|
||||||
|
///
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Xml.Serialization;
|
||||||
|
using Common;
|
||||||
|
using Config.Entities;
|
||||||
|
using TBF.Resources;
|
||||||
|
using TBF.Rig.Generic;
|
||||||
|
|
||||||
|
namespace TBF.Rig.DataEntry.PoseidonCmd
|
||||||
|
{
|
||||||
|
public enum Direction
|
||||||
|
{
|
||||||
|
#if LANG_SK
|
||||||
|
[Description("iPERL normálne (R-L)")] Forward_RL,
|
||||||
|
[Description("iPERL opačne (L-R)")] Reversed_LR,
|
||||||
|
[Description("640")] S640,
|
||||||
|
#elif LANG_DE
|
||||||
|
[Description("iPERL Forward (R-L)")] Forward_RL,
|
||||||
|
[Description("iPERL Reversed (L-R)")] Reversed_LR,
|
||||||
|
[Description("640")] S640,
|
||||||
|
#else
|
||||||
|
[Description("iPERL Forward (R-L)")] Forward_RL,
|
||||||
|
[Description("iPERL Reversed (L-R)")] Reversed_LR,
|
||||||
|
[Description("640")] S640,
|
||||||
|
#endif
|
||||||
|
Count,
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum Orders
|
||||||
|
{
|
||||||
|
#if LANG_SK
|
||||||
|
[Description("Ľubovolné")] Arbitrary,
|
||||||
|
[Description("Z Oracle databázy")] FromOracle,
|
||||||
|
[Description("Zo sledovacej databázy")] FromTracingDB,
|
||||||
|
[Description("Združené a z Oracle")] CombinedAndFromOracle,
|
||||||
|
[Description("Združené a zo sledovacej databázy")] CombinedAndFromTracingDB,
|
||||||
|
#elif LANG_CZ
|
||||||
|
[Description("Libovolné")] Arbitrary,
|
||||||
|
[Description("Z Oracle databáze")] FromOracle,
|
||||||
|
[Description("Ze sledovací databáze")] FromTracingDB,
|
||||||
|
[Description("Sdružené a z Oracle")] CombinedAndFromOracle,
|
||||||
|
[Description("Sdružené a ze sledovací databáze")] CombinedAndFromTracingDB,
|
||||||
|
#else
|
||||||
|
[Description("Arbitrary")] Arbitrary,
|
||||||
|
[Description("From Oracle")] FromOracle,
|
||||||
|
[Description("From Tracing DB")] FromTracingDB,
|
||||||
|
[Description("Combined and from Oracle")] CombinedAndFromOracle,
|
||||||
|
[Description("Combined and from Tracing DB")] CombinedAndFromTracingDB,
|
||||||
|
#endif
|
||||||
|
Count,
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum ShowDialogType
|
||||||
|
{
|
||||||
|
[Description("Do not Show")] Hide,
|
||||||
|
[Description("Continue Automatically")] ContinueAutomatically,
|
||||||
|
[Description("Continue Manually")] ContinueManually,
|
||||||
|
Count,
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public class EntryFormCfg : ComponentCfgBase, IComponentCfg, IParamsProvider
|
||||||
|
{
|
||||||
|
public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(EntryFormCfg) })[0];
|
||||||
|
public override XmlSerializer GetSerializer() { return Serializer; }
|
||||||
|
|
||||||
|
public IComponentCfgCtrl GetControl(IList<Config.Entities.Component> cmpntEntities)
|
||||||
|
{
|
||||||
|
return new Configs.ParamsProvider.ComponentCfgCtrl(this, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Serialized parameters
|
||||||
|
///
|
||||||
|
public Direction Direction;
|
||||||
|
public Orders Orders;
|
||||||
|
public bool ShowDialog;
|
||||||
|
public ShowDialogType ShowDialogType;
|
||||||
|
public bool SaveCommunication;
|
||||||
|
|
||||||
|
/// Private parameterless constructor invoked by all other (public) constructors
|
||||||
|
EntryFormCfg() { }
|
||||||
|
|
||||||
|
public EntryFormCfg(string name, IComponentFactory factory)
|
||||||
|
: this()
|
||||||
|
{
|
||||||
|
Name = name;
|
||||||
|
Factory = factory;
|
||||||
|
ParentName = string.Empty;
|
||||||
|
InitializeAll();
|
||||||
|
}
|
||||||
|
|
||||||
|
public string ComponentName { get { return Name; } }
|
||||||
|
|
||||||
|
public void InitializeAll()
|
||||||
|
{
|
||||||
|
Direction = Direction.Forward_RL;
|
||||||
|
Orders = Orders.Arbitrary;
|
||||||
|
ShowDialogType = ShowDialogType.Hide;
|
||||||
|
SaveCommunication = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
string[] paramNames = new string[]
|
||||||
|
{
|
||||||
|
Strings.Direction,
|
||||||
|
Strings.Orders,
|
||||||
|
Strings.ShowDialog,
|
||||||
|
Strings.SaveCommunication,
|
||||||
|
};
|
||||||
|
public string ParamName(int i) { return paramNames[i]; }
|
||||||
|
public int ParamsCount() { return paramNames.Length; }
|
||||||
|
|
||||||
|
public ICollection<string> ParamValues(int i)
|
||||||
|
{
|
||||||
|
var list = new List<string>();
|
||||||
|
switch (i)
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
for (Direction d = 0; d < Direction.Count; d++) list.Add(d.ToDescription());
|
||||||
|
return list;
|
||||||
|
case 1:
|
||||||
|
for (Orders o = 0; o < Orders.Count; o++) list.Add(o.ToDescription());
|
||||||
|
return list;
|
||||||
|
case 2:
|
||||||
|
list.Add(ShowDialogType.Hide.ToDescription());
|
||||||
|
list.Add(ShowDialogType.ContinueAutomatically.ToDescription());
|
||||||
|
list.Add(ShowDialogType.ContinueManually.ToDescription());
|
||||||
|
return list;
|
||||||
|
case 3:
|
||||||
|
list.Add("True");
|
||||||
|
list.Add("False");
|
||||||
|
return list;
|
||||||
|
default:
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static bool TryFromInt<TEnum>(int value, out TEnum result)
|
||||||
|
where TEnum : struct, Enum
|
||||||
|
{
|
||||||
|
if (Enum.IsDefined(typeof(TEnum), value))
|
||||||
|
{
|
||||||
|
result = (TEnum)(object)value;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
result = default;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public string ToString(int i)
|
||||||
|
{
|
||||||
|
switch (i)
|
||||||
|
{
|
||||||
|
case 0: return Direction.ToDescription();
|
||||||
|
case 1: return Orders.ToDescription();
|
||||||
|
case 2: return ShowDialogType.ToDescription();
|
||||||
|
case 3: return SaveCommunication.ToString();
|
||||||
|
default:
|
||||||
|
return string.Format("Name={0}, Direction={1}, Orders={2}, ShowDialog={3}, StoreCommunication={4}", Name, Direction, Orders, ShowDialogType, SaveCommunication);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public CfgUpdateFlags UpdateParam(int i, string str)
|
||||||
|
{
|
||||||
|
switch (i)
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
for (Direction d = 0; d < Direction.Count; d++)
|
||||||
|
if (d.ToDescription() == str)
|
||||||
|
{
|
||||||
|
Direction = d;
|
||||||
|
return CfgUpdateFlags.RestartRqrd;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 1:
|
||||||
|
for (Orders o = 0; o < Orders.Count; o++)
|
||||||
|
if (o.ToDescription() == str)
|
||||||
|
{
|
||||||
|
Orders = o;
|
||||||
|
return CfgUpdateFlags.RestartRqrd;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
{
|
||||||
|
ShowDialogType lastSetting = ShowDialogType;
|
||||||
|
for (ShowDialogType s = 0; s < ShowDialogType.Count; s++)
|
||||||
|
if (s.ToDescription() == str)
|
||||||
|
{
|
||||||
|
ShowDialogType = s;
|
||||||
|
if (lastSetting != ShowDialogType)
|
||||||
|
return CfgUpdateFlags.RestartRqrd;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
{
|
||||||
|
bool lastSetting = SaveCommunication;
|
||||||
|
if (str == "True") SaveCommunication = true;
|
||||||
|
else SaveCommunication = false;
|
||||||
|
if (lastSetting != SaveCommunication)
|
||||||
|
return CfgUpdateFlags.RestartRqrd;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return CfgUpdateFlags.None;
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool ValidateParam(int i, string str, out string message)
|
||||||
|
{
|
||||||
|
message = string.Empty;
|
||||||
|
|
||||||
|
switch (i)
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
case 1:
|
||||||
|
if (ParamValues(i).Contains(str)) return true;
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
bool exists = Enum.GetValues(typeof(ShowDialogType))
|
||||||
|
.Cast<ShowDialogType>()
|
||||||
|
.Any(d => d.ToDescription() == str);
|
||||||
|
if (exists) return true;
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
if (str == "True" || str == "False") return true;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
message = "Invalid index";
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
message = ParamName(i) + " is invalid";
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
void CopyContentTo(EntryFormCfg prms)
|
||||||
|
{
|
||||||
|
prms.Direction = this.Direction;
|
||||||
|
prms.Orders = this.Orders;
|
||||||
|
prms.ShowDialogType = this.ShowDialogType;
|
||||||
|
prms.SaveCommunication = this.SaveCommunication;
|
||||||
|
}
|
||||||
|
|
||||||
|
public IParamsProvider Clone()
|
||||||
|
{
|
||||||
|
EntryFormCfg pars = new EntryFormCfg();
|
||||||
|
CopyContentTo(pars);
|
||||||
|
return pars;
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool UpdateEmbeddedDbEntity()
|
||||||
|
{
|
||||||
|
return true; /// =OK, do nothing
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
///
|
||||||
|
/// Copyright (c) 2015-2021 Sensus Slovensko a.s.
|
||||||
|
///
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using TBF.Rig.Generic;
|
||||||
|
|
||||||
|
namespace TBF.Rig.DataEntry.PoseidonCmd
|
||||||
|
{
|
||||||
|
public class Factory : IComponentFactory
|
||||||
|
{
|
||||||
|
public string ClassName { get { return GetType().Namespace.Substring(8); } }
|
||||||
|
public override string ToString() { return ClassName; }
|
||||||
|
|
||||||
|
public IComponent DummyComponent() { return new EntryForm(); }
|
||||||
|
|
||||||
|
public IComponent GetComponent(IComponentCfg cfg, IList<IComponent> components) { return new EntryForm(cfg); }
|
||||||
|
|
||||||
|
public IComponentCfg DefaultConfig() { return new EntryFormCfg("DataEntry-PoseidonCmd", this); }
|
||||||
|
|
||||||
|
public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component)
|
||||||
|
{
|
||||||
|
return ComponentCfgBase.CreateFromDbEntity(EntryFormCfg.Serializer, component, this);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,609 @@
|
|||||||
|
///
|
||||||
|
/// Copyright (c) 2015-2017 Sensus Metering Systems
|
||||||
|
///
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
using log4net;
|
||||||
|
using TBF.Rig.GenericDevices;
|
||||||
|
using TBF.Resources;
|
||||||
|
|
||||||
|
namespace TBF.Rig.DataEntry.PoseidonCmd
|
||||||
|
{
|
||||||
|
public partial class TestStartEndForm : Form, GenericDevices.IHasCompleted
|
||||||
|
{
|
||||||
|
private static readonly ILog log = LogManager.GetLogger(typeof(TestStartEndForm));
|
||||||
|
|
||||||
|
// Set to 'true' when the form closes
|
||||||
|
public bool Completed { get { return completed; } }
|
||||||
|
bool completed;
|
||||||
|
|
||||||
|
/// <summary> Number of text boxes for serial numbers </summary>
|
||||||
|
public readonly int WaterMetersCount;
|
||||||
|
readonly IRegReader[] regReaders;
|
||||||
|
readonly bool[] disabled;
|
||||||
|
|
||||||
|
// To be retrieved after the form closes
|
||||||
|
public double[] WMStartState;
|
||||||
|
|
||||||
|
// To be retrieved after the form closes
|
||||||
|
public readonly string[] WMStartStateStr;
|
||||||
|
|
||||||
|
// To be retrieved after the form closes
|
||||||
|
public double[] WMEndState;
|
||||||
|
|
||||||
|
bool endStates; /// false=start states, true=end states
|
||||||
|
double refVolume;
|
||||||
|
double warningLimLo; /// limit to display exclamation mark, typically 2x errLimLo
|
||||||
|
double warningLimHi; /// limit to display exclamation mark, typically 2x errLimHi
|
||||||
|
|
||||||
|
int TextBoxesCount;
|
||||||
|
///
|
||||||
|
Label[] labels;
|
||||||
|
TextBox[] startTextBoxes;
|
||||||
|
TextBox[] endTextBoxes;
|
||||||
|
IList<TextBox> enabledTextBoxes;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Parameterless constructor initializing common part for start and endstate form
|
||||||
|
/// </summary>
|
||||||
|
public TestStartEndForm()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
ControlBox = false;
|
||||||
|
|
||||||
|
TextBoxesCount = 48;
|
||||||
|
|
||||||
|
labels = new Label[]
|
||||||
|
{
|
||||||
|
label1, label2, label3, label4, label5, label6, label7, label8, label9, label10,
|
||||||
|
label11, label12, label13, label14, label15, label16, label17, label18, label19, label20,
|
||||||
|
label21, label22, label23, label24, label25, label26, label27, label28, label29, label30,
|
||||||
|
label31, label32, label33, label34, label35, label36, label37, label38, label39, label40,
|
||||||
|
label41, label42, label43, label44, label45, label46, label47, label48,
|
||||||
|
};
|
||||||
|
startTextBoxes = new TextBox[]
|
||||||
|
{
|
||||||
|
startTextBox1, startTextBox2, startTextBox3, startTextBox4, startTextBox5, startTextBox6, startTextBox7, startTextBox8, startTextBox9, startTextBox10,
|
||||||
|
startTextBox11, startTextBox12, startTextBox13, startTextBox14, startTextBox15, startTextBox16, startTextBox17, startTextBox18, startTextBox19, startTextBox20,
|
||||||
|
startTextBox21, startTextBox22, startTextBox23, startTextBox24, startTextBox25, startTextBox26, startTextBox27, startTextBox28, startTextBox29, startTextBox30,
|
||||||
|
startTextBox31, startTextBox32, startTextBox33, startTextBox34, startTextBox35, startTextBox36, startTextBox37, startTextBox38, startTextBox39, startTextBox40,
|
||||||
|
startTextBox41, startTextBox42, startTextBox43, startTextBox44, startTextBox45, startTextBox46, startTextBox47, startTextBox48,
|
||||||
|
};
|
||||||
|
endTextBoxes = new TextBox[]
|
||||||
|
{
|
||||||
|
endTextBox1, endTextBox2, endTextBox3, endTextBox4, endTextBox5, endTextBox6, endTextBox7, endTextBox8, endTextBox9, endTextBox10,
|
||||||
|
endTextBox11, endTextBox12, endTextBox13, endTextBox14, endTextBox15, endTextBox16, endTextBox17, endTextBox18, endTextBox19, endTextBox20,
|
||||||
|
endTextBox21, endTextBox22, endTextBox23, endTextBox24, endTextBox25, endTextBox26, endTextBox27, endTextBox28, endTextBox29, endTextBox30,
|
||||||
|
endTextBox31, endTextBox32, endTextBox33, endTextBox34, endTextBox35, endTextBox36, endTextBox37, endTextBox38, endTextBox39, endTextBox40,
|
||||||
|
endTextBox41, endTextBox42, endTextBox43, endTextBox44, endTextBox45, endTextBox46, endTextBox47, endTextBox48,
|
||||||
|
};
|
||||||
|
enabledTextBoxes = new List<TextBox>();
|
||||||
|
|
||||||
|
completed = false;
|
||||||
|
StartForceCloseHandler();
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Constructor to fill in start states
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="waterMetersCount">Number of water meters</param>
|
||||||
|
/// <param name="disabled">Information from CycleBeginningForm about availability of water meters</param>
|
||||||
|
public TestStartEndForm(int waterMetersCount, IRegReader[] regReaders, bool[] disabled)
|
||||||
|
: this()
|
||||||
|
{
|
||||||
|
endStates = false;
|
||||||
|
|
||||||
|
this.WaterMetersCount = waterMetersCount;
|
||||||
|
this.regReaders = regReaders;
|
||||||
|
this.disabled = disabled;
|
||||||
|
|
||||||
|
ShuffleTextBoxes();
|
||||||
|
ResizeDlgToFitEnabledControls();
|
||||||
|
|
||||||
|
WMStartState = new double[waterMetersCount];
|
||||||
|
WMStartStateStr = new string[waterMetersCount];
|
||||||
|
|
||||||
|
SetUiBusy(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Constructor to fill in end states
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="waterMetersCount">Number of water meters</param>
|
||||||
|
/// <param name="wmStartStateStr">Information entered on test start</param>
|
||||||
|
/// <param name="disabled">Information from CycleBeginningForm about availability of water meters</param>
|
||||||
|
/// <param name="refVolume">Reference volume, it is used to verify the end state, show/hide exclamation if necessary</param>
|
||||||
|
/// <param name="errLimLo">Error limit low, it is used to verify the end state, show/hide exclamation if necessary</param>
|
||||||
|
/// <param name="errLimHi">Error limit high, it is used to verify the end state, show/hide exclamation if necessary</param>
|
||||||
|
public TestStartEndForm(int waterMetersCount, IRegReader[] regReaders, string[] wmStartStateStr, bool[] disabled,
|
||||||
|
double refVolume, double errLimLo, double errLimHi)
|
||||||
|
: this()
|
||||||
|
{
|
||||||
|
endStates = true;
|
||||||
|
|
||||||
|
this.WaterMetersCount = waterMetersCount;
|
||||||
|
this.regReaders = regReaders;
|
||||||
|
if (wmStartStateStr == null || wmStartStateStr.Length != waterMetersCount)
|
||||||
|
throw (new Exception("Invalid 'wmStartStateStr' argument"));
|
||||||
|
this.WMStartStateStr = wmStartStateStr;
|
||||||
|
this.disabled = disabled;
|
||||||
|
this.refVolume = refVolume;
|
||||||
|
this.warningLimLo = 2 * errLimLo;
|
||||||
|
this.warningLimHi = 2 * errLimHi;
|
||||||
|
|
||||||
|
ShuffleTextBoxes();
|
||||||
|
ResizeDlgToFitEnabledControls();
|
||||||
|
|
||||||
|
|
||||||
|
WMEndState = new double[waterMetersCount];
|
||||||
|
|
||||||
|
SetUiBusy(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void SetUiBusy(bool busy, long deltaTime = -1)
|
||||||
|
{
|
||||||
|
// show wait cursor for form and children
|
||||||
|
this.UseWaitCursor = busy;
|
||||||
|
|
||||||
|
// block editing textboxes
|
||||||
|
for (int i = 0; i < enabledTextBoxes.Count; i++)
|
||||||
|
{
|
||||||
|
enabledTextBoxes[i].Enabled = !busy;
|
||||||
|
}
|
||||||
|
|
||||||
|
// disable buttons while busy
|
||||||
|
if (okButton != null) okButton.Enabled = !busy;
|
||||||
|
|
||||||
|
|
||||||
|
// show/hide "loading..." label
|
||||||
|
if (loadingLabel != null)
|
||||||
|
{
|
||||||
|
loadingLabel.Visible = busy;
|
||||||
|
loadingLabel.Text = "Loading...";
|
||||||
|
if (deltaTime > 0)
|
||||||
|
{
|
||||||
|
//show delta time in label
|
||||||
|
loadingLabel.Visible = true;
|
||||||
|
loadingLabel.Text = string.Format("Get: {0} s", deltaTime/1000.0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Make sure the layout of labels/text boxes on the screen
|
||||||
|
/// corresponds to the layout of watermeters of the test bench.
|
||||||
|
/// </summary>
|
||||||
|
void ShuffleTextBoxes()
|
||||||
|
{
|
||||||
|
if (TBF.Data.WMsCount < TextBoxesCount)
|
||||||
|
{
|
||||||
|
int nrLines = TBF.Data.WMsCount / TBF.Data.LineSize;
|
||||||
|
int gap = (TextBoxesCount - TBF.Data.WMsCount) / nrLines;
|
||||||
|
|
||||||
|
int dest = 0;
|
||||||
|
for (int l = 0; l < nrLines; l++)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < TBF.Data.LineSize; i++)
|
||||||
|
{
|
||||||
|
labels[dest] = labels[l * TBF.Data.LineSize + l * gap + i];
|
||||||
|
startTextBoxes[dest] = startTextBoxes[l * TBF.Data.LineSize + l * gap + i];
|
||||||
|
endTextBoxes[dest] = endTextBoxes[l * TBF.Data.LineSize + l * gap + i];
|
||||||
|
dest++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
TextBoxesCount = TBF.Data.WMsCount;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void ResizeDlgToFitEnabledControls()
|
||||||
|
{
|
||||||
|
int xMax = 0;
|
||||||
|
int yMax = 0;
|
||||||
|
GetMaxDimensions(startTextBoxes,WaterMetersCount,ref xMax, ref yMax);
|
||||||
|
GetMaxDimensions(endTextBoxes,WaterMetersCount, ref xMax, ref yMax);
|
||||||
|
|
||||||
|
int shapeGap = 50;
|
||||||
|
okButton.Left = xMax + shapeGap;
|
||||||
|
xMax = okButton.Left + okButton.Width;
|
||||||
|
|
||||||
|
Width = xMax + shapeGap;
|
||||||
|
Height = yMax + shapeGap;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void GetMaxDimensions(TextBox[] textBoxes, int waterMetersCount, ref int xMax, ref int yMax)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < waterMetersCount; i++)
|
||||||
|
{
|
||||||
|
if (textBoxes[i].Left + textBoxes[i].Width > xMax)
|
||||||
|
xMax = textBoxes[i].Left + textBoxes[i].Width;
|
||||||
|
if (textBoxes[i].Top + textBoxes[i].Height > yMax)
|
||||||
|
yMax = textBoxes[i].Top + textBoxes[i].Height;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// private void GetMaxDimensions(TextBox[] textBoxes, ref int xMax, ref int yMax)
|
||||||
|
// {
|
||||||
|
// for (int i = 0; i < textBoxes.Length; i++)
|
||||||
|
// {
|
||||||
|
// if(!textBoxes[i].Visible)
|
||||||
|
// continue;
|
||||||
|
// if (textBoxes[i].Left + textBoxes[i].Width > xMax) xMax = textBoxes[i].Left + textBoxes[i].Width;
|
||||||
|
// if (textBoxes[i].Top + textBoxes[i].Height > yMax) yMax = textBoxes[i].Top + textBoxes[i].Height;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
|
private void CycleEndForm_Load(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
Localize();
|
||||||
|
|
||||||
|
//Height = 115 + 90 * WaterMetersCount;
|
||||||
|
|
||||||
|
for (int i = 0; i < TextBoxesCount; i++)
|
||||||
|
{
|
||||||
|
if (i < WaterMetersCount)
|
||||||
|
{
|
||||||
|
labels[i].Visible = startTextBoxes[i].Visible = endTextBoxes[i].Visible = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (endStates)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < TextBoxesCount; i++)
|
||||||
|
{
|
||||||
|
if (WMStartStateStr != null && i < WMStartStateStr.Length)
|
||||||
|
{
|
||||||
|
startTextBoxes[i].Text = WMStartStateStr[i];
|
||||||
|
}
|
||||||
|
|
||||||
|
if (disabled != null && i < disabled.Length && disabled[i])
|
||||||
|
{
|
||||||
|
endTextBoxes[i].Enabled = false;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
endTextBoxes[i].Enabled = true;
|
||||||
|
enabledTextBoxes.Add(endTextBoxes[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
for (int i = 0; i < TextBoxesCount; i++)
|
||||||
|
{
|
||||||
|
if (disabled != null && i < disabled.Length && disabled[i])
|
||||||
|
{
|
||||||
|
startTextBoxes[i].Enabled = false;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
startTextBoxes[i].Enabled = true;
|
||||||
|
enabledTextBoxes.Add(startTextBoxes[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void UpdateValues(bool stratValue = true, bool enableEdit = false, long deltaTime = -1)
|
||||||
|
{
|
||||||
|
// Ensure we are on the UI thread
|
||||||
|
if (InvokeRequired)
|
||||||
|
{
|
||||||
|
BeginInvoke(new Action(() => UpdateValues(stratValue, enableEdit)));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i = 0; i < TextBoxesCount; i++)
|
||||||
|
{
|
||||||
|
if (stratValue)
|
||||||
|
{
|
||||||
|
if (WMStartStateStr != null && i < WMStartStateStr.Length)
|
||||||
|
{
|
||||||
|
startTextBoxes[i].Text = WMStartStateStr[i];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// small bugfix: check WMEndState, not WMStartStateStr
|
||||||
|
if ((WMEndState != null && i < WMEndState.Length) &&
|
||||||
|
(WMStartStateStr != null && i < WMStartStateStr.Length && WMStartStateStr[i] != ""))
|
||||||
|
{
|
||||||
|
endTextBoxes[i].Text = WMEndState[i].ToString();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (enableEdit)
|
||||||
|
{
|
||||||
|
SetUiBusy(false, deltaTime);
|
||||||
|
}
|
||||||
|
// if you also need to enable/disable editing, do it here,
|
||||||
|
// it's now safely on the UI thread.
|
||||||
|
}
|
||||||
|
|
||||||
|
void Localize()
|
||||||
|
{
|
||||||
|
Text = Strings.Water_Meter_States;
|
||||||
|
for (int i = 0; i < TextBoxesCount; i++)
|
||||||
|
{
|
||||||
|
labels[i].Text = string.Format("{0} {1}", Strings.Water_Meter, i + 1);
|
||||||
|
}
|
||||||
|
startLabel.Text = start2Label.Text = Strings.Start;
|
||||||
|
endLabel.Text = end2Label.Text = Strings.End;
|
||||||
|
okButton.Text = Strings.OkBtnText;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void okButton_Click(object sender, EventArgs eArgs)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if (endStates)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < Math.Min(WaterMetersCount, TextBoxesCount); i++)
|
||||||
|
{
|
||||||
|
if (endTextBoxes[i].Visible && endTextBoxes[i].Enabled)
|
||||||
|
{
|
||||||
|
WMEndState[i] = Utils.ParseUDouble(endTextBoxes[i].Text);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
for (int i = 0; i < Math.Min(WaterMetersCount, TextBoxesCount); i++)
|
||||||
|
{
|
||||||
|
if (startTextBoxes[i].Visible && startTextBoxes[i].Enabled)
|
||||||
|
{
|
||||||
|
WMStartStateStr[i] = startTextBoxes[i].Text;
|
||||||
|
WMStartState[i] = Utils.ParseUDouble(startTextBoxes[i].Text);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch(Exception e)
|
||||||
|
{
|
||||||
|
log.ErrorFormat("Exception: {0}", e.Message);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
completed = true;
|
||||||
|
Close();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void AutoClickOkAfterDelay(int delayMs = 10000)
|
||||||
|
{
|
||||||
|
_ = AutoClickInternal(okButton, delayMs);
|
||||||
|
}
|
||||||
|
|
||||||
|
private async Task AutoClickInternal(Button okButton, int delayMs)
|
||||||
|
{
|
||||||
|
await Task.Delay(delayMs);
|
||||||
|
|
||||||
|
if (okButton.IsHandleCreated && okButton.Enabled && okButton.Visible)
|
||||||
|
{
|
||||||
|
// Invoke on UI thread
|
||||||
|
if (okButton.InvokeRequired)
|
||||||
|
okButton.BeginInvoke(new Action(() => okButton.PerformClick()));
|
||||||
|
else
|
||||||
|
okButton.PerformClick();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#region Forced close handling
|
||||||
|
|
||||||
|
public void StartForceCloseHandler()
|
||||||
|
{
|
||||||
|
UiBridge.Bridge.CloseModelessFormHandler += delegate(object sender, EventArgs args)
|
||||||
|
{
|
||||||
|
if (InvokeRequired) { Invoke(new EventHandler<EventArgs>(OnForceClose), sender, args); }
|
||||||
|
else OnForceClose(sender, args);
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
void OnForceClose(object sender, EventArgs args)
|
||||||
|
{
|
||||||
|
DialogResult = DialogResult.Cancel;
|
||||||
|
Close();
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Calculate the approximate error and verify whether it is within limits.
|
||||||
|
/// Make an exclamation mark visible if out of range.
|
||||||
|
/// Similar event handler is implemented for all endTextBoxes (1..24).
|
||||||
|
/// </summary>
|
||||||
|
private void ProcTextChanged(object sender, EventArgs e, TextBox endStateTB, TextBox startStateTB, Label exclamation)
|
||||||
|
{
|
||||||
|
double err = 0;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
double endState = Utils.ParseUDouble(endStateTB.Text);
|
||||||
|
double startState = Utils.ParseUDouble(startStateTB.Text);
|
||||||
|
err = 100.0 * (endState - startState - refVolume) / refVolume;
|
||||||
|
}
|
||||||
|
catch { err = 1000.0f; };
|
||||||
|
exclamation.Visible = (err < warningLimLo) || (warningLimHi < err);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void endTextBox1_TextChanged(object sndr, EventArgs e) { ProcTextChanged(sndr, e, endTextBox1, startTextBox1, exclamation1); }
|
||||||
|
private void endTextBox2_TextChanged(object sndr, EventArgs e) { ProcTextChanged(sndr, e, endTextBox2, startTextBox2, exclamation2); }
|
||||||
|
private void endTextBox3_TextChanged(object sndr, EventArgs e) { ProcTextChanged(sndr, e, endTextBox3, startTextBox3, exclamation3); }
|
||||||
|
private void endTextBox4_TextChanged(object sndr, EventArgs e) { ProcTextChanged(sndr, e, endTextBox4, startTextBox4, exclamation4); }
|
||||||
|
private void endTextBox5_TextChanged(object sndr, EventArgs e) { ProcTextChanged(sndr, e, endTextBox5, startTextBox5, exclamation5); }
|
||||||
|
private void endTextBox6_TextChanged(object sndr, EventArgs e) { ProcTextChanged(sndr, e, endTextBox6, startTextBox6, exclamation6); }
|
||||||
|
private void endTextBox7_TextChanged(object sndr, EventArgs e) { ProcTextChanged(sndr, e, endTextBox7, startTextBox7, exclamation7); }
|
||||||
|
private void endTextBox8_TextChanged(object sndr, EventArgs e) { ProcTextChanged(sndr, e, endTextBox8, startTextBox8, exclamation8); }
|
||||||
|
private void endTextBox9_TextChanged(object sndr, EventArgs e) { ProcTextChanged(sndr, e, endTextBox9, startTextBox9, exclamation9); }
|
||||||
|
private void endTextBox10_TextChanged(object sndr, EventArgs e) { ProcTextChanged(sndr, e, endTextBox10, startTextBox10, exclamation10); }
|
||||||
|
private void endTextBox11_TextChanged(object sndr, EventArgs e) { ProcTextChanged(sndr, e, endTextBox11, startTextBox11, exclamation11); }
|
||||||
|
private void endTextBox12_TextChanged(object sndr, EventArgs e) { ProcTextChanged(sndr, e, endTextBox12, startTextBox12, exclamation12); }
|
||||||
|
private void endTextBox13_TextChanged(object sndr, EventArgs e) { ProcTextChanged(sndr, e, endTextBox13, startTextBox13, exclamation13); }
|
||||||
|
private void endTextBox14_TextChanged(object sndr, EventArgs e) { ProcTextChanged(sndr, e, endTextBox14, startTextBox14, exclamation14); }
|
||||||
|
private void endTextBox15_TextChanged(object sndr, EventArgs e) { ProcTextChanged(sndr, e, endTextBox15, startTextBox15, exclamation15); }
|
||||||
|
private void endTextBox16_TextChanged(object sndr, EventArgs e) { ProcTextChanged(sndr, e, endTextBox16, startTextBox16, exclamation16); }
|
||||||
|
private void endTextBox17_TextChanged(object sndr, EventArgs e) { ProcTextChanged(sndr, e, endTextBox17, startTextBox17, exclamation17); }
|
||||||
|
private void endTextBox18_TextChanged(object sndr, EventArgs e) { ProcTextChanged(sndr, e, endTextBox18, startTextBox18, exclamation18); }
|
||||||
|
private void endTextBox19_TextChanged(object sndr, EventArgs e) { ProcTextChanged(sndr, e, endTextBox19, startTextBox19, exclamation19); }
|
||||||
|
private void endTextBox20_TextChanged(object sndr, EventArgs e) { ProcTextChanged(sndr, e, endTextBox20, startTextBox20, exclamation20); }
|
||||||
|
private void endTextBox21_TextChanged(object sndr, EventArgs e) { ProcTextChanged(sndr, e, endTextBox21, startTextBox21, exclamation21); }
|
||||||
|
private void endTextBox22_TextChanged(object sndr, EventArgs e) { ProcTextChanged(sndr, e, endTextBox22, startTextBox22, exclamation22); }
|
||||||
|
private void endTextBox23_TextChanged(object sndr, EventArgs e) { ProcTextChanged(sndr, e, endTextBox23, startTextBox23, exclamation23); }
|
||||||
|
private void endTextBox24_TextChanged(object sndr, EventArgs e) { ProcTextChanged(sndr, e, endTextBox24, startTextBox24, exclamation24); }
|
||||||
|
private void endTextBox25_TextChanged(object sndr, EventArgs e) { ProcTextChanged(sndr, e, endTextBox25, startTextBox25, exclamation25); }
|
||||||
|
private void endTextBox26_TextChanged(object sndr, EventArgs e) { ProcTextChanged(sndr, e, endTextBox26, startTextBox26, exclamation26); }
|
||||||
|
private void endTextBox27_TextChanged(object sndr, EventArgs e) { ProcTextChanged(sndr, e, endTextBox27, startTextBox27, exclamation27); }
|
||||||
|
private void endTextBox28_TextChanged(object sndr, EventArgs e) { ProcTextChanged(sndr, e, endTextBox28, startTextBox28, exclamation28); }
|
||||||
|
private void endTextBox29_TextChanged(object sndr, EventArgs e) { ProcTextChanged(sndr, e, endTextBox29, startTextBox29, exclamation29); }
|
||||||
|
private void endTextBox30_TextChanged(object sndr, EventArgs e) { ProcTextChanged(sndr, e, endTextBox30, startTextBox30, exclamation30); }
|
||||||
|
private void endTextBox31_TextChanged(object sndr, EventArgs e) { ProcTextChanged(sndr, e, endTextBox31, startTextBox31, exclamation31); }
|
||||||
|
private void endTextBox32_TextChanged(object sndr, EventArgs e) { ProcTextChanged(sndr, e, endTextBox32, startTextBox32, exclamation32); }
|
||||||
|
private void endTextBox33_TextChanged(object sndr, EventArgs e) { ProcTextChanged(sndr, e, endTextBox33, startTextBox33, exclamation33); }
|
||||||
|
private void endTextBox34_TextChanged(object sndr, EventArgs e) { ProcTextChanged(sndr, e, endTextBox34, startTextBox34, exclamation34); }
|
||||||
|
private void endTextBox35_TextChanged(object sndr, EventArgs e) { ProcTextChanged(sndr, e, endTextBox35, startTextBox35, exclamation35); }
|
||||||
|
private void endTextBox36_TextChanged(object sndr, EventArgs e) { ProcTextChanged(sndr, e, endTextBox36, startTextBox36, exclamation36); }
|
||||||
|
private void endTextBox37_TextChanged(object sndr, EventArgs e) { ProcTextChanged(sndr, e, endTextBox37, startTextBox37, exclamation37); }
|
||||||
|
private void endTextBox38_TextChanged(object sndr, EventArgs e) { ProcTextChanged(sndr, e, endTextBox38, startTextBox38, exclamation38); }
|
||||||
|
private void endTextBox39_TextChanged(object sndr, EventArgs e) { ProcTextChanged(sndr, e, endTextBox39, startTextBox39, exclamation39); }
|
||||||
|
private void endTextBox40_TextChanged(object sndr, EventArgs e) { ProcTextChanged(sndr, e, endTextBox40, startTextBox40, exclamation40); }
|
||||||
|
private void endTextBox41_TextChanged(object sndr, EventArgs e) { ProcTextChanged(sndr, e, endTextBox41, startTextBox41, exclamation41); }
|
||||||
|
private void endTextBox42_TextChanged(object sndr, EventArgs e) { ProcTextChanged(sndr, e, endTextBox42, startTextBox42, exclamation42); }
|
||||||
|
private void endTextBox43_TextChanged(object sndr, EventArgs e) { ProcTextChanged(sndr, e, endTextBox43, startTextBox43, exclamation43); }
|
||||||
|
private void endTextBox44_TextChanged(object sndr, EventArgs e) { ProcTextChanged(sndr, e, endTextBox44, startTextBox44, exclamation44); }
|
||||||
|
private void endTextBox45_TextChanged(object sndr, EventArgs e) { ProcTextChanged(sndr, e, endTextBox45, startTextBox45, exclamation45); }
|
||||||
|
private void endTextBox46_TextChanged(object sndr, EventArgs e) { ProcTextChanged(sndr, e, endTextBox46, startTextBox46, exclamation46); }
|
||||||
|
private void endTextBox47_TextChanged(object sndr, EventArgs e) { ProcTextChanged(sndr, e, endTextBox47, startTextBox47, exclamation47); }
|
||||||
|
private void endTextBox48_TextChanged(object sndr, EventArgs e) { ProcTextChanged(sndr, e, endTextBox48, startTextBox48, exclamation48); }
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Process a key press within any enabled text boxe
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="sender"></param>
|
||||||
|
/// <param name="e"></param>
|
||||||
|
/// <param name="currentFocusOwner">TextBox control which received the event</param>
|
||||||
|
private void ProcKeyPress(object sender, KeyPressEventArgs e, TextBox currentFocusOwner)
|
||||||
|
{
|
||||||
|
if (e.KeyChar == '+')
|
||||||
|
{
|
||||||
|
/// Process '+' key ..... Form completed
|
||||||
|
okButton_Click(sender, e);
|
||||||
|
}
|
||||||
|
if (e.KeyChar == '\r')
|
||||||
|
{
|
||||||
|
/// Process <enter> key ..... Next text field
|
||||||
|
if (enabledTextBoxes.Count < 2) return; /// There is just one enabled textbox
|
||||||
|
|
||||||
|
for (int i = 0; i < enabledTextBoxes.Count; i++)
|
||||||
|
{
|
||||||
|
if (enabledTextBoxes[i] == currentFocusOwner)
|
||||||
|
{
|
||||||
|
/// Change focus to the next enabled text box
|
||||||
|
enabledTextBoxes[(i + 1) % enabledTextBoxes.Count].Focus();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void startTextBox1_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, startTextBox1); }
|
||||||
|
private void startTextBox2_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, startTextBox2); }
|
||||||
|
private void startTextBox3_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, startTextBox3); }
|
||||||
|
private void startTextBox4_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, startTextBox4); }
|
||||||
|
private void startTextBox5_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, startTextBox5); }
|
||||||
|
private void startTextBox6_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, startTextBox6); }
|
||||||
|
private void startTextBox7_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, startTextBox7); }
|
||||||
|
private void startTextBox8_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, startTextBox8); }
|
||||||
|
private void startTextBox9_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, startTextBox9); }
|
||||||
|
private void startTextBox10_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, startTextBox10); }
|
||||||
|
private void startTextBox11_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, startTextBox11); }
|
||||||
|
private void startTextBox12_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, startTextBox12); }
|
||||||
|
private void startTextBox13_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, startTextBox13); }
|
||||||
|
private void startTextBox14_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, startTextBox14); }
|
||||||
|
private void startTextBox15_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, startTextBox15); }
|
||||||
|
private void startTextBox16_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, startTextBox16); }
|
||||||
|
private void startTextBox17_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, startTextBox17); }
|
||||||
|
private void startTextBox18_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, startTextBox18); }
|
||||||
|
private void startTextBox19_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, startTextBox19); }
|
||||||
|
private void startTextBox20_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, startTextBox20); }
|
||||||
|
private void startTextBox21_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, startTextBox21); }
|
||||||
|
private void startTextBox22_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, startTextBox22); }
|
||||||
|
private void startTextBox23_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, startTextBox23); }
|
||||||
|
private void startTextBox24_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, startTextBox24); }
|
||||||
|
private void startTextBox25_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, startTextBox25); }
|
||||||
|
private void startTextBox26_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, startTextBox26); }
|
||||||
|
private void startTextBox27_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, startTextBox27); }
|
||||||
|
private void startTextBox28_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, startTextBox28); }
|
||||||
|
private void startTextBox29_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, startTextBox29); }
|
||||||
|
private void startTextBox30_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, startTextBox30); }
|
||||||
|
private void startTextBox31_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, startTextBox31); }
|
||||||
|
private void startTextBox32_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, startTextBox32); }
|
||||||
|
private void startTextBox33_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, startTextBox33); }
|
||||||
|
private void startTextBox34_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, startTextBox34); }
|
||||||
|
private void startTextBox35_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, startTextBox35); }
|
||||||
|
private void startTextBox36_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, startTextBox36); }
|
||||||
|
private void startTextBox37_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, startTextBox37); }
|
||||||
|
private void startTextBox38_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, startTextBox38); }
|
||||||
|
private void startTextBox39_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, startTextBox39); }
|
||||||
|
private void startTextBox40_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, startTextBox40); }
|
||||||
|
private void startTextBox41_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, startTextBox41); }
|
||||||
|
private void startTextBox42_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, startTextBox42); }
|
||||||
|
private void startTextBox43_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, startTextBox43); }
|
||||||
|
private void startTextBox44_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, startTextBox44); }
|
||||||
|
private void startTextBox45_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, startTextBox45); }
|
||||||
|
private void startTextBox46_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, startTextBox46); }
|
||||||
|
private void startTextBox47_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, startTextBox47); }
|
||||||
|
private void startTextBox48_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, startTextBox48); }
|
||||||
|
|
||||||
|
private void endTextBox1_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, endTextBox1); }
|
||||||
|
private void endTextBox2_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, endTextBox2); }
|
||||||
|
private void endTextBox3_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, endTextBox3); }
|
||||||
|
private void endTextBox4_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, endTextBox4); }
|
||||||
|
private void endTextBox5_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, endTextBox5); }
|
||||||
|
private void endTextBox6_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, endTextBox6); }
|
||||||
|
private void endTextBox7_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, endTextBox7); }
|
||||||
|
private void endTextBox8_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, endTextBox8); }
|
||||||
|
private void endTextBox9_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, endTextBox9); }
|
||||||
|
private void endTextBox10_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, endTextBox10); }
|
||||||
|
private void endTextBox11_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, endTextBox11); }
|
||||||
|
private void endTextBox12_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, endTextBox12); }
|
||||||
|
private void endTextBox13_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, endTextBox13); }
|
||||||
|
private void endTextBox14_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, endTextBox14); }
|
||||||
|
private void endTextBox15_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, endTextBox15); }
|
||||||
|
private void endTextBox16_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, endTextBox16); }
|
||||||
|
private void endTextBox17_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, endTextBox17); }
|
||||||
|
private void endTextBox18_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, endTextBox18); }
|
||||||
|
private void endTextBox19_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, endTextBox19); }
|
||||||
|
private void endTextBox20_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, endTextBox20); }
|
||||||
|
private void endTextBox21_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, endTextBox21); }
|
||||||
|
private void endTextBox22_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, endTextBox22); }
|
||||||
|
private void endTextBox23_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, endTextBox23); }
|
||||||
|
private void endTextBox24_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, endTextBox24); }
|
||||||
|
private void endTextBox25_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, endTextBox25); }
|
||||||
|
private void endTextBox26_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, endTextBox26); }
|
||||||
|
private void endTextBox27_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, endTextBox27); }
|
||||||
|
private void endTextBox28_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, endTextBox28); }
|
||||||
|
private void endTextBox29_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, endTextBox29); }
|
||||||
|
private void endTextBox30_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, endTextBox30); }
|
||||||
|
private void endTextBox31_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, endTextBox31); }
|
||||||
|
private void endTextBox32_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, endTextBox32); }
|
||||||
|
private void endTextBox33_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, endTextBox33); }
|
||||||
|
private void endTextBox34_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, endTextBox34); }
|
||||||
|
private void endTextBox35_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, endTextBox35); }
|
||||||
|
private void endTextBox36_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, endTextBox36); }
|
||||||
|
private void endTextBox37_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, endTextBox37); }
|
||||||
|
private void endTextBox38_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, endTextBox38); }
|
||||||
|
private void endTextBox39_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, endTextBox39); }
|
||||||
|
private void endTextBox40_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, endTextBox40); }
|
||||||
|
private void endTextBox41_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, endTextBox41); }
|
||||||
|
private void endTextBox42_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, endTextBox42); }
|
||||||
|
private void endTextBox43_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, endTextBox43); }
|
||||||
|
private void endTextBox44_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, endTextBox44); }
|
||||||
|
private void endTextBox45_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, endTextBox45); }
|
||||||
|
private void endTextBox46_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, endTextBox46); }
|
||||||
|
private void endTextBox47_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, endTextBox47); }
|
||||||
|
private void endTextBox48_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, endTextBox48); }
|
||||||
|
}
|
||||||
|
}
|
||||||
+3121
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,120 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
</root>
|
||||||
@@ -89,7 +89,7 @@ namespace TBF.Rig.DataEntry.S620
|
|||||||
|
|
||||||
|
|
||||||
/// <returns>Reference to the operation</returns>
|
/// <returns>Reference to the operation</returns>
|
||||||
public IOperation ShowCycleBeginFormOp()
|
public IOperation ShowCycleBeginFormOp( IRegReader[] regReadersOptional = null)
|
||||||
{
|
{
|
||||||
if (currentOp != CurrentOp.None) throw new Exception("Sequence error");
|
if (currentOp != CurrentOp.None) throw new Exception("Sequence error");
|
||||||
currentOp = CurrentOp.ShowFormAtCycleBeginning;
|
currentOp = CurrentOp.ShowFormAtCycleBeginning;
|
||||||
|
|||||||
@@ -81,7 +81,7 @@ namespace TBF.Rig.DataEntry.Single
|
|||||||
|
|
||||||
|
|
||||||
/// <returns>Reference to the operation</returns>
|
/// <returns>Reference to the operation</returns>
|
||||||
public IOperation ShowCycleBeginFormOp()
|
public IOperation ShowCycleBeginFormOp( IRegReader[] regReadersOptional = null)
|
||||||
{
|
{
|
||||||
if (currentOp != CurrentOp.None) throw new Exception("Sequence error");
|
if (currentOp != CurrentOp.None) throw new Exception("Sequence error");
|
||||||
currentOp = CurrentOp.ShowFormAtCycleBeginning;
|
currentOp = CurrentOp.ShowFormAtCycleBeginning;
|
||||||
|
|||||||
@@ -81,7 +81,7 @@ namespace TBF.Rig.DataEntry.Standard12
|
|||||||
|
|
||||||
|
|
||||||
/// <returns>Reference to the operation</returns>
|
/// <returns>Reference to the operation</returns>
|
||||||
public IOperation ShowCycleBeginFormOp()
|
public IOperation ShowCycleBeginFormOp( IRegReader[] regReadersOptional = null)
|
||||||
{
|
{
|
||||||
if (currentOp != CurrentOp.None) throw new Exception("Sequence error");
|
if (currentOp != CurrentOp.None) throw new Exception("Sequence error");
|
||||||
currentOp = CurrentOp.ShowFormAtCycleBeginning;
|
currentOp = CurrentOp.ShowFormAtCycleBeginning;
|
||||||
|
|||||||
@@ -83,7 +83,7 @@ namespace TBF.Rig.DataEntry.Standard24
|
|||||||
|
|
||||||
|
|
||||||
/// <returns>Reference to the operation</returns>
|
/// <returns>Reference to the operation</returns>
|
||||||
public IOperation ShowCycleBeginFormOp()
|
public IOperation ShowCycleBeginFormOp( IRegReader[] regReadersOptional = null)
|
||||||
{
|
{
|
||||||
if (currentOp != CurrentOp.None) throw new Exception("Sequence error");
|
if (currentOp != CurrentOp.None) throw new Exception("Sequence error");
|
||||||
this.currentOp = CurrentOp.ShowFormAtCycleBeginning;
|
this.currentOp = CurrentOp.ShowFormAtCycleBeginning;
|
||||||
|
|||||||
@@ -81,7 +81,7 @@ namespace TBF.Rig.DataEntry.Standard48
|
|||||||
|
|
||||||
|
|
||||||
/// <returns>Reference to the operation</returns>
|
/// <returns>Reference to the operation</returns>
|
||||||
public IOperation ShowCycleBeginFormOp()
|
public IOperation ShowCycleBeginFormOp( IRegReader[] regReadersOptional = null)
|
||||||
{
|
{
|
||||||
if (currentOp != CurrentOp.None) throw new Exception("Sequence error");
|
if (currentOp != CurrentOp.None) throw new Exception("Sequence error");
|
||||||
currentOp = CurrentOp.ShowFormAtCycleBeginning;
|
currentOp = CurrentOp.ShowFormAtCycleBeginning;
|
||||||
|
|||||||
@@ -77,7 +77,7 @@ namespace TBF.Rig.DataEntry.Standard6
|
|||||||
|
|
||||||
|
|
||||||
/// <returns>Reference to the operation</returns>
|
/// <returns>Reference to the operation</returns>
|
||||||
public IOperation ShowCycleBeginFormOp()
|
public IOperation ShowCycleBeginFormOp( IRegReader[] regReadersOptional = null)
|
||||||
{
|
{
|
||||||
if (currentOp != CurrentOp.None) throw new Exception("Sequence error");
|
if (currentOp != CurrentOp.None) throw new Exception("Sequence error");
|
||||||
currentOp = CurrentOp.ShowFormAtCycleBeginning;
|
currentOp = CurrentOp.ShowFormAtCycleBeginning;
|
||||||
|
|||||||
@@ -158,7 +158,7 @@ namespace TBF.Rig.DataEntry.StandardCamera
|
|||||||
|
|
||||||
|
|
||||||
/// <returns>Reference to the operation</returns>
|
/// <returns>Reference to the operation</returns>
|
||||||
public IOperation ShowCycleBeginFormOp()
|
public IOperation ShowCycleBeginFormOp( IRegReader[] regReadersOptional = null)
|
||||||
{
|
{
|
||||||
if (currentOp != CurrentOp.None) throw new Exception("Sequence error");
|
if (currentOp != CurrentOp.None) throw new Exception("Sequence error");
|
||||||
currentOp = CurrentOp.ShowFormAtCycleBeginning;
|
currentOp = CurrentOp.ShowFormAtCycleBeginning;
|
||||||
|
|||||||
@@ -21,6 +21,7 @@ namespace TBF.Rig.DataEntry.StandartCameraPurchaseOrder
|
|||||||
public partial class CycleBeginningForm : Form, GenericDevices.IHasCompleted
|
public partial class CycleBeginningForm : Form, GenericDevices.IHasCompleted
|
||||||
{
|
{
|
||||||
private static readonly ILog log = LogManager.GetLogger(typeof(CycleBeginningForm));
|
private static readonly ILog log = LogManager.GetLogger(typeof(CycleBeginningForm));
|
||||||
|
private static readonly ILog log_selected = LogManager.GetLogger("PurchaseOrderHistory");
|
||||||
|
|
||||||
/// <summary> Number of water meters </summary>
|
/// <summary> Number of water meters </summary>
|
||||||
public readonly int WaterMetersCount;
|
public readonly int WaterMetersCount;
|
||||||
@@ -264,6 +265,11 @@ namespace TBF.Rig.DataEntry.StandartCameraPurchaseOrder
|
|||||||
Disabled[i] = !checkBoxes[i].Checked;
|
Disabled[i] = !checkBoxes[i].Checked;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//TODO create logger to log selected items and their order and Order number
|
||||||
|
string snTextArrString = SNText != null ? string.Join(", ", SNText) : string.Empty;
|
||||||
|
log_selected.DebugFormat("Purchase DLG - Selected Order: {0}, Last selected Box: {1}, All items: {2}",
|
||||||
|
orderComboBox.Text, purchaseBoxComboBox.Text,snTextArrString);
|
||||||
|
|
||||||
completed = true;
|
completed = true;
|
||||||
Close();
|
Close();
|
||||||
}
|
}
|
||||||
@@ -480,7 +486,7 @@ namespace TBF.Rig.DataEntry.StandartCameraPurchaseOrder
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Console.WriteLine("The selected item is not a number.");
|
Console.WriteLine(@"The selected item is not a number.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -718,6 +724,17 @@ namespace TBF.Rig.DataEntry.StandartCameraPurchaseOrder
|
|||||||
.SelectMany(pBox => pBox.PurchaseWaterMeterDataList)
|
.SelectMany(pBox => pBox.PurchaseWaterMeterDataList)
|
||||||
.Select(pWM => pWM.SerialNo);
|
.Select(pWM => pWM.SerialNo);
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
string[] iEnumerable = serialNumbers as string[] ?? serialNumbers.ToArray();
|
||||||
|
log_selected.Debug(
|
||||||
|
$"Selected order: {choosenOrder} box: {choosenBox} possible serial numbers (form DB): {string.Join(", ", iEnumerable)}");
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
log_selected.Error("Error loading serial numbers: " + e);
|
||||||
|
}
|
||||||
|
|
||||||
//enable behaviour type
|
//enable behaviour type
|
||||||
bool addOnEndOnly = false;
|
bool addOnEndOnly = false;
|
||||||
|
|
||||||
@@ -726,6 +743,7 @@ namespace TBF.Rig.DataEntry.StandartCameraPurchaseOrder
|
|||||||
|
|
||||||
if (countOfFreeBoxes < serialNumbers.Count())
|
if (countOfFreeBoxes < serialNumbers.Count())
|
||||||
{
|
{
|
||||||
|
log_selected.Debug(">" + serialNumbers.Count() + " Serial Numbers in box as we have free positions!");
|
||||||
MessageBox.Show(this, "We have more Serial Numbers in box as we have free positions!", "Warning",
|
MessageBox.Show(this, "We have more Serial Numbers in box as we have free positions!", "Warning",
|
||||||
MessageBoxButtons.OK, MessageBoxIcon.Warning);
|
MessageBoxButtons.OK, MessageBoxIcon.Warning);
|
||||||
return;
|
return;
|
||||||
@@ -753,6 +771,7 @@ namespace TBF.Rig.DataEntry.StandartCameraPurchaseOrder
|
|||||||
if (lastComboBoxSerialNo >= 0 || lastComboBoxSerialNo < enabledComboBoxes.Count)
|
if (lastComboBoxSerialNo >= 0 || lastComboBoxSerialNo < enabledComboBoxes.Count)
|
||||||
{
|
{
|
||||||
comboBoxes[lastComboBoxSerialNo].Text = serialNumber;
|
comboBoxes[lastComboBoxSerialNo].Text = serialNumber;
|
||||||
|
log_selected.Debug($"Added serial no: {serialNumber} to pos: {lastComboBoxSerialNo}");
|
||||||
lastComboBoxSerialNo++;
|
lastComboBoxSerialNo++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -762,6 +781,7 @@ namespace TBF.Rig.DataEntry.StandartCameraPurchaseOrder
|
|||||||
if (iNextFreeNumber >= 0 || iNextFreeNumber < enabledComboBoxes.Count)
|
if (iNextFreeNumber >= 0 || iNextFreeNumber < enabledComboBoxes.Count)
|
||||||
{
|
{
|
||||||
comboBoxes[iNextFreeNumber].Text = serialNumber;
|
comboBoxes[iNextFreeNumber].Text = serialNumber;
|
||||||
|
log_selected.Debug($"Added serial no: {serialNumber} to pos: {iNextFreeNumber}");
|
||||||
lastComboBoxSerialNo = iNextFreeNumber;
|
lastComboBoxSerialNo = iNextFreeNumber;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -774,6 +794,7 @@ namespace TBF.Rig.DataEntry.StandartCameraPurchaseOrder
|
|||||||
|
|
||||||
if (!noImplementedSerialNumbers.IsEmpty())
|
if (!noImplementedSerialNumbers.IsEmpty())
|
||||||
{
|
{
|
||||||
|
log_selected.Debug("No implemented serial numbers: " + noImplementedSerialNumbers);
|
||||||
MessageBox.Show(this,
|
MessageBox.Show(this,
|
||||||
string.Format("The following serial numbers were not implemented: {0}", noImplementedSerialNumbers),
|
string.Format("The following serial numbers were not implemented: {0}", noImplementedSerialNumbers),
|
||||||
"Serial Numbers repeating!", MessageBoxButtons.OK, MessageBoxIcon.Warning);
|
"Serial Numbers repeating!", MessageBoxButtons.OK, MessageBoxIcon.Warning);
|
||||||
|
|||||||
@@ -165,7 +165,7 @@ namespace TBF.Rig.DataEntry.StandartCameraPurchaseOrder
|
|||||||
|
|
||||||
|
|
||||||
/// <returns>Reference to the operation</returns>
|
/// <returns>Reference to the operation</returns>
|
||||||
public IOperation ShowCycleBeginFormOp()
|
public IOperation ShowCycleBeginFormOp( IRegReader[] regReadersOptional = null)
|
||||||
{
|
{
|
||||||
if (currentOp != CurrentOp.None) throw new Exception("Sequence error");
|
if (currentOp != CurrentOp.None) throw new Exception("Sequence error");
|
||||||
currentOp = CurrentOp.ShowFormAtCycleBeginning;
|
currentOp = CurrentOp.ShowFormAtCycleBeginning;
|
||||||
|
|||||||
@@ -302,11 +302,27 @@ namespace TBF.Rig.DataEntry.StandartCameraPurchaseOrder
|
|||||||
if (nrLines == 1)
|
if (nrLines == 1)
|
||||||
{
|
{
|
||||||
Width = 1040;
|
Width = 1040;
|
||||||
|
startLabel2.Visible = false;
|
||||||
|
endLabel2.Visible = false;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Width = 1420;
|
Width = 1420;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
OkButtonPosition();
|
||||||
|
}
|
||||||
|
|
||||||
|
void OkButtonPosition()
|
||||||
|
{
|
||||||
|
if (okButton.Location.X > Width)
|
||||||
|
{
|
||||||
|
int margin = 5;
|
||||||
|
okButton.Location = new Point(
|
||||||
|
this.ClientSize.Width - okButton.Width - margin,
|
||||||
|
okButton.Location.Y
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|||||||
@@ -150,7 +150,7 @@ namespace TBF.Rig.DataEntry.Uni
|
|||||||
|
|
||||||
|
|
||||||
/// <returns>Reference to the operation</returns>
|
/// <returns>Reference to the operation</returns>
|
||||||
public IOperation ShowCycleBeginFormOp()
|
public IOperation ShowCycleBeginFormOp( IRegReader[] regReadersOptional = null)
|
||||||
{
|
{
|
||||||
if (currentOp != CurrentOp.None) throw new Exception("Sequence error");
|
if (currentOp != CurrentOp.None) throw new Exception("Sequence error");
|
||||||
currentOp = CurrentOp.FormAtCycleBeginning;
|
currentOp = CurrentOp.FormAtCycleBeginning;
|
||||||
|
|||||||
@@ -80,7 +80,7 @@ namespace TBF.Rig.DataEntry.iPerl
|
|||||||
|
|
||||||
|
|
||||||
/// <returns>Reference to the operation</returns>
|
/// <returns>Reference to the operation</returns>
|
||||||
public IOperation ShowCycleBeginFormOp()
|
public IOperation ShowCycleBeginFormOp( IRegReader[] regReadersOptional = null)
|
||||||
{
|
{
|
||||||
if (currentOp != CurrentOp.None) throw new Exception("Sequence error");
|
if (currentOp != CurrentOp.None) throw new Exception("Sequence error");
|
||||||
currentOp = CurrentOp.ShowFormAtCycleBeginning;
|
currentOp = CurrentOp.ShowFormAtCycleBeginning;
|
||||||
|
|||||||
@@ -1,12 +1,19 @@
|
|||||||
///
|
///
|
||||||
/// Copyright (c) 2013-2018 Sensus Slovensko a.s.
|
/// Copyright (c) 2013-2018 Sensus Slovensko a.s.
|
||||||
///
|
///
|
||||||
|
|
||||||
|
using Common;
|
||||||
using Config.Entities;
|
using Config.Entities;
|
||||||
|
|
||||||
namespace TBF.Rig.Generic
|
namespace TBF.Rig.Generic
|
||||||
{
|
{
|
||||||
public interface ITestParams
|
public interface ITestParams : IParamsProvider
|
||||||
{
|
{
|
||||||
|
|
||||||
|
public string Activity { get; set; } /// Communication activity
|
||||||
|
public bool SimultWithPrevious { get; set; }
|
||||||
|
public bool SimultWithNext { get; set; }
|
||||||
|
|
||||||
void UpdateFromDbEntity(ComponentTest dbEntity);
|
void UpdateFromDbEntity(ComponentTest dbEntity);
|
||||||
void FromDbEntity(string componentName, Test test);
|
void FromDbEntity(string componentName, Test test);
|
||||||
ComponentTest ToDbEntity(string componentName, Test test);
|
ComponentTest ToDbEntity(string componentName, Test test);
|
||||||
|
|||||||
@@ -11,6 +11,6 @@ namespace TBF.Rig.GenericDevices
|
|||||||
/// Displays form at the beginning of the cycle (usually to enter S/N).
|
/// Displays form at the beginning of the cycle (usually to enter S/N).
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <returns>Operation to be used in the sequence</returns>
|
/// <returns>Operation to be used in the sequence</returns>
|
||||||
IOperation ShowCycleBeginFormOp();
|
IOperation ShowCycleBeginFormOp( IRegReader[] regReadersOptional = null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,12 @@
|
|||||||
|
namespace TBF.Rig.GenericDevices
|
||||||
|
{
|
||||||
|
public interface IHasFromUNIDisablePossibility
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 0 - disabled, > 1 - enabled but can have variable uses how form is shown
|
||||||
|
/// </summary>
|
||||||
|
int ShowForm { get; set; }
|
||||||
|
|
||||||
|
bool ReadAndSetDataToMeters();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -2,6 +2,7 @@
|
|||||||
/// Copyright (c) 2013-2022 Sensus Slovensko a.s.
|
/// Copyright (c) 2013-2022 Sensus Slovensko a.s.
|
||||||
///
|
///
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using TBF.Rig.Generic;
|
||||||
using TBF.Rig.GenericDevices;
|
using TBF.Rig.GenericDevices;
|
||||||
|
|
||||||
namespace TBF.Rig
|
namespace TBF.Rig
|
||||||
@@ -25,7 +26,8 @@ namespace TBF.Rig
|
|||||||
{
|
{
|
||||||
for (int i = 0; i < Sequences.ProcessData.WMsCount; i++)
|
for (int i = 0; i < Sequences.ProcessData.WMsCount; i++)
|
||||||
{
|
{
|
||||||
RegisterReaders[i] = TbfComponents.FindComponent(entity.GetSensor(i), components) as IRegReader;
|
IComponent findComponent = TbfComponents.FindComponent(entity.GetSensor(i), components);
|
||||||
|
RegisterReaders[i] = findComponent as IRegReader;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,25 @@
|
|||||||
|
///
|
||||||
|
/// Copyright (c) 2017 Sensus Metering Systems
|
||||||
|
///
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using TBF.Rig.Generic;
|
||||||
|
|
||||||
|
namespace TBF.Rig.Network.AdapterJMS
|
||||||
|
{
|
||||||
|
public class Factory : IComponentFactory
|
||||||
|
{
|
||||||
|
public string ClassName { get { return this.GetType().Namespace.Substring(8); } }
|
||||||
|
public override string ToString() { return ClassName; }
|
||||||
|
|
||||||
|
public IComponent DummyComponent() { return new Netadapter(); }
|
||||||
|
|
||||||
|
public IComponent GetComponent(IComponentCfg cfg, IList<IComponent> components) { return new Netadapter(cfg); }
|
||||||
|
|
||||||
|
public IComponentCfg DefaultConfig() { return new NetadapterCfg(this.GetType().Namespace.Substring(8), this); }
|
||||||
|
|
||||||
|
public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component)
|
||||||
|
{
|
||||||
|
return ComponentCfgBase.CreateFromDbEntity(NetadapterCfg.Serializer, component, this);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,115 @@
|
|||||||
|
///
|
||||||
|
/// Copyright (c) 2017 Sensus Metering Systems
|
||||||
|
///
|
||||||
|
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Net;
|
||||||
|
using System.Net.Sockets;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using Common;
|
||||||
|
using Config.Entities;
|
||||||
|
using log4net;
|
||||||
|
using NHibernate;
|
||||||
|
using TBF.Rig.Network.Camera.CJMS11;
|
||||||
|
|
||||||
|
namespace TBF.Rig.Network.AdapterJMS
|
||||||
|
{
|
||||||
|
public class Netadapter : ComponentBase, GenericDevices.INetworkAdapter
|
||||||
|
{
|
||||||
|
private static readonly ILog log = LogManager.GetLogger(typeof(Netadapter));
|
||||||
|
public override string ToString() { return string.Format("{0}({1})", ClassName, Cfg.ToString(-1)); }
|
||||||
|
|
||||||
|
readonly NetadapterCfg netadapterCfg;
|
||||||
|
|
||||||
|
IPAddress ipAddress;
|
||||||
|
IPAddress netMask;
|
||||||
|
IPAddress broadcastAddress;
|
||||||
|
|
||||||
|
int tcpPort = -1;
|
||||||
|
IList<TcpClient> tcpClients;
|
||||||
|
private IList<Task> connectAsyncList;
|
||||||
|
|
||||||
|
public IPAddress IPAddress { get { return ipAddress; } }
|
||||||
|
public IPAddress NetMask { get { return netMask; } }
|
||||||
|
public IPAddress BroadcastAddress { get { return broadcastAddress; } }
|
||||||
|
|
||||||
|
public IList<TcpClient> TcpClients { get { return tcpClients; } }
|
||||||
|
public int TcpPort { get { return tcpPort; } }
|
||||||
|
|
||||||
|
public TcpClient GetTcpClient(string ipAddressCJMS)
|
||||||
|
{
|
||||||
|
foreach (TcpClient tcpClient in tcpClients)
|
||||||
|
{
|
||||||
|
if (tcpClient.Client.RemoteEndPoint.ToString().Contains(ipAddressCJMS))
|
||||||
|
{
|
||||||
|
return tcpClient;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public IList<Task> TasksConnectAsync { get { return connectAsyncList; } }
|
||||||
|
|
||||||
|
|
||||||
|
public Netadapter() { }
|
||||||
|
|
||||||
|
public Netadapter(Generic.IComponentCfg cfg)
|
||||||
|
: base(cfg)
|
||||||
|
{
|
||||||
|
netadapterCfg = cfg as NetadapterCfg;
|
||||||
|
log.Warn(this.ToString());
|
||||||
|
tcpClients = new List<TcpClient>();
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void Initialize()
|
||||||
|
{
|
||||||
|
if (DebugLevel == DebugMode.Simulate)
|
||||||
|
{
|
||||||
|
ipAddress = IPAddress.Parse("192.168.1.100");
|
||||||
|
netMask = IPAddress.Parse("255.255.255.0");
|
||||||
|
broadcastAddress = IPAddress.Parse("192.168.1.255");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
//TODO hold connections to cameras and other devices, close them when the adapter is removed.
|
||||||
|
ISession session = TBF.DB.CreateSession(DBKind.Config);
|
||||||
|
//TODO BUMI - get the port from the config file - defined by UI
|
||||||
|
if (tcpPort == -1) tcpPort = 32456; //default port
|
||||||
|
|
||||||
|
IList<Component> cmpntEntities = session.QueryOver<Component>()
|
||||||
|
.OrderBy(x => x. ItemNr).Asc
|
||||||
|
.List();
|
||||||
|
|
||||||
|
connectAsyncList = new List<Task>();
|
||||||
|
foreach (var cmpnt in cmpntEntities)
|
||||||
|
{
|
||||||
|
Rig.Generic.IComponentFactory factory = TbfComponents.CmpntFactoryFromClassName(cmpnt.ClassName);
|
||||||
|
|
||||||
|
/// Camera - jouined to a network adapter
|
||||||
|
if (factory is Rig.Network.Camera.CJMS11.Factory)
|
||||||
|
{
|
||||||
|
CameraCfg cmpntCfgFromCmpntEntity =
|
||||||
|
factory.CmpntCfgFromCmpntEntity(cmpnt) as Rig.Network.Camera.CJMS11.CameraCfg;
|
||||||
|
if (cmpntCfgFromCmpntEntity == null) continue;
|
||||||
|
// TcpClient tcpClient = new TcpClient();
|
||||||
|
// tcpClients.Add(tcpClient);
|
||||||
|
// connectAsyncList.Add(tcpClient.ConnectAsync(cmpntCfgFromCmpntEntity.IPAddressCJMS, tcpPort));
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//Task.WaitAll(connectAsyncList.ToArray()); // run all tasks in parallel
|
||||||
|
|
||||||
|
// AdapterInfo.RefreshNetAdaptersInfo();
|
||||||
|
// AdapterInfo netadapter = AdapterInfo.GetNetAdapter(netadapterCfg.Description);
|
||||||
|
// ipAddress = netadapter.IPAddress;
|
||||||
|
// netMask = netadapter.NetMask;
|
||||||
|
//
|
||||||
|
// if (this.Cfg.DebugLevel != DebugMode.Simulate)
|
||||||
|
// {
|
||||||
|
// broadcastAddress = netadapter.GetBroadcastAddress();
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,39 @@
|
|||||||
|
///
|
||||||
|
/// Copyright (c) 2017 Sensus Metering Systems
|
||||||
|
///
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Xml.Serialization;
|
||||||
|
using Config.Entities;
|
||||||
|
using TBF.Rig.Generic;
|
||||||
|
|
||||||
|
namespace TBF.Rig.Network.AdapterJMS
|
||||||
|
{
|
||||||
|
public class NetadapterCfg : ComponentCfgBase, Generic.IComponentCfg
|
||||||
|
{
|
||||||
|
public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(NetadapterCfg) })[0];
|
||||||
|
public override XmlSerializer GetSerializer() { return Serializer; }
|
||||||
|
|
||||||
|
public IComponentCfgCtrl GetControl(IList<Config.Entities.Component> cmpntEntities) { return new NetadapterCfgCtrl(); }
|
||||||
|
|
||||||
|
|
||||||
|
public string Description; /// Description string of the selected network adapter
|
||||||
|
|
||||||
|
|
||||||
|
/// Private parameterless constructor invoked by all other (public) constructors
|
||||||
|
NetadapterCfg() {}
|
||||||
|
|
||||||
|
public NetadapterCfg(string name, IComponentFactory factory)
|
||||||
|
: this()
|
||||||
|
{
|
||||||
|
Name = name;
|
||||||
|
Factory = factory;
|
||||||
|
ParentName = string.Empty;
|
||||||
|
}
|
||||||
|
|
||||||
|
public string ToString(int i)
|
||||||
|
{
|
||||||
|
return string.Format("Name={0}, Description={1}", Name, Description);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,140 @@
|
|||||||
|
///
|
||||||
|
/// Copyright (c) 2017 Sensus Metering Systems
|
||||||
|
///
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Net;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
using Common;
|
||||||
|
using Config.Entities;
|
||||||
|
using TBF.Rig.Generic;
|
||||||
|
|
||||||
|
namespace TBF.Rig.Network.AdapterJMS
|
||||||
|
{
|
||||||
|
public partial class NetadapterCfgCtrl : UserControl, IComponentCfgCtrl
|
||||||
|
{
|
||||||
|
public bool ShowMore { get { return false; } }
|
||||||
|
|
||||||
|
NetadapterCfg config;
|
||||||
|
public IComponentCfg Config
|
||||||
|
{
|
||||||
|
get { return config as IComponentCfg; }
|
||||||
|
set
|
||||||
|
{
|
||||||
|
config = value as NetadapterCfg;
|
||||||
|
Redraw();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public NetadapterCfgCtrl()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void EntryFormCfgCtrl_Load(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (ParentForm == null) return; /// Return is executed when tab page is open in Designer
|
||||||
|
if (config == null) return; /// Control was not loaded, settings were not changed
|
||||||
|
|
||||||
|
Localize();
|
||||||
|
|
||||||
|
Redraw();
|
||||||
|
}
|
||||||
|
|
||||||
|
void Redraw()
|
||||||
|
{
|
||||||
|
classNameLabel.Text = config.Factory.ClassName;
|
||||||
|
nameTextBox.Text = config.Name;
|
||||||
|
|
||||||
|
AdapterInfo.RefreshNetAdaptersInfo();
|
||||||
|
IList<AdapterInfo> adapters = AdapterInfo.NetAdapters;
|
||||||
|
|
||||||
|
string cfgAdapter = string.Empty;
|
||||||
|
foreach (AdapterInfo ai in adapters)
|
||||||
|
{
|
||||||
|
string record;
|
||||||
|
|
||||||
|
if (ai.IPAddress == null)
|
||||||
|
{
|
||||||
|
/// This happens with network adapters that currently have no IP address,
|
||||||
|
/// for instance not connected wireless or dial-up adapters
|
||||||
|
record = "???.???.???.???";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
/// Do not consider IPv6 adapters as well as "Any", "Broadcast", "Loopback" or "None" addresses
|
||||||
|
if ((ai.IPAddress.AddressFamily == System.Net.Sockets.AddressFamily.InterNetworkV6) ||
|
||||||
|
ai.IPAddress.Equals(IPAddress.Any) ||
|
||||||
|
ai.IPAddress.Equals(IPAddress.Broadcast) ||
|
||||||
|
ai.IPAddress.Equals(IPAddress.IPv6Any) ||
|
||||||
|
ai.IPAddress.Equals(IPAddress.IPv6Loopback) ||
|
||||||
|
ai.IPAddress.Equals(IPAddress.IPv6None) ||
|
||||||
|
ai.IPAddress.Equals(IPAddress.Loopback) ||
|
||||||
|
ai.IPAddress.Equals(IPAddress.None))
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
record = ai.IPAddress.ToString();
|
||||||
|
}
|
||||||
|
|
||||||
|
record += " - " + ai.Description;
|
||||||
|
int i = adapterComboBox.Items.Add(record);
|
||||||
|
if (ai.Description == config.Description)
|
||||||
|
{
|
||||||
|
/// Select the adapter currently in the configuration
|
||||||
|
adapterComboBox.SelectedIndex = i;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Select the first one if the adapter from the configuration does not exist on the system
|
||||||
|
if (adapterComboBox.SelectedIndex < 0 && adapterComboBox.Items.Count > 0)
|
||||||
|
{
|
||||||
|
adapterComboBox.SelectedIndex = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void Localize()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Closing()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Unlock()
|
||||||
|
{
|
||||||
|
nameTextBox.Enabled = true;
|
||||||
|
adapterComboBox.Enabled = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public CfgUpdateFlags VerifyCfg(ref string message)
|
||||||
|
{
|
||||||
|
CfgUpdateFlags flags = CfgUpdateFlags.None;
|
||||||
|
|
||||||
|
if (!adapterComboBox.Items.Contains(adapterComboBox.Text))
|
||||||
|
{
|
||||||
|
flags = CfgUpdateFlags.Error;
|
||||||
|
message += Environment.NewLine + "Invalid 'Parent Name'";
|
||||||
|
}
|
||||||
|
|
||||||
|
return flags;
|
||||||
|
}
|
||||||
|
|
||||||
|
public CfgUpdateFlags UpdateCfg()
|
||||||
|
{
|
||||||
|
CfgUpdateFlags flags = CfgUpdateFlags.RestartRqrd;
|
||||||
|
|
||||||
|
if (config == null) return CfgUpdateFlags.Error; /// Control was not loaded, settings were not changed
|
||||||
|
|
||||||
|
config.Name = nameTextBox.Text;
|
||||||
|
|
||||||
|
/// Network adapter
|
||||||
|
string strAdapter = adapterComboBox.Text;
|
||||||
|
int iDash = strAdapter.IndexOf(" - ");
|
||||||
|
config.Description = iDash < 0 ? "" : strAdapter.Substring(iDash + 3);
|
||||||
|
|
||||||
|
return flags;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,109 @@
|
|||||||
|
///
|
||||||
|
/// Copyright (c) 2017 Sensus Metering Systems
|
||||||
|
///
|
||||||
|
namespace TBF.Rig.Network.AdapterJMS
|
||||||
|
{
|
||||||
|
partial class NetadapterCfgCtrl
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Required designer variable.
|
||||||
|
/// </summary>
|
||||||
|
private System.ComponentModel.IContainer components = null;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Clean up any resources being used.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||||
|
protected override void Dispose(bool disposing)
|
||||||
|
{
|
||||||
|
if (disposing && (components != null))
|
||||||
|
{
|
||||||
|
components.Dispose();
|
||||||
|
}
|
||||||
|
base.Dispose(disposing);
|
||||||
|
}
|
||||||
|
|
||||||
|
#region Component Designer generated code
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Required method for Designer support - do not modify
|
||||||
|
/// the contents of this method with the code editor.
|
||||||
|
/// </summary>
|
||||||
|
private void InitializeComponent()
|
||||||
|
{
|
||||||
|
this.nameTextBox = new System.Windows.Forms.TextBox();
|
||||||
|
this.nameLabel = new System.Windows.Forms.Label();
|
||||||
|
this.classNameLabel = new System.Windows.Forms.Label();
|
||||||
|
this.adapterLabel = new System.Windows.Forms.Label();
|
||||||
|
this.adapterComboBox = new System.Windows.Forms.ComboBox();
|
||||||
|
this.SuspendLayout();
|
||||||
|
//
|
||||||
|
// nameTextBox
|
||||||
|
//
|
||||||
|
this.nameTextBox.Enabled = false;
|
||||||
|
this.nameTextBox.Location = new System.Drawing.Point(101, 50);
|
||||||
|
this.nameTextBox.Name = "nameTextBox";
|
||||||
|
this.nameTextBox.Size = new System.Drawing.Size(114, 20);
|
||||||
|
this.nameTextBox.TabIndex = 5;
|
||||||
|
//
|
||||||
|
// nameLabel
|
||||||
|
//
|
||||||
|
this.nameLabel.AutoSize = true;
|
||||||
|
this.nameLabel.Location = new System.Drawing.Point(9, 53);
|
||||||
|
this.nameLabel.Name = "nameLabel";
|
||||||
|
this.nameLabel.Size = new System.Drawing.Size(35, 13);
|
||||||
|
this.nameLabel.TabIndex = 4;
|
||||||
|
this.nameLabel.Text = "Name";
|
||||||
|
//
|
||||||
|
// classNameLabel
|
||||||
|
//
|
||||||
|
this.classNameLabel.AutoSize = true;
|
||||||
|
this.classNameLabel.Location = new System.Drawing.Point(98, 24);
|
||||||
|
this.classNameLabel.Name = "classNameLabel";
|
||||||
|
this.classNameLabel.Size = new System.Drawing.Size(83, 13);
|
||||||
|
this.classNameLabel.TabIndex = 3;
|
||||||
|
this.classNameLabel.Text = "ComonentName";
|
||||||
|
//
|
||||||
|
// adapterLabel
|
||||||
|
//
|
||||||
|
this.adapterLabel.AutoSize = true;
|
||||||
|
this.adapterLabel.Location = new System.Drawing.Point(9, 80);
|
||||||
|
this.adapterLabel.Name = "adapterLabel";
|
||||||
|
this.adapterLabel.Size = new System.Drawing.Size(44, 13);
|
||||||
|
this.adapterLabel.TabIndex = 6;
|
||||||
|
this.adapterLabel.Text = "Adapter";
|
||||||
|
//
|
||||||
|
// adapterComboBox
|
||||||
|
//
|
||||||
|
this.adapterComboBox.Enabled = false;
|
||||||
|
this.adapterComboBox.Location = new System.Drawing.Point(101, 77);
|
||||||
|
this.adapterComboBox.Name = "adapterComboBox";
|
||||||
|
this.adapterComboBox.Size = new System.Drawing.Size(333, 21);
|
||||||
|
this.adapterComboBox.TabIndex = 7;
|
||||||
|
//
|
||||||
|
// NetadapterCfgCtrl
|
||||||
|
//
|
||||||
|
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.Controls.Add(this.adapterComboBox);
|
||||||
|
this.Controls.Add(this.adapterLabel);
|
||||||
|
this.Controls.Add(this.nameTextBox);
|
||||||
|
this.Controls.Add(this.nameLabel);
|
||||||
|
this.Controls.Add(this.classNameLabel);
|
||||||
|
this.Name = "NetadapterCfgCtrl";
|
||||||
|
this.Size = new System.Drawing.Size(450, 300);
|
||||||
|
this.Load += new System.EventHandler(this.EntryFormCfgCtrl_Load);
|
||||||
|
this.ResumeLayout(false);
|
||||||
|
this.PerformLayout();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
private System.Windows.Forms.TextBox nameTextBox;
|
||||||
|
private System.Windows.Forms.Label nameLabel;
|
||||||
|
private System.Windows.Forms.Label classNameLabel;
|
||||||
|
private System.Windows.Forms.Label adapterLabel;
|
||||||
|
private System.Windows.Forms.ComboBox adapterComboBox;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,120 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
</root>
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,74 @@
|
|||||||
|
///
|
||||||
|
/// Copyright (c) 2017 Sensus Metering Systems
|
||||||
|
///
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Net;
|
||||||
|
using System.Net.Sockets;
|
||||||
|
using System.Xml.Serialization;
|
||||||
|
using Common;
|
||||||
|
using TBF.Rig.Generic;
|
||||||
|
using TBF.Resources;
|
||||||
|
|
||||||
|
namespace TBF.Rig.Network.Camera.CJMS11
|
||||||
|
{
|
||||||
|
public enum TestImagesMode
|
||||||
|
{
|
||||||
|
None,
|
||||||
|
SaveFirstImages,
|
||||||
|
SaveLastImages,
|
||||||
|
LoadImages,
|
||||||
|
Count,
|
||||||
|
Invalid,
|
||||||
|
}
|
||||||
|
|
||||||
|
public class CameraCfg : ComponentCfgBase, IChildComponentCfg
|
||||||
|
{
|
||||||
|
public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(CameraCfg) })[0];
|
||||||
|
public override XmlSerializer GetSerializer() { return Serializer; }
|
||||||
|
|
||||||
|
public IComponentCfgCtrl GetControl(IList<Config.Entities.Component> cmpntEntities) { return new CameraCfgCtrl(); }
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Serialized parameters
|
||||||
|
///
|
||||||
|
public int HardwareAddress;
|
||||||
|
public bool DisplayTerminal;
|
||||||
|
|
||||||
|
[XmlIgnore]
|
||||||
|
public TestImagesMode TestImagesMode;
|
||||||
|
|
||||||
|
[XmlIgnore]
|
||||||
|
public int TestImagesCount;
|
||||||
|
|
||||||
|
public string IPAddressCJMS;
|
||||||
|
|
||||||
|
|
||||||
|
/// Private parameterless constructor invoked by all other (public) constructors
|
||||||
|
CameraCfg() { }
|
||||||
|
|
||||||
|
public CameraCfg(string name, IComponentFactory factory)
|
||||||
|
: this()
|
||||||
|
{
|
||||||
|
Name = name;
|
||||||
|
Factory = factory;
|
||||||
|
ParentName = "Network.Adapter";
|
||||||
|
HardwareAddress = 1;
|
||||||
|
TestImagesMode = TestImagesMode.None;
|
||||||
|
TestImagesCount = 3000;
|
||||||
|
DebugLevel = DebugMode.AutoDetect;
|
||||||
|
IPAddressCJMS = "192.168.1.100";
|
||||||
|
}
|
||||||
|
|
||||||
|
public string ToString(int i)
|
||||||
|
{
|
||||||
|
return string.Format("Name={0}, s/n={1}, Terminal={2}, TestImagesMode={3}, TestImagesCount={4}, Parent={5}, IPAddressCJMS={6}",
|
||||||
|
Name,
|
||||||
|
HardwareAddress,
|
||||||
|
DisplayTerminal ? Strings.yes : Strings.no,
|
||||||
|
TestImagesMode,
|
||||||
|
TestImagesCount,
|
||||||
|
ParentName,
|
||||||
|
IPAddressCJMS);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user