Browse Source

기능 수정

main
최승민 1 week ago
parent
commit
f0919015c1
  1. 104
      leak_test_project.Tests/Services/Board4253ServiceTests.cs
  2. 2
      leak_test_project.Tests/bin/Debug/net472/Logs/2026-04-08_system.log
  3. BIN
      leak_test_project.Tests/bin/Debug/net472/leak_test_project.Tests.dll
  4. BIN
      leak_test_project.Tests/bin/Debug/net472/leak_test_project.Tests.pdb
  5. 4
      leak_test_project.Tests/leak_test_project.Tests.csproj
  6. 2
      leak_test_project.Tests/obj/Debug/net472/leak_test_project.Tests.AssemblyInfo.cs
  7. 2
      leak_test_project.Tests/obj/Debug/net472/leak_test_project.Tests.AssemblyInfoInputs.cache
  8. 2
      leak_test_project.Tests/obj/Debug/net472/leak_test_project.Tests.csproj.CoreCompileInputs.cache
  9. BIN
      leak_test_project.Tests/obj/Debug/net472/leak_test_project.Tests.dll
  10. BIN
      leak_test_project.Tests/obj/Debug/net472/leak_test_project.Tests.pdb
  11. 3
      leak_test_project/Infrastructure/IDioBoard.cs
  12. 51
      leak_test_project/Infrastructure/RealDioBoard.cs
  13. 2
      leak_test_project/Infrastructure/SerialProvider.cs
  14. 15
      leak_test_project/MainWindow.xaml
  15. 8
      leak_test_project/Manual/IO_Monitor_Manual.md
  16. 12
      leak_test_project/Models/AppConfig.cs
  17. 3
      leak_test_project/Models/DioPoint.cs
  18. 18
      leak_test_project/Models/InOutItem.cs
  19. 97
      leak_test_project/Services/Board4253DioBoard.cs
  20. 107
      leak_test_project/Services/Board4253SensorService.cs
  21. 260
      leak_test_project/Services/Board4253Service.cs
  22. 7
      leak_test_project/Services/DioBoardFactory.cs
  23. 16
      leak_test_project/Services/IIdSensorService.cs
  24. 53
      leak_test_project/Services/TestProcessService.cs
  25. 2
      leak_test_project/Services/ZmdiSensorService.cs
  26. 52
      leak_test_project/ViewModels/HomeViewModel.cs
  27. 3
      leak_test_project/ViewModels/InOutViewModel.cs
  28. 20
      leak_test_project/ViewModels/MainViewModel.cs
  29. 48
      leak_test_project/Views/CommunicationWindow.xaml
  30. 27
      leak_test_project/Views/CommunicationWindow.xaml.cs
  31. 40
      leak_test_project/bin/Debug/Logs/2026-04-10_system.log
  32. BIN
      leak_test_project/bin/Debug/PCI-Dask.dll
  33. BIN
      leak_test_project/bin/Debug/PCI-Dask64.dll
  34. BIN
      leak_test_project/bin/Debug/app.publish/leak_test_project.exe
  35. 14
      leak_test_project/bin/Debug/config.xml
  36. 8
      leak_test_project/bin/Debug/leak_test_project.application
  37. BIN
      leak_test_project/bin/Debug/leak_test_project.exe
  38. 17
      leak_test_project/bin/Debug/leak_test_project.exe.manifest
  39. BIN
      leak_test_project/bin/Debug/leak_test_project.pdb
  40. 1
      leak_test_project/bin/Release/Logs/2026-04-08_system.log
  41. 110
      leak_test_project/bin/Release/Logs/2026-04-10_system.log
  42. BIN
      leak_test_project/bin/Release/PCI-Dask.dll
  43. BIN
      leak_test_project/bin/Release/PCI-Dask64.dll
  44. BIN
      leak_test_project/bin/Release/app.publish/Application Files/leak_test_project_1_0_0_13/PCI-Dask.dll.deploy
  45. 6
      leak_test_project/bin/Release/app.publish/Application Files/leak_test_project_1_0_0_13/leak_test_project.exe.config.deploy
  46. BIN
      leak_test_project/bin/Release/app.publish/Application Files/leak_test_project_1_0_0_13/leak_test_project.exe.deploy
  47. 74
      leak_test_project/bin/Release/app.publish/Application Files/leak_test_project_1_0_0_13/leak_test_project.exe.manifest
  48. 21
      leak_test_project/bin/Release/app.publish/leak_test_project.application
  49. BIN
      leak_test_project/bin/Release/app.publish/leak_test_project.exe
  50. BIN
      leak_test_project/bin/Release/app.publish/setup.exe
  51. 8
      leak_test_project/bin/Release/config.xml
  52. 6
      leak_test_project/bin/Release/leak_test_project.application
  53. BIN
      leak_test_project/bin/Release/leak_test_project.exe
  54. 6
      leak_test_project/bin/Release/leak_test_project.exe.manifest
  55. BIN
      leak_test_project/bin/Release/leak_test_project.pdb
  56. 6
      leak_test_project/leak_test_project.csproj
  57. BIN
      leak_test_project/obj/Debug/App.baml
  58. 85
      leak_test_project/obj/Debug/App.g.cs
  59. 85
      leak_test_project/obj/Debug/App.g.i.cs
  60. BIN
      leak_test_project/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache
  61. 2
      leak_test_project/obj/Debug/GeneratedInternalTypeHelper.g.cs
  62. 62
      leak_test_project/obj/Debug/GeneratedInternalTypeHelper.g.i.cs
  63. BIN
      leak_test_project/obj/Debug/MainWindow.baml
  64. 133
      leak_test_project/obj/Debug/MainWindow.g.cs
  65. 133
      leak_test_project/obj/Debug/MainWindow.g.i.cs
  66. BIN
      leak_test_project/obj/Debug/TempPE/Properties.Resources.Designer.cs.dll
  67. BIN
      leak_test_project/obj/Debug/Views/CommunicationWindow.baml
  68. 199
      leak_test_project/obj/Debug/Views/CommunicationWindow.g.cs
  69. 199
      leak_test_project/obj/Debug/Views/CommunicationWindow.g.i.cs
  70. BIN
      leak_test_project/obj/Debug/Views/DataView.baml
  71. 93
      leak_test_project/obj/Debug/Views/DataView.g.cs
  72. 93
      leak_test_project/obj/Debug/Views/DataView.g.i.cs
  73. BIN
      leak_test_project/obj/Debug/Views/HomeView.baml
  74. 75
      leak_test_project/obj/Debug/Views/HomeView.g.cs
  75. 75
      leak_test_project/obj/Debug/Views/HomeView.g.i.cs
  76. BIN
      leak_test_project/obj/Debug/Views/InOutView.baml
  77. 74
      leak_test_project/obj/Debug/Views/InOutView.g.cs
  78. 74
      leak_test_project/obj/Debug/Views/InOutView.g.i.cs
  79. BIN
      leak_test_project/obj/Debug/Views/ParametersWindow.baml
  80. 133
      leak_test_project/obj/Debug/Views/ParametersWindow.g.cs
  81. 133
      leak_test_project/obj/Debug/Views/ParametersWindow.g.i.cs
  82. 8
      leak_test_project/obj/Debug/leak_test_project.application
  83. BIN
      leak_test_project/obj/Debug/leak_test_project.csproj.AssemblyReference.cache
  84. 2
      leak_test_project/obj/Debug/leak_test_project.csproj.CoreCompileInputs.cache
  85. 19
      leak_test_project/obj/Debug/leak_test_project.csproj.FileListAbsolute.txt
  86. BIN
      leak_test_project/obj/Debug/leak_test_project.exe
  87. 17
      leak_test_project/obj/Debug/leak_test_project.exe.manifest
  88. BIN
      leak_test_project/obj/Debug/leak_test_project.g.resources
  89. BIN
      leak_test_project/obj/Debug/leak_test_project.pdb
  90. 13
      leak_test_project/obj/Debug/leak_test_project_Content.g.cs
  91. 13
      leak_test_project/obj/Debug/leak_test_project_Content.g.i.cs
  92. 20
      leak_test_project/obj/Debug/leak_test_project_MarkupCompile.cache
  93. 20
      leak_test_project/obj/Debug/leak_test_project_MarkupCompile.i.cache
  94. 5
      leak_test_project/obj/Debug/leak_test_project_MarkupCompile.i.lref
  95. 5
      leak_test_project/obj/Debug/leak_test_project_MarkupCompile.lref
  96. BIN
      leak_test_project/obj/Release/App.baml
  97. BIN
      leak_test_project/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache
  98. BIN
      leak_test_project/obj/Release/MainWindow.baml
  99. 10
      leak_test_project/obj/Release/MainWindow.g.cs
  100. 10
      leak_test_project/obj/Release/MainWindow.g.i.cs

104
leak_test_project.Tests/Services/Board4253ServiceTests.cs

@ -0,0 +1,104 @@
using System;
using System.Threading.Tasks;
using leak_test_project.Infrastructure;
using leak_test_project.Services;
using Moq;
using Xunit;
namespace leak_test_project.Tests.Services
{
public class Board4253ServiceTests
{
[Fact]
public async Task CheckStatusAsync_Success_ReturnsTrue()
{
// Arrange
var mockComm = new Mock<ICommunication>();
mockComm.Setup(c => c.IsOpen).Returns(true);
var service = new Board4253Service(mockComm.Object);
int channel = 1;
string expectedCommand = "x00c_001101:owt28006727ea97c7801\r\n";
// Simulate receiving Success message
mockComm.Setup(c => c.Write(It.Is<string>(s => s == expectedCommand)))
.Callback<string>(cmd => {
Task.Run(() => {
mockComm.Raise(c => c.DataReceived += null, mockComm.Object, "Response: Success <end>");
});
});
// Act
bool result = await service.CheckStatusAsync(channel);
// Assert
Assert.True(result);
mockComm.Verify(c => c.Write(expectedCommand), Times.AtLeastOnce);
}
[Fact]
public async Task CheckStatusAsync_Fail_ReturnsFalse()
{
// Arrange
var mockComm = new Mock<ICommunication>();
mockComm.Setup(c => c.IsOpen).Returns(true);
var service = new Board4253Service(mockComm.Object);
// Simulate receiving Fail message
mockComm.Setup(c => c.Write(It.IsAny<string>()))
.Callback<string>(cmd => {
Task.Run(() => {
mockComm.Raise(c => c.DataReceived += null, mockComm.Object, "Response: Fail <end>");
});
});
// Act
bool result = await service.CheckStatusAsync(); // 기본값 채널 1 테스트
// Assert
Assert.False(result);
}
[Fact]
public async Task ReadIdAsync_ValidId_ReturnsId()
{
// Arrange
var mockComm = new Mock<ICommunication>();
mockComm.Setup(c => c.IsOpen).Returns(true);
var service = new Board4253Service(mockComm.Object);
string expectedId = "ABC1234567890XYZ";
int channel = 2;
string expectedCommand = "x00c_002101:ow2800326003e\r\n";
// Simulate receiving ID
mockComm.Setup(c => c.Write(It.Is<string>(s => s == expectedCommand)))
.Callback<string>(cmd => {
Task.Run(() => {
mockComm.Raise(c => c.DataReceived += null, mockComm.Object, $"ID: {expectedId} <end>");
});
});
// Act
string resultId = await service.ReadIdAsync(channel);
// Assert
Assert.Equal(expectedId, resultId);
mockComm.Verify(c => c.Write(expectedCommand), Times.AtLeastOnce);
}
[Fact]
public async Task ReadIdAsync_Timeout_ReturnsNull()
{
// Arrange
var mockComm = new Mock<ICommunication>();
mockComm.Setup(c => c.IsOpen).Returns(true);
var service = new Board4253Service(mockComm.Object);
service.TimeoutMs = 100; // 타임아웃 테스트 속도를 위해 100ms로 설정
// Act
string resultId = await service.ReadIdAsync();
// Assert
Assert.Null(resultId);
}
}
}

2
leak_test_project.Tests/bin/Debug/net472/Logs/2026-04-08_system.log

@ -0,0 +1,2 @@
[09:44:25.780] [ERROR] [Board4253] Timeout waiting for response: x00c_001101:or2800326003e
[09:46:59.088] [ERROR] [Board4253] Timeout waiting for response: x00c_001101:or2800326003e

BIN
leak_test_project.Tests/bin/Debug/net472/leak_test_project.Tests.dll

Binary file not shown.

BIN
leak_test_project.Tests/bin/Debug/net472/leak_test_project.Tests.pdb

Binary file not shown.

4
leak_test_project.Tests/leak_test_project.Tests.csproj

@ -24,7 +24,11 @@
<!--<ProjectReference Include="..\leak_test_project\leak_test_project.csproj" />--> <!--<ProjectReference Include="..\leak_test_project\leak_test_project.csproj" />-->
<Compile Include="..\leak_test_project\Utils\SentinelCrc8.cs" Link="Utils\SentinelCrc8.cs" /> <Compile Include="..\leak_test_project\Utils\SentinelCrc8.cs" Link="Utils\SentinelCrc8.cs" />
<Compile Include="..\leak_test_project\Utils\SentinelParser.cs" Link="Utils\SentinelParser.cs" /> <Compile Include="..\leak_test_project\Utils\SentinelParser.cs" Link="Utils\SentinelParser.cs" />
<Compile Include="..\leak_test_project\Utils\FileLogger.cs" Link="Utils\FileLogger.cs" />
<Compile Include="..\leak_test_project\Models\ParsedData.cs" Link="Models\ParsedData.cs" /> <Compile Include="..\leak_test_project\Models\ParsedData.cs" Link="Models\ParsedData.cs" />
<Compile Include="..\leak_test_project\Models\InspectData.cs" Link="Models\InspectData.cs" />
<Compile Include="..\leak_test_project\Infrastructure\ICommunication.cs" Link="Infrastructure\ICommunication.cs" />
<Compile Include="..\leak_test_project\Services\Board4253Service.cs" Link="Services\Board4253Service.cs" />
</ItemGroup> </ItemGroup>
</Project> </Project>

2
leak_test_project.Tests/obj/Debug/net472/leak_test_project.Tests.AssemblyInfo.cs

@ -13,7 +13,7 @@ using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("leak_test_project.Tests")] [assembly: System.Reflection.AssemblyCompanyAttribute("leak_test_project.Tests")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] [assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] [assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+463b017b2f6c3c93b007d983e892d11a3b467b19")] [assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+adaada7b424b603702e4aede24a1a704b0ca4949")]
[assembly: System.Reflection.AssemblyProductAttribute("leak_test_project.Tests")] [assembly: System.Reflection.AssemblyProductAttribute("leak_test_project.Tests")]
[assembly: System.Reflection.AssemblyTitleAttribute("leak_test_project.Tests")] [assembly: System.Reflection.AssemblyTitleAttribute("leak_test_project.Tests")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] [assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]

2
leak_test_project.Tests/obj/Debug/net472/leak_test_project.Tests.AssemblyInfoInputs.cache

@ -1 +1 @@
2ea65620aa90120c9b7dbe76d8e00969f1b68490ac09214d6e8be837d3b86854 203a310cc48dd71b35ad4241fb5264cead816046c43c41fd4c03ab287b385409

2
leak_test_project.Tests/obj/Debug/net472/leak_test_project.Tests.csproj.CoreCompileInputs.cache

@ -1 +1 @@
d62915280fe4bc2b3d272af498de90762f02adcdb40f108ff9ff31c5ef918a3b 5388cf90cfa775894722698f4c7e037cd8714537da7bb0136faff35db6bbd820

BIN
leak_test_project.Tests/obj/Debug/net472/leak_test_project.Tests.dll

Binary file not shown.

BIN
leak_test_project.Tests/obj/Debug/net472/leak_test_project.Tests.pdb

Binary file not shown.

3
leak_test_project/Infrastructure/IDioBoard.cs

@ -27,5 +27,8 @@ namespace leak_test_project.Infrastructure
/// <summary>입력 포인트의 값이 OFF→ON으로 변경되었을 때 발생합니다.</summary> /// <summary>입력 포인트의 값이 OFF→ON으로 변경되었을 때 발생합니다.</summary>
event EventHandler<DioEventArgs> InputChanged; event EventHandler<DioEventArgs> InputChanged;
/// <summary>보드 동작 중 오류가 발생했을 때 발생합니다.</summary>
event EventHandler<string> ErrorOccurred;
} }
} }

51
leak_test_project/Infrastructure/RealDioBoard.cs

@ -21,18 +21,30 @@ namespace leak_test_project.Infrastructure
private CancellationTokenSource _pollingCts; private CancellationTokenSource _pollingCts;
private Task _pollingTask; private Task _pollingTask;
private readonly object _ioLock = new object(); // 하드웨어 동시성 제어용 Lock
public event EventHandler<DioEventArgs> InputChanged; public event EventHandler<DioEventArgs> InputChanged;
public event EventHandler<string> ErrorOccurred;
public bool Initialize() public bool Initialize()
{ {
var config = DioConfigParser.LoadDefault(); var config = DioConfigParser.LoadDefault();
if (config != null) if (config != null)
{ {
int bitIndex = 0;
foreach (var p in config.InputPoints) foreach (var p in config.InputPoints)
{
p.BitIndex = bitIndex++;
_inputs[p.Name] = p; _inputs[p.Name] = p;
}
bitIndex = 0;
foreach (var p in config.OutputPoints) foreach (var p in config.OutputPoints)
{
p.BitIndex = bitIndex++;
_outputs[p.Name] = p; _outputs[p.Name] = p;
}
ushort cardType = GetCardTypeFromConfig(config.BoardType); ushort cardType = GetCardTypeFromConfig(config.BoardType);
ushort boardNumber = (ushort)config.BoardNumber; ushort boardNumber = (ushort)config.BoardNumber;
@ -113,32 +125,32 @@ namespace leak_test_project.Infrastructure
public void WriteOutput(string pointName, bool value) public void WriteOutput(string pointName, bool value)
{ {
if (_cardNumber < 0) return;
if (_outputs.TryGetValue(pointName, out var point)) if (_outputs.TryGetValue(pointName, out var point))
{ {
int index = new List<DioPoint>(_outputs.Values).IndexOf(point); // 화면의 상태(불빛)는 하드웨어 연동 여부와 관계없이 항상 업데이트합니다. (원자적 연산)
if (index >= 0)
{
point.Value = value; point.Value = value;
// 실제 하드웨어가 없으면 물리적 제어 부분만 생략합니다.
if (_cardNumber < 0) return;
int index = point.BitIndex;
ushort port = 0; ushort port = 0;
// Actually, to safely write a single bit without affecting others: // === 스레드 안전성 확보 (경쟁 조건 방지) ===
lock (_ioLock)
{
uint outValue; uint outValue;
DASK.DO_ReadPort((ushort)_cardNumber, port, out outValue); DASK.DO_ReadPort((ushort)_cardNumber, port, out outValue);
if (value) if (value)
{
outValue |= (1U << index); outValue |= (1U << index);
}
else else
{
outValue &= ~(1U << index); outValue &= ~(1U << index);
}
DASK.DO_WritePort((ushort)_cardNumber, port, outValue); DASK.DO_WritePort((ushort)_cardNumber, port, outValue);
Console.WriteLine($"[RealDioBoard] Set {pointName} (Line {index}) to {(value ? "ON" : "OFF")}");
} }
// Console.WriteLine($"[RealDioBoard] Set {pointName} (Line {index}) to {(value ? "ON" : "OFF")}");
} }
} }
@ -154,22 +166,27 @@ namespace leak_test_project.Infrastructure
{ {
ushort port = 0; ushort port = 0;
uint readValue; uint readValue;
short ret = DASK.DI_ReadPort((ushort)_cardNumber, port, out readValue); short ret;
lock (_ioLock)
{
ret = DASK.DI_ReadPort((ushort)_cardNumber, port, out readValue);
}
if (ret >= 0) if (ret >= 0)
{ {
var inputPoints = new List<DioPoint>(_inputs.Values); foreach (var point in _inputs.Values)
for (int i = 0; i < inputPoints.Count; i++)
{ {
var point = inputPoints[i]; bool isCurrentlyOn = (readValue & (1U << point.BitIndex)) != 0;
bool isCurrentlyOn = (readValue & (1U << i)) != 0;
// If changed from OFF to ON // If changed from OFF to ON
if (isCurrentlyOn && !point.Value) if (isCurrentlyOn && !point.Value)
{ {
point.Value = true; point.Value = true;
Console.WriteLine($"[RealDioBoard] Input {point.Name} triggered (OFF→ON)"); // Console.WriteLine($"[RealDioBoard] Input {point.Name} triggered (OFF→ON)");
InputChanged?.Invoke(this, new DioEventArgs(point.Name, true)); InputChanged?.Invoke(this, new DioEventArgs(point.Name, true));
} }
// If changed from ON to OFF
else if (!isCurrentlyOn && point.Value) else if (!isCurrentlyOn && point.Value)
{ {
point.Value = false; point.Value = false;

2
leak_test_project/Infrastructure/SerialProvider.cs

@ -23,6 +23,8 @@ namespace leak_test_project.Infrastructure
Name = portName; Name = portName;
_serialPort = new SerialPort(portName, baudRate, Parity.None, 8, StopBits.One); _serialPort = new SerialPort(portName, baudRate, Parity.None, 8, StopBits.One);
_serialPort.Handshake = Handshake.None; _serialPort.Handshake = Handshake.None;
_serialPort.DtrEnable = true; // 터미널 프로그램(포트몬)과 동일하게 제어 신호 활성화
_serialPort.RtsEnable = true;
_serialPort.ReadTimeout = 500; _serialPort.ReadTimeout = 500;
_serialPort.WriteTimeout = 500; _serialPort.WriteTimeout = 500;

15
leak_test_project/MainWindow.xaml

@ -33,7 +33,8 @@
<!-- Info Box --> <!-- Info Box -->
<StackPanel Grid.Column="1" Orientation="Horizontal" HorizontalAlignment="Right" VerticalAlignment="Center" Margin="0,0,20,0"> <StackPanel Grid.Column="1" Orientation="Horizontal" HorizontalAlignment="Right" VerticalAlignment="Center" Margin="0,0,20,0">
<Border Background="#34495E" CornerRadius="4" Padding="15,5" BorderBrush="#1A252F" BorderThickness="1" Margin="0,0,8,0"> <Border Background="#34495E" CornerRadius="4" Padding="15,5" BorderBrush="#1A252F" BorderThickness="1" Margin="0,0,8,0">
<TextBlock x:Name="txtCurrentDateTime" Text="2026-03-25 [수] 10:30:00" Foreground="White" FontSize="17" FontWeight="SemiBold" VerticalAlignment="Center"/> <TextBlock x:Name="txtCurrentDateTime" Text="2026-03-25 [수] 10:30:00" Foreground="White" FontSize="17
" FontWeight="SemiBold" VerticalAlignment="Center"/>
</Border> </Border>
<Border Background="#34495E" CornerRadius="4" Padding="15,5" BorderBrush="#1A252F" BorderThickness="1"> <Border Background="#34495E" CornerRadius="4" Padding="15,5" BorderBrush="#1A252F" BorderThickness="1">
<TextBlock Text="Ver. 1.0.0 | Updated 2026-04-03" Foreground="#BDC3C7" FontSize="11" VerticalAlignment="Center"/> <TextBlock Text="Ver. 1.0.0 | Updated 2026-04-03" Foreground="#BDC3C7" FontSize="11" VerticalAlignment="Center"/>
@ -108,6 +109,18 @@
<TextBlock Text="(통신 설정)" FontSize="10" FontWeight="Normal" Foreground="#566573"/> <TextBlock Text="(통신 설정)" FontSize="10" FontWeight="Normal" Foreground="#566573"/>
</StackPanel> </StackPanel>
</Button> </Button>
<Button Command="{Binding ReadIdTestCommand}" CommandParameter="0">
<StackPanel>
<TextBlock Text="ID Test (L)" FontSize="14" Foreground="#2980B9"/>
<TextBlock Text="(좌측 ID 테스트)" FontSize="10" FontWeight="Normal" Foreground="#566573"/>
</StackPanel>
</Button>
<Button Command="{Binding ReadIdTestCommand}" CommandParameter="1">
<StackPanel>
<TextBlock Text="ID Test (R)" FontSize="14" Foreground="#2980B9"/>
<TextBlock Text="(우측 ID 테스트)" FontSize="10" FontWeight="Normal" Foreground="#566573"/>
</StackPanel>
</Button>
</StackPanel> </StackPanel>
</Grid> </Grid>
</Border> </Border>

8
leak_test_project/Manual/IO_Monitor_Manual.md

@ -42,7 +42,7 @@ I/O Monitor는 시스템의 **디지털 입력(Digital Input)** 및 **디지털
### 4.1. 실시간 모니터링 (Real-time Monitoring) ### 4.1. 실시간 모니터링 (Real-time Monitoring)
- 하드웨어 DIO 보드로부터 **500ms 주기(0.5초)**로 상태를 자동으로 읽어와 LED 아이콘에 반영합니다. - 하드웨어 DIO 보드로부터 **500ms 주기(0.5초)**로 상태를 자동으로 읽어와 LED 아이콘에 반영합니다.
- 별도의 새로고침 버튼 없이 자동으로 상태가 업데이트됩니다. - 별도의 새로고침 버튼 없이 자동으로 상태가 업데이트됩니다.
- 화면을 닫으면(Close 버튼) 자동 갱신 타이머가 정지됩니다. - 화면을 닫고 다시 진입할 때마다 모니터링 인스턴스가 새로 생성되어 갱신 중지(Freeze) 현상 없이 항상 안정적으로 실시간 데이터가 표시됩니다.
### 4.2. 페이징 처리 (Paging) ### 4.2. 페이징 처리 (Paging)
- 많은 수의 I/O 접점을 효율적으로 확인하기 위해 페이징(Page) 방식을 사용합니다. - 많은 수의 I/O 접점을 효율적으로 확인하기 위해 페이징(Page) 방식을 사용합니다.
@ -64,9 +64,9 @@ I/O Monitor는 시스템의 **디지털 입력(Digital Input)** 및 **디지털
## 6. 주의 사항 및 팁 (Tips) ## 6. 주의 사항 및 팁 (Tips)
- **모니터링 전용**: 현재 화면은 하드웨어 상태 확인(Read)을 주 목적으로 합니다. (수동 출력 제어 기능은 향후 업데이트 예정일 수 있습니다.) - **모니터링 전용**: 현재 화면은 하드웨어 상태 확인(Read)을 주 목적으로 합니다. (수동 출력 제어 기능은 향후 업데이트 예정일 수 있습니다.)
- **시뮬레이션 모드**: 하드웨어가 연결되지 않은 경우, 소프트웨어 시뮬레이터 상태가 표시될 수 있습니다. (설정 확인 필요) - **출력 논리 상태 동기화**: `PC_ON`과 같은 시스템 출력 신호는 프로그램이 실행되어 정상 동작 중이라면, 물리적 하드웨어 보드의 연결 상태나 오류 여부에 관계없이 화면의 LED 불빛으로 항시 정확하게 켜지도록 연동됩니다.
- **신호 확인**: 특정 센서가 작동했음에도 LED가 불이 들어오지 않는 경우, 배선 상태나 하드웨어 보드의 전원을 확인하십시오. - **신호 확인**: 특정 센서가 작동했음에도 LED가 불이 들어오지 않는 경우, 실제 하드웨어 보드의 전원 및 배선 상태, PCI 카드 연결 상태를 확인하십시오.
--- ---
*문서 버전: 1.0.0* *문서 버전: 1.0.0*
*최종 업데이트: 2026-03-25* *최종 업데이트: 2026-04-06*

12
leak_test_project/Models/AppConfig.cs

@ -1,7 +1,15 @@
namespace leak_test_project.Models namespace leak_test_project.Models
{ {
public enum IdSensorType
{
ZMDI, // 기존 ZMDI 센서
Board4253 // 신규 4253 보드 (ID 읽기용)
}
public class AppConfig public class AppConfig
{ {
public IdSensorType SelectedIdSensor { get; set; } = IdSensorType.ZMDI;
public string LeftPort { get; set; } = "COM9"; public string LeftPort { get; set; } = "COM9";
public string RightPort { get; set; } = "COM8"; public string RightPort { get; set; } = "COM8";
public int ZmdiBaudRate { get; set; } = 19200; public int ZmdiBaudRate { get; set; } = 19200;
@ -9,6 +17,10 @@ namespace leak_test_project.Models
public string SensorPort { get; set; } = "COM1"; public string SensorPort { get; set; } = "COM1";
public int SensorBaudRate { get; set; } = 9600; public int SensorBaudRate { get; set; } = 9600;
public string Board4253Port { get; set; } = "COM3";
public int Board4253BaudRate { get; set; } = 115200;
public int Board4253Timeout { get; set; } = 5000; // 보드가 응답을 주는데 2초 이상 걸리므로 무조건 길게 대기
public double SpecUL { get; set; } = 1.00; public double SpecUL { get; set; } = 1.00;
public double SpecLL { get; set; } = -1.00; public double SpecLL { get; set; } = -1.00;
} }

3
leak_test_project/Models/DioPoint.cs

@ -16,6 +16,9 @@ namespace leak_test_project.Models
/// <summary>현재 값 (ON=true, OFF=false)</summary> /// <summary>현재 값 (ON=true, OFF=false)</summary>
public bool Value { get; set; } public bool Value { get; set; }
/// <summary>하드웨어 IO 포트의 실제 비트 인덱스 (0~31)</summary>
public int BitIndex { get; set; }
} }
/// <summary> /// <summary>

18
leak_test_project/Models/InOutItem.cs

@ -1,12 +1,26 @@
namespace leak_test_project.Models namespace leak_test_project.Models
{ {
public class InOutItem public class InOutItem : System.ComponentModel.INotifyPropertyChanged
{ {
public string Address { get; set; } public string Address { get; set; }
public string Name { get; set; } public string Name { get; set; }
public string Description { get; set; } public string Description { get; set; }
private bool _value;
/// <summary>현재 값 (ON=true, OFF=false). DIO 실시간 상태 표시용.</summary> /// <summary>현재 값 (ON=true, OFF=false). DIO 실시간 상태 표시용.</summary>
public bool Value { get; set; } public bool Value
{
get => _value;
set
{
if (_value != value)
{
_value = value;
PropertyChanged?.Invoke(this, new System.ComponentModel.PropertyChangedEventArgs(nameof(Value)));
}
}
}
public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
} }
} }

97
leak_test_project/Services/Board4253DioBoard.cs

@ -0,0 +1,97 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using leak_test_project.Infrastructure;
using leak_test_project.Models;
using leak_test_project.Utils;
namespace leak_test_project.Services
{
/// <summary>
/// 시리얼 통신을 기반으로 동작하는 신규 4253 DIO 보드 구현체.
/// 기존 RealDioBoard(Legacy)와 교체 가능함.
/// </summary>
public class Board4253DioBoard : IDioBoard
{
private readonly Board4253Service _service;
private readonly List<DioPoint> _inputs = new List<DioPoint>();
private readonly List<DioPoint> _outputs = new List<DioPoint>();
private bool _isDisposed = false;
#pragma warning disable 0067
public event EventHandler<DioEventArgs> InputChanged;
#pragma warning restore 0067
public event EventHandler<string> ErrorOccurred;
public Board4253DioBoard(Board4253Service service)
{
_service = service;
_service.ErrorOccurred += (s, msg) => ErrorOccurred?.Invoke(this, msg);
InitializePoints();
}
private void InitializePoints()
{
// 실제 보드 구성에 맞게 입출력 포인트 정의 (DioConfigParser 기반 혹은 하드코딩)
// 일단 기존 프로젝트 구성과 호환되도록 빈 리스트 혹은 기본값 설정
var config = DioConfigParser.LoadDefault();
_inputs.AddRange(config.InputPoints);
_outputs.AddRange(config.OutputPoints);
}
public bool Initialize()
{
// 시리얼 연결 시도
try {
if (!_service.Connect())
{
ErrorOccurred?.Invoke(this, $"4253 Board: Failed to open serial port.");
return false;
}
// 보드 상태 확인
var statusTask = Task.Run(() => _service.CheckStatusAsync());
if (!statusTask.Wait(5000))
{
ErrorOccurred?.Invoke(this, "4253 Board: Initialization Timeout (CheckStatus).");
return false;
}
return statusTask.Result;
} catch (Exception ex) {
ErrorOccurred?.Invoke(this, $"4253 Board: Initialization Error - {ex.Message}");
return false;
}
}
public bool ReadInput(string pointName)
{
// 신규 보드의 입력 읽기 프로토콜이 필요한 부분 (현재 ReadId 등만 구현됨)
// 구현 계획에는 ID 읽기와 상태 확인만 있었으므로,
// 실제 DIO 기능을 위해선 추가적인 시리얼 명령이 필요할 수 있음.
// 일단 true/false 로직 구현
return false;
}
public void WriteOutput(string pointName, bool value)
{
// 보드 출력 제어 명령 전송 (예시 프로토콜 필요)
// _service.SendCommandAsync(...) 호출 형태가 될 것임.
}
public List<DioPoint> GetInputPoints() => _inputs;
public List<DioPoint> GetOutputPoints() => _outputs;
public void Dispose()
{
if (!_isDisposed)
{
_isDisposed = true;
_service.Disconnect();
_service.Dispose();
}
}
}
}

107
leak_test_project/Services/Board4253SensorService.cs

@ -0,0 +1,107 @@
using System;
using System.Threading.Tasks;
using leak_test_project.Infrastructure;
using leak_test_project.Models;
using leak_test_project.Utils;
namespace leak_test_project.Services
{
/// <summary>
/// 신규 4253 보드를 사용하여 제품 ID를 읽는 센서 서비스.
/// ZmdiSensorService와 동일한 구조로 구현되어 교체가 용이함.
/// </summary>
public class Board4253SensorService : IIdSensorService
{
private readonly Board4253Service _service;
private readonly int _sensorIndex;
public event EventHandler<string> ProgressMessage;
public event EventHandler<string> ErrorMessage;
public event EventHandler<bool> ConnectionChanged;
public Board4253SensorService(Board4253Service service, int sensorIndex)
{
_service = service;
_sensorIndex = sensorIndex;
// 좌우 오류 간섭을 막기 위해 공용 에러 이벤트 구독 해제
_service.ConnectionChanged += (s, isConnected) => ConnectionChanged?.Invoke(this, isConnected);
}
public bool Connect() => _service.Connect();
public void Disconnect() => _service.Disconnect();
public SensorIdData ReadSensor()
{
try
{
ProgressMessage?.Invoke(this, "4253 보드에서 ID 읽기 시도 중...");
int channel = _sensorIndex + 1;
// 1. 보드 상태 확인 (Fail인 경우 중단)
int extendedTimeout = 15000;
string statusCmd = $"x00c_00{channel}101:owt28006727ea97c7801";
var statusTask = Task.Run(() => _service.CheckStatusAsync(channel));
if (!statusTask.Wait(extendedTimeout))
{
string buf = _service.GetLastBuffer();
string displayBuf = string.IsNullOrEmpty(buf) ? "수신된 데이터 없음" : buf;
ErrorMessage?.Invoke(this, $"통신 실패 (4253 보드 CH{channel} 상태 타임아웃)\r\n[송신값]: {statusCmd}\r\n[수신값]: {displayBuf}");
return null;
}
if (!statusTask.Result)
{
string buf = _service.GetLastBuffer();
string displayBuf = string.IsNullOrEmpty(buf) ? "수신된 데이터 없음" : buf;
ErrorMessage?.Invoke(this, $"통신 실패 (4253 보드 CH{channel} 상태 이상 또는 Fail)\r\n[송신값]: {statusCmd}\r\n[수신값]: {displayBuf}");
return null;
}
// 2. ID 읽기 (16자리)
string idCmd = $"x00c_00{channel}101:ow2800326003e";
var idTask = Task.Run(() => _service.ReadIdAsync(channel));
if (!idTask.Wait(extendedTimeout))
{
string buf = _service.GetLastBuffer();
string displayBuf = string.IsNullOrEmpty(buf) ? "수신된 데이터 없음" : buf;
ErrorMessage?.Invoke(this, $"통신 실패 (4253 보드 CH{channel} ID 대기 타임아웃)\r\n[송신값]: {idCmd}\r\n[수신값]: {displayBuf}");
return null;
}
string rawId = idTask.Result;
if (string.IsNullOrEmpty(rawId))
{
string buf = _service.GetLastBuffer();
string displayBuf = string.IsNullOrEmpty(buf) ? "수신된 데이터 없음" : buf;
ErrorMessage?.Invoke(this, $"통신 실패 (4253 보드 CH{channel} ID 응답 없거나 파싱 오류)\r\n[송신값]: {idCmd}\r\n[수신값]: {displayBuf}");
return null;
}
// 3. SensorIdData 객체 구성 (16자리 ID를 각 필드에 적절히 분배)
// 신규 보드는 16자리 전체가 ID이므로, 파싱 로직 없이 통째로 넣거나
// 특정 규칙이 있다면 여기서 분할함.
var data = new SensorIdData
{
LowID = rawId,
ID = rawId, // 16자리 전체를 ID로 사용
Serial = "", // 시리얼 번호는 현재 존재하지 않으므로 강제로 파싱하지 않음
Item = "N/A",
PrevResult = "F" // '불량제품 투입' 필터를 통과하기 위한 강제 초기화
};
ProgressMessage?.Invoke(this, "ID 읽기 성공");
return data;
}
catch (Exception ex)
{
ErrorMessage?.Invoke(this, $"4253 보드 읽기 중 예외 발생: {ex.Message}");
return null;
}
}
public void Dispose()
{
_service.Dispose();
}
}
}

260
leak_test_project/Services/Board4253Service.cs

@ -0,0 +1,260 @@
using System;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using leak_test_project.Infrastructure;
using leak_test_project.Utils;
namespace leak_test_project.Services
{
/// <summary>
/// 신규 4253 보드와의 통신을 관리하는 서비스.
/// <end> 키워드를 기준으로 데이터를 수신하며, 상태 확인 및 ID 읽기 기능을 제공함.
/// </summary>
public class Board4253Service : IDisposable
{
private readonly ICommunication _communication;
private readonly StringBuilder _receiveBuffer = new StringBuilder();
private readonly SemaphoreSlim _lock = new SemaphoreSlim(1, 1);
private TaskCompletionSource<string> _responseTcs;
public int TimeoutMs { get; set; } = 5000; // 보드가 응답을 주는데 2초 이상 걸리므로 무조건 길게 대기
private bool _shouldBeConnected = false;
private System.Timers.Timer _reconnectTimer;
public event EventHandler<string> ErrorOccurred;
public event EventHandler<bool> ConnectionChanged;
public string LastResponse { get; private set; } = "";
public string GetLastBuffer()
{
string currentBuf = _receiveBuffer.ToString().Trim();
return string.IsNullOrEmpty(currentBuf) ? LastResponse : currentBuf;
}
public Board4253Service(ICommunication communication)
{
_communication = communication;
_communication.DataReceived += OnDataReceived;
_communication.ConnectionStatusChanged += (s, isConnected) => {
ConnectionChanged?.Invoke(this, isConnected);
if (!isConnected && _shouldBeConnected) StartReconnectTimer();
};
_reconnectTimer = new System.Timers.Timer(1000);
_reconnectTimer.AutoReset = false;
_reconnectTimer.Elapsed += (s, e) => {
if (_shouldBeConnected && !_communication.IsOpen)
{
if (!_communication.Open())
{
if (_shouldBeConnected) _reconnectTimer.Start();
}
}
else if (_shouldBeConnected)
{
_reconnectTimer.Start();
}
};
}
private void StartReconnectTimer()
{
if (_reconnectTimer != null && !_reconnectTimer.Enabled) _reconnectTimer.Start();
}
public bool Connect()
{
_shouldBeConnected = true;
bool opened = _communication.Open();
if (!opened) StartReconnectTimer();
return opened;
}
public void Disconnect()
{
_shouldBeConnected = false;
_reconnectTimer?.Stop();
_communication.Close();
}
/// <summary>
/// 4253 보드의 상태를 확인합니다.
/// </summary>
/// <returns>성공 여부</returns>
public async Task<bool> CheckStatusAsync(int channel = 1)
{
string response = await SendCommandAsync($"x00c_00{channel}101:owt28006727ea97c7801\r\n");
if (response == null)
{
return false;
}
if (response.IndexOf("Success", StringComparison.OrdinalIgnoreCase) >= 0)
{
return true;
}
if (response.IndexOf("Fail", StringComparison.OrdinalIgnoreCase) >= 0)
{
return false;
}
// Success도 Fail도 없는 알 수 없는 응답인 경우
return false;
}
/// <summary>
/// 4253 보드로부터 16자리 ID를 읽어옵니다.
/// </summary>
/// <returns>16자리 ID 문자열, 실패 시 null</returns>
public async Task<string> ReadIdAsync(int channel = 1)
{
string response = await SendCommandAsync($"x00c_00{channel}101:ow2800326003e\r\n");
if (response == null)
{
return null;
}
if (response.Contains("Fail"))
{
return null;
}
string id = ExtractId(response);
if (string.IsNullOrEmpty(id))
{
return null;
}
return id;
}
private string ExtractId(string response)
{
if (string.IsNullOrEmpty(response)) return null;
// 보드 응답에는 보낸 명령어가 에코되어 포함되므로, 줄바꿈으로 나누어 실제 데이터 라인을 찾음
string[] lines = response.Split(new[] { "\r\n", "\r", "\n" }, StringSplitOptions.RemoveEmptyEntries);
foreach (var line in lines)
{
string trimmed = line.Trim();
if (trimmed.Contains("x00c_") || trimmed.IndexOf("<end>", StringComparison.OrdinalIgnoreCase) >= 0 || trimmed.IndexOf("Success", StringComparison.OrdinalIgnoreCase) >= 0)
continue;
// 16자리 영숫자 ID 추출
var match = System.Text.RegularExpressions.Regex.Match(trimmed, @"[A-Za-z0-9]{16}");
if (match.Success) return match.Value;
}
return null;
}
private async Task<string> SendCommandAsync(string command)
{
await _lock.WaitAsync();
try
{
int retryCount = 0;
while (retryCount <= 3)
{
if (!_communication.IsOpen)
{
if (!_communication.Open())
{
retryCount++;
await Task.Delay(300);
continue;
}
}
_receiveBuffer.Clear();
LastResponse = "";
_responseTcs = new TaskCompletionSource<string>();
_communication.ClearBuffer(); // 이전에 남아있던 패킷 조각 완벽히 제거
_communication.Write(command);
using (var cts = new CancellationTokenSource(TimeoutMs))
{
cts.Token.Register(() => _responseTcs.TrySetCanceled());
try
{
return await _responseTcs.Task;
}
catch (OperationCanceledException)
{
retryCount++;
string currentBuffer = _receiveBuffer.ToString().Trim();
FileLogger.Log("WARNING", $"[Board4253] Timeout waiting for response (Retry {retryCount}/3). Command: {command.Trim()}, ReceivedSoFar: {currentBuffer}");
_receiveBuffer.Clear();
if (retryCount <= 3) await Task.Delay(300);
}
}
}
FileLogger.Log("ERROR", $"[Board4253] Failed to receive response after 3 retries: {command.Trim()}");
return null;
}
finally
{
_responseTcs = null;
_lock.Release();
}
}
private void OnDataReceived(object sender, string data)
{
_receiveBuffer.Append(data);
string currentContent = _receiveBuffer.ToString();
bool isComplete = false;
if (currentContent.IndexOf("<end>", StringComparison.OrdinalIgnoreCase) >= 0 ||
currentContent.IndexOf("Success", StringComparison.OrdinalIgnoreCase) >= 0 ||
currentContent.IndexOf("Fail", StringComparison.OrdinalIgnoreCase) >= 0)
{
isComplete = true;
}
else
{
// <end>가 오지 않았더라도, 명령어 에코가 아닌 줄에서 16자리 ID를 발견하면 즉시 완료 처리
string[] lines = currentContent.Split(new[] { "\r\n", "\r", "\n" }, StringSplitOptions.RemoveEmptyEntries);
foreach (var line in lines)
{
string trimmed = line.Trim();
if (trimmed.Contains("x00c_")) continue;
var match = System.Text.RegularExpressions.Regex.Match(trimmed, @"[A-Za-z0-9]{16}");
if (match.Success)
{
isComplete = true;
break;
}
}
}
if (isComplete)
{
if (_responseTcs != null && !_responseTcs.Task.IsCompleted)
{
LastResponse = currentContent.Trim();
_responseTcs.TrySetResult(currentContent);
}
_receiveBuffer.Clear();
}
}
public void Dispose()
{
Disconnect();
_communication.DataReceived -= OnDataReceived;
_reconnectTimer?.Dispose();
_lock.Dispose();
}
}
}

7
leak_test_project/Services/DioBoardFactory.cs

@ -1,6 +1,7 @@
using System; using System;
using leak_test_project.Infrastructure; using leak_test_project.Infrastructure;
using leak_test_project.Utils; using leak_test_project.Utils;
using leak_test_project.Models;
namespace leak_test_project.Services namespace leak_test_project.Services
{ {
@ -11,10 +12,8 @@ namespace leak_test_project.Services
{ {
public static IDioBoard CreateBoard() public static IDioBoard CreateBoard()
{ {
var config = DioConfigParser.LoadDefault(); // DIO 제어는 항상 신뢰성이 검증된 레거시 보드를 사용함
Console.WriteLine("[DIO Factory] Creating RealDioBoard (Legacy)...");
// 실제 보드 연동
Console.WriteLine($"[DIO Factory] Creating RealDioBoard ({config.CompanyName} {config.BoardType})...");
var board = new RealDioBoard(); var board = new RealDioBoard();
board.Initialize(); board.Initialize();
return board; return board;

16
leak_test_project/Services/IIdSensorService.cs

@ -0,0 +1,16 @@
using System;
using leak_test_project.Models;
namespace leak_test_project.Services
{
public interface IIdSensorService : IDisposable
{
event EventHandler<string> ProgressMessage;
event EventHandler<string> ErrorMessage;
event EventHandler<bool> ConnectionChanged;
bool Connect();
void Disconnect();
SensorIdData ReadSensor();
}
}

53
leak_test_project/Services/TestProcessService.cs

@ -1,4 +1,4 @@
using System; using System;
using System.Threading; using System.Threading;
using leak_test_project.Infrastructure; using leak_test_project.Infrastructure;
using leak_test_project.Models; using leak_test_project.Models;
@ -37,8 +37,8 @@ namespace leak_test_project.Services
public class TestProcessService : IDisposable public class TestProcessService : IDisposable
{ {
private readonly IDioBoard _dioBoard; private readonly IDioBoard _dioBoard;
private readonly ZmdiSensorService _leftSensor; private readonly IIdSensorService _leftSensor;
private readonly ZmdiSensorService _rightSensor; private readonly IIdSensorService _rightSensor;
private readonly SentinelC28Service _sentinelService; private readonly SentinelC28Service _sentinelService;
private Thread _leftThread; private Thread _leftThread;
@ -70,8 +70,8 @@ namespace leak_test_project.Services
public TestProcessService( public TestProcessService(
IDioBoard dioBoard, IDioBoard dioBoard,
ZmdiSensorService leftSensor, IIdSensorService leftSensor,
ZmdiSensorService rightSensor, IIdSensorService rightSensor,
SentinelC28Service sentinelService) SentinelC28Service sentinelService)
{ {
_dioBoard = dioBoard; _dioBoard = dioBoard;
@ -107,6 +107,49 @@ namespace leak_test_project.Services
else _rightTestStart = true; else _rightTestStart = true;
} }
/// <summary>
/// ID 센서 단독 테스트를 수행합니다.
/// 실제 검사와 동일한 시작 시퀀스를 재현합니다.
/// </summary>
public async System.Threading.Tasks.Task ExecuteSensorTestAsync(int testIndex)
{
bool isLeft = (testIndex == 0);
NotifyProgress(testIndex, "시험 시작", "LightSeaGreen");
ResultClearRequested?.Invoke(this, testIndex);
await System.Threading.Tasks.Task.Delay(500); // UI 피드백을 위한 짧은 대기
NotifyProgress(testIndex, "센서 정보 읽는 중", "LightSeaGreen");
var sensor = isLeft ? _leftSensor : _rightSensor;
// 시리얼 통신이므로 백그라운드에서 실행
var sensorData = await System.Threading.Tasks.Task.Run(() => sensor.ReadSensor());
if (sensorData != null)
{
SensorReadComplete?.Invoke(this, (testIndex, sensorData));
// 실제 검사 시퀀스와 동일한 불량 제품 필터링 체크
if (sensorData.PrevResult != "F")
{
NotifyError(testIndex, "불량 제품 투입 (이전 결과: " + sensorData.PrevResult + ")");
return;
}
NotifyProgress(testIndex, "ID 테스트 완료", "LightBlue");
}
else
{
// 실패 시 NotifyError를 호출하지 않는 것도 실제 시퀀스와 동일 (센서 서비스가 이미 에러 이벤트 발생시킴)
// 다만 UI 갱신을 위해 빈 데이터는 전송
sensorData = new SensorIdData { ID = "-", PrevResult = "F" };
SensorReadComplete?.Invoke(this, (testIndex, sensorData));
NotifyProgress(testIndex, "ID 테스트 실패", "Red");
}
}
private void OnDioInputChanged(object sender, DioEventArgs e) private void OnDioInputChanged(object sender, DioEventArgs e)
{ {
// DIO 시작 신호 감지 (OFF→ON) // DIO 시작 신호 감지 (OFF→ON)

2
leak_test_project/Services/ZmdiSensorService.cs

@ -12,7 +12,7 @@ namespace leak_test_project.Services
/// ZMDI 센서와 시리얼 통신하여 제품 ID를 읽고 파싱하는 서비스. /// ZMDI 센서와 시리얼 통신하여 제품 ID를 읽고 파싱하는 서비스.
/// 자동 재연결(Auto-Reconnect) 및 예외 처리 포함. /// 자동 재연결(Auto-Reconnect) 및 예외 처리 포함.
/// </summary> /// </summary>
public class ZmdiSensorService : IDisposable public class ZmdiSensorService : IIdSensorService
{ {
private readonly ICommunication _comm; private readonly ICommunication _comm;
private readonly object _commSync = new object(); private readonly object _commSync = new object();

52
leak_test_project/ViewModels/HomeViewModel.cs

@ -22,8 +22,8 @@ namespace leak_test_project.ViewModels
// 자동 시험 프로세스 관련 // 자동 시험 프로세스 관련
private IDioBoard _dioBoard; private IDioBoard _dioBoard;
private ZmdiSensorService _leftZmdi; private IIdSensorService _leftZmdi;
private ZmdiSensorService _rightZmdi; private IIdSensorService _rightZmdi;
private SerialProvider _leftZmdiSerial; private SerialProvider _leftZmdiSerial;
private SerialProvider _rightZmdiSerial; private SerialProvider _rightZmdiSerial;
private TestProcessService _testProcess; private TestProcessService _testProcess;
@ -146,6 +146,13 @@ namespace leak_test_project.ViewModels
public void ApplyConfig() public void ApplyConfig()
{ {
CleanupAll(); CleanupAll();
// 통신 재시작 전 기존 오류 및 상태 메시지 초기화
LeftError = "";
RightError = "";
LeftStatus = "통신 대기 중";
RightStatus = "통신 대기 중";
var config = ConfigManager.Current; var config = ConfigManager.Current;
InitializeCommunication(config); InitializeCommunication(config);
InitializeTestProcess(config); InitializeTestProcess(config);
@ -200,33 +207,56 @@ namespace leak_test_project.ViewModels
// DIO 보드 초기화 (MainViewModel에서 생성된 보드 사용) // DIO 보드 초기화 (MainViewModel에서 생성된 보드 사용)
if (_dioBoard == null) return; if (_dioBoard == null) return;
// ZMDI 센서 서비스 (LEFT/RIGHT) // DIO 보드 에러 구독
_dioBoard.ErrorOccurred += (s, msg) => _dispatcher.Invoke(() => {
LeftError = msg;
RightError = msg;
AppendLog(true, $"[DIO Board Error] {msg}");
});
// ID 센서 서비스 (LEFT/RIGHT)
if (config.SelectedIdSensor == IdSensorType.Board4253)
{
_leftZmdiSerial = new SerialProvider(config.Board4253Port, config.Board4253BaudRate);
var sharedService = new Board4253Service(_leftZmdiSerial) { TimeoutMs = config.Board4253Timeout };
_leftZmdi = new Board4253SensorService(sharedService, 0);
_rightZmdi = new Board4253SensorService(sharedService, 1);
}
else
{
_leftZmdiSerial = new SerialProvider(config.LeftPort, config.ZmdiBaudRate); _leftZmdiSerial = new SerialProvider(config.LeftPort, config.ZmdiBaudRate);
_rightZmdiSerial = new SerialProvider(config.RightPort, config.ZmdiBaudRate); _rightZmdiSerial = new SerialProvider(config.RightPort, config.ZmdiBaudRate);
_leftZmdi = new ZmdiSensorService(_leftZmdiSerial, 0); _leftZmdi = new ZmdiSensorService(_leftZmdiSerial, 0);
_rightZmdi = new ZmdiSensorService(_rightZmdiSerial, 1); _rightZmdi = new ZmdiSensorService(_rightZmdiSerial, 1);
}
string sensorName = config.SelectedIdSensor == IdSensorType.Board4253 ? "4253 보드" : "ZMDI 센서";
string logPrefix = config.SelectedIdSensor == IdSensorType.Board4253 ? "[4253 Error]" : "[ZMDI Error]";
if (!_leftZmdi.Connect()) if (!_leftZmdi.Connect())
{ {
string msg = $"ZMDI 센서 포트 연결 실패 ({config.LeftPort})"; string port = config.SelectedIdSensor == IdSensorType.Board4253 ? config.Board4253Port : config.LeftPort;
string msg = $"{sensorName} 포트 연결 실패 ({port})";
LeftError = string.IsNullOrEmpty(LeftError) ? msg : $"{LeftError}\n{msg}"; LeftError = string.IsNullOrEmpty(LeftError) ? msg : $"{LeftError}\n{msg}";
} }
if (!_rightZmdi.Connect()) if (!_rightZmdi.Connect())
{ {
string msg = $"ZMDI 센서 포트 연결 실패 ({config.RightPort})"; string port = config.SelectedIdSensor == IdSensorType.Board4253 ? config.Board4253Port : config.RightPort;
string msg = $"{sensorName} 포트 연결 실패 ({port})";
RightError = string.IsNullOrEmpty(RightError) ? msg : $"{RightError}\n{msg}"; RightError = string.IsNullOrEmpty(RightError) ? msg : $"{RightError}\n{msg}";
} }
_leftZmdi.ProgressMessage += (s, msg) => _dispatcher.Invoke(() => LeftStatus = msg); _leftZmdi.ProgressMessage += (s, msg) => _dispatcher.Invoke(() => LeftStatus = msg);
_leftZmdi.ErrorMessage += (s, msg) => _dispatcher.Invoke(() => { _leftZmdi.ErrorMessage += (s, msg) => _dispatcher.Invoke(() => {
LeftError = msg; LeftError = msg;
AppendLog(true, $"[ZMDI Error] {msg}"); AppendLog(true, $"{logPrefix} {msg}");
}); });
_rightZmdi.ProgressMessage += (s, msg) => _dispatcher.Invoke(() => RightStatus = msg); _rightZmdi.ProgressMessage += (s, msg) => _dispatcher.Invoke(() => RightStatus = msg);
_rightZmdi.ErrorMessage += (s, msg) => _dispatcher.Invoke(() => { _rightZmdi.ErrorMessage += (s, msg) => _dispatcher.Invoke(() => {
RightError = msg; RightError = msg;
AppendLog(false, $"[ZMDI Error] {msg}"); AppendLog(false, $"{logPrefix} {msg}");
}); });
// 자동 시험 프로세스 // 자동 시험 프로세스
@ -428,6 +458,14 @@ namespace leak_test_project.ViewModels
}); });
} }
public async System.Threading.Tasks.Task TestReadIdAsync(int testIndex)
{
if (_testProcess != null)
{
await _testProcess.ExecuteSensorTestAsync(testIndex);
}
}
private const int MaxLogLines = 500; private const int MaxLogLines = 500;
private void AppendLog(bool isLeft, string message) private void AppendLog(bool isLeft, string message)

3
leak_test_project/ViewModels/InOutViewModel.cs

@ -77,8 +77,7 @@ namespace leak_test_project.ViewModels
_refreshTimer.Tick += (s, e) => _refreshTimer.Tick += (s, e) =>
{ {
_ioService.RefreshState(); _ioService.RefreshState();
UpdateInputs(); // InOutItem이 INotifyPropertyChanged를 구현하므로 더 이상 리스트를 재생성할 필요가 없습니다.
UpdateOutputs();
}; };
_refreshTimer.Start(); _refreshTimer.Start();
} }

20
leak_test_project/ViewModels/MainViewModel.cs

@ -27,6 +27,7 @@ namespace leak_test_project.ViewModels
public ICommand NavigateDataCommand { get; } public ICommand NavigateDataCommand { get; }
public ICommand NavigateParametersCommand { get; } public ICommand NavigateParametersCommand { get; }
public ICommand NavigateCommunicationCommand { get; } public ICommand NavigateCommunicationCommand { get; }
public ICommand ReadIdTestCommand { get; }
public ICommand ExitCommand { get; } public ICommand ExitCommand { get; }
public MainViewModel() public MainViewModel()
@ -48,8 +49,15 @@ namespace leak_test_project.ViewModels
NavigateHomeCommand = new RelayCommand(o => CurrentViewModel = HomeVM); NavigateHomeCommand = new RelayCommand(o => CurrentViewModel = HomeVM);
NavigateInOutCommand = new RelayCommand(o => NavigateInOutCommand = new RelayCommand(o =>
{ {
if (CurrentViewModel == InOutVM) CurrentViewModel = HomeVM; if (CurrentViewModel is InOutViewModel)
else CurrentViewModel = InOutVM; {
CurrentViewModel = HomeVM;
}
else
{
// 매 진입 시 새 인스턴스 생성하여 타이머가 항상 활성화되도록 보장
CurrentViewModel = new InOutViewModel(() => CurrentViewModel = HomeVM, _ioService);
}
}); });
NavigateDataCommand = new RelayCommand(o => NavigateDataCommand = new RelayCommand(o =>
@ -71,6 +79,14 @@ namespace leak_test_project.ViewModels
win.ShowDialog(); win.ShowDialog();
}); });
ReadIdTestCommand = new RelayCommand(async o =>
{
if (int.TryParse(o?.ToString(), out int index))
{
await HomeVM.TestReadIdAsync(index);
}
});
ExitCommand = new RelayCommand(o => ExitCommand = new RelayCommand(o =>
{ {
Dispose(); Dispose();

48
leak_test_project/Views/CommunicationWindow.xaml

@ -62,10 +62,25 @@
<ColumnDefinition Width="*"/> <ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/> <ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<!-- LEFT COLUMN: SETTINGS -->
<!-- LEFT COLUMN: ZMDI SETTINGS -->
<StackPanel Grid.Column="0" Margin="10,0"> <StackPanel Grid.Column="0" Margin="10,0">
<TextBlock Text="[ ZMDI ID 센서 설정 ]" FontSize="16" FontWeight="Bold" Foreground="#2E86C1" Margin="0,0,0,15"/> <TextBlock Text="[ 하드웨어 보드 선택 ]" FontSize="16" FontWeight="Bold" Foreground="#2E86C1" Margin="0,0,0,15"/>
<!-- ID Sensor Type Selection -->
<StackPanel Orientation="Horizontal" Margin="0,8">
<Border Style="{StaticResource ParamHeaderBorder}">
<TextBlock Text="ID Sensor Type" Style="{StaticResource ParamHeaderLabel}"/>
</Border>
<Border Style="{StaticResource ParamValueBorder}">
<ComboBox x:Name="cbIdSensorType" Width="178" BorderThickness="0" VerticalContentAlignment="Center" FontSize="16" FontWeight="Bold">
<ComboBoxItem Content="ZMDI Sensor"/>
<ComboBoxItem Content="Board 4253"/>
</ComboBox>
</Border>
</StackPanel>
<TextBlock Text="[ ZMDI ID 센서 설정 ]" FontSize="16" FontWeight="Bold" Foreground="#2E86C1" Margin="0,20,0,15"/>
<!-- ZMDI BaudRate --> <!-- ZMDI BaudRate -->
<StackPanel Orientation="Horizontal" Margin="0,8"> <StackPanel Orientation="Horizontal" Margin="0,8">
@ -131,6 +146,33 @@
<ComboBox x:Name="cbSensorPort" Width="178" BorderThickness="0" VerticalContentAlignment="Center" FontSize="16" FontWeight="Bold"/> <ComboBox x:Name="cbSensorPort" Width="178" BorderThickness="0" VerticalContentAlignment="Center" FontSize="16" FontWeight="Bold"/>
</Border> </Border>
</StackPanel> </StackPanel>
<TextBlock Text="[ 4253 보드 설정 ]" FontSize="16" FontWeight="Bold" Foreground="#2E86C1" Margin="0,20,0,15"/>
<!-- Board 4253 BaudRate -->
<StackPanel Orientation="Horizontal" Margin="0,8">
<Border Style="{StaticResource ParamHeaderBorder}">
<TextBlock Text="4253 BaudRate" Style="{StaticResource ParamHeaderLabel}"/>
</Border>
<Border Style="{StaticResource ParamValueBorder}">
<ComboBox x:Name="cbBoard4253BaudRate" SelectedIndex="3" Width="178" BorderThickness="0" VerticalContentAlignment="Center" FontSize="16" FontWeight="Bold">
<ComboBoxItem Content="9600"/>
<ComboBoxItem Content="19200"/>
<ComboBoxItem Content="38400"/>
<ComboBoxItem Content="115200"/>
</ComboBox>
</Border>
</StackPanel>
<!-- Board 4253 Port -->
<StackPanel Orientation="Horizontal" Margin="0,5">
<Border Style="{StaticResource ParamHeaderBorder}">
<TextBlock Text="4253 Port" Style="{StaticResource ParamHeaderLabel}"/>
</Border>
<Border Style="{StaticResource ParamValueBorder}">
<ComboBox x:Name="cbBoard4253Port" Width="178" BorderThickness="0" VerticalContentAlignment="Center" FontSize="16" FontWeight="Bold"/>
</Border>
</StackPanel>
</StackPanel> </StackPanel>
</Grid> </Grid>
</ScrollViewer> </ScrollViewer>

27
leak_test_project/Views/CommunicationWindow.xaml.cs

@ -3,6 +3,7 @@ using System.IO.Ports;
using System.Windows; using System.Windows;
using System.Windows.Controls; using System.Windows.Controls;
using leak_test_project.Utils; using leak_test_project.Utils;
using leak_test_project.Models;
namespace leak_test_project.Views namespace leak_test_project.Views
{ {
@ -18,16 +19,21 @@ namespace leak_test_project.Views
{ {
var config = ConfigManager.Current; var config = ConfigManager.Current;
// ID 센서 타입 선택
cbIdSensorType.SelectedIndex = (int)config.SelectedIdSensor;
// 사용 가능한 시리얼 포트 목록 조회 // 사용 가능한 시리얼 포트 목록 조회
string[] ports = SerialPort.GetPortNames(); string[] ports = SerialPort.GetPortNames();
cbLeftPort.ItemsSource = ports; cbLeftPort.ItemsSource = ports;
cbRightPort.ItemsSource = ports; cbRightPort.ItemsSource = ports;
cbSensorPort.ItemsSource = ports; cbSensorPort.ItemsSource = ports;
cbBoard4253Port.ItemsSource = ports;
// 기존 설정 포트 자동 선택 // 기존 설정 포트 자동 선택
cbLeftPort.SelectedItem = config.LeftPort; cbLeftPort.SelectedItem = config.LeftPort;
cbRightPort.SelectedItem = config.RightPort; cbRightPort.SelectedItem = config.RightPort;
cbSensorPort.SelectedItem = config.SensorPort; cbSensorPort.SelectedItem = config.SensorPort;
cbBoard4253Port.SelectedItem = config.Board4253Port;
foreach (ComboBoxItem item in cbZmdiBaudRate.Items) foreach (ComboBoxItem item in cbZmdiBaudRate.Items)
{ {
@ -46,12 +52,24 @@ namespace leak_test_project.Views
break; break;
} }
} }
foreach (ComboBoxItem item in cbBoard4253BaudRate.Items)
{
if (item.Content.ToString() == config.Board4253BaudRate.ToString())
{
cbBoard4253BaudRate.SelectedItem = item;
break;
}
}
} }
private void BtnSave_Click(object sender, RoutedEventArgs e) private void BtnSave_Click(object sender, RoutedEventArgs e)
{ {
var config = ConfigManager.Current; var config = ConfigManager.Current;
if (cbIdSensorType.SelectedIndex >= 0)
config.SelectedIdSensor = (IdSensorType)cbIdSensorType.SelectedIndex;
if (cbLeftPort.SelectedItem != null) if (cbLeftPort.SelectedItem != null)
config.LeftPort = cbLeftPort.SelectedItem.ToString(); config.LeftPort = cbLeftPort.SelectedItem.ToString();
@ -61,6 +79,9 @@ namespace leak_test_project.Views
if (cbSensorPort.SelectedItem != null) if (cbSensorPort.SelectedItem != null)
config.SensorPort = cbSensorPort.SelectedItem.ToString(); config.SensorPort = cbSensorPort.SelectedItem.ToString();
if (cbBoard4253Port.SelectedItem != null)
config.Board4253Port = cbBoard4253Port.SelectedItem.ToString();
if (cbZmdiBaudRate.SelectedItem is ComboBoxItem zmdiBaud) if (cbZmdiBaudRate.SelectedItem is ComboBoxItem zmdiBaud)
{ {
if (int.TryParse(zmdiBaud.Content.ToString(), out int baud)) if (int.TryParse(zmdiBaud.Content.ToString(), out int baud))
@ -73,6 +94,12 @@ namespace leak_test_project.Views
config.SensorBaudRate = baud; config.SensorBaudRate = baud;
} }
if (cbBoard4253BaudRate.SelectedItem is ComboBoxItem boardBaud)
{
if (int.TryParse(boardBaud.Content.ToString(), out int baud))
config.Board4253BaudRate = baud;
}
ConfigManager.Save(); ConfigManager.Save();
MessageBox.Show("통신 설정이 저장되었습니다."); MessageBox.Show("통신 설정이 저장되었습니다.");
this.DialogResult = true; this.DialogResult = true;

40
leak_test_project/bin/Debug/Logs/2026-04-10_system.log

@ -0,0 +1,40 @@
[10:57:23.540] [WARNING] [Board4253] Timeout waiting for response (Retry 1/3): x00c_001101:or2800326003e
[10:57:24.360] [WARNING] [Board4253] Timeout waiting for response (Retry 2/3): x00c_001101:or2800326003e
[10:57:25.176] [WARNING] [Board4253] Timeout waiting for response (Retry 3/3): x00c_001101:or2800326003e
[10:57:25.996] [WARNING] [Board4253] Timeout waiting for response (Retry 4/3): x00c_001101:or2800326003e
[10:57:25.996] [ERROR] [Board4253] Failed to receive response after 3 retries: x00c_001101:or2800326003e
[11:27:53.912] [WARNING] [Board4253] Timeout waiting for response (Retry 1/3): x00c_001101:ow2800326003e
[11:27:54.720] [WARNING] [Board4253] Timeout waiting for response (Retry 2/3): x00c_001101:ow2800326003e
[11:27:55.532] [WARNING] [Board4253] Timeout waiting for response (Retry 3/3): x00c_001101:ow2800326003e
[11:27:56.342] [WARNING] [Board4253] Timeout waiting for response (Retry 4/3): x00c_001101:ow2800326003e
[11:27:56.342] [ERROR] [Board4253] Failed to receive response after 3 retries: x00c_001101:ow2800326003e
[11:29:30.538] [WARNING] [Board4253] Timeout waiting for response (Retry 1/3): x00c_001101:ow2800326003e
[11:29:31.343] [WARNING] [Board4253] Timeout waiting for response (Retry 2/3): x00c_001101:ow2800326003e
[11:29:32.156] [WARNING] [Board4253] Timeout waiting for response (Retry 3/3): x00c_001101:ow2800326003e
[11:29:33.452] [WARNING] [Board4253] Timeout waiting for response (Retry 1/3): x00c_002101:owt28006727ea97c7801
[11:29:34.263] [WARNING] [Board4253] Timeout waiting for response (Retry 2/3): x00c_002101:owt28006727ea97c7801
[11:29:38.203] [WARNING] [Board4253] Timeout waiting for response (Retry 1/3): x00c_001101:ow2800326003e
[11:29:39.013] [WARNING] [Board4253] Timeout waiting for response (Retry 2/3): x00c_001101:ow2800326003e
[11:29:39.827] [WARNING] [Board4253] Timeout waiting for response (Retry 3/3): x00c_001101:ow2800326003e
[11:29:40.640] [WARNING] [Board4253] Timeout waiting for response (Retry 4/3): x00c_001101:ow2800326003e
[11:29:40.641] [ERROR] [Board4253] Failed to receive response after 3 retries: x00c_001101:ow2800326003e
[11:30:02.158] [WARNING] [Board4253] Timeout waiting for response (Retry 1/3): x00c_001101:ow2800326003e
[11:30:02.970] [WARNING] [Board4253] Timeout waiting for response (Retry 2/3): x00c_001101:ow2800326003e
[11:30:03.782] [WARNING] [Board4253] Timeout waiting for response (Retry 3/3): x00c_001101:ow2800326003e
[11:30:04.399] [ERROR] [Board4253] Failed to receive response after 3 retries: x00c_001101:ow2800326003e
[11:31:35.380] [WARNING] [Board4253] Timeout waiting for response (Retry 1/3): x00c_001101:ow2800326003e
[11:31:36.186] [WARNING] [Board4253] Timeout waiting for response (Retry 2/3): x00c_001101:ow2800326003e
[11:31:36.998] [WARNING] [Board4253] Timeout waiting for response (Retry 3/3): x00c_001101:ow2800326003e
[11:31:39.570] [WARNING] [Board4253] Timeout waiting for response (Retry 1/3): x00c_002101:owt28006727ea97c7801
[11:31:40.392] [WARNING] [Board4253] Timeout waiting for response (Retry 2/3): x00c_002101:owt28006727ea97c7801
[11:31:41.203] [WARNING] [Board4253] Timeout waiting for response (Retry 3/3): x00c_002101:owt28006727ea97c7801
[11:31:42.014] [WARNING] [Board4253] Timeout waiting for response (Retry 4/3): x00c_002101:owt28006727ea97c7801
[11:31:42.014] [ERROR] [Board4253] Failed to receive response after 3 retries: x00c_002101:owt28006727ea97c7801
[11:31:42.521] [WARNING] [Board4253] Timeout waiting for response (Retry 1/3): x00c_001101:owt28006727ea97c7801
[11:32:17.987] [WARNING] [Board4253] Timeout waiting for response (Retry 1/3): x00c_001101:ow2800326003e
[11:32:18.794] [WARNING] [Board4253] Timeout waiting for response (Retry 2/3): x00c_001101:ow2800326003e
[11:32:19.609] [WARNING] [Board4253] Timeout waiting for response (Retry 3/3): x00c_001101:ow2800326003e
[11:32:20.227] [ERROR] [Board4253] Failed to receive response after 3 retries: x00c_001101:ow2800326003e
[11:34:56.304] [WARNING] [Board4253] Timeout waiting for response (Retry 1/3): x00c_001101:ow2800326003e
[11:34:57.111] [WARNING] [Board4253] Timeout waiting for response (Retry 2/3): x00c_001101:ow2800326003e
[11:34:57.922] [WARNING] [Board4253] Timeout waiting for response (Retry 3/3): x00c_001101:ow2800326003e

BIN
leak_test_project/bin/Debug/PCI-Dask.dll

Binary file not shown.

BIN
leak_test_project/bin/Debug/PCI-Dask64.dll

Binary file not shown.

BIN
leak_test_project/bin/Debug/app.publish/leak_test_project.exe

Binary file not shown.

14
leak_test_project/bin/Debug/config.xml

@ -0,0 +1,14 @@
<?xml version="1.0"?>
<AppConfig xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<SelectedIdSensor>Board4253</SelectedIdSensor>
<LeftPort>COM9</LeftPort>
<RightPort>COM8</RightPort>
<ZmdiBaudRate>19200</ZmdiBaudRate>
<SensorPort>COM1</SensorPort>
<SensorBaudRate>9600</SensorBaudRate>
<Board4253Port>COM11</Board4253Port>
<Board4253BaudRate>115200</Board4253BaudRate>
<Board4253Timeout>500</Board4253Timeout>
<SpecUL>1</SpecUL>
<SpecLL>-1</SpecLL>
</AppConfig>

8
leak_test_project/bin/Debug/leak_test_project.application

@ -1,20 +1,20 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<asmv1:assembly xsi:schemaLocation="urn:schemas-microsoft-com:asm.v1 assembly.adaptive.xsd" manifestVersion="1.0" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns="urn:schemas-microsoft-com:asm.v2" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xrml="urn:mpeg:mpeg21:2003:01-REL-R-NS" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:co.v1="urn:schemas-microsoft-com:clickonce.v1" xmlns:co.v2="urn:schemas-microsoft-com:clickonce.v2"> <asmv1:assembly xsi:schemaLocation="urn:schemas-microsoft-com:asm.v1 assembly.adaptive.xsd" manifestVersion="1.0" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns="urn:schemas-microsoft-com:asm.v2" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xrml="urn:mpeg:mpeg21:2003:01-REL-R-NS" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:co.v1="urn:schemas-microsoft-com:clickonce.v1" xmlns:co.v2="urn:schemas-microsoft-com:clickonce.v2">
<assemblyIdentity name="leak_test_project.application" version="1.0.0.4" publicKeyToken="0000000000000000" language="neutral" processorArchitecture="msil" xmlns="urn:schemas-microsoft-com:asm.v1" /> <assemblyIdentity name="leak_test_project.application" version="1.0.0.13" publicKeyToken="0000000000000000" language="neutral" processorArchitecture="msil" xmlns="urn:schemas-microsoft-com:asm.v1" />
<description asmv2:publisher="leak_test_project" asmv2:product="leak_test_project" xmlns="urn:schemas-microsoft-com:asm.v1" /> <description asmv2:publisher="leak_test_project" asmv2:product="leak_test_project" xmlns="urn:schemas-microsoft-com:asm.v1" />
<deployment install="true" mapFileExtensions="true" /> <deployment install="true" mapFileExtensions="true" />
<compatibleFrameworks xmlns="urn:schemas-microsoft-com:clickonce.v2"> <compatibleFrameworks xmlns="urn:schemas-microsoft-com:clickonce.v2">
<framework targetVersion="4.7.2" profile="Full" supportedRuntime="4.0.30319" /> <framework targetVersion="4.7.2" profile="Full" supportedRuntime="4.0.30319" />
</compatibleFrameworks> </compatibleFrameworks>
<dependency> <dependency>
<dependentAssembly dependencyType="install" codebase="leak_test_project.exe.manifest" size="3541"> <dependentAssembly dependencyType="install" codebase="leak_test_project.exe.manifest" size="3936">
<assemblyIdentity name="leak_test_project.exe" version="1.0.0.4" publicKeyToken="0000000000000000" language="neutral" processorArchitecture="msil" type="win32" /> <assemblyIdentity name="leak_test_project.exe" version="1.0.0.13" publicKeyToken="0000000000000000" language="neutral" processorArchitecture="msil" type="win32" />
<hash> <hash>
<dsig:Transforms> <dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" /> <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms> </dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" /> <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>ZVNslA44bMsOvDWECIypEv8SmpP+p8l/CiQk7HS9J1w=</dsig:DigestValue> <dsig:DigestValue>6+b0r1Gncm2nD/TjBHVCWtS6O3CAXOdxRTwtx09ap8E=</dsig:DigestValue>
</hash> </hash>
</dependentAssembly> </dependentAssembly>
</dependency> </dependency>

BIN
leak_test_project/bin/Debug/leak_test_project.exe

Binary file not shown.

17
leak_test_project/bin/Debug/leak_test_project.exe.manifest

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<asmv1:assembly xsi:schemaLocation="urn:schemas-microsoft-com:asm.v1 assembly.adaptive.xsd" manifestVersion="1.0" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns="urn:schemas-microsoft-com:asm.v2" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:co.v1="urn:schemas-microsoft-com:clickonce.v1" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:co.v2="urn:schemas-microsoft-com:clickonce.v2"> <asmv1:assembly xsi:schemaLocation="urn:schemas-microsoft-com:asm.v1 assembly.adaptive.xsd" manifestVersion="1.0" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns="urn:schemas-microsoft-com:asm.v2" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:co.v1="urn:schemas-microsoft-com:clickonce.v1" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:co.v2="urn:schemas-microsoft-com:clickonce.v2">
<asmv1:assemblyIdentity name="leak_test_project.exe" version="1.0.0.4" publicKeyToken="0000000000000000" language="neutral" processorArchitecture="msil" type="win32" /> <asmv1:assemblyIdentity name="leak_test_project.exe" version="1.0.0.13" publicKeyToken="0000000000000000" language="neutral" processorArchitecture="msil" type="win32" />
<application /> <application />
<entryPoint> <entryPoint>
<assemblyIdentity name="leak_test_project" version="1.0.0.0" language="neutral" processorArchitecture="msil" /> <assemblyIdentity name="leak_test_project" version="1.0.0.0" language="neutral" processorArchitecture="msil" />
@ -32,7 +32,7 @@
<dependency> <dependency>
<dependentOS> <dependentOS>
<osVersionInfo> <osVersionInfo>
<os majorVersion="4" minorVersion="10" buildNumber="0" servicePackMajor="0" /> <os majorVersion="5" minorVersion="1" buildNumber="2600" servicePackMajor="0" />
</osVersionInfo> </osVersionInfo>
</dependentOS> </dependentOS>
</dependency> </dependency>
@ -42,14 +42,14 @@
</dependentAssembly> </dependentAssembly>
</dependency> </dependency>
<dependency> <dependency>
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="leak_test_project.exe" size="131536"> <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="leak_test_project.exe" size="206800">
<assemblyIdentity name="leak_test_project" version="1.0.0.0" language="neutral" processorArchitecture="msil" /> <assemblyIdentity name="leak_test_project" version="1.0.0.0" language="neutral" processorArchitecture="msil" />
<hash> <hash>
<dsig:Transforms> <dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" /> <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms> </dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" /> <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>Hk89URW/8JRbm5i4mtE97JaiiFEb87B1kc8GaoCCIok=</dsig:DigestValue> <dsig:DigestValue>WIlRaRAkyOL/i77TGkCYPDQrXlpbIq1b8rVePHEWnCQ=</dsig:DigestValue>
</hash> </hash>
</dependentAssembly> </dependentAssembly>
</dependency> </dependency>
@ -62,4 +62,13 @@
<dsig:DigestValue>R+Wg8QGvQVHX8T0ta/qbhH1bXkqY0fRnS3wBV3J0bN8=</dsig:DigestValue> <dsig:DigestValue>R+Wg8QGvQVHX8T0ta/qbhH1bXkqY0fRnS3wBV3J0bN8=</dsig:DigestValue>
</hash> </hash>
</file> </file>
<file name="PCI-Dask.dll" size="335872">
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>pDB54gSYV5M/tu2DZtDUj13HUp3HrRLSNr97K/nGHh4=</dsig:DigestValue>
</hash>
</file>
</asmv1:assembly> </asmv1:assembly>

BIN
leak_test_project/bin/Debug/leak_test_project.pdb

Binary file not shown.

1
leak_test_project/bin/Release/Logs/2026-04-08_system.log

@ -0,0 +1 @@
[10:08:53.914] [ERROR] [Board4253] Timeout waiting for response: x00c_001101:owt28006727ea97c7801

110
leak_test_project/bin/Release/Logs/2026-04-10_system.log

@ -0,0 +1,110 @@
[10:55:42.190] [WARNING] [Board4253] Timeout waiting for response (Retry 1/3): x00c_001101:or2800326003e
[10:55:43.011] [WARNING] [Board4253] Timeout waiting for response (Retry 2/3): x00c_001101:or2800326003e
[10:55:43.825] [WARNING] [Board4253] Timeout waiting for response (Retry 3/3): x00c_001101:or2800326003e
[10:55:44.651] [WARNING] [Board4253] Timeout waiting for response (Retry 4/3): x00c_001101:or2800326003e
[10:55:44.651] [ERROR] [Board4253] Failed to receive response after 3 retries: x00c_001101:or2800326003e
[10:55:50.603] [ERROR] [Board4253] Failed to receive response after 3 retries: x00c_001101:owt28006727ea97c7801
[10:56:00.155] [WARNING] [Board4253] Timeout waiting for response (Retry 1/3): x00c_001101:or2800326003e
[10:56:00.972] [WARNING] [Board4253] Timeout waiting for response (Retry 2/3): x00c_001101:or2800326003e
[10:56:01.777] [WARNING] [Board4253] Timeout waiting for response (Retry 3/3): x00c_001101:or2800326003e
[10:56:02.589] [WARNING] [Board4253] Timeout waiting for response (Retry 4/3): x00c_001101:or2800326003e
[10:56:02.590] [ERROR] [Board4253] Failed to receive response after 3 retries: x00c_001101:or2800326003e
[11:45:27.879] [WARNING] [Board4253] Timeout waiting for response (Retry 1/3). Command: x00c_001101:ow2800326003e, ReceivedSoFar:
[11:45:28.685] [WARNING] [Board4253] Timeout waiting for response (Retry 2/3). Command: x00c_001101:ow2800326003e, ReceivedSoFar:
[11:45:29.496] [WARNING] [Board4253] Timeout waiting for response (Retry 3/3). Command: x00c_001101:ow2800326003e, ReceivedSoFar:
[11:45:30.310] [WARNING] [Board4253] Timeout waiting for response (Retry 4/3). Command: x00c_001101:ow2800326003e, ReceivedSoFar:
[11:45:30.311] [ERROR] [Board4253] Failed to receive response after 3 retries: x00c_001101:ow2800326003e
[11:45:33.669] [WARNING] [Board4253] Timeout waiting for response (Retry 1/3). Command: x00c_001101:ow2800326003e, ReceivedSoFar:
[11:45:34.481] [WARNING] [Board4253] Timeout waiting for response (Retry 2/3). Command: x00c_001101:ow2800326003e, ReceivedSoFar:
[11:45:35.294] [WARNING] [Board4253] Timeout waiting for response (Retry 3/3). Command: x00c_001101:ow2800326003e, ReceivedSoFar:
[11:45:38.933] [WARNING] [Board4253] Timeout waiting for response (Retry 1/3). Command: x00c_002101:ow2800326003e, ReceivedSoFar: Fail
[11:45:39.749] [WARNING] [Board4253] Timeout waiting for response (Retry 2/3). Command: x00c_002101:ow2800326003e, ReceivedSoFar: Fail
[11:45:40.562] [WARNING] [Board4253] Timeout waiting for response (Retry 3/3). Command: x00c_002101:ow2800326003e, ReceivedSoFar: Fail
[11:45:41.374] [WARNING] [Board4253] Timeout waiting for response (Retry 4/3). Command: x00c_002101:ow2800326003e, ReceivedSoFar: Fail
[11:45:41.374] [ERROR] [Board4253] Failed to receive response after 3 retries: x00c_002101:ow2800326003e
[11:47:36.376] [WARNING] [Board4253] Timeout waiting for response (Retry 1/3). Command: x00c_001101:ow2800326003e, ReceivedSoFar:
[11:47:37.184] [WARNING] [Board4253] Timeout waiting for response (Retry 2/3). Command: x00c_001101:ow2800326003e, ReceivedSoFar:
[11:47:37.997] [WARNING] [Board4253] Timeout waiting for response (Retry 3/3). Command: x00c_001101:ow2800326003e, ReceivedSoFar:
[11:47:43.421] [WARNING] [Board4253] Timeout waiting for response (Retry 1/3). Command: x00c_002101:ow2800326003e, ReceivedSoFar: Fail
[11:47:44.231] [WARNING] [Board4253] Timeout waiting for response (Retry 2/3). Command: x00c_002101:ow2800326003e, ReceivedSoFar: Fail
[11:47:45.043] [WARNING] [Board4253] Timeout waiting for response (Retry 3/3). Command: x00c_002101:ow2800326003e, ReceivedSoFar: Fail
[11:47:45.856] [WARNING] [Board4253] Timeout waiting for response (Retry 4/3). Command: x00c_002101:ow2800326003e, ReceivedSoFar: Fail
[11:47:45.856] [ERROR] [Board4253] Failed to receive response after 3 retries: x00c_002101:ow2800326003e
[11:51:07.941] [WARNING] [Board4253] Timeout waiting for response (Retry 1/3). Command: x00c_001101:ow2800326003e, ReceivedSoFar:
[11:51:08.748] [WARNING] [Board4253] Timeout waiting for response (Retry 2/3). Command: x00c_001101:ow2800326003e, ReceivedSoFar:
[11:51:09.563] [WARNING] [Board4253] Timeout waiting for response (Retry 3/3). Command: x00c_001101:ow2800326003e, ReceivedSoFar:
[11:51:16.230] [WARNING] [Board4253] Timeout waiting for response (Retry 1/3). Command: x00c_002101:ow2800326003e, ReceivedSoFar: Fail
[11:51:17.048] [WARNING] [Board4253] Timeout waiting for response (Retry 2/3). Command: x00c_002101:ow2800326003e, ReceivedSoFar: Fail
[11:51:17.861] [WARNING] [Board4253] Timeout waiting for response (Retry 3/3). Command: x00c_002101:ow2800326003e, ReceivedSoFar: Fail
[11:51:18.674] [WARNING] [Board4253] Timeout waiting for response (Retry 4/3). Command: x00c_002101:ow2800326003e, ReceivedSoFar: Fail
[11:51:18.674] [ERROR] [Board4253] Failed to receive response after 3 retries: x00c_002101:ow2800326003e
[11:51:20.811] [WARNING] [Board4253] Timeout waiting for response (Retry 1/3). Command: x00c_001101:ow2800326003e, ReceivedSoFar:
[11:51:21.623] [WARNING] [Board4253] Timeout waiting for response (Retry 2/3). Command: x00c_001101:ow2800326003e, ReceivedSoFar:
[11:51:22.436] [WARNING] [Board4253] Timeout waiting for response (Retry 3/3). Command: x00c_001101:ow2800326003e, ReceivedSoFar:
[11:51:23.250] [WARNING] [Board4253] Timeout waiting for response (Retry 4/3). Command: x00c_001101:ow2800326003e, ReceivedSoFar:
[11:51:23.250] [ERROR] [Board4253] Failed to receive response after 3 retries: x00c_001101:ow2800326003e
[11:51:24.701] [WARNING] [Board4253] Timeout waiting for response (Retry 1/3). Command: x00c_002101:ow2800326003e, ReceivedSoFar:
[11:51:25.517] [WARNING] [Board4253] Timeout waiting for response (Retry 2/3). Command: x00c_002101:ow2800326003e, ReceivedSoFar:
[11:51:26.329] [WARNING] [Board4253] Timeout waiting for response (Retry 3/3). Command: x00c_002101:ow2800326003e, ReceivedSoFar:
[11:51:27.143] [WARNING] [Board4253] Timeout waiting for response (Retry 4/3). Command: x00c_002101:ow2800326003e, ReceivedSoFar:
[11:51:27.143] [ERROR] [Board4253] Failed to receive response after 3 retries: x00c_002101:ow2800326003e
[11:53:02.049] [WARNING] [Board4253] Timeout waiting for response (Retry 1/3). Command: x00c_001101:ow2800326003e, ReceivedSoFar:
[11:53:02.873] [WARNING] [Board4253] Timeout waiting for response (Retry 2/3). Command: x00c_001101:ow2800326003e, ReceivedSoFar:
[11:53:03.700] [WARNING] [Board4253] Timeout waiting for response (Retry 3/3). Command: x00c_001101:ow2800326003e, ReceivedSoFar:
[11:53:10.308] [WARNING] [Board4253] Timeout waiting for response (Retry 1/3). Command: x00c_001101:ow2800326003e, ReceivedSoFar:
[11:53:11.123] [WARNING] [Board4253] Timeout waiting for response (Retry 2/3). Command: x00c_001101:ow2800326003e, ReceivedSoFar:
[11:53:11.936] [WARNING] [Board4253] Timeout waiting for response (Retry 3/3). Command: x00c_001101:ow2800326003e, ReceivedSoFar:
[11:54:34.879] [WARNING] [Board4253] Timeout waiting for response (Retry 1/3). Command: x00c_001101:ow2800326003e, ReceivedSoFar:
[11:54:35.688] [WARNING] [Board4253] Timeout waiting for response (Retry 2/3). Command: x00c_001101:ow2800326003e, ReceivedSoFar:
[11:54:36.501] [WARNING] [Board4253] Timeout waiting for response (Retry 3/3). Command: x00c_001101:ow2800326003e, ReceivedSoFar:
[11:55:07.112] [WARNING] [Board4253] Timeout waiting for response (Retry 1/3). Command: x00c_001101:ow2800326003e, ReceivedSoFar:
[11:55:07.921] [WARNING] [Board4253] Timeout waiting for response (Retry 2/3). Command: x00c_001101:ow2800326003e, ReceivedSoFar:
[11:55:08.737] [WARNING] [Board4253] Timeout waiting for response (Retry 3/3). Command: x00c_001101:ow2800326003e, ReceivedSoFar:
[11:56:49.722] [WARNING] [Board4253] Timeout waiting for response (Retry 1/3). Command: x00c_001101:ow2800326003e, ReceivedSoFar:
[11:56:50.534] [WARNING] [Board4253] Timeout waiting for response (Retry 2/3). Command: x00c_001101:ow2800326003e, ReceivedSoFar:
[11:56:51.346] [WARNING] [Board4253] Timeout waiting for response (Retry 3/3). Command: x00c_001101:ow2800326003e, ReceivedSoFar:
[11:57:40.955] [WARNING] [Board4253] Timeout waiting for response (Retry 1/3). Command: x00c_001101:ow2800326003e, ReceivedSoFar:
[11:57:41.765] [WARNING] [Board4253] Timeout waiting for response (Retry 2/3). Command: x00c_001101:ow2800326003e, ReceivedSoFar:
[11:57:42.578] [WARNING] [Board4253] Timeout waiting for response (Retry 3/3). Command: x00c_001101:ow2800326003e, ReceivedSoFar:
[11:57:45.123] [WARNING] [Board4253] Timeout waiting for response (Retry 1/3). Command: x00c_002101:owt28006727ea97c7801, ReceivedSoFar:
[11:57:45.939] [WARNING] [Board4253] Timeout waiting for response (Retry 2/3). Command: x00c_002101:owt28006727ea97c7801, ReceivedSoFar:
[11:57:54.032] [WARNING] [Board4253] Timeout waiting for response (Retry 1/3). Command: x00c_001101:ow2800326003e, ReceivedSoFar:
[11:57:54.846] [WARNING] [Board4253] Timeout waiting for response (Retry 2/3). Command: x00c_001101:ow2800326003e, ReceivedSoFar:
[11:57:55.656] [WARNING] [Board4253] Timeout waiting for response (Retry 3/3). Command: x00c_001101:ow2800326003e, ReceivedSoFar:
[12:01:13.123] [WARNING] [Board4253] Timeout waiting for response (Retry 1/3). Command: x00c_001101:ow2800326003e, ReceivedSoFar:
[12:01:13.946] [WARNING] [Board4253] Timeout waiting for response (Retry 2/3). Command: x00c_001101:ow2800326003e, ReceivedSoFar:
[12:01:14.765] [WARNING] [Board4253] Timeout waiting for response (Retry 3/3). Command: x00c_001101:ow2800326003e, ReceivedSoFar:
[12:02:59.012] [WARNING] [Board4253] Timeout waiting for response (Retry 1/3). Command: x00c_001101:ow2800326003e, ReceivedSoFar:
[12:02:59.828] [WARNING] [Board4253] Timeout waiting for response (Retry 2/3). Command: x00c_001101:ow2800326003e, ReceivedSoFar:
[12:03:00.640] [WARNING] [Board4253] Timeout waiting for response (Retry 3/3). Command: x00c_001101:ow2800326003e, ReceivedSoFar:
[12:06:24.445] [WARNING] [Board4253] Timeout waiting for response (Retry 1/3). Command: x00c_001101:ow2800326003e, ReceivedSoFar:
[12:06:25.267] [WARNING] [Board4253] Timeout waiting for response (Retry 2/3). Command: x00c_001101:ow2800326003e, ReceivedSoFar:
[12:06:26.081] [WARNING] [Board4253] Timeout waiting for response (Retry 3/3). Command: x00c_001101:ow2800326003e, ReceivedSoFar:
[12:06:26.889] [WARNING] [Board4253] Timeout waiting for response (Retry 4/3). Command: x00c_001101:ow2800326003e, ReceivedSoFar:
[12:06:26.889] [ERROR] [Board4253] Failed to receive response after 3 retries: x00c_001101:ow2800326003e
[12:06:33.035] [WARNING] [Board4253] Timeout waiting for response (Retry 1/3). Command: x00c_001101:ow2800326003e, ReceivedSoFar:
[12:06:33.846] [WARNING] [Board4253] Timeout waiting for response (Retry 2/3). Command: x00c_001101:ow2800326003e, ReceivedSoFar:
[12:06:34.655] [WARNING] [Board4253] Timeout waiting for response (Retry 3/3). Command: x00c_001101:ow2800326003e, ReceivedSoFar:
[12:06:35.470] [WARNING] [Board4253] Timeout waiting for response (Retry 4/3). Command: x00c_001101:ow2800326003e, ReceivedSoFar:
[12:06:35.470] [ERROR] [Board4253] Failed to receive response after 3 retries: x00c_001101:ow2800326003e
[12:09:47.128] [WARNING] [Board4253] Timeout waiting for response (Retry 1/3). Command: x00c_001101:ow2800326003e, ReceivedSoFar:
[12:09:47.937] [WARNING] [Board4253] Timeout waiting for response (Retry 2/3). Command: x00c_001101:ow2800326003e, ReceivedSoFar:
[12:09:48.749] [WARNING] [Board4253] Timeout waiting for response (Retry 3/3). Command: x00c_001101:ow2800326003e, ReceivedSoFar:
[12:09:49.564] [WARNING] [Board4253] Timeout waiting for response (Retry 4/3). Command: x00c_001101:ow2800326003e, ReceivedSoFar:
[12:09:49.564] [ERROR] [Board4253] Failed to receive response after 3 retries: x00c_001101:ow2800326003e
[12:09:52.656] [WARNING] [Board4253] Timeout waiting for response (Retry 1/3). Command: x00c_002101:owt28006727ea97c7801, ReceivedSoFar:
[12:09:53.467] [WARNING] [Board4253] Timeout waiting for response (Retry 2/3). Command: x00c_002101:owt28006727ea97c7801, ReceivedSoFar:
[12:09:54.287] [WARNING] [Board4253] Timeout waiting for response (Retry 3/3). Command: x00c_002101:owt28006727ea97c7801, ReceivedSoFar:
[12:13:16.837] [WARNING] [Board4253] Timeout waiting for response (Retry 1/3). Command: x00c_001101:ow2800326003e, ReceivedSoFar:
[12:13:17.654] [WARNING] [Board4253] Timeout waiting for response (Retry 2/3). Command: x00c_001101:ow2800326003e, ReceivedSoFar:
[12:13:18.470] [WARNING] [Board4253] Timeout waiting for response (Retry 3/3). Command: x00c_001101:ow2800326003e, ReceivedSoFar:
[12:14:59.721] [WARNING] [Board4253] Timeout waiting for response (Retry 1/3). Command: x00c_001101:ow2800326003e, ReceivedSoFar:
[12:15:00.533] [WARNING] [Board4253] Timeout waiting for response (Retry 2/3). Command: x00c_001101:ow2800326003e, ReceivedSoFar:
[12:15:01.344] [WARNING] [Board4253] Timeout waiting for response (Retry 3/3). Command: x00c_001101:ow2800326003e, ReceivedSoFar:
[12:17:00.864] [WARNING] [Board4253] Timeout waiting for response (Retry 1/3). Command: x00c_001101:ow2800326003e, ReceivedSoFar:
[12:17:01.672] [WARNING] [Board4253] Timeout waiting for response (Retry 2/3). Command: x00c_001101:ow2800326003e, ReceivedSoFar:
[12:17:02.484] [WARNING] [Board4253] Timeout waiting for response (Retry 3/3). Command: x00c_001101:ow2800326003e, ReceivedSoFar:
[12:18:04.430] [ERROR] [Board4253] Failed to receive response after 3 retries: x00c_002101:owt28006727ea97c7801
[12:21:18.658] [WARNING] [Board4253] Timeout waiting for response (Retry 1/3). Command: x00c_001101:ow2800326003e, ReceivedSoFar:
[12:21:19.470] [WARNING] [Board4253] Timeout waiting for response (Retry 2/3). Command: x00c_001101:ow2800326003e, ReceivedSoFar:
[12:21:20.283] [WARNING] [Board4253] Timeout waiting for response (Retry 3/3). Command: x00c_001101:ow2800326003e, ReceivedSoFar:

BIN
leak_test_project/bin/Release/PCI-Dask.dll

Binary file not shown.

BIN
leak_test_project/bin/Release/PCI-Dask64.dll

Binary file not shown.

BIN
leak_test_project/bin/Release/app.publish/Application Files/leak_test_project_1_0_0_13/PCI-Dask.dll.deploy

Binary file not shown.

6
leak_test_project/bin/Release/app.publish/Application Files/leak_test_project_1_0_0_13/leak_test_project.exe.config.deploy

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" />
</startup>
</configuration>

BIN
leak_test_project/bin/Release/app.publish/Application Files/leak_test_project_1_0_0_13/leak_test_project.exe.deploy

Binary file not shown.

74
leak_test_project/bin/Release/app.publish/Application Files/leak_test_project_1_0_0_13/leak_test_project.exe.manifest

@ -0,0 +1,74 @@
<?xml version="1.0" encoding="utf-8"?>
<asmv1:assembly xsi:schemaLocation="urn:schemas-microsoft-com:asm.v1 assembly.adaptive.xsd" manifestVersion="1.0" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns="urn:schemas-microsoft-com:asm.v2" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:co.v1="urn:schemas-microsoft-com:clickonce.v1" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:co.v2="urn:schemas-microsoft-com:clickonce.v2">
<asmv1:assemblyIdentity name="leak_test_project.exe" version="1.0.0.13" publicKeyToken="5ae182b970f1719e" language="neutral" processorArchitecture="msil" type="win32" />
<application />
<entryPoint>
<assemblyIdentity name="leak_test_project" version="1.0.0.0" language="neutral" processorArchitecture="msil" />
<commandLine file="leak_test_project.exe" parameters="" />
</entryPoint>
<trustInfo>
<security>
<applicationRequestMinimum>
<PermissionSet Unrestricted="true" ID="Custom" SameSite="site" />
<defaultAssemblyRequest permissionSetReference="Custom" />
</applicationRequestMinimum>
<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
<!--
UAC 매니페스트 옵션
Windows 사용자 계정 컨트롤 수준을 변경하려면
requestedExecutionLevel 노드를 다음 중 하나로 바꾸세요.
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
<requestedExecutionLevel level="highestAvailable" uiAccess="false" />
이전 버전과의 호환성을 위해 파일 및 레지스트리 가상화를 사용하려면
requestedExecutionLevel 노드를 삭제하세요.
-->
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
</requestedPrivileges>
</security>
</trustInfo>
<dependency>
<dependentOS>
<osVersionInfo>
<os majorVersion="5" minorVersion="1" buildNumber="2600" servicePackMajor="0" />
</osVersionInfo>
</dependentOS>
</dependency>
<dependency>
<dependentAssembly dependencyType="preRequisite" allowDelayedBinding="true">
<assemblyIdentity name="Microsoft.Windows.CommonLanguageRuntime" version="4.0.30319.0" />
</dependentAssembly>
</dependency>
<dependency>
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="leak_test_project.exe" size="184272">
<assemblyIdentity name="leak_test_project" version="1.0.0.0" language="neutral" processorArchitecture="msil" />
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>s7N9iBWk8fUXDSMpsQYD+HuhDnCsSIbyR3ysKPAKQVk=</dsig:DigestValue>
</hash>
</dependentAssembly>
</dependency>
<file name="leak_test_project.exe.config" size="189">
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>R+Wg8QGvQVHX8T0ta/qbhH1bXkqY0fRnS3wBV3J0bN8=</dsig:DigestValue>
</hash>
</file>
<file name="PCI-Dask.dll" size="335872">
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>pDB54gSYV5M/tu2DZtDUj13HUp3HrRLSNr97K/nGHh4=</dsig:DigestValue>
</hash>
</file>
<publisherIdentity name="CN=COMPUTER\COMPUTER1" issuerKeyHash="c32f131ebf64bc457e3888152aa8ff601035940e" /><Signature Id="StrongNameSignature" xmlns="http://www.w3.org/2000/09/xmldsig#"><SignedInfo><CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /><SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha256" /><Reference URI=""><Transforms><Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /><Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /></Transforms><DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" /><DigestValue>IGryd/vhTzmjoO2eqd6Fb97hDJRqSJsVRL8N69/x1HI=</DigestValue></Reference></SignedInfo><SignatureValue>l/LS5ocaQyl+3bxBd88XE6RbZwuUh8UgQwc1fUStRM+YbNLGPqZxdyooS89DBCd0B5bl942Tmt0zwsO6vlXORjbVCiOKDE44RJjSD2WxLv382r/hjt/soundny9dJ/NyjlRBJOSpiYlz6qMlOuWRW2pPcYCjJunNGp9XI5O5F40=</SignatureValue><KeyInfo Id="StrongNameKeyInfo"><KeyValue><RSAKeyValue><Modulus>tuYFpgQ5mc5y74DoHVuljBkqCkS9uu7YKD44vJG9EhrIonpNmMiwO7STg2PDbfxjEy7X17zEpz7rfw1i4zzDsUuphsWlf8IKa0pvK7QRjoUi1Kov4Ri6v1orgwbEUas61B4b4fWuhLvc/xbQh987P036LobVer7k1zqtQTVQhzU=</Modulus><Exponent>AQAB</Exponent></RSAKeyValue></KeyValue><msrel:RelData xmlns:msrel="http://schemas.microsoft.com/windows/rel/2005/reldata"><r:license xmlns:r="urn:mpeg:mpeg21:2003:01-REL-R-NS" xmlns:as="http://schemas.microsoft.com/windows/pki/2005/Authenticode"><r:grant><as:ManifestInformation Hash="72d4f1dfeb0dbf44159b486a940ce1de6f85dea99eeda0a3394fe1fb77f26a20" Description="" Url=""><as:assemblyIdentity name="leak_test_project.exe" version="1.0.0.13" publicKeyToken="5ae182b970f1719e" language="neutral" processorArchitecture="msil" type="win32" /></as:ManifestInformation><as:SignedBy /><as:AuthenticodePublisher><as:X509SubjectName>CN=COMPUTER\COMPUTER1</as:X509SubjectName></as:AuthenticodePublisher></r:grant><r:issuer><Signature Id="AuthenticodeSignature" xmlns="http://www.w3.org/2000/09/xmldsig#"><SignedInfo><CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /><SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha256" /><Reference URI=""><Transforms><Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /><Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /></Transforms><DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" /><DigestValue>bUBgGdguRHJX/VMsU/Q/dweM3kOGzKR9U/PMq6CpRgE=</DigestValue></Reference></SignedInfo><SignatureValue>Nl9I0EWNksmG0cfN22YJ7ba0bmecY8JjVMMii1M6GS2hSrLyHEMfQ7sSSmf/GV3Ae/jVsz9fWa0+qPx0/aDmxcOK5o94IYbkZtC8Yn0dbFDSWG37UFakG3SPLOxUIYU8+Woh8P32dSCIfaw2lrPlOuyqr2Tx1Lq/dBKvv/W7BCE=</SignatureValue><KeyInfo><KeyValue><RSAKeyValue><Modulus>tuYFpgQ5mc5y74DoHVuljBkqCkS9uu7YKD44vJG9EhrIonpNmMiwO7STg2PDbfxjEy7X17zEpz7rfw1i4zzDsUuphsWlf8IKa0pvK7QRjoUi1Kov4Ri6v1orgwbEUas61B4b4fWuhLvc/xbQh987P036LobVer7k1zqtQTVQhzU=</Modulus><Exponent>AQAB</Exponent></RSAKeyValue></KeyValue><X509Data><X509Certificate>MIIB4TCCAUqgAwIBAgIQWEJoD8lqaYlP6JqlHCvs5TANBgkqhkiG9w0BAQsFADAvMS0wKwYDVQQDHiQAQwBPAE0AUABVAFQARQBSAFwAQwBPAE0AUABVAFQARQBSADEwHhcNMjYwMzI0MDIzMjE1WhcNMjcwMzI0MDgzMjE1WjAvMS0wKwYDVQQDHiQAQwBPAE0AUABVAFQARQBSAFwAQwBPAE0AUABVAFQARQBSADEwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALbmBaYEOZnOcu+A6B1bpYwZKgpEvbru2Cg+OLyRvRIayKJ6TZjIsDu0k4Njw238YxMu19e8xKc+638NYuM8w7FLqYbFpX/CCmtKbyu0EY6FItSqL+EYur9aK4MGxFGrOtQeG+H1roS73P8W0IffOz9N+i6G1Xq+5Nc6rUE1UIc1AgMBAAEwDQYJKoZIhvcNAQELBQADgYEAUsdGhPmkbh1nlC8UNtLUtmKJFrxEjinb/AyF2q0JI09sqZy0bpJXBrNGMFSgaSj5YznZJGjWH6xMCNKyy9l70dDtUs32EE3ZqA2gJxOL75BFS6cNFG0poqxd1Jwr01xm0jtjN34GTjLMWzFzTYBdtYx5w/t91i/arkapFfWyYD4=</X509Certificate></X509Data></KeyInfo></Signature></r:issuer></r:license></msrel:RelData></KeyInfo></Signature></asmv1:assembly>

21
leak_test_project/bin/Release/app.publish/leak_test_project.application

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<asmv1:assembly xsi:schemaLocation="urn:schemas-microsoft-com:asm.v1 assembly.adaptive.xsd" manifestVersion="1.0" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns="urn:schemas-microsoft-com:asm.v2" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xrml="urn:mpeg:mpeg21:2003:01-REL-R-NS" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:co.v1="urn:schemas-microsoft-com:clickonce.v1" xmlns:co.v2="urn:schemas-microsoft-com:clickonce.v2">
<assemblyIdentity name="leak_test_project.application" version="1.0.0.13" publicKeyToken="5ae182b970f1719e" language="neutral" processorArchitecture="msil" xmlns="urn:schemas-microsoft-com:asm.v1" />
<description asmv2:publisher="leak_test_project" asmv2:product="leak_test_project" xmlns="urn:schemas-microsoft-com:asm.v1" />
<deployment install="true" mapFileExtensions="true" />
<compatibleFrameworks xmlns="urn:schemas-microsoft-com:clickonce.v2">
<framework targetVersion="4.7.2" profile="Full" supportedRuntime="4.0.30319" />
</compatibleFrameworks>
<dependency>
<dependentAssembly dependencyType="install" codebase="Application Files\leak_test_project_1_0_0_13\leak_test_project.exe.manifest" size="7618">
<assemblyIdentity name="leak_test_project.exe" version="1.0.0.13" publicKeyToken="5ae182b970f1719e" language="neutral" processorArchitecture="msil" type="win32" />
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>vZGlZ5qI3sVmBh95J81hLbqfdYw4njv0uB7RtDrOvHs=</dsig:DigestValue>
</hash>
</dependentAssembly>
</dependency>
<publisherIdentity name="CN=COMPUTER\COMPUTER1" issuerKeyHash="c32f131ebf64bc457e3888152aa8ff601035940e" /><Signature Id="StrongNameSignature" xmlns="http://www.w3.org/2000/09/xmldsig#"><SignedInfo><CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /><SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha256" /><Reference URI=""><Transforms><Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /><Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /></Transforms><DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" /><DigestValue>FmFXiPyX80Gc/Tr21p3YuCFMtpIYuWeDiBxsaSdTbvQ=</DigestValue></Reference></SignedInfo><SignatureValue>XmnCAww20AlPr4s/cfKBsgEbQUQ2X0suzuVtdMekgNypuTFO5UdWFgOLZZtDnBZR0MxcFyHx332YHgZO54J3aU6RJ8BN+o2yby/hLX+lmZ1pquWtVHKHyytAG4XyVCnA6s9Eh5IkVVL/czRuJfLxoVUZf8edM2mooPYmYxtGREA=</SignatureValue><KeyInfo Id="StrongNameKeyInfo"><KeyValue><RSAKeyValue><Modulus>tuYFpgQ5mc5y74DoHVuljBkqCkS9uu7YKD44vJG9EhrIonpNmMiwO7STg2PDbfxjEy7X17zEpz7rfw1i4zzDsUuphsWlf8IKa0pvK7QRjoUi1Kov4Ri6v1orgwbEUas61B4b4fWuhLvc/xbQh987P036LobVer7k1zqtQTVQhzU=</Modulus><Exponent>AQAB</Exponent></RSAKeyValue></KeyValue><msrel:RelData xmlns:msrel="http://schemas.microsoft.com/windows/rel/2005/reldata"><r:license xmlns:r="urn:mpeg:mpeg21:2003:01-REL-R-NS" xmlns:as="http://schemas.microsoft.com/windows/pki/2005/Authenticode"><r:grant><as:ManifestInformation Hash="f46e5327696c1c888367b91892b64c21b8d89dd6f63afd9c41f397fc88576116" Description="" Url=""><as:assemblyIdentity name="leak_test_project.application" version="1.0.0.13" publicKeyToken="5ae182b970f1719e" language="neutral" processorArchitecture="msil" xmlns="urn:schemas-microsoft-com:asm.v1" /></as:ManifestInformation><as:SignedBy /><as:AuthenticodePublisher><as:X509SubjectName>CN=COMPUTER\COMPUTER1</as:X509SubjectName></as:AuthenticodePublisher></r:grant><r:issuer><Signature Id="AuthenticodeSignature" xmlns="http://www.w3.org/2000/09/xmldsig#"><SignedInfo><CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /><SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha256" /><Reference URI=""><Transforms><Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /><Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /></Transforms><DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" /><DigestValue>EmpRdk8DsUDcdaWJE1vl68QAegel0yF1f5e8pvmRQjM=</DigestValue></Reference></SignedInfo><SignatureValue>cgZrWaxQtJh0Gr03iFoHJPQApEcGyJxP1NAd0OA65Fu7lEfDKbshAiSbIDjiSezJfHf3wQpizVvTr4sIUkWOrSOCg6LdCPSST6QJAeQ7LXEfMO7dXO06vklj7vV9nS/RtOPfP8BiXThr6QDVu8KzvDRaDLhIgfm/cjMh3mVMkLU=</SignatureValue><KeyInfo><KeyValue><RSAKeyValue><Modulus>tuYFpgQ5mc5y74DoHVuljBkqCkS9uu7YKD44vJG9EhrIonpNmMiwO7STg2PDbfxjEy7X17zEpz7rfw1i4zzDsUuphsWlf8IKa0pvK7QRjoUi1Kov4Ri6v1orgwbEUas61B4b4fWuhLvc/xbQh987P036LobVer7k1zqtQTVQhzU=</Modulus><Exponent>AQAB</Exponent></RSAKeyValue></KeyValue><X509Data><X509Certificate>MIIB4TCCAUqgAwIBAgIQWEJoD8lqaYlP6JqlHCvs5TANBgkqhkiG9w0BAQsFADAvMS0wKwYDVQQDHiQAQwBPAE0AUABVAFQARQBSAFwAQwBPAE0AUABVAFQARQBSADEwHhcNMjYwMzI0MDIzMjE1WhcNMjcwMzI0MDgzMjE1WjAvMS0wKwYDVQQDHiQAQwBPAE0AUABVAFQARQBSAFwAQwBPAE0AUABVAFQARQBSADEwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALbmBaYEOZnOcu+A6B1bpYwZKgpEvbru2Cg+OLyRvRIayKJ6TZjIsDu0k4Njw238YxMu19e8xKc+638NYuM8w7FLqYbFpX/CCmtKbyu0EY6FItSqL+EYur9aK4MGxFGrOtQeG+H1roS73P8W0IffOz9N+i6G1Xq+5Nc6rUE1UIc1AgMBAAEwDQYJKoZIhvcNAQELBQADgYEAUsdGhPmkbh1nlC8UNtLUtmKJFrxEjinb/AyF2q0JI09sqZy0bpJXBrNGMFSgaSj5YznZJGjWH6xMCNKyy9l70dDtUs32EE3ZqA2gJxOL75BFS6cNFG0poqxd1Jwr01xm0jtjN34GTjLMWzFzTYBdtYx5w/t91i/arkapFfWyYD4=</X509Certificate></X509Data></KeyInfo></Signature></r:issuer></r:license></msrel:RelData></KeyInfo></Signature></asmv1:assembly>

BIN
leak_test_project/bin/Release/app.publish/leak_test_project.exe

Binary file not shown.

BIN
leak_test_project/bin/Release/app.publish/setup.exe

Binary file not shown.

8
leak_test_project/bin/Release/config.xml

@ -1,10 +1,14 @@
<?xml version="1.0"?> <?xml version="1.0"?>
<AppConfig xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <AppConfig xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<SelectedIdSensor>Board4253</SelectedIdSensor>
<LeftPort>COM1</LeftPort> <LeftPort>COM1</LeftPort>
<RightPort>COM2</RightPort> <RightPort>COM1</RightPort>
<ZmdiBaudRate>19200</ZmdiBaudRate> <ZmdiBaudRate>19200</ZmdiBaudRate>
<SensorPort>COM3</SensorPort> <SensorPort>COM1</SensorPort>
<SensorBaudRate>9600</SensorBaudRate> <SensorBaudRate>9600</SensorBaudRate>
<Board4253Port>COM11</Board4253Port>
<Board4253BaudRate>115200</Board4253BaudRate>
<Board4253Timeout>500</Board4253Timeout>
<SpecUL>0.1</SpecUL> <SpecUL>0.1</SpecUL>
<SpecLL>-0.15</SpecLL> <SpecLL>-0.15</SpecLL>
</AppConfig> </AppConfig>

6
leak_test_project/bin/Release/leak_test_project.application

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<asmv1:assembly xsi:schemaLocation="urn:schemas-microsoft-com:asm.v1 assembly.adaptive.xsd" manifestVersion="1.0" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns="urn:schemas-microsoft-com:asm.v2" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xrml="urn:mpeg:mpeg21:2003:01-REL-R-NS" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:co.v1="urn:schemas-microsoft-com:clickonce.v1" xmlns:co.v2="urn:schemas-microsoft-com:clickonce.v2"> <asmv1:assembly xsi:schemaLocation="urn:schemas-microsoft-com:asm.v1 assembly.adaptive.xsd" manifestVersion="1.0" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns="urn:schemas-microsoft-com:asm.v2" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xrml="urn:mpeg:mpeg21:2003:01-REL-R-NS" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:co.v1="urn:schemas-microsoft-com:clickonce.v1" xmlns:co.v2="urn:schemas-microsoft-com:clickonce.v2">
<assemblyIdentity name="leak_test_project.application" version="1.0.0.12" publicKeyToken="0000000000000000" language="neutral" processorArchitecture="msil" xmlns="urn:schemas-microsoft-com:asm.v1" /> <assemblyIdentity name="leak_test_project.application" version="1.0.0.13" publicKeyToken="0000000000000000" language="neutral" processorArchitecture="msil" xmlns="urn:schemas-microsoft-com:asm.v1" />
<description asmv2:publisher="leak_test_project" asmv2:product="leak_test_project" xmlns="urn:schemas-microsoft-com:asm.v1" /> <description asmv2:publisher="leak_test_project" asmv2:product="leak_test_project" xmlns="urn:schemas-microsoft-com:asm.v1" />
<deployment install="true" mapFileExtensions="true" /> <deployment install="true" mapFileExtensions="true" />
<compatibleFrameworks xmlns="urn:schemas-microsoft-com:clickonce.v2"> <compatibleFrameworks xmlns="urn:schemas-microsoft-com:clickonce.v2">
@ -8,13 +8,13 @@
</compatibleFrameworks> </compatibleFrameworks>
<dependency> <dependency>
<dependentAssembly dependencyType="install" codebase="leak_test_project.exe.manifest" size="3936"> <dependentAssembly dependencyType="install" codebase="leak_test_project.exe.manifest" size="3936">
<assemblyIdentity name="leak_test_project.exe" version="1.0.0.12" publicKeyToken="0000000000000000" language="neutral" processorArchitecture="msil" type="win32" /> <assemblyIdentity name="leak_test_project.exe" version="1.0.0.13" publicKeyToken="0000000000000000" language="neutral" processorArchitecture="msil" type="win32" />
<hash> <hash>
<dsig:Transforms> <dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" /> <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms> </dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" /> <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>+tT5TcFav5TEeRJogPVqrD2i+n0zc3NErhzPuBsdAok=</dsig:DigestValue> <dsig:DigestValue>IH+aKiFvhI6LMjGB1EhRjwzDSWKszz5bvalWw8FvXd8=</dsig:DigestValue>
</hash> </hash>
</dependentAssembly> </dependentAssembly>
</dependency> </dependency>

BIN
leak_test_project/bin/Release/leak_test_project.exe

Binary file not shown.

6
leak_test_project/bin/Release/leak_test_project.exe.manifest

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<asmv1:assembly xsi:schemaLocation="urn:schemas-microsoft-com:asm.v1 assembly.adaptive.xsd" manifestVersion="1.0" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns="urn:schemas-microsoft-com:asm.v2" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:co.v1="urn:schemas-microsoft-com:clickonce.v1" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:co.v2="urn:schemas-microsoft-com:clickonce.v2"> <asmv1:assembly xsi:schemaLocation="urn:schemas-microsoft-com:asm.v1 assembly.adaptive.xsd" manifestVersion="1.0" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns="urn:schemas-microsoft-com:asm.v2" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:co.v1="urn:schemas-microsoft-com:clickonce.v1" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:co.v2="urn:schemas-microsoft-com:clickonce.v2">
<asmv1:assemblyIdentity name="leak_test_project.exe" version="1.0.0.12" publicKeyToken="0000000000000000" language="neutral" processorArchitecture="msil" type="win32" /> <asmv1:assemblyIdentity name="leak_test_project.exe" version="1.0.0.13" publicKeyToken="0000000000000000" language="neutral" processorArchitecture="msil" type="win32" />
<application /> <application />
<entryPoint> <entryPoint>
<assemblyIdentity name="leak_test_project" version="1.0.0.0" language="neutral" processorArchitecture="msil" /> <assemblyIdentity name="leak_test_project" version="1.0.0.0" language="neutral" processorArchitecture="msil" />
@ -42,14 +42,14 @@
</dependentAssembly> </dependentAssembly>
</dependency> </dependency>
<dependency> <dependency>
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="leak_test_project.exe" size="166864"> <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="leak_test_project.exe" size="184272">
<assemblyIdentity name="leak_test_project" version="1.0.0.0" language="neutral" processorArchitecture="msil" /> <assemblyIdentity name="leak_test_project" version="1.0.0.0" language="neutral" processorArchitecture="msil" />
<hash> <hash>
<dsig:Transforms> <dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" /> <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms> </dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" /> <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>qAkKP87U3yb9EpU29R51sPc1OgjB2lM+2tz7F86u2qI=</dsig:DigestValue> <dsig:DigestValue>s7N9iBWk8fUXDSMpsQYD+HuhDnCsSIbyR3ysKPAKQVk=</dsig:DigestValue>
</hash> </hash>
</dependentAssembly> </dependentAssembly>
</dependency> </dependency>

BIN
leak_test_project/bin/Release/leak_test_project.pdb

Binary file not shown.

6
leak_test_project/leak_test_project.csproj

@ -27,7 +27,7 @@
<UpdatePeriodically>false</UpdatePeriodically> <UpdatePeriodically>false</UpdatePeriodically>
<UpdateRequired>false</UpdateRequired> <UpdateRequired>false</UpdateRequired>
<MapFileExtensions>true</MapFileExtensions> <MapFileExtensions>true</MapFileExtensions>
<ApplicationRevision>12</ApplicationRevision> <ApplicationRevision>14</ApplicationRevision>
<ApplicationVersion>1.0.0.%2a</ApplicationVersion> <ApplicationVersion>1.0.0.%2a</ApplicationVersion>
<UseApplicationTrust>false</UseApplicationTrust> <UseApplicationTrust>false</UseApplicationTrust>
<PublishWizardCompleted>true</PublishWizardCompleted> <PublishWizardCompleted>true</PublishWizardCompleted>
@ -123,6 +123,10 @@
<Compile Include="Infrastructure\RealDioBoard.cs" /> <Compile Include="Infrastructure\RealDioBoard.cs" />
<Compile Include="Infrastructure\SerialProvider.cs" /> <Compile Include="Infrastructure\SerialProvider.cs" />
<Compile Include="Services\SentinelC28Service.cs" /> <Compile Include="Services\SentinelC28Service.cs" />
<Compile Include="Services\Board4253Service.cs" />
<Compile Include="Services\Board4253DioBoard.cs" />
<Compile Include="Services\Board4253SensorService.cs" />
<Compile Include="Services\IIdSensorService.cs" />
<Compile Include="Services\IoBoardService.cs" /> <Compile Include="Services\IoBoardService.cs" />
<Compile Include="Services\DioBoardFactory.cs" /> <Compile Include="Services\DioBoardFactory.cs" />
<Compile Include="Services\ZmdiSensorService.cs" /> <Compile Include="Services\ZmdiSensorService.cs" />

BIN
leak_test_project/obj/Debug/App.baml

Binary file not shown.

85
leak_test_project/obj/Debug/App.g.cs

@ -0,0 +1,85 @@
#pragma checksum "..\..\App.xaml" "{8829d00f-11b8-4213-878b-770e8597ac16}" "73F5F908C98AC0A4A2D7A967CABB888F63ACECD5A90B6398EE439DB2A02FC994"
//------------------------------------------------------------------------------
// <auto-generated>
// 이 코드는 도구를 사용하여 생성되었습니다.
// 런타임 버전:4.0.30319.42000
//
// 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면
// 이러한 변경 내용이 손실됩니다.
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Diagnostics;
using System.Windows;
using System.Windows.Automation;
using System.Windows.Controls;
using System.Windows.Controls.Primitives;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Markup;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Media.Effects;
using System.Windows.Media.Imaging;
using System.Windows.Media.Media3D;
using System.Windows.Media.TextFormatting;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Windows.Shell;
using leak_test_project;
using leak_test_project.ViewModels;
using leak_test_project.Views;
namespace leak_test_project {
/// <summary>
/// App
/// </summary>
public partial class App : System.Windows.Application {
private bool _contentLoaded;
/// <summary>
/// InitializeComponent
/// </summary>
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
public void InitializeComponent() {
if (_contentLoaded) {
return;
}
_contentLoaded = true;
#line 7 "..\..\App.xaml"
this.StartupUri = new System.Uri("MainWindow.xaml", System.UriKind.Relative);
#line default
#line hidden
System.Uri resourceLocater = new System.Uri("/leak_test_project;component/app.xaml", System.UriKind.Relative);
#line 1 "..\..\App.xaml"
System.Windows.Application.LoadComponent(this, resourceLocater);
#line default
#line hidden
}
/// <summary>
/// Application Entry Point.
/// </summary>
[System.STAThreadAttribute()]
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
public static void Main() {
leak_test_project.App app = new leak_test_project.App();
app.InitializeComponent();
app.Run();
}
}
}

85
leak_test_project/obj/Debug/App.g.i.cs

@ -0,0 +1,85 @@
#pragma checksum "..\..\App.xaml" "{8829d00f-11b8-4213-878b-770e8597ac16}" "73F5F908C98AC0A4A2D7A967CABB888F63ACECD5A90B6398EE439DB2A02FC994"
//------------------------------------------------------------------------------
// <auto-generated>
// 이 코드는 도구를 사용하여 생성되었습니다.
// 런타임 버전:4.0.30319.42000
//
// 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면
// 이러한 변경 내용이 손실됩니다.
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Diagnostics;
using System.Windows;
using System.Windows.Automation;
using System.Windows.Controls;
using System.Windows.Controls.Primitives;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Markup;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Media.Effects;
using System.Windows.Media.Imaging;
using System.Windows.Media.Media3D;
using System.Windows.Media.TextFormatting;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Windows.Shell;
using leak_test_project;
using leak_test_project.ViewModels;
using leak_test_project.Views;
namespace leak_test_project {
/// <summary>
/// App
/// </summary>
public partial class App : System.Windows.Application {
private bool _contentLoaded;
/// <summary>
/// InitializeComponent
/// </summary>
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
public void InitializeComponent() {
if (_contentLoaded) {
return;
}
_contentLoaded = true;
#line 7 "..\..\App.xaml"
this.StartupUri = new System.Uri("MainWindow.xaml", System.UriKind.Relative);
#line default
#line hidden
System.Uri resourceLocater = new System.Uri("/leak_test_project;component/app.xaml", System.UriKind.Relative);
#line 1 "..\..\App.xaml"
System.Windows.Application.LoadComponent(this, resourceLocater);
#line default
#line hidden
}
/// <summary>
/// Application Entry Point.
/// </summary>
[System.STAThreadAttribute()]
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
public static void Main() {
leak_test_project.App app = new leak_test_project.App();
app.InitializeComponent();
app.Run();
}
}
}

BIN
leak_test_project/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache

Binary file not shown.

2
leak_test_project/obj/Debug/GeneratedInternalTypeHelper.g.cs

@ -0,0 +1,2 @@


62
leak_test_project/obj/Debug/GeneratedInternalTypeHelper.g.i.cs

@ -0,0 +1,62 @@
//------------------------------------------------------------------------------
// <auto-generated>
// 이 코드는 도구를 사용하여 생성되었습니다.
// 런타임 버전:4.0.30319.42000
//
// 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면
// 이러한 변경 내용이 손실됩니다.
// </auto-generated>
//------------------------------------------------------------------------------
namespace XamlGeneratedNamespace {
/// <summary>
/// GeneratedInternalTypeHelper
/// </summary>
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
public sealed class GeneratedInternalTypeHelper : System.Windows.Markup.InternalTypeHelper {
/// <summary>
/// CreateInstance
/// </summary>
protected override object CreateInstance(System.Type type, System.Globalization.CultureInfo culture) {
return System.Activator.CreateInstance(type, ((System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.NonPublic)
| (System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.CreateInstance)), null, null, culture);
}
/// <summary>
/// GetPropertyValue
/// </summary>
protected override object GetPropertyValue(System.Reflection.PropertyInfo propertyInfo, object target, System.Globalization.CultureInfo culture) {
return propertyInfo.GetValue(target, System.Reflection.BindingFlags.Default, null, null, culture);
}
/// <summary>
/// SetPropertyValue
/// </summary>
protected override void SetPropertyValue(System.Reflection.PropertyInfo propertyInfo, object target, object value, System.Globalization.CultureInfo culture) {
propertyInfo.SetValue(target, value, System.Reflection.BindingFlags.Default, null, null, culture);
}
/// <summary>
/// CreateDelegate
/// </summary>
protected override System.Delegate CreateDelegate(System.Type delegateType, object target, string handler) {
return ((System.Delegate)(target.GetType().InvokeMember("_CreateDelegate", (System.Reflection.BindingFlags.InvokeMethod
| (System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance)), null, target, new object[] {
delegateType,
handler}, null)));
}
/// <summary>
/// AddEventHandler
/// </summary>
protected override void AddEventHandler(System.Reflection.EventInfo eventInfo, object target, System.Delegate handler) {
eventInfo.AddEventHandler(target, handler);
}
}
}

BIN
leak_test_project/obj/Debug/MainWindow.baml

Binary file not shown.

133
leak_test_project/obj/Debug/MainWindow.g.cs

@ -0,0 +1,133 @@
#pragma checksum "..\..\MainWindow.xaml" "{8829d00f-11b8-4213-878b-770e8597ac16}" "757CBCD9E21A494C9927096673B3DCAADE9698FAA3323F88DE79A3D94DB7FAA6"
//------------------------------------------------------------------------------
// <auto-generated>
// 이 코드는 도구를 사용하여 생성되었습니다.
// 런타임 버전:4.0.30319.42000
//
// 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면
// 이러한 변경 내용이 손실됩니다.
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Diagnostics;
using System.Windows;
using System.Windows.Automation;
using System.Windows.Controls;
using System.Windows.Controls.Primitives;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Markup;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Media.Effects;
using System.Windows.Media.Imaging;
using System.Windows.Media.Media3D;
using System.Windows.Media.TextFormatting;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Windows.Shell;
using leak_test_project.ViewModels;
namespace leak_test_project {
/// <summary>
/// MainWindow
/// </summary>
public partial class MainWindow : System.Windows.Window, System.Windows.Markup.IComponentConnector {
#line 36 "..\..\MainWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBlock txtCurrentDateTime;
#line default
#line hidden
#line 49 "..\..\MainWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.Button btnMaximize;
#line default
#line hidden
#line 50 "..\..\MainWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBlock txtMaximizeIcon;
#line default
#line hidden
private bool _contentLoaded;
/// <summary>
/// InitializeComponent
/// </summary>
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
public void InitializeComponent() {
if (_contentLoaded) {
return;
}
_contentLoaded = true;
System.Uri resourceLocater = new System.Uri("/leak_test_project;component/mainwindow.xaml", System.UriKind.Relative);
#line 1 "..\..\MainWindow.xaml"
System.Windows.Application.LoadComponent(this, resourceLocater);
#line default
#line hidden
}
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily")]
void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target) {
switch (connectionId)
{
case 1:
#line 21 "..\..\MainWindow.xaml"
((System.Windows.Controls.Border)(target)).MouseLeftButtonDown += new System.Windows.Input.MouseButtonEventHandler(this.TopBar_MouseLeftButtonDown);
#line default
#line hidden
return;
case 2:
this.txtCurrentDateTime = ((System.Windows.Controls.TextBlock)(target));
return;
case 3:
#line 46 "..\..\MainWindow.xaml"
((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.BtnMinimize_Click);
#line default
#line hidden
return;
case 4:
this.btnMaximize = ((System.Windows.Controls.Button)(target));
#line 49 "..\..\MainWindow.xaml"
this.btnMaximize.Click += new System.Windows.RoutedEventHandler(this.BtnMaximize_Click);
#line default
#line hidden
return;
case 5:
this.txtMaximizeIcon = ((System.Windows.Controls.TextBlock)(target));
return;
}
this._contentLoaded = true;
}
}
}

133
leak_test_project/obj/Debug/MainWindow.g.i.cs

@ -0,0 +1,133 @@
#pragma checksum "..\..\MainWindow.xaml" "{8829d00f-11b8-4213-878b-770e8597ac16}" "757CBCD9E21A494C9927096673B3DCAADE9698FAA3323F88DE79A3D94DB7FAA6"
//------------------------------------------------------------------------------
// <auto-generated>
// 이 코드는 도구를 사용하여 생성되었습니다.
// 런타임 버전:4.0.30319.42000
//
// 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면
// 이러한 변경 내용이 손실됩니다.
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Diagnostics;
using System.Windows;
using System.Windows.Automation;
using System.Windows.Controls;
using System.Windows.Controls.Primitives;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Markup;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Media.Effects;
using System.Windows.Media.Imaging;
using System.Windows.Media.Media3D;
using System.Windows.Media.TextFormatting;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Windows.Shell;
using leak_test_project.ViewModels;
namespace leak_test_project {
/// <summary>
/// MainWindow
/// </summary>
public partial class MainWindow : System.Windows.Window, System.Windows.Markup.IComponentConnector {
#line 36 "..\..\MainWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBlock txtCurrentDateTime;
#line default
#line hidden
#line 49 "..\..\MainWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.Button btnMaximize;
#line default
#line hidden
#line 50 "..\..\MainWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBlock txtMaximizeIcon;
#line default
#line hidden
private bool _contentLoaded;
/// <summary>
/// InitializeComponent
/// </summary>
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
public void InitializeComponent() {
if (_contentLoaded) {
return;
}
_contentLoaded = true;
System.Uri resourceLocater = new System.Uri("/leak_test_project;component/mainwindow.xaml", System.UriKind.Relative);
#line 1 "..\..\MainWindow.xaml"
System.Windows.Application.LoadComponent(this, resourceLocater);
#line default
#line hidden
}
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily")]
void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target) {
switch (connectionId)
{
case 1:
#line 21 "..\..\MainWindow.xaml"
((System.Windows.Controls.Border)(target)).MouseLeftButtonDown += new System.Windows.Input.MouseButtonEventHandler(this.TopBar_MouseLeftButtonDown);
#line default
#line hidden
return;
case 2:
this.txtCurrentDateTime = ((System.Windows.Controls.TextBlock)(target));
return;
case 3:
#line 46 "..\..\MainWindow.xaml"
((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.BtnMinimize_Click);
#line default
#line hidden
return;
case 4:
this.btnMaximize = ((System.Windows.Controls.Button)(target));
#line 49 "..\..\MainWindow.xaml"
this.btnMaximize.Click += new System.Windows.RoutedEventHandler(this.BtnMaximize_Click);
#line default
#line hidden
return;
case 5:
this.txtMaximizeIcon = ((System.Windows.Controls.TextBlock)(target));
return;
}
this._contentLoaded = true;
}
}
}

BIN
leak_test_project/obj/Debug/TempPE/Properties.Resources.Designer.cs.dll

Binary file not shown.

BIN
leak_test_project/obj/Debug/Views/CommunicationWindow.baml

Binary file not shown.

199
leak_test_project/obj/Debug/Views/CommunicationWindow.g.cs

@ -0,0 +1,199 @@
#pragma checksum "..\..\..\Views\CommunicationWindow.xaml" "{8829d00f-11b8-4213-878b-770e8597ac16}" "AF544BD3712CB303CB302F9AA68E55C5B6921446AD339B379C071FBD012AAE60"
//------------------------------------------------------------------------------
// <auto-generated>
// 이 코드는 도구를 사용하여 생성되었습니다.
// 런타임 버전:4.0.30319.42000
//
// 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면
// 이러한 변경 내용이 손실됩니다.
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Diagnostics;
using System.Windows;
using System.Windows.Automation;
using System.Windows.Controls;
using System.Windows.Controls.Primitives;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Markup;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Media.Effects;
using System.Windows.Media.Imaging;
using System.Windows.Media.Media3D;
using System.Windows.Media.TextFormatting;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Windows.Shell;
namespace leak_test_project.Views {
/// <summary>
/// CommunicationWindow
/// </summary>
public partial class CommunicationWindow : System.Windows.Window, System.Windows.Markup.IComponentConnector {
#line 75 "..\..\..\Views\CommunicationWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.ComboBox cbIdSensorType;
#line default
#line hidden
#line 91 "..\..\..\Views\CommunicationWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.ComboBox cbZmdiBaudRate;
#line default
#line hidden
#line 106 "..\..\..\Views\CommunicationWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.ComboBox cbLeftPort;
#line default
#line hidden
#line 116 "..\..\..\Views\CommunicationWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.ComboBox cbRightPort;
#line default
#line hidden
#line 131 "..\..\..\Views\CommunicationWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.ComboBox cbSensorBaudRate;
#line default
#line hidden
#line 146 "..\..\..\Views\CommunicationWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.ComboBox cbSensorPort;
#line default
#line hidden
#line 158 "..\..\..\Views\CommunicationWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.ComboBox cbBoard4253BaudRate;
#line default
#line hidden
#line 173 "..\..\..\Views\CommunicationWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.ComboBox cbBoard4253Port;
#line default
#line hidden
#line 183 "..\..\..\Views\CommunicationWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.Button btnSave;
#line default
#line hidden
#line 184 "..\..\..\Views\CommunicationWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.Button btnClose;
#line default
#line hidden
private bool _contentLoaded;
/// <summary>
/// InitializeComponent
/// </summary>
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
public void InitializeComponent() {
if (_contentLoaded) {
return;
}
_contentLoaded = true;
System.Uri resourceLocater = new System.Uri("/leak_test_project;component/views/communicationwindow.xaml", System.UriKind.Relative);
#line 1 "..\..\..\Views\CommunicationWindow.xaml"
System.Windows.Application.LoadComponent(this, resourceLocater);
#line default
#line hidden
}
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily")]
void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target) {
switch (connectionId)
{
case 1:
this.cbIdSensorType = ((System.Windows.Controls.ComboBox)(target));
return;
case 2:
this.cbZmdiBaudRate = ((System.Windows.Controls.ComboBox)(target));
return;
case 3:
this.cbLeftPort = ((System.Windows.Controls.ComboBox)(target));
return;
case 4:
this.cbRightPort = ((System.Windows.Controls.ComboBox)(target));
return;
case 5:
this.cbSensorBaudRate = ((System.Windows.Controls.ComboBox)(target));
return;
case 6:
this.cbSensorPort = ((System.Windows.Controls.ComboBox)(target));
return;
case 7:
this.cbBoard4253BaudRate = ((System.Windows.Controls.ComboBox)(target));
return;
case 8:
this.cbBoard4253Port = ((System.Windows.Controls.ComboBox)(target));
return;
case 9:
this.btnSave = ((System.Windows.Controls.Button)(target));
#line 183 "..\..\..\Views\CommunicationWindow.xaml"
this.btnSave.Click += new System.Windows.RoutedEventHandler(this.BtnSave_Click);
#line default
#line hidden
return;
case 10:
this.btnClose = ((System.Windows.Controls.Button)(target));
#line 184 "..\..\..\Views\CommunicationWindow.xaml"
this.btnClose.Click += new System.Windows.RoutedEventHandler(this.BtnClose_Click);
#line default
#line hidden
return;
}
this._contentLoaded = true;
}
}
}

199
leak_test_project/obj/Debug/Views/CommunicationWindow.g.i.cs

@ -0,0 +1,199 @@
#pragma checksum "..\..\..\Views\CommunicationWindow.xaml" "{8829d00f-11b8-4213-878b-770e8597ac16}" "AF544BD3712CB303CB302F9AA68E55C5B6921446AD339B379C071FBD012AAE60"
//------------------------------------------------------------------------------
// <auto-generated>
// 이 코드는 도구를 사용하여 생성되었습니다.
// 런타임 버전:4.0.30319.42000
//
// 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면
// 이러한 변경 내용이 손실됩니다.
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Diagnostics;
using System.Windows;
using System.Windows.Automation;
using System.Windows.Controls;
using System.Windows.Controls.Primitives;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Markup;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Media.Effects;
using System.Windows.Media.Imaging;
using System.Windows.Media.Media3D;
using System.Windows.Media.TextFormatting;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Windows.Shell;
namespace leak_test_project.Views {
/// <summary>
/// CommunicationWindow
/// </summary>
public partial class CommunicationWindow : System.Windows.Window, System.Windows.Markup.IComponentConnector {
#line 75 "..\..\..\Views\CommunicationWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.ComboBox cbIdSensorType;
#line default
#line hidden
#line 91 "..\..\..\Views\CommunicationWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.ComboBox cbZmdiBaudRate;
#line default
#line hidden
#line 106 "..\..\..\Views\CommunicationWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.ComboBox cbLeftPort;
#line default
#line hidden
#line 116 "..\..\..\Views\CommunicationWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.ComboBox cbRightPort;
#line default
#line hidden
#line 131 "..\..\..\Views\CommunicationWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.ComboBox cbSensorBaudRate;
#line default
#line hidden
#line 146 "..\..\..\Views\CommunicationWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.ComboBox cbSensorPort;
#line default
#line hidden
#line 158 "..\..\..\Views\CommunicationWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.ComboBox cbBoard4253BaudRate;
#line default
#line hidden
#line 173 "..\..\..\Views\CommunicationWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.ComboBox cbBoard4253Port;
#line default
#line hidden
#line 183 "..\..\..\Views\CommunicationWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.Button btnSave;
#line default
#line hidden
#line 184 "..\..\..\Views\CommunicationWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.Button btnClose;
#line default
#line hidden
private bool _contentLoaded;
/// <summary>
/// InitializeComponent
/// </summary>
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
public void InitializeComponent() {
if (_contentLoaded) {
return;
}
_contentLoaded = true;
System.Uri resourceLocater = new System.Uri("/leak_test_project;component/views/communicationwindow.xaml", System.UriKind.Relative);
#line 1 "..\..\..\Views\CommunicationWindow.xaml"
System.Windows.Application.LoadComponent(this, resourceLocater);
#line default
#line hidden
}
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily")]
void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target) {
switch (connectionId)
{
case 1:
this.cbIdSensorType = ((System.Windows.Controls.ComboBox)(target));
return;
case 2:
this.cbZmdiBaudRate = ((System.Windows.Controls.ComboBox)(target));
return;
case 3:
this.cbLeftPort = ((System.Windows.Controls.ComboBox)(target));
return;
case 4:
this.cbRightPort = ((System.Windows.Controls.ComboBox)(target));
return;
case 5:
this.cbSensorBaudRate = ((System.Windows.Controls.ComboBox)(target));
return;
case 6:
this.cbSensorPort = ((System.Windows.Controls.ComboBox)(target));
return;
case 7:
this.cbBoard4253BaudRate = ((System.Windows.Controls.ComboBox)(target));
return;
case 8:
this.cbBoard4253Port = ((System.Windows.Controls.ComboBox)(target));
return;
case 9:
this.btnSave = ((System.Windows.Controls.Button)(target));
#line 183 "..\..\..\Views\CommunicationWindow.xaml"
this.btnSave.Click += new System.Windows.RoutedEventHandler(this.BtnSave_Click);
#line default
#line hidden
return;
case 10:
this.btnClose = ((System.Windows.Controls.Button)(target));
#line 184 "..\..\..\Views\CommunicationWindow.xaml"
this.btnClose.Click += new System.Windows.RoutedEventHandler(this.BtnClose_Click);
#line default
#line hidden
return;
}
this._contentLoaded = true;
}
}
}

BIN
leak_test_project/obj/Debug/Views/DataView.baml

Binary file not shown.

93
leak_test_project/obj/Debug/Views/DataView.g.cs

@ -0,0 +1,93 @@
#pragma checksum "..\..\..\Views\DataView.xaml" "{8829d00f-11b8-4213-878b-770e8597ac16}" "3817A6627B503D085EDFEB1BF6AD88D4A23D1775086B1CA3BC0ADB5F4D94D266"
//------------------------------------------------------------------------------
// <auto-generated>
// 이 코드는 도구를 사용하여 생성되었습니다.
// 런타임 버전:4.0.30319.42000
//
// 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면
// 이러한 변경 내용이 손실됩니다.
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Diagnostics;
using System.Windows;
using System.Windows.Automation;
using System.Windows.Controls;
using System.Windows.Controls.Primitives;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Markup;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Media.Effects;
using System.Windows.Media.Imaging;
using System.Windows.Media.Media3D;
using System.Windows.Media.TextFormatting;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Windows.Shell;
namespace leak_test_project.Views {
/// <summary>
/// DataView
/// </summary>
public partial class DataView : System.Windows.Controls.UserControl, System.Windows.Markup.IComponentConnector {
private bool _contentLoaded;
/// <summary>
/// InitializeComponent
/// </summary>
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
public void InitializeComponent() {
if (_contentLoaded) {
return;
}
_contentLoaded = true;
System.Uri resourceLocater = new System.Uri("/leak_test_project;component/views/dataview.xaml", System.UriKind.Relative);
#line 1 "..\..\..\Views\DataView.xaml"
System.Windows.Application.LoadComponent(this, resourceLocater);
#line default
#line hidden
}
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily")]
void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target) {
switch (connectionId)
{
case 1:
#line 134 "..\..\..\Views\DataView.xaml"
((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.Button_Click);
#line default
#line hidden
return;
case 2:
#line 145 "..\..\..\Views\DataView.xaml"
((System.Windows.Controls.DataGrid)(target)).SelectionChanged += new System.Windows.Controls.SelectionChangedEventHandler(this.DataGrid_SelectionChanged);
#line default
#line hidden
return;
}
this._contentLoaded = true;
}
}
}

93
leak_test_project/obj/Debug/Views/DataView.g.i.cs

@ -0,0 +1,93 @@
#pragma checksum "..\..\..\Views\DataView.xaml" "{8829d00f-11b8-4213-878b-770e8597ac16}" "3817A6627B503D085EDFEB1BF6AD88D4A23D1775086B1CA3BC0ADB5F4D94D266"
//------------------------------------------------------------------------------
// <auto-generated>
// 이 코드는 도구를 사용하여 생성되었습니다.
// 런타임 버전:4.0.30319.42000
//
// 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면
// 이러한 변경 내용이 손실됩니다.
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Diagnostics;
using System.Windows;
using System.Windows.Automation;
using System.Windows.Controls;
using System.Windows.Controls.Primitives;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Markup;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Media.Effects;
using System.Windows.Media.Imaging;
using System.Windows.Media.Media3D;
using System.Windows.Media.TextFormatting;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Windows.Shell;
namespace leak_test_project.Views {
/// <summary>
/// DataView
/// </summary>
public partial class DataView : System.Windows.Controls.UserControl, System.Windows.Markup.IComponentConnector {
private bool _contentLoaded;
/// <summary>
/// InitializeComponent
/// </summary>
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
public void InitializeComponent() {
if (_contentLoaded) {
return;
}
_contentLoaded = true;
System.Uri resourceLocater = new System.Uri("/leak_test_project;component/views/dataview.xaml", System.UriKind.Relative);
#line 1 "..\..\..\Views\DataView.xaml"
System.Windows.Application.LoadComponent(this, resourceLocater);
#line default
#line hidden
}
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily")]
void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target) {
switch (connectionId)
{
case 1:
#line 134 "..\..\..\Views\DataView.xaml"
((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.Button_Click);
#line default
#line hidden
return;
case 2:
#line 145 "..\..\..\Views\DataView.xaml"
((System.Windows.Controls.DataGrid)(target)).SelectionChanged += new System.Windows.Controls.SelectionChangedEventHandler(this.DataGrid_SelectionChanged);
#line default
#line hidden
return;
}
this._contentLoaded = true;
}
}
}

BIN
leak_test_project/obj/Debug/Views/HomeView.baml

Binary file not shown.

75
leak_test_project/obj/Debug/Views/HomeView.g.cs

@ -0,0 +1,75 @@
#pragma checksum "..\..\..\Views\HomeView.xaml" "{8829d00f-11b8-4213-878b-770e8597ac16}" "2921BB4A069CB2EEEC799AE758E9C631287817D22AABE0AE39C97B7738A1BC9F"
//------------------------------------------------------------------------------
// <auto-generated>
// 이 코드는 도구를 사용하여 생성되었습니다.
// 런타임 버전:4.0.30319.42000
//
// 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면
// 이러한 변경 내용이 손실됩니다.
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Diagnostics;
using System.Windows;
using System.Windows.Automation;
using System.Windows.Controls;
using System.Windows.Controls.Primitives;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Markup;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Media.Effects;
using System.Windows.Media.Imaging;
using System.Windows.Media.Media3D;
using System.Windows.Media.TextFormatting;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Windows.Shell;
using leak_test_project.Views;
namespace leak_test_project.Views {
/// <summary>
/// HomeView
/// </summary>
public partial class HomeView : System.Windows.Controls.UserControl, System.Windows.Markup.IComponentConnector {
private bool _contentLoaded;
/// <summary>
/// InitializeComponent
/// </summary>
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
public void InitializeComponent() {
if (_contentLoaded) {
return;
}
_contentLoaded = true;
System.Uri resourceLocater = new System.Uri("/leak_test_project;component/views/homeview.xaml", System.UriKind.Relative);
#line 1 "..\..\..\Views\HomeView.xaml"
System.Windows.Application.LoadComponent(this, resourceLocater);
#line default
#line hidden
}
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily")]
void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target) {
this._contentLoaded = true;
}
}
}

75
leak_test_project/obj/Debug/Views/HomeView.g.i.cs

@ -0,0 +1,75 @@
#pragma checksum "..\..\..\Views\HomeView.xaml" "{8829d00f-11b8-4213-878b-770e8597ac16}" "2921BB4A069CB2EEEC799AE758E9C631287817D22AABE0AE39C97B7738A1BC9F"
//------------------------------------------------------------------------------
// <auto-generated>
// 이 코드는 도구를 사용하여 생성되었습니다.
// 런타임 버전:4.0.30319.42000
//
// 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면
// 이러한 변경 내용이 손실됩니다.
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Diagnostics;
using System.Windows;
using System.Windows.Automation;
using System.Windows.Controls;
using System.Windows.Controls.Primitives;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Markup;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Media.Effects;
using System.Windows.Media.Imaging;
using System.Windows.Media.Media3D;
using System.Windows.Media.TextFormatting;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Windows.Shell;
using leak_test_project.Views;
namespace leak_test_project.Views {
/// <summary>
/// HomeView
/// </summary>
public partial class HomeView : System.Windows.Controls.UserControl, System.Windows.Markup.IComponentConnector {
private bool _contentLoaded;
/// <summary>
/// InitializeComponent
/// </summary>
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
public void InitializeComponent() {
if (_contentLoaded) {
return;
}
_contentLoaded = true;
System.Uri resourceLocater = new System.Uri("/leak_test_project;component/views/homeview.xaml", System.UriKind.Relative);
#line 1 "..\..\..\Views\HomeView.xaml"
System.Windows.Application.LoadComponent(this, resourceLocater);
#line default
#line hidden
}
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily")]
void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target) {
this._contentLoaded = true;
}
}
}

BIN
leak_test_project/obj/Debug/Views/InOutView.baml

Binary file not shown.

74
leak_test_project/obj/Debug/Views/InOutView.g.cs

@ -0,0 +1,74 @@
#pragma checksum "..\..\..\Views\InOutView.xaml" "{8829d00f-11b8-4213-878b-770e8597ac16}" "844535C614FAAEAAC0E33B7C2C6398266B7ABF9A1246F1791A96D0110B0A029D"
//------------------------------------------------------------------------------
// <auto-generated>
// 이 코드는 도구를 사용하여 생성되었습니다.
// 런타임 버전:4.0.30319.42000
//
// 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면
// 이러한 변경 내용이 손실됩니다.
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Diagnostics;
using System.Windows;
using System.Windows.Automation;
using System.Windows.Controls;
using System.Windows.Controls.Primitives;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Markup;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Media.Effects;
using System.Windows.Media.Imaging;
using System.Windows.Media.Media3D;
using System.Windows.Media.TextFormatting;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Windows.Shell;
namespace leak_test_project.Views {
/// <summary>
/// InOutView
/// </summary>
public partial class InOutView : System.Windows.Controls.UserControl, System.Windows.Markup.IComponentConnector {
private bool _contentLoaded;
/// <summary>
/// InitializeComponent
/// </summary>
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
public void InitializeComponent() {
if (_contentLoaded) {
return;
}
_contentLoaded = true;
System.Uri resourceLocater = new System.Uri("/leak_test_project;component/views/inoutview.xaml", System.UriKind.Relative);
#line 1 "..\..\..\Views\InOutView.xaml"
System.Windows.Application.LoadComponent(this, resourceLocater);
#line default
#line hidden
}
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily")]
void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target) {
this._contentLoaded = true;
}
}
}

74
leak_test_project/obj/Debug/Views/InOutView.g.i.cs

@ -0,0 +1,74 @@
#pragma checksum "..\..\..\Views\InOutView.xaml" "{8829d00f-11b8-4213-878b-770e8597ac16}" "844535C614FAAEAAC0E33B7C2C6398266B7ABF9A1246F1791A96D0110B0A029D"
//------------------------------------------------------------------------------
// <auto-generated>
// 이 코드는 도구를 사용하여 생성되었습니다.
// 런타임 버전:4.0.30319.42000
//
// 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면
// 이러한 변경 내용이 손실됩니다.
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Diagnostics;
using System.Windows;
using System.Windows.Automation;
using System.Windows.Controls;
using System.Windows.Controls.Primitives;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Markup;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Media.Effects;
using System.Windows.Media.Imaging;
using System.Windows.Media.Media3D;
using System.Windows.Media.TextFormatting;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Windows.Shell;
namespace leak_test_project.Views {
/// <summary>
/// InOutView
/// </summary>
public partial class InOutView : System.Windows.Controls.UserControl, System.Windows.Markup.IComponentConnector {
private bool _contentLoaded;
/// <summary>
/// InitializeComponent
/// </summary>
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
public void InitializeComponent() {
if (_contentLoaded) {
return;
}
_contentLoaded = true;
System.Uri resourceLocater = new System.Uri("/leak_test_project;component/views/inoutview.xaml", System.UriKind.Relative);
#line 1 "..\..\..\Views\InOutView.xaml"
System.Windows.Application.LoadComponent(this, resourceLocater);
#line default
#line hidden
}
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily")]
void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target) {
this._contentLoaded = true;
}
}
}

BIN
leak_test_project/obj/Debug/Views/ParametersWindow.baml

Binary file not shown.

133
leak_test_project/obj/Debug/Views/ParametersWindow.g.cs

@ -0,0 +1,133 @@
#pragma checksum "..\..\..\Views\ParametersWindow.xaml" "{8829d00f-11b8-4213-878b-770e8597ac16}" "B47DEFE5EE4215432A6DBFBCF117D9F4C3BCC029E31F9BD3BD0D06811429D93A"
//------------------------------------------------------------------------------
// <auto-generated>
// 이 코드는 도구를 사용하여 생성되었습니다.
// 런타임 버전:4.0.30319.42000
//
// 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면
// 이러한 변경 내용이 손실됩니다.
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Diagnostics;
using System.Windows;
using System.Windows.Automation;
using System.Windows.Controls;
using System.Windows.Controls.Primitives;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Markup;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Media.Effects;
using System.Windows.Media.Imaging;
using System.Windows.Media.Media3D;
using System.Windows.Media.TextFormatting;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Windows.Shell;
namespace leak_test_project.Views {
/// <summary>
/// ParametersWindow
/// </summary>
public partial class ParametersWindow : System.Windows.Window, System.Windows.Markup.IComponentConnector {
#line 79 "..\..\..\Views\ParametersWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBox editSpecUL;
#line default
#line hidden
#line 89 "..\..\..\Views\ParametersWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBox editSpecLL;
#line default
#line hidden
#line 99 "..\..\..\Views\ParametersWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.Button btnSave;
#line default
#line hidden
#line 100 "..\..\..\Views\ParametersWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.Button btnClose;
#line default
#line hidden
private bool _contentLoaded;
/// <summary>
/// InitializeComponent
/// </summary>
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
public void InitializeComponent() {
if (_contentLoaded) {
return;
}
_contentLoaded = true;
System.Uri resourceLocater = new System.Uri("/leak_test_project;component/views/parameterswindow.xaml", System.UriKind.Relative);
#line 1 "..\..\..\Views\ParametersWindow.xaml"
System.Windows.Application.LoadComponent(this, resourceLocater);
#line default
#line hidden
}
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily")]
void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target) {
switch (connectionId)
{
case 1:
this.editSpecUL = ((System.Windows.Controls.TextBox)(target));
return;
case 2:
this.editSpecLL = ((System.Windows.Controls.TextBox)(target));
return;
case 3:
this.btnSave = ((System.Windows.Controls.Button)(target));
#line 99 "..\..\..\Views\ParametersWindow.xaml"
this.btnSave.Click += new System.Windows.RoutedEventHandler(this.BtnSave_Click);
#line default
#line hidden
return;
case 4:
this.btnClose = ((System.Windows.Controls.Button)(target));
#line 100 "..\..\..\Views\ParametersWindow.xaml"
this.btnClose.Click += new System.Windows.RoutedEventHandler(this.BtnClose_Click);
#line default
#line hidden
return;
}
this._contentLoaded = true;
}
}
}

133
leak_test_project/obj/Debug/Views/ParametersWindow.g.i.cs

@ -0,0 +1,133 @@
#pragma checksum "..\..\..\Views\ParametersWindow.xaml" "{8829d00f-11b8-4213-878b-770e8597ac16}" "B47DEFE5EE4215432A6DBFBCF117D9F4C3BCC029E31F9BD3BD0D06811429D93A"
//------------------------------------------------------------------------------
// <auto-generated>
// 이 코드는 도구를 사용하여 생성되었습니다.
// 런타임 버전:4.0.30319.42000
//
// 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면
// 이러한 변경 내용이 손실됩니다.
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Diagnostics;
using System.Windows;
using System.Windows.Automation;
using System.Windows.Controls;
using System.Windows.Controls.Primitives;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Markup;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Media.Effects;
using System.Windows.Media.Imaging;
using System.Windows.Media.Media3D;
using System.Windows.Media.TextFormatting;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Windows.Shell;
namespace leak_test_project.Views {
/// <summary>
/// ParametersWindow
/// </summary>
public partial class ParametersWindow : System.Windows.Window, System.Windows.Markup.IComponentConnector {
#line 79 "..\..\..\Views\ParametersWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBox editSpecUL;
#line default
#line hidden
#line 89 "..\..\..\Views\ParametersWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBox editSpecLL;
#line default
#line hidden
#line 99 "..\..\..\Views\ParametersWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.Button btnSave;
#line default
#line hidden
#line 100 "..\..\..\Views\ParametersWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.Button btnClose;
#line default
#line hidden
private bool _contentLoaded;
/// <summary>
/// InitializeComponent
/// </summary>
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
public void InitializeComponent() {
if (_contentLoaded) {
return;
}
_contentLoaded = true;
System.Uri resourceLocater = new System.Uri("/leak_test_project;component/views/parameterswindow.xaml", System.UriKind.Relative);
#line 1 "..\..\..\Views\ParametersWindow.xaml"
System.Windows.Application.LoadComponent(this, resourceLocater);
#line default
#line hidden
}
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily")]
void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target) {
switch (connectionId)
{
case 1:
this.editSpecUL = ((System.Windows.Controls.TextBox)(target));
return;
case 2:
this.editSpecLL = ((System.Windows.Controls.TextBox)(target));
return;
case 3:
this.btnSave = ((System.Windows.Controls.Button)(target));
#line 99 "..\..\..\Views\ParametersWindow.xaml"
this.btnSave.Click += new System.Windows.RoutedEventHandler(this.BtnSave_Click);
#line default
#line hidden
return;
case 4:
this.btnClose = ((System.Windows.Controls.Button)(target));
#line 100 "..\..\..\Views\ParametersWindow.xaml"
this.btnClose.Click += new System.Windows.RoutedEventHandler(this.BtnClose_Click);
#line default
#line hidden
return;
}
this._contentLoaded = true;
}
}
}

8
leak_test_project/obj/Debug/leak_test_project.application

@ -1,20 +1,20 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<asmv1:assembly xsi:schemaLocation="urn:schemas-microsoft-com:asm.v1 assembly.adaptive.xsd" manifestVersion="1.0" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns="urn:schemas-microsoft-com:asm.v2" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xrml="urn:mpeg:mpeg21:2003:01-REL-R-NS" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:co.v1="urn:schemas-microsoft-com:clickonce.v1" xmlns:co.v2="urn:schemas-microsoft-com:clickonce.v2"> <asmv1:assembly xsi:schemaLocation="urn:schemas-microsoft-com:asm.v1 assembly.adaptive.xsd" manifestVersion="1.0" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns="urn:schemas-microsoft-com:asm.v2" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xrml="urn:mpeg:mpeg21:2003:01-REL-R-NS" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:co.v1="urn:schemas-microsoft-com:clickonce.v1" xmlns:co.v2="urn:schemas-microsoft-com:clickonce.v2">
<assemblyIdentity name="leak_test_project.application" version="1.0.0.4" publicKeyToken="0000000000000000" language="neutral" processorArchitecture="msil" xmlns="urn:schemas-microsoft-com:asm.v1" /> <assemblyIdentity name="leak_test_project.application" version="1.0.0.13" publicKeyToken="0000000000000000" language="neutral" processorArchitecture="msil" xmlns="urn:schemas-microsoft-com:asm.v1" />
<description asmv2:publisher="leak_test_project" asmv2:product="leak_test_project" xmlns="urn:schemas-microsoft-com:asm.v1" /> <description asmv2:publisher="leak_test_project" asmv2:product="leak_test_project" xmlns="urn:schemas-microsoft-com:asm.v1" />
<deployment install="true" mapFileExtensions="true" /> <deployment install="true" mapFileExtensions="true" />
<compatibleFrameworks xmlns="urn:schemas-microsoft-com:clickonce.v2"> <compatibleFrameworks xmlns="urn:schemas-microsoft-com:clickonce.v2">
<framework targetVersion="4.7.2" profile="Full" supportedRuntime="4.0.30319" /> <framework targetVersion="4.7.2" profile="Full" supportedRuntime="4.0.30319" />
</compatibleFrameworks> </compatibleFrameworks>
<dependency> <dependency>
<dependentAssembly dependencyType="install" codebase="leak_test_project.exe.manifest" size="3541"> <dependentAssembly dependencyType="install" codebase="leak_test_project.exe.manifest" size="3936">
<assemblyIdentity name="leak_test_project.exe" version="1.0.0.4" publicKeyToken="0000000000000000" language="neutral" processorArchitecture="msil" type="win32" /> <assemblyIdentity name="leak_test_project.exe" version="1.0.0.13" publicKeyToken="0000000000000000" language="neutral" processorArchitecture="msil" type="win32" />
<hash> <hash>
<dsig:Transforms> <dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" /> <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms> </dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" /> <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>ZVNslA44bMsOvDWECIypEv8SmpP+p8l/CiQk7HS9J1w=</dsig:DigestValue> <dsig:DigestValue>6+b0r1Gncm2nD/TjBHVCWtS6O3CAXOdxRTwtx09ap8E=</dsig:DigestValue>
</hash> </hash>
</dependentAssembly> </dependentAssembly>
</dependency> </dependency>

BIN
leak_test_project/obj/Debug/leak_test_project.csproj.AssemblyReference.cache

Binary file not shown.

2
leak_test_project/obj/Debug/leak_test_project.csproj.CoreCompileInputs.cache

@ -1 +1 @@
3ea4cced1ce06f55502d36f8b03939a089cba33ab891d02ca7a78bcdee03bf9b e34b793bb8bcf09fd6cf0746c906a5cb6a41ebb454d1a15e8953c71a7b0a3a10

19
leak_test_project/obj/Debug/leak_test_project.csproj.FileListAbsolute.txt

@ -11,3 +11,22 @@ C:\Users\COMPUTER1\Desktop\mobi\leak_test_project\leak_test_project\obj\Debug\le
C:\Users\COMPUTER1\Desktop\mobi\leak_test_project\leak_test_project\obj\Debug\leak_test_project.application C:\Users\COMPUTER1\Desktop\mobi\leak_test_project\leak_test_project\obj\Debug\leak_test_project.application
C:\Users\COMPUTER1\Desktop\mobi\leak_test_project\leak_test_project\obj\Debug\leak_test_project.exe C:\Users\COMPUTER1\Desktop\mobi\leak_test_project\leak_test_project\obj\Debug\leak_test_project.exe
C:\Users\COMPUTER1\Desktop\mobi\leak_test_project\leak_test_project\obj\Debug\leak_test_project.pdb C:\Users\COMPUTER1\Desktop\mobi\leak_test_project\leak_test_project\obj\Debug\leak_test_project.pdb
C:\Users\COMPUTER1\Desktop\mobi\leak_test_project\leak_test_project\obj\Debug\Views\InOutView.baml
C:\Users\COMPUTER1\Desktop\mobi\leak_test_project\leak_test_project\obj\Debug\Views\DataView.baml
C:\Users\COMPUTER1\Desktop\mobi\leak_test_project\leak_test_project\obj\Debug\Views\ParametersWindow.baml
C:\Users\COMPUTER1\Desktop\mobi\leak_test_project\leak_test_project\obj\Debug\Views\CommunicationWindow.baml
C:\Users\COMPUTER1\Desktop\mobi\leak_test_project\leak_test_project\obj\Debug\Views\HomeView.g.cs
C:\Users\COMPUTER1\Desktop\mobi\leak_test_project\leak_test_project\obj\Debug\Views\InOutView.g.cs
C:\Users\COMPUTER1\Desktop\mobi\leak_test_project\leak_test_project\obj\Debug\Views\DataView.g.cs
C:\Users\COMPUTER1\Desktop\mobi\leak_test_project\leak_test_project\obj\Debug\Views\ParametersWindow.g.cs
C:\Users\COMPUTER1\Desktop\mobi\leak_test_project\leak_test_project\obj\Debug\Views\CommunicationWindow.g.cs
C:\Users\COMPUTER1\Desktop\mobi\leak_test_project\leak_test_project\obj\Debug\MainWindow.g.cs
C:\Users\COMPUTER1\Desktop\mobi\leak_test_project\leak_test_project\obj\Debug\App.g.cs
C:\Users\COMPUTER1\Desktop\mobi\leak_test_project\leak_test_project\obj\Debug\leak_test_project_Content.g.cs
C:\Users\COMPUTER1\Desktop\mobi\leak_test_project\leak_test_project\obj\Debug\GeneratedInternalTypeHelper.g.cs
C:\Users\COMPUTER1\Desktop\mobi\leak_test_project\leak_test_project\obj\Debug\leak_test_project_MarkupCompile.cache
C:\Users\COMPUTER1\Desktop\mobi\leak_test_project\leak_test_project\obj\Debug\leak_test_project_MarkupCompile.lref
C:\Users\COMPUTER1\Desktop\mobi\leak_test_project\leak_test_project\obj\Debug\App.baml
C:\Users\COMPUTER1\Desktop\mobi\leak_test_project\leak_test_project\obj\Debug\Views\HomeView.baml
C:\Users\COMPUTER1\Desktop\mobi\leak_test_project\leak_test_project\obj\Debug\MainWindow.baml
C:\Users\COMPUTER1\Desktop\mobi\leak_test_project\leak_test_project\obj\Debug\leak_test_project.g.resources

BIN
leak_test_project/obj/Debug/leak_test_project.exe

Binary file not shown.

17
leak_test_project/obj/Debug/leak_test_project.exe.manifest

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<asmv1:assembly xsi:schemaLocation="urn:schemas-microsoft-com:asm.v1 assembly.adaptive.xsd" manifestVersion="1.0" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns="urn:schemas-microsoft-com:asm.v2" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:co.v1="urn:schemas-microsoft-com:clickonce.v1" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:co.v2="urn:schemas-microsoft-com:clickonce.v2"> <asmv1:assembly xsi:schemaLocation="urn:schemas-microsoft-com:asm.v1 assembly.adaptive.xsd" manifestVersion="1.0" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns="urn:schemas-microsoft-com:asm.v2" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:co.v1="urn:schemas-microsoft-com:clickonce.v1" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:co.v2="urn:schemas-microsoft-com:clickonce.v2">
<asmv1:assemblyIdentity name="leak_test_project.exe" version="1.0.0.4" publicKeyToken="0000000000000000" language="neutral" processorArchitecture="msil" type="win32" /> <asmv1:assemblyIdentity name="leak_test_project.exe" version="1.0.0.13" publicKeyToken="0000000000000000" language="neutral" processorArchitecture="msil" type="win32" />
<application /> <application />
<entryPoint> <entryPoint>
<assemblyIdentity name="leak_test_project" version="1.0.0.0" language="neutral" processorArchitecture="msil" /> <assemblyIdentity name="leak_test_project" version="1.0.0.0" language="neutral" processorArchitecture="msil" />
@ -32,7 +32,7 @@
<dependency> <dependency>
<dependentOS> <dependentOS>
<osVersionInfo> <osVersionInfo>
<os majorVersion="4" minorVersion="10" buildNumber="0" servicePackMajor="0" /> <os majorVersion="5" minorVersion="1" buildNumber="2600" servicePackMajor="0" />
</osVersionInfo> </osVersionInfo>
</dependentOS> </dependentOS>
</dependency> </dependency>
@ -42,14 +42,14 @@
</dependentAssembly> </dependentAssembly>
</dependency> </dependency>
<dependency> <dependency>
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="leak_test_project.exe" size="131536"> <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="leak_test_project.exe" size="206800">
<assemblyIdentity name="leak_test_project" version="1.0.0.0" language="neutral" processorArchitecture="msil" /> <assemblyIdentity name="leak_test_project" version="1.0.0.0" language="neutral" processorArchitecture="msil" />
<hash> <hash>
<dsig:Transforms> <dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" /> <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms> </dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" /> <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>Hk89URW/8JRbm5i4mtE97JaiiFEb87B1kc8GaoCCIok=</dsig:DigestValue> <dsig:DigestValue>WIlRaRAkyOL/i77TGkCYPDQrXlpbIq1b8rVePHEWnCQ=</dsig:DigestValue>
</hash> </hash>
</dependentAssembly> </dependentAssembly>
</dependency> </dependency>
@ -62,4 +62,13 @@
<dsig:DigestValue>R+Wg8QGvQVHX8T0ta/qbhH1bXkqY0fRnS3wBV3J0bN8=</dsig:DigestValue> <dsig:DigestValue>R+Wg8QGvQVHX8T0ta/qbhH1bXkqY0fRnS3wBV3J0bN8=</dsig:DigestValue>
</hash> </hash>
</file> </file>
<file name="PCI-Dask.dll" size="335872">
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>pDB54gSYV5M/tu2DZtDUj13HUp3HrRLSNr97K/nGHh4=</dsig:DigestValue>
</hash>
</file>
</asmv1:assembly> </asmv1:assembly>

BIN
leak_test_project/obj/Debug/leak_test_project.g.resources

Binary file not shown.

BIN
leak_test_project/obj/Debug/leak_test_project.pdb

Binary file not shown.

13
leak_test_project/obj/Debug/leak_test_project_Content.g.cs

@ -0,0 +1,13 @@
//------------------------------------------------------------------------------
// <auto-generated>
// 이 코드는 도구를 사용하여 생성되었습니다.
// 런타임 버전:4.0.30319.42000
//
// 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면
// 이러한 변경 내용이 손실됩니다.
// </auto-generated>
//------------------------------------------------------------------------------
[assembly: System.Windows.Resources.AssemblyAssociatedContentFileAttribute("pci-dask.dll")]

13
leak_test_project/obj/Debug/leak_test_project_Content.g.i.cs

@ -0,0 +1,13 @@
//------------------------------------------------------------------------------
// <auto-generated>
// 이 코드는 도구를 사용하여 생성되었습니다.
// 런타임 버전:4.0.30319.42000
//
// 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면
// 이러한 변경 내용이 손실됩니다.
// </auto-generated>
//------------------------------------------------------------------------------
[assembly: System.Windows.Resources.AssemblyAssociatedContentFileAttribute("pci-dask.dll")]

20
leak_test_project/obj/Debug/leak_test_project_MarkupCompile.cache

@ -0,0 +1,20 @@
leak_test_project
winexe
C#
.cs
C:\Users\COMPUTER1\Desktop\mobi\leak_test_project\leak_test_project\obj\Debug\
leak_test_project
none
false
DEBUG;TRACE
C:\Users\COMPUTER1\Desktop\mobi\leak_test_project\leak_test_project\App.xaml
6627611856
1-698605034
44464663643
14-767506772
Views\HomeView.xaml;Views\InOutView.xaml;Views\DataView.xaml;Views\ParametersWindow.xaml;Views\CommunicationWindow.xaml;MainWindow.xaml;
False

20
leak_test_project/obj/Debug/leak_test_project_MarkupCompile.i.cache

@ -0,0 +1,20 @@
leak_test_project
winexe
C#
.cs
C:\Users\COMPUTER1\Desktop\mobi\leak_test_project\leak_test_project\obj\Debug\
leak_test_project
none
false
DEBUG;TRACE
C:\Users\COMPUTER1\Desktop\mobi\leak_test_project\leak_test_project\App.xaml
6627611856
1-698605034
45-1617424975
14-767506772
Views\HomeView.xaml;Views\InOutView.xaml;Views\DataView.xaml;Views\ParametersWindow.xaml;Views\CommunicationWindow.xaml;MainWindow.xaml;
True

5
leak_test_project/obj/Debug/leak_test_project_MarkupCompile.i.lref

@ -0,0 +1,5 @@
C:\Users\COMPUTER1\Desktop\mobi\leak_test_project\leak_test_project\obj\Debug\GeneratedInternalTypeHelper.g.i.cs
FC:\Users\COMPUTER1\Desktop\mobi\leak_test_project\leak_test_project\App.xaml;;
FC:\Users\COMPUTER1\Desktop\mobi\leak_test_project\leak_test_project\Views\HomeView.xaml;;
FC:\Users\COMPUTER1\Desktop\mobi\leak_test_project\leak_test_project\MainWindow.xaml;;

5
leak_test_project/obj/Debug/leak_test_project_MarkupCompile.lref

@ -0,0 +1,5 @@
C:\Users\COMPUTER1\Desktop\mobi\leak_test_project\leak_test_project\obj\Debug\GeneratedInternalTypeHelper.g.cs
FC:\Users\COMPUTER1\Desktop\mobi\leak_test_project\leak_test_project\App.xaml;;
FC:\Users\COMPUTER1\Desktop\mobi\leak_test_project\leak_test_project\Views\HomeView.xaml;;
FC:\Users\COMPUTER1\Desktop\mobi\leak_test_project\leak_test_project\MainWindow.xaml;;

BIN
leak_test_project/obj/Release/App.baml

Binary file not shown.

BIN
leak_test_project/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache

Binary file not shown.

BIN
leak_test_project/obj/Release/MainWindow.baml

Binary file not shown.

10
leak_test_project/obj/Release/MainWindow.g.cs

@ -1,4 +1,4 @@
#pragma checksum "..\..\MainWindow.xaml" "{8829d00f-11b8-4213-878b-770e8597ac16}" "AC6B63D342AAA60FA134A9381169A7E50CCCC4A249937C592D6EBCFD954C2193" #pragma checksum "..\..\MainWindow.xaml" "{8829d00f-11b8-4213-878b-770e8597ac16}" "757CBCD9E21A494C9927096673B3DCAADE9698FAA3323F88DE79A3D94DB7FAA6"
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
// <auto-generated> // <auto-generated>
// 이 코드는 도구를 사용하여 생성되었습니다. // 이 코드는 도구를 사용하여 생성되었습니다.
@ -49,7 +49,7 @@ namespace leak_test_project {
#line hidden #line hidden
#line 48 "..\..\MainWindow.xaml" #line 49 "..\..\MainWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.Button btnMaximize; internal System.Windows.Controls.Button btnMaximize;
@ -57,7 +57,7 @@ namespace leak_test_project {
#line hidden #line hidden
#line 49 "..\..\MainWindow.xaml" #line 50 "..\..\MainWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBlock txtMaximizeIcon; internal System.Windows.Controls.TextBlock txtMaximizeIcon;
@ -107,7 +107,7 @@ namespace leak_test_project {
return; return;
case 3: case 3:
#line 45 "..\..\MainWindow.xaml" #line 46 "..\..\MainWindow.xaml"
((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.BtnMinimize_Click); ((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.BtnMinimize_Click);
#line default #line default
@ -116,7 +116,7 @@ namespace leak_test_project {
case 4: case 4:
this.btnMaximize = ((System.Windows.Controls.Button)(target)); this.btnMaximize = ((System.Windows.Controls.Button)(target));
#line 48 "..\..\MainWindow.xaml" #line 49 "..\..\MainWindow.xaml"
this.btnMaximize.Click += new System.Windows.RoutedEventHandler(this.BtnMaximize_Click); this.btnMaximize.Click += new System.Windows.RoutedEventHandler(this.BtnMaximize_Click);
#line default #line default

10
leak_test_project/obj/Release/MainWindow.g.i.cs

@ -1,4 +1,4 @@
#pragma checksum "..\..\MainWindow.xaml" "{8829d00f-11b8-4213-878b-770e8597ac16}" "AC6B63D342AAA60FA134A9381169A7E50CCCC4A249937C592D6EBCFD954C2193" #pragma checksum "..\..\MainWindow.xaml" "{8829d00f-11b8-4213-878b-770e8597ac16}" "757CBCD9E21A494C9927096673B3DCAADE9698FAA3323F88DE79A3D94DB7FAA6"
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
// <auto-generated> // <auto-generated>
// 이 코드는 도구를 사용하여 생성되었습니다. // 이 코드는 도구를 사용하여 생성되었습니다.
@ -49,7 +49,7 @@ namespace leak_test_project {
#line hidden #line hidden
#line 48 "..\..\MainWindow.xaml" #line 49 "..\..\MainWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.Button btnMaximize; internal System.Windows.Controls.Button btnMaximize;
@ -57,7 +57,7 @@ namespace leak_test_project {
#line hidden #line hidden
#line 49 "..\..\MainWindow.xaml" #line 50 "..\..\MainWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBlock txtMaximizeIcon; internal System.Windows.Controls.TextBlock txtMaximizeIcon;
@ -107,7 +107,7 @@ namespace leak_test_project {
return; return;
case 3: case 3:
#line 45 "..\..\MainWindow.xaml" #line 46 "..\..\MainWindow.xaml"
((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.BtnMinimize_Click); ((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.BtnMinimize_Click);
#line default #line default
@ -116,7 +116,7 @@ namespace leak_test_project {
case 4: case 4:
this.btnMaximize = ((System.Windows.Controls.Button)(target)); this.btnMaximize = ((System.Windows.Controls.Button)(target));
#line 48 "..\..\MainWindow.xaml" #line 49 "..\..\MainWindow.xaml"
this.btnMaximize.Click += new System.Windows.RoutedEventHandler(this.BtnMaximize_Click); this.btnMaximize.Click += new System.Windows.RoutedEventHandler(this.BtnMaximize_Click);
#line default #line default

Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save